Published 2026-09-27
tag(s): #español #linux #emacs
Se me ocurrió que esto es algo que es mejor escribir en español, simplemente porque ya hay
documentación de cómo hacerlo en inglés. ¡Es la que seguí hasta ahora!
Para ser sinceros, no sé por qué asumo que hay menos información en español. En realidad no
tengo ni idea, porque siempre que busco algo, lo hago en inglés.
Capaz hay una comunidad gigante de estudiantes de japonés en alguna región de España, o
Colombia, y todos usan Linux, con apps en Flatpak. Y además editan documentos en Emacs.
🦄
La fuente original de la información está en este repositorio de GitHub.
Y hablando de fuentes (je), la fuente de Fedora para caracteres CJK (Chinos, Japoneses,
Coreanos-pero-con-K-pues-inglés) es Noto Sans CJK, de Google. Sin dar una
indicación explícita, tiende a mostrar caracteres chinos en lugar de japoneses. Entiendo que
esto afecta puntualmente a los kanji.
Como no sé ningún kanji[1], al principio no me di cuenta de esto, pero
viendo los ejemplos en el repositorio y comparando con mis resultados, pude confirmar que
tenía el mismo problema.
Primero, instalar las fuentes como está descripto en el link, con dos cambios:
reemplazando dnf por rpm-ostree, y también instalé
el package oficial para japonés. No estoy 100% seguro que lo segundo fue necesario,
pero tampoco tengo ganas de desintalar el package y ver si el sistema se rompe, sólo para que
esta guía sea más precisa. =P
Si no lo instalan y algo no anda, ya saben...
sudo rpm-ostree install langpacks-fonts-ja
sudo rpm-ostree install google-noto-sans-mono-cjk-fonts
En mi caso, seguí el proceso de instalación manual, sólo que lo hice todo "a pedal" en
Emacs. Básicamente, hay que crear el directorio ~/.config/fontconfig/conf.d y
poner un archivo 50-user-jp-fonts.conf con el contenido listado abajo. Yo
uso Berkeley Mono como fuente
monoespacio, así que hice ese pequeño ajuste en la última sección:
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<description>A simple and robust font configuration for Japanese.</description>
<!-- Default sans-serif font -->
<match target="pattern">
<test qual="any" name="family"><string>sans-serif</string></test>
<edit name="family" mode="prepend" binding="strong"><string>Noto Sans CJK JP</string></edit>
</match>
<!-- Default serif fonts -->
<match target="pattern">
<test qual="any" name="family"><string>serif</string></test>
<edit name="family" mode="prepend" binding="strong"><string>Noto Serif CJK JP</string></edit>
</match>
<!-- Default monospace fonts -->
<match target="pattern">
<test qual="any" name="family"><string>monospace</string></test>
<edit name="family" mode="prepend" binding="strong">
<!-- Prioritize a dedicated Latin mono font for code, with CJK as a fallback -->
<family>Berkeley Mono</family>
<family>Noto Sans Mono CJK JP</family>
</edit>
</match>
</fontconfig>
Finalmente, fc-cache -fv ~/.config/fontconfig para que el reconstruir el font
cache.
La fuente original de la información está en este otro repositorio de GitHub.
La verdad es que todo esto empezó por Cider, que desde hace un
tiempo estoy instalando desde Flathub.
Hoy estaba escuchando una canción en Cider, y puse la parte de las letras (que no, aún no
entiendo, pero está lindo ver los mo y ka y reconocerlos =D) y muchos
caracteres aparecían con cuadraditos. Al toque me di cuenta que no eran los hiragana...y ahí
abrí el browser[2] y me puse a buscar...
El repositorio, igual que el anterior, tiene una solución medio automática, pero a mí me
interesaba aplicarla sólo a Firefox y Cider, y quería ver un poquito más en detalle que
hacía.[3]
Básicamente, hay que crear un archivo 99-flatpak-cjk-host-fonts.conf en el
directorio ~/.var/app/{Nombre-Aplicación}/config/fontconfig/conf.d/.
Los {Nombre-Aplicación} en mi caso fueron org.mozilla.firefox
y sh.cider.Cider, debería ser fácil identificar cuál es el directorio
correcto en otros casos.
El archivo indica a la app en cuestión que use configuración de fuentes del host
system, en lugar de lo que sea que usa o tiene el container donde está
ejecutándose.
Sinceramente, esperaba que esto se arregle instalando algo de los cosos eso Freedesktop que
normalmente se usan para códecs de video...
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<fontconfig>
<dir>/run/host/fonts</dir>
<dir>/run/host/local-fonts</dir>
<dir>/run/host/user-fonts</dir>
</fontconfig>
Y eso es todo! Aunque para este punto ya tenía instaladas todas las fuentes Noto CJK que me había cruzado. Si me faltó algo, lo agregaré después acá...
Esta información la saqué
de este blog,
actualizado por última vez en 2011. Sin embargo, como suele suceder en el mundillo de Emacs,
el código funciona perfectamente al día de hoy.
Esto es algo que ya sabía, pero Emacs tiene un soporte ESPECTACULAR para
ingresar texto en todo tipo de idiomas, y configuraciones de fuentes mixta (mostrar diferentes
alfabetos en el mismo buffer).
Es aún más impresionante que muchas de estas capacidades las está madurando desde los
90s...
Sin embargo, al día de hoy la mitad de la web se rompe cuando yo pongo "Sebastián"
como mi nombre.
El link también habla de los input methods, que es similar a como en Linux/Windows
podés cambiar entre configuraciones de teclado. En este caso esa configuración se puede
cambiar en cada buffer de forma independiente.
Yendo puntualmente a la parte de las fuentes, el código final para mí terminó siendo:
(set-fontset-font (frame-parameter nil 'font)
'japanese-jisx0208
'("Noto Sans Mono CJK JP" . "unicode-bmp"))
Al ser esto lo último que configuré, ya sabía que quería usar puntualmente Noto Sans
Mono CJK JP y no otra variante, ni dejar la parte JP sin
especificar.
Pero no andaba!!! Y pensé un poquito por qué. Asumí que había escrito mal el nombre de la
fuente, ya que a veces el nombre que usa Emacs es diferente del que uno esperaría. Abrí el
diálogo de opciones y la fuente "Noto Sans CJK" no aparecía en ninguna variante.
Y unos segundos después se me prendió la lamparita. Yo compilo mi propio Emacs en
un container de Toolbx. De hecho hace
poquito creé una imagen nueva basada en Fedora 44, y compilé Emacs 31.
El paso que me faltaba era dentro del container instalar las fuentes
correspondientes:
;; M-x shell (total, ya estoy dentro del container)
sudo dnf install google-noto-sans-cjk-fonts
;; luego M-x kill-emacs, y arrancar todo de cero
Y ahora puedo ver perfectamente caracteres japoneses en mis buffers
Aprendí varias cosas, y toda la jodita me llevo menos tiempo de lo que esperaba.
De hecho, ¡escribir este post me llevo bastante más tiempo que hacer lo cambios!