unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Ted Zlatanov <tzz@lifelogs.com>
To: emacs-devel@gnu.org
Subject: Re: composed characters question and suggestions for quail-cyrillic-*
Date: Tue, 08 Jul 2008 10:37:43 -0500	[thread overview]
Message-ID: <86y74ccrp4.fsf@lifelogs.com> (raw)
In-Reply-To: 87fxql8j7y.fsf@jurta.org

On Tue, 08 Jul 2008 00:42:09 +0300 Juri Linkov <juri@jurta.org> 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





  parent reply	other threads:[~2008-07-08 15:37 UTC|newest]

Thread overview: 77+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-13 14:27 composed characters question and suggestions for quail-cyrillic-* Ted Zlatanov
2008-06-13 15:11 ` Eli Zaretskii
2008-06-13 15:56 ` Jason Rumney
2008-06-13 18:09   ` Ted Zlatanov
2008-06-14  9:44     ` Eli Zaretskii
2008-06-14 18:55       ` Stephen J. Turnbull
2008-06-14 19:45         ` Eli Zaretskii
2008-06-18 20:17           ` Ted Zlatanov
2008-06-19 11:45             ` Kenichi Handa
2008-07-02 20:25               ` Ted Zlatanov
2008-07-03  2:29                 ` Kenichi Handa
2008-07-03 19:53                   ` adding consistent extra symbols to input methods (cyrillic-*, croatian-*, slov*, czech-* etc.) input methods Ted Zlatanov
2008-07-05 12:54                     ` Kenichi Handa
2008-07-06 18:40                       ` Juri Linkov
2008-07-06 22:54                         ` Miles Bader
2008-07-10  0:09                           ` Juri Linkov
2008-07-10  0:37                             ` Kenichi Handa
2008-07-10  0:52                               ` Juri Linkov
2008-07-10  1:44                                 ` Kenichi Handa
2008-07-10  1:15                             ` Stefan Monnier
2008-07-10  0:27                           ` Juri Linkov
2008-07-10  1:16                             ` Miles Bader
2008-07-10 18:43                               ` Juri Linkov
2008-07-11  2:52                                 ` Miles Bader
2008-07-07  1:57                         ` Kenichi Handa
2008-07-07  4:39                           ` Stefan Monnier
2008-07-07  5:25                             ` Kenichi Handa
2008-07-07 19:42                               ` Ted Zlatanov
2008-07-07 22:05                               ` Juri Linkov
2008-07-13  5:11                                 ` Eli Zaretskii
2008-07-13  5:17                                   ` Miles Bader
2008-07-13 21:27                                     ` Juri Linkov
2008-07-14  3:18                                       ` Miles Bader
2008-07-14  4:43                                         ` Kenichi Handa
2008-07-14 21:51                                           ` Juri Linkov
2008-07-15  1:24                                             ` Kenichi Handa
2008-07-28 13:30                                               ` multiple input methods (was: adding consistent extra symbols to input methods) Juri Linkov
2008-07-06 18:41     ` composed characters question and suggestions for quail-cyrillic-* Juri Linkov
2008-07-07 20:12       ` Ted Zlatanov
2008-07-07 21:42         ` Juri Linkov
2008-07-08  0:48           ` Kenichi Handa
2008-07-08 10:46           ` Werner LEMBERG
2008-07-08 21:47             ` David Kastrup
2008-07-08 15:37           ` Ted Zlatanov [this message]
2008-07-08 17:38             ` James Cloos
2008-07-08 22:54             ` Juri Linkov
2008-07-09 16:02               ` Ted Zlatanov
2008-07-09 18:02                 ` James Cloos
2008-07-09 18:49                   ` Ted Zlatanov
2008-07-09 19:51                   ` Juri Linkov
2008-07-09 18:48                 ` Ted Zlatanov
2008-07-09 19:33                   ` Juri Linkov
2008-07-09 22:14                     ` Ted Zlatanov
2008-07-09 23:52                       ` Juri Linkov
2008-07-10 12:47                         ` Ted Zlatanov
2008-07-10 18:45                           ` Juri Linkov
2008-07-10 19:10                             ` Ted Zlatanov
2008-07-10 19:52                               ` Juri Linkov
2008-07-10 20:40                                 ` Ted Zlatanov
2008-07-10 22:01                                   ` Juri Linkov
2008-07-12 20:51                                     ` Juri Linkov
2008-07-14 14:01                                     ` Ted Zlatanov
2008-07-14 21:47                                       ` Juri Linkov
2008-07-15 15:06                                         ` Ted Zlatanov
2008-07-15 20:32                                           ` Juri Linkov
2008-08-01 21:07                                             ` Ted Zlatanov
2008-08-05 21:00                                             ` Ted Zlatanov
2008-08-05 22:05                                               ` Chong Yidong
2008-07-10 22:09                                 ` Stefan Monnier
2008-07-10 22:54                                   ` Juri Linkov
2008-07-11  1:26                                     ` Stefan Monnier
2008-07-11  2:08                                     ` Kenichi Handa
2008-07-09 19:21                 ` Juri Linkov
2008-07-08 15:49           ` James Cloos
2008-07-08 18:50             ` Ted Zlatanov
2008-07-08 19:50               ` James Cloos
2008-07-08 20:26                 ` composed characters question and suggestions for?quail-cyrillic-* Teemu Likonen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=86y74ccrp4.fsf@lifelogs.com \
    --to=tzz@lifelogs.com \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).