emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: composed characters question and suggestions for quail-cyrillic-*


From: Ted Zlatanov
Subject: Re: composed characters question and suggestions for quail-cyrillic-*
Date: Tue, 08 Jul 2008 10:37:43 -0500
User-agent: Gnus/5.110011 (No Gnus v0.11) Emacs/23.0.60 (gnu/linux)

On Tue, 08 Jul 2008 00:42:09 +0300 Juri Linkov <address@hidden> wrote: 

JL> 1. It uses the acute accent to put the grave accent above letters,
JL> e.g. ("'a" ?à) ("'o" ?ò).  A correct way to implement this is to use the
JL> acute accent to put the acute accent above letters, and to use the grave
JL> accent to put the grave accent above letters, as all Latin input methods
JL> do, e.g. ("'a" ?á) ("'o" ?ó) ("`a" ?à) ("`o" ?ò).
>> 
>> You are right.  But please note that AFAIK in Cyrillic it's rare to find
>> acute accents, so the idea was "accent the next letter" and the ' key is
>> much more convenient on modern keyboards.  For Cyrillic in particular,
>> it may make sense to use ' as the accent prefix or accept it in addition
>> to `.  If you still think only ` should be used, I'll commit a patch
>> immediately.

JL> Instead of the grave accent `, most Cyrillic languages (including Bulgarian,
JL> Russian, Ukrainian) use the acute accent ' to mark the stressed vowel.
JL> Please see http://en.wikipedia.org/wiki/Acute_accent#Stress for more
JL> information.

Take a look at the Unicode Cyrillic chart.  Only the grave is available
for ѝ for example.  They all have to be done with combining.

We still need the grave-accented ѝ Ѝ letters, too.  So both ' and ` (or
something similar) will be needed as prefix keys.

JL> 2. It uses accented Latin letters à, ò that is inappropriate for
JL> Cyrillic texts.  The only valid way (as I understand according to
JL> Unicode specifications) is to use combining characters.
>> 
>> I think I mentioned this in an earlier post.  Combining characters look
>> inconsistent and sometimes take up two lines of text in Emacs, so I
>> thought it would be acceptable to use the accented Latin letters.  If
>> not, I'm OK with replacing them with the combining versions.  Please
>> note I'm not an expert on this topic, so I greatly appreciate your
>> recommendations.

JL> If combining characters take two lines, then it is a bug.  I remember
JL> that rendering of combining characters was correct before the Unicode
JL> merge.  If it was possible to do right before the merge, maybe it will be
JL> possible to fix this in current code using the same logic?

OK.  Furthermore, I can do

 (insert (compose-chars ?а ?̀))

but if I try the resulting character in quail-define-rules, it's not a
valid character read sequence, being two characters.  I also can't
specify the `compose-chars' function call or a string there.  How do I
specify a combined character in the quail rules?

JL> 3. It turns "'" into a prefix key, but it is used to input "ь" according
JL> to the rule ("'" ?ь).
>> 
>> Would it be possible to move ь under the ' prefix?  As I mentioned the '
>> key is very convenient and ь is not a frequently-needed letter.  It
>> actually works fine for me as it is (unless I need to type something
>> like ьо, which is rare), but I see the problem.

JL> In Bulgarian it is rare, but in Russian and Ukrainian it is very
JL> frequently used letter ;-)

Understood, but ' is the most sensible prefix for accents as well.  Can
we have `' generate acute accents  and ` generate grave?  That's a
decent compromise since accented letters are rarely needed.

JL> 4. «»“„‘‚§№ is too limited set of necessary characters and this set is
JL> not specific to `cyrillic-translit'.  Different styles of quotation
JL> marks are required by typographic rules in other several languages and
JL> scripts besides Cyrillic, and these rules also require using other
JL> symbols like dashes of different lengths, nbsp, 1/2, 1/4, subscripts,
JL> copyright, currency signs, and many more.

JL> Thanks, the characters you added are very needed.  Other needed characters
JL> to add are at least ”’–—•…

See at end for proposed mappings.

JL> So instead of copying the same rules to all input method a better
JL> way is to create a separate common input method with all these
JL> special symbols and to share it with language specific input
JL> methods.
>> 
>> My suggestion was essentially to build a prefix tree for Slavic
>> languages, since they share enough typographic rules, and to insert it
>> into every specific input method.  Using a secondary input method works
>> better so I hope it can happen (if Kenichi Handa's patch is OK).

JL> And in another message you wrote:

>> If this can go into the trunk, I'll be glad to use it (my changes will
>> then be unnecessary).  The only caution is that universal sequences are
>> not always intuitive; a good example is that I put "/ab" for paragraph
>> because that makes sense in Bulgarian ("абзац" means paragraph,
>> pronounced "abzatz").  So it would be nice to have a universal input
>> method plus custom rules at the intermediate level (e.g. cyrillic-*).

JL> It might be funny but in Russian § is named as a "paragraph sign",
JL> so your mnemonics don't work here.  And "абзац" is used for a different
JL> character, actually the pilcrow.  Please compare:

JL> http://ru.wikipedia.org/wiki/%C2%B6
JL> 
http://ru.wikipedia.org/wiki/%D0%97%D0%BD%D0%B0%D0%BA_%D0%BF%D0%B0%D1%80%D0%B0%D0%B3%D1%80%D0%B0%D1%84%D0%B0

According to

http://en.wiktionary.org/wiki/%D0%B0%D0%B1%D0%B7%D0%B0%D1%86

"абзац" is a synonym for paragraph in Russian (and comes from German, so
I learned something new :).  I don't know what's exactly right here, but
we can certainly accomodate /pa as a paragraph prefix that produces §.
I would prefer to leave /ab as § as well since (AFAIK) the pilcrow is
not as common.  Do you agree?

The goal is convenience for the users, so I hope we don't build a large
prefix tree.  Just the limited repertoire here is already hard to
remember.

How about:

"'  -> ” (compare to "" for “)
/`  -> ’ (compare to /' for ‘)
/-  -> –
/-- -> —
/.  -> • ("big fat dot")
/.. -> … (nice typographically)
/1{2,4,8,16,32,64} -> 1/fraction (the slash moves to the beginning)
/c  -> copyright
/tm -> trademark
/rub-> ruble
/kop-> kopek
/lev-> leva (л AFAIK)
/sto-> stotinki
/e  -> euro
/ce -> cents
/pa -> §

plus existing

,,  -> „
""  -> “
/,  -> ‚
/'  -> ‘
/&  -> §
/ab -> §
/#  -> №
/no -> №
<<  -> «
>>  -> »

Ted





reply via email to

[Prev in Thread] Current Thread [Next in Thread]