Re: Proposal to add 2 Romanian characters

From: John Hudson (tiro@tiro.com)
Date: Mon Apr 26 2004 - 15:04:52 EDT

  • Next message: Raymond Mercier: "Re: Proposal to add 2 Romanian characters"

    Philippe Verdy wrote:

    >>>>A keyboard can generate a single or combined character in few different
    >>For the keyboard you can use MSKLC

    > http://www.microsoft.com/globaldev/tools/msklc.mspx even with the necessary
    > multiple code point characters that you need.

    > Yes it works for the final generated sequences, but MSKLC won't work with
    > multiple dead keys, as MSKLC only supports combinations like:
    > <dead key> + <base code point> ==> <unicode string>

    > So to allow entering I + curcumblex + acute, one would need to map:
    > <acute dead key> + <I-circumflex code point>
    > but there's no way to compose I-circumflex if it does not receives a single
    > keystroke assignment (without dead keys).

    > There's no support in MSKLC to create mapping with 2 dead keys + one base code
    > point.

    Forget dead keys. Dead keys are only useful if you can perform a character level mapping
    to a precomposed character code. As such, it is a mechanism that is effectively useless
    for composing sequences that need to be rendered as either dynamically composed
    combinations (e.g. using OpenType GPOS mark attachment) or unencoded ligatures at the
    glyph level (e.g. using OpenType GSUB many-to-one substitution). Rather than having an
    'acute dead key', it is better to simply have a combining acute key, and enter the sequence as

            <Icircumflex, acute>

    or even

            <I, circumflex, acute>

    On Windows, the latest Uniscribe will automatically perform character level mapping from
    sequences of base+combining mark if a precomposed form exists in Unicode and is encoded in
    the font. So

            <I, circumflex>

    will automatically be rendered using the /Icircumflex/ glyph, presuming the latter is
    present in the font and correctly encoded. The glyph sequence

            /Icircumflex/acute/

    can be rendered either by dynamically placing the acute relative to the /Icircumflex/
    glyph, or by substituting a ligated form, e.g. in the GSUB Glyph Composition/Decomposition
    <ccmp> feature:

            /Icircumflex/acute/ -> /Icircumflex_acute/

    [Note that dynamically positioning the acute, a good font will include a variant form of
    the combining acute that is designed to work with uppercase or other tall forms, and this
    will be contextually substituted when preceded by a tall base.]

    I realise that all of the above suggestions rely on relatively new technologies, but these
    technologies are available, they are shipping, and they are designed to work with Unicode
    text.

    John Hudson

    -- 
    Tiro Typeworks        www.tiro.com
    Vancouver, BC        tiro@tiro.com
    I often play against man, God says, but it is he who wants
       to lose, the idiot, and it is I who want him to win.
    And I succeed sometimes
    In making him win.
                  - Charles Peguy
    


    This archive was generated by hypermail 2.1.5 : Mon Apr 26 2004 - 15:37:37 EDT