Lo que he aprendido: fuente de Emacs

¡He aprendido a cambiar la fuente de Emacs! Y no solo eso, sino que he conseguido que sea diferente según el sistema operativo en el que nos encontremos.

Todo esto ha venido porque la fuente por defecto de Emacs en Windows no me diferenciaba los ceros y la letra O y los unos y la L minúscula y me estaba volviendo loca. Aprovechando que en Matlab me había pasado a Consolas, decidí que de ahora en adelante usaría Consolas al estar en Windows (es una fuente propietaria pero que viene incluida en Microsoft Office). En GNU/Linux he seguido con la que se establecía por defecto1, Roboto Mono, que aunque la creó Google, lleva licencia Apache.

Como yo quería que Emacs eligiera la fuente según el sistema operativo, necesitaba averiguar primero cómo le llamaba Emacs a mi sistema operativo. Esto puede conseguirse evaluando la variable system-type, o bien con M-x eval-expression o con M-:. Así supe que esta variable toma el valor de windows-nt en Windows y gnu/linux en GNU/Linux. Algo totalmente inesperado dicho sea de paso.

Bien, ahora me faltaba averiguar cómo cambiar la fuente y crear un if. Lo primero es simple, solo hay que añadir cualquiera de estas líneas al archivo de configuración:

;; Establecer fuente
(set-face-attribute 'default t :font FUENTE :height TAMAÑO)
;; Establecer familia de fuentes
(set-face-attribute 'default t :family FAMILIA :height TAMAÑO)

El if tampoco es mucho más complejo, solo hay que tener en cuenta que tiene miles de paréntesis:

(if (condición)
(Expresiones si se cumple la condición)
(Expresiones si no se cumple la condición))

Fusionando ambas cosas me quedó esto:

;; Fuente
(if (eq system-type 'windows-nt)
    (set-face-attribute 'default nil :family "Consolas" :height 110)
    (set-face-attribute 'default nil :family "Roboto Mono" :height 110)
)

Evidentemente se puede mejorar añadiendo una condición de que use la fuente correspondiente solo si está disponible o de otras manera diversas que ahora no se me ocurren pero a vosotros sí porque sois muy listos. La cuestión es que hurgando un poco se puede conseguir casi cualquier cosa en Emacs y por eso me encanta.

Ale pues, os dejo, ¡contadme cosas en los comentarios!

Referencias

How to determine the operating system in elips? en StackOverflow

Emacs: Font Setup en Ergo Emacs

38.3 Operating System Environment en el manual de Emacs

37.12.1 Face Attributes en el manual de Emacs


Sonando:


  1. Para ver qué fuente está usando Emacs podemos hacer M-x describe-font 

8 pensamientos en “Lo que he aprendido: fuente de Emacs

    1. Ondiz Autor de la entrada

      Pues no lo sé, estuve buscando y vi diferentes opciones, como esa me funcionó no probé más.

      Lo de elegir otra si no está es mi próximo paso.

      Gracias por comentar!

      Responder
  1. Notxor

    A mí la fuente «roboto» no me gusta (no sólo porque sea de la Gran G), no me alinea bien las líneas verticales de las tablas en org-mode. Además estoy cansado de las fuentes «sans» y últimamente tiendo más a «serif» así que estoy buscando una fuente mono que sea serif. La «Linux Liberation Mono» es una candidata, pero los caracteres especiales en alguna lengua que suelo utilizar también son una auténtica chapuza.
    Pero bueno, esto también es al final un poco de gustos personales.

    Responder
    1. Ondiz Autor de la entrada

      Vaya, no me había fijado en lo de las tablas! Tengo que mirar a ver. A mí me gusta porque es gorda, es como si todo fuera en negrita y yo como miope que soy agradezco ese contraste.

      Suerte con la fuente con serifas, pocas he visto yo…

      Responder
      1. Notxor

        He puesto «Linux Liberation Mono» y quería decir la «Linux Libertine Mono»… debo haberme confundido por lo poco de «libertino» que tengo.

  2. nasciiboy

    por mas articulos que aparescan aqui o alla recomendando “fuentes para programadores”, desde el inicio de los tiempos (y por que creo que todos los gnus la traen) DejaVu Sans (mono) prevalece ante todo, en consola, en emacs y tambien el firefox y tambien uniformemente a tamaño 14

    ja, ja, buscando como ver que fuente tenia (por aquello de estar seguro) con apropos (C-h a font RET) y lo has puesto al final… ja, buen tip

    Responder
    1. Ondiz Autor de la entrada

      Me gusta DejaVu! Es la que estaría usando si no hubiese descubierto la Roboto que es la fuente por defecto en mi sistema.

      Puse lo de saber qué fuente estaba usando porque quería buscar la que usaba en GNU/Linux en el Windows del trabajo y no sabía cuál era 😀

      Responder
  3. Pingback: En qué ando últimamente | Onda Hostil

¡Opina sin miedo! (Puedes usar Markdown)

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s