2021年1月15日16時更新
原因がある程度わかったため修正しました
概要
症状
- MacOSにて発生する
- (自分で確認した限り)Spacemacsでしか起きない
- Noto系フォント以外では日本語フォントであっても漢字が中国語フォントになる
対処法
- unicode-fontsレイヤーを追加しない
かつ1.、2.1、2.2のいずれか
2.は自己責任でお願いします
- /usr/local/Cellar/emacs-plus@xx/xx.xx.xx/Emacs.app/Contents/MacOS/Emacsで起動する(ターミナルから起動する場合も同様。ターミナルのemacsコマンドは/usr/local/bin/emacs -> /usr/local/Cellar/emacs-plus@xx/xx.xx.xx/bin/emacsで中身は1.のパスのエイリアスであるため)
- Emacs.app/Contents/Resources/English.lproj/の削除
2. Emacs.app/Contents/Info.plistの削除
3. Info.plist内の"Localization native development region"項目を"Japan"にするか削除
はじめに
日本語のファイルを書こうとした時、最近文字の出力がおかしいことに気づきました。その間にOSのアップデート、パッケージの更新など色々行ったのでどの時点で変わったかは不明です。
環境(問題発見当時)
Mac OS Mojave 10.14.6
emacs(emacs-plus) 26.3~28.0
spacemacs 0.300.0
調査
経緯
原因と解決方法の調査中にDockから起動すると確定で発生することが判明しました。試行錯誤の結果Emacs.app/Contents/Info.plistとEmacs.app/Contents/Resources/English.lproj/を削除すると治ることが判明しました。この中で、Info.plistに設定されている"Localization native development region"項目を削除すると治ることが判明しました。
また別個の問題としてunicode-fontsレイヤーを追加すると同様の症状が発現しました。
推測
恐らくロケールがEnglishのままだと他言語が正しく出力されないことが伺えます。またlprojが言語ファイルであることからEnglish.lprojの問題によって発生し、これを削除することで修正できると考えられます。(しかし名前とかバージョンとかの情報しか入ってないのでなぜ発生するかがわかりません...)
/usr/local/Cellar/emacs-plus@xx/xx.xx.xx/Emacs.app/Contents/MacOS/Emacsで起動すると治るのはロケールの設定をしないからだと考えられます。
unicode-fontsレイヤーの方は恐らく中国語フォントとの競合によって起こる問題だと推測できますが確証はありません。