20220313_python_logo_banner

Linux + Apache + MariaDB + Python ブログ

ビャンビャン麺と「岩手軽便鉄道の一月」

鏡4文字(2023-08-20)

GNU Emacs 29.1 は Unicode 15.0(2022-09-13 リリース)をフルサポートしている。

入力方法に限っても Emacs 29.1 では 251 通りものインプットメソッドが用意されている。

ドイツ語を例にとると「german(キーボードのキー配列をドイツ語キーボード配列にしてしまう),german-postfix(o" と打つと ö と出る),german-prefix("o と打つと ö と出る)」等がある。

latin-postfix や latin-pretfix を使えば,上で見たドイツ語ウムラウトの他にも「a` -> à, 'e -> é, ...」といった方式でフランス語アクサン記号(その他ラテン字で文字表記する多言語字母等)も入力できるようになる。

バージョン 29.1 から追加された emoji を選択すると「owl」とキーボードから入力するだけで「梟」絵文字を出力できるようになった。これは便利だ。

が,実際に(絵)文字を出力できるかどうかは別の話で,当該文字(グリフ)を含むフォントがインストール(かつ設定)されていなければその文字は出力できない。

たとえば巨大かつ高品質な「汎中日韓 Open Type フォント」として高名なオープンソースの Source Han Serif/Sans(現時点でのバージョンは Serif: 2.002; Sans: 2.004R)は中国陝西省で食される幅広の麺「ビャンビャン麺」の「ビャン」という字(簡体字で 43 画,繁体字で 58 画)をそれぞれ複数ウェイト(=太さ)備えているので,このフォントをシステムにインストールすれば「ビャン」字も取り扱えるようになる。

ところで Source Han Serif Ver. 1.001 そして Sans Ver. 2.001 の段階では,「ビャン」字が登録された Unicode 13.0 がまだリリース(2020-03-10)されていなかったので,当該文字の文字マップまではフォントに同梱されていなかった。

なので,その当時「ビャン」字を入力するには,Open Type の Source Han フォントが備える「グリフ置換機能」(の中の「合字・分解置換」)を使って「漢字構成記述文字」(Ideographic Description Character)による「漢字構成記述表記」(Ideographic Description Sequence)をして文字合成する必要があった。この入力方法はかなりアクロバティックであり,はっきり言って使いにくかった(バッドノウハウ?)。

しかし,現在の Source Han Serif/Sans は「ビャン」字(だけではないが)の「文字コード,文字マップ,文字 ID」全てを備えている。だからこのフォントを使えるようにしておけば,Emacs で「ユニコード16進数コードポイント」を入力するだけで画面上に直ちに「ビャン」字を出現させられる。

GNU Emacs 29.1 で「画数の多い漢字」の入出力

GNU Emacs 29.1 で「画数の多い漢字」の入出力

U+30F54(kagami; 鏡4つ),U+2053B(sei; 興4つ),U+2A6A5(tetsu; 龍4つ)の文字は Source Han に(現段階では)含まれていないので,ここでは BabelStone Han フォント(フリー)を使っている(画像の GNU Emacs は千葉大の山本光晴先生が配布してくださっている emacs-mac. 細部のファインチューニングに至るまで,私にとって使い勝手一番の GNU Emacs. 感謝!)。

ユニコード「第3漢字面」(TIP: Tertiary Ideographic Plane)の「CJK 統合漢字拡張 G」(CJK Unified Ideographs Extension G)に含まれるこうした複雑な文字も,XeTeX や LuaTeX で処理すれば「明朝(Serif)・ゴシック(Sans)」そして「異体字」の使い分けや文字の「ウェイト」(太さ)も楽にコントールできる。

Source Han Serif (明朝体): XeTeX による出力例

Source Han Serif (明朝体): XeTeX による出力例

Source Han Sans (ゴシック体): XeTeX による出力例

Source Han Sans (ゴシック体): XeTeX による出力例

BabelStone Han(明朝体): XeTeX による出力例

BabelStone Han(明朝体): XeTeX による出力例

BabelStone Han の U+30F54(kagami; 鏡4つ)文字は線が細く,他の文字に比べアンバランスが目立つが,ウェイトはこの標準体一種しかない。

なお U+30F54(kagami; 鏡4つ)文字は,実際,宮沢賢治が彼の詩「岩手軽便鉄道の一月」の中で用いている。下は LuaTeX による出力例(当該文字「以外」はヒラギノ・フォント)。

「岩手軽便鉄道の一月」: LuaTeX による出力例

「岩手軽便鉄道の一月」: LuaTeX による出力例

blog comments powered by Disqus