digit-groups 20160816.1926(in MELPA)
Highlight place-value positions in numbers

概要

大きい数字を読み上げるのは大変ですよね。
あなたは「1234567890123」をすぐに読み上げられますか?
でも、数字にマーカーがしてあれば簡単に読み上げられるはずです。

1234567890123
^    ^^^^

先程の数字は「1兆2345億6789万123」です。

digit-groups.el がこのように別フェイスで数字の区切りを示してくれます。

ただ作者は英語圏の人なので、3桁区切りになってしまいます。
本設定では日本人向けに設定を変えておきます。

なお、マイナーモード digit-groups-mode を有効にするための条件として
font-lock-mode が有効になっている必要があります。
プログラミングのモード(prog-mode 系列)なら有効ですが、
text-mode ではあえてfont-lock-modeを有効にする必要があります。
org-mode ではそのままで有効になります。

20160819101814.png
Fig1: これで大きい数字も楽に読めるね

インストール

パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。

(package-initialize)
(setq package-archives
      '(("gnu" . "http://elpa.gnu.org/packages/")
        ("melpa" . "http://melpa.org/packages/")
        ("org" . "http://orgmode.org/elpa/")))

初めてdigit-groupsを使う方は
以下のコマンドを実行します。

M-x package-install digit-groups

アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。

M-x package-install package-utils (初めてアップグレードする場合のみ)
M-x package-utils-upgrade-by-name digit-groups

なぜ数字を区切ると読みやすくなるのか

http://ipfbiz.com/archives/numeral.html より

桁の大きな数字を記載する時には、3桁ごとにカンマで区切るのがマナーとなっています。
この3桁区切りは、元々欧米の言語文化から来ています。

つまり、英語では、
1(one)、10(ten)、100(handred)、1000(thousand)の後は、1000ごと、つまり3桁ごとに単位が用
意されています。

1,000=thousand
1,000,000=million
1,000,000,000=billion
1,000,000,000,000=trillion

したがって、3桁ごとに数字が区切られていると、大きい数字を読み上げるのが非常に楽になります。

3,000は、3と1,000(thousand)だから「three thousand」
30,000,000は、30と1,000,000(million)だから、「thirty million」
300,000,000,000は、300と1,000,000,000(billion)だから、「three handred billion」

数えやすいでしょ?

掛け算でも、
1,000(thousand)×1,000(thousand)=1,000,000(million)
1,000(thousand)×1,000,000(million)=1,000,000,000(billion)
と分かりすい。

このように3桁ごとの区切りで読み上げるのは、10進法の中でもさらに1,000進法(千進法)となります。
欧米の数字言語に合わせて、読みやすいように3桁ごとにカンマを振るんですね。

同じ理由により、日本語では4桁区切りにすれば読みやすくなるわけです。

無量大数よりもでかい単位があるんですねぇ

http://note.chiebukuro.yahoo.co.jp/detail/n48931 より

一              いち
十     10の1乗    じゅう
百     10の2乗    ひゃく
千     10の3乗    せん
万     10の4乗    まん
億     10の8乗    おく
兆     10の12乗   ちょう
京     10の16乗   けい
垓     10の20乗   がい
・      10の24乗   じょ
穣     10の28乗   じょう
溝     10の32乗   こう
澗     10の36乗   かん
正     10の40乗   せい
載     10の44乗   さい
極     10の48乗   ごく
恒河沙  10の52乗   ごうがしゃ
阿僧祇  10の56乗   あそうぎ
那由他  10の60乗   なゆた
不可思議 10の64乗   ふかしぎ
無量大数 10の68乗   むりょうたいすう
矜羯羅 10の112乗  びんばら
阿伽羅 10の224乗  こんがら

設定 160819100529.digit-groups.el(以下のコードと同一)

(require 'digit-groups)

;;; わかりやすくするためにアンダーライン表記
;;; デフォルトはボールド体になるだけ
(custom-set-faces '(digit-groups-default-face ((t (:underline t)))))
;;; 日本人向けに4桁区切り
(setq digit-groups-groups
  (--map (cons it 'digit-groups-default-face)
         (apply 'append
                (append
                 (--map (list (+ 7 (* 8 it))(+ 6 (* 8 it)) (+ 5 (* 8 it)) (+ 4 (* 8 it)))
                        '(9 8 7 6 5 4 3 2 1 0))))))
;;; テスト
(switch-to-buffer "*digit-groups-test*")
(insert "
 1234567890123
兆  億  万
")
(font-lock-mode 1)
(digit-groups-mode 1)

実行方法

$ wget http://rubikitch.com/f/160819100529.digit-groups.el
$ emacs -Q -f package-initialize -l 160819100529.digit-groups.el


本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。