[comp.windows.x] dead keys again, and ISO 6937/2

justin@HARRY.CRIM.CA (Justin Bur) (08/27/89)

There is one more ISO character set that predates those defined
in ISO 8859 (Latin 1-4, etc.).  This is ISO 6937/2, which attempts
to consolidate the videotex/teletext standards S.61 and S.100 of
the CCITT, and on which the PostScript Standard Encoding seems to
have been based.

ISO 6937/2 reserves sixteen positions (and defines 14 of them)
for symbols that must be combined with others before being
displayed - dead keys, in other words.  In addition, this
character set defines a few other characters, some even
conceivably useful, that do not appear in any of the 8859
character sets or even in other X11 keysym sets.

Here are the additional characters provided in 6937/2.  Unless
some other solution has been adopted for the dead keys, I
would like to suggest these as a new keysym set for X11.

	C1	dead_grave
	C2	dead_acute
	C3	dead_circumflex
	C4	dead_tilde
	C5	dead_macron
	C6	dead_breve
	C7	dead_abovedot
	C8	dead_diaeresis
	CA	dead_ring
	CB	dead_cedilla
	CC	dead_underscore
	CD	dead_doubleacute
	CE	dead_ogonek
	CF	dead_caron

	D5	musicalnote
	E6	IJ
	E7	Ldot (Catalan)
	EA	OE
	EF	apostrophe_n (Afrikaans)
	F2	dstroke (Lappish, Croatian)
	F6	ij
	F7	ldot (Catalan)
	FA	oe

Please consult the standard for what little additional information
is given about some of the stranger characters.

Justin Bur
CRIM, Montreal

rws@EXPO.LCS.MIT.EDU (Bob Scheifler) (08/28/89)

    ISO 6937/2 reserves sixteen positions (and defines 14 of them)
    for symbols that must be combined with others before being
    displayed - dead keys, in other words.

I assume you are referring to "non-spacing diacritical marks".  If so,
I don't see the need for them.  There are already keysyms for letters
with diacritical marks.  There are also keysyms for the diacritical
marks themselves.  6937/2 has the non-spacing forms (as I understand
it) merely as a representation mechanism within an octet stream.  There
is no need for this in X keysyms.

	E6	IJ
	EA	OE
	F6	ij
	FA	oe

These are just ligatures, there's really no compelling reason to make
them actual keysyms, that I can see.

	F2	dstroke (Lappish, Croatian)

There is already a keysym for this.

	D5	musicalnote

I'm not very excited.

	E7	Ldot (Catalan)
	F7	ldot (Catalan)

I would want to see multiple people say they actually want these on their
keyboard.

guy@auspex.auspex.com (Guy Harris) (08/31/89)

>I assume you are referring to "non-spacing diacritical marks".  If so,
>I don't see the need for them.  There are already keysyms for letters
>with diacritical marks.  There are also keysyms for the diacritical
>marks themselves.

Are there keyboards that have both a "dead key" for any of those
diacritical marks and a non-dead key (e.g., if you hit the "dead accent
grave" key followed by the "a" key, an editor program supporting an ISO
Latin #1 character set would insert an "a with grave accent" character
into the file, and if you hit the "accent grave" key, it would insert an
"accent grave" character into the file)?

justin@HARRY.CRIM.CA (Justin Bur) (09/04/89)

> I assume you are referring to "non-spacing diacritical marks".  If so,
> I don't see the need for them.  There are already keysyms for letters
> with diacritical marks.  There are also keysyms for the diacritical
> marks themselves.  6937/2 has the non-spacing forms (as I understand
> it) merely as a representation mechanism within an octet stream.  There
> is no need for this in X keysyms.

A few weeks ago I posted a query to xpert about dead keys, asking how they
should be implemented, but if there were any replies I missed them.  The
only X keyboard with dead keys that I have seen is H-P's (HPwindows on the
Series 300 under HP-UX 6.1), and it uses special keysyms for these keys
(based on HP's Latin8 character set rather than 6937/2).

Granted, the diacritics provided in the upper 128 keysyms of Latin1-4
could be assumed to be dead keys whenever they occur.  However, three
diacritics (grave, circumflex, tilde) are considered to be part of the
lower 128 by the ISO, yet just about everyone, including the X keysyms,
uses them as standalone graphics: quoteleft, asciicircum, and asciitilde.
My X11.3 <X11/keysymdef.h> has no grave, circumflex, or tilde.

I need to create a French keyboard mapping that can be installed and
removed at will, whether the physical keyboard happens to have French
keycaps or not, whether I'm on a Sun server or an X terminal.  The only
tool I know of to do this is xmodmap.  Assuming that dead keys are to
be implemented in Xlib, in XKeyBind.c along with compose-character, I
need to be able to distinguish a real grave accent (a dead key) from
a quoteleft (a standalone), a real circumflex from an asciicircum, a
real tilde from an asciitilde.

Hence my suggestion to use ISO 6937/2.  The remaining characters in
my list were only for completeness, though I do think the ij and oe
ligatures have some chance of being useful in some application.
Still, the need for 6937/2 keysyms exists only as long as my current
idea of how to produce a switchable keyboard with dead keys is the
only idea I have.  It has occurred to me that Digital has had to
solve the same problem, and I would like to know if they did it
differently from Hewlett-Packard, or if there is a `correct' or
`official' solution.

Justin Bur
CRIM, Montreal

rws@EXPO.LCS.MIT.EDU (Bob Scheifler) (09/05/89)

    I need to create a French keyboard mapping that can be installed and
    removed at will, whether the physical keyboard happens to have French
    keycaps or not, whether I'm on a Sun server or an X terminal.

There is work-in-progress in the X Consortium to provide a mechanism to
support "dual-language" (and similar) keyboards, those with 1-4 keysyms
per keycode.  It is based on using a modifier to switch between keysym groups.
If you wanted "French" in the upper group, you would put the appropriate
Latin-1 keysyms (characters with diacritics, not non-spacing diacritics)
there and get them via a "shifting" key.  I don't know if this matches
your needs or not.  Assuming we work it out, support will be in Xlib in R4.