修正 emacs 在X11下不能使用中文輸入法的問題

最近在新買的電腦上裝新的 Gentoo Linux, 結果又遇到了除了 Emacs 外其他程式都可以使用中文輸入法(ibus, fcitx, hime, gcin …) 的問題,因此重新來紀錄一次。

問題描述

在 X11 下面,已經確定了有設定以下環境變數 (這邊以 ibus 舉例), 可以設定在 ~/.xprofile 或是 ~/.bashrc

# -*- mode: sh -*-
############################################################
# Locales
############################################################
export LC_CTYPE="zh_TW.UTF-8"

############################################################
# Input Method
############################################################

# ibus
export XMODIFIERS="@im=ibus"
export GTK_IM_MODULE=ibus
export QT_IM_MODULE=ibus

但是這樣設定完成後, 卻只有 Emacs 不能啟用中文輸入法, 其他 GTK 程式皆可以正常輸入中文。

解決手段

我以前紀錄的解決方式是需要在 /etc/X11/xorg.conf 加入以下幾行然後重起 X11 來解決,但是這是 2012年的紀錄,目前已經不需要這樣做了

Section "Files"
    FontPath        "built-ins"
    FontPath        "/usr/share/fonts/TTF/"
    FontPath        "/usr/share/fonts/100dpi/"
    FontPath        "/usr/share/fonts/75dpi/"
EndSection

真正的問題是在於缺少了以下幾個 X11 套件

  [I] media-fonts/font-adobe-100dpi
  Available versions:  1.0.3-r1 {X nls}
  Installed versions:  1.0.3-r1(09:47:42 AM 02/08/2020)(X nls)
  Homepage:            https://www.x.org/wiki/ https://gitlab.freedesktop.org/xorg/font/font-adobe-100dpi
  Description:         X.Org Adobe bitmap fonts

  [I] media-fonts/font-adobe-75dpi
  Available versions:  1.0.3-r1 {X nls}
  Installed versions:  1.0.3-r1(09:47:55 AM 02/08/2020)(X nls)
  Homepage:            https://www.x.org/wiki/ https://gitlab.freedesktop.org/xorg/font/font-adobe-75dpi
  Description:         X.Org Adobe bitmap fonts

  [I] media-fonts/font-util
  Available versions:  1.3.2-r1
  Installed versions:  1.3.2-r1(12:09:35 AM 02/04/2020)
  Homepage:            https://www.x.org/wiki/ https://gitlab.freedesktop.org/xorg/font/font-util
  Description:         X.Org font utilities

因此確定系統有裝安裝上這些套件後,重起 X11 就真的可以讓 Emacs 輸入中文了~