A Riddle Wrapped in a Mystery

中身はエニグマ・Emacs

数学用アルファベットをEmacsで入力する。

Emacs Lisp の math-symbols.el は、通常の文字をイタリック文字やフラク トゥール文字へ変換できる。

Unicode の数学文字

通常、イタリックや太字は文字符号ではなくフォントで区別するが、数式で使 う文字のイタリックや太字は意味的に異なるため、別の文字符号でこれらを扱う。

Unicode で符号化されているスタイルは以下のとおりである。

styles / scripts alphabets greeks* numerals
bold yes yes yes
(bold) italic yes yes yes
(bold) fraktur yes no no
(bold) script yes no no
double-struck yes partial yes
monospace yes no yes
sans-serif (italic) yes no yes
sans-serif bold (italic) yes yes yes
subscript partial no yes
superscript partial no yes

上の表において、アルファベットとは、大文字・小文字それぞれ26文字ずつ である。また、ギリシャ文字は全て数学用ギリシャ文字記号とナブラ(ϵ, ϑ, ϰ, ϕ, ϱ, ϖ, ∇)を含む。

Unicode の符号とフォント

Unicode では、数学用文字の符号は U+1D400 からの SMP面で符号化されてい る。ただし、一部の早期にBMPで符号化されていた文字 (ℜなど) は別である。

数学記号フォントは STIX Font Project が開発したフォントが主要なOSにはす でにインストール済である。

init.el の設定

単に (require 'math-sybols) でインストールされる。

文字のスタイル化

アルファベット等の文字をスタイル化したい場合は、領域を選択して、 M-x math-symbols-XXXX-region を実行する。たとえば abcde を 太字イタリック にしたい場合は、 M-x math-symbols-bold-italic-region とすれば良い。

math-symbols-fraktur-region abcde 𝔞𝔟𝔠𝔡𝔢
math-symbols-bold-region abcde 𝐚𝐛𝐜𝐝𝐞
math-symbols-italic-region abcde 𝑎𝑏𝑐𝑑𝑒
math-symbols-script-region abcde 𝒶𝒷𝒸𝒹ℯ
math-symbols-double-struck-region abcde 𝕒𝕓𝕔𝕕𝕖
math-symbols-sans-serif-region abcde 𝖺𝖻𝖼𝖽𝖾
math-symbols-superscript-region 12345 ¹²³⁴⁵

スタイル化した文字をもとに戻すには M-x ucs-normalize-NFKC-region を実行 する。文字列を変換するには、 (math-symbols-italic-region "hogehoge") と実行する。文字列中に変換できない文字がある場合(空白含む)はエラーに なるが、 C-u プレフィックスで抑制できる。

(math-symbols-fraktur-string "fghijk") ⏎
"𝔣𝔤𝔥𝔦𝔧𝔨"