如何获得特定于人类语言的数字?


9

TL; DR:用阿拉伯语书写时如何使用印地语数字(١٢٣ ...)?


Emacs可以说是最好的编辑器,但是当涉及到在写作环境中使用数字时,与Microsoft Word提供的解决方案(即上下文数字书写)相比,对于多语言用户来说,没有令人满意的解决方案。

在Microsoft Word 2010中,转到下拉菜单->更多命令->高级->在显示文档内容下,您可以选择context数字(阿拉伯语,印地语,上下文或系统)。上下文选项允许你根据你的写作,如果它是英文数字将上下文写数字阿拉伯语 1,2,3,4,5,6,7,8,9,0 -听起来很奇怪!但是它是如此命名的(也许是一个错误的称呼),如果您使用阿拉伯语书写,那么数字将是印地语数字,其书写方式如下:
在此处输入图片说明

对于Windows,我发现input-method如果要用Emacs编写多语种文档,说英语和阿拉伯语或任何其他完全不同的字母的语言,则更改写时方法是可行的。在Windows IMHO中从语言栏中更改语言或键盘布局不会产生相同的效果,因为这将破坏Emacs编辑器的所有键绑定(尤其是在使用两种不同的语言,例如英语和阿拉伯语的情况下)。解决方案在这里发布。

在Microsoft Word中,将数字设置为上下文后,您可以用阿拉伯数字无缝地书写英语,而当您通过循环(ALT+ R SHFT)切换为阿拉伯语书写时,您将立即用印地语数字书写阿拉伯语文本,如下图所示。在Emacs中,将input-method阿拉伯语转换为阿拉伯语后,数字仍将是阿拉伯语(1、2、3等),而不是所需的印地语数字。

在此处输入图片说明

我不认为解决此问题的方法与Microsoft Windows有关,因为更改区域设置的语言也将更改Windows界面的数字,并且不会在整个系统范围内产生不良影响。

我相信Emacs的扩展潜力是解决此问题的关键。更具体; 我建议Emacs应该检测到input-method,如果使用阿拉伯语,则应自动将所有阿拉伯数字重新映射为印地语数字。 或者 以某种方式自定义阿拉伯语键盘布局以使用北印度语而不是阿拉伯数字。

列出的打击是与此问题相关的一些帖子,但是我无法将这些信息转换成适合于此帖子特定内容的实际解决方案:

https://tex.stackexchange.com/q/191040/26295

下面是扩展Emacs中输入方法的一种方法。 https://emacs.stackexchange.com/a/3404/2443

如果您想一次输入一个印地语数字,C-x 8 RET这些输入法在Unicode中映射为以下代码,则在Emacs中键入印地语数字可能是一项繁琐的任务:0661代表数字1,0662代表数字2,0663代表数字3,0664代表数字4,0665代表5,依此类推。

问题
为了复制Microsoft Word提供的无缝上下文书写体验,对Emacs 24的最佳自定义和最短的击键是什么?


我认为这里有些混乱,您所说的印地文数字实际上是阿拉伯数字!
伊克巴尔·安萨里

@IqbalAnsari嗨,具有讽刺意味的是,我不知道这是第一次使人感到困惑,但是如果您是Microsoft Word用户,并且使用阿拉伯语书写,您很快就会习惯此行话。如果您有Microsoft Word,可以将其签出。
博士学位

1
顺便说一句:在一些说阿拉伯语的国家,出版物规范默认为印地语数字(١٢٣ ...),例如埃及,而在其他国家,则默认为阿拉伯数字(123 ...),例如黎巴嫩。

@丹,埃及和黎巴嫩都是阿拉伯语国家,应在其出版物或任何其他著作中使用印地语。基于此,Emacs的默认阿拉伯语布局最好将数字从阿拉伯语更改为印地语。
博士学位

他们应该或不应该做的事与他们实际所做的事不相关。而且,就其价值而言,主要的在线出版物大多使用阿拉伯数字-参见。al-Jazeeraal-Hayat(每日泛阿拉伯),al-Nahar(每日黎巴嫩旗舰),al-Ahram(每日埃及旗舰)。我也更喜欢印地语数字的美观性,但是看起来好像quail做出了默认选择阿拉伯数字的正确选择,因为它们似乎也是阿拉伯世界中的默认数字。

Answers:


10

因此要求是:​​当我使用arabic输入法并键入数字时,我希望Emacs为该数字插入印地语字符。

为此,我们可以采用您的链接方法来扩展输入法,如下所示:

(eval-after-load "quail/arabic"
  '(let ((quail-current-package (assoc "arabic" quail-package-alist)))
     (quail-define-rules ((append . t)) ;; don't clobber the existing rules
                         ("0" "\u0660")
                         ("1" "\u0661")
                         ("2" "\u0662")
                         ("3" "\u0663")
                         ("4" "\u0664")
                         ("5" "\u0665")
                         ("6" "\u0666")
                         ("7" "\u0667")
                         ("8" "\u0668")
                         ("9" "\u0669"))))

然后,当您使用C-uC-\ arabic(或只是C-\默认设置)并键入数字时,它会插入指定的译文。


大!问题已解决。Emacs确实是最好的编辑器。
博士学位
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.