Cómo usar Fixedsys en la Terminal de Gnome, o donde se requieran fuentes monoespaciadas

10

Creo que la fuente Fixedsys es una de las fuentes monoespaciadas más legibles para la programación. Tiene cero antialiasing, con líneas verticales en su mayoría de 2 píxeles de ancho. Cerca de ideal para tonos de puntos de monitor actuales, en mis ojos (literalmente). Aquí hay una muestra:

Muestra de Fixedsys

Después de años de Windows en casa (por razones familiares) y servidores Linux en el trabajo accedidos a través de Cygwin en Windows (por razones de política de la compañía), con Fixedsys como shell y fuente IDE, finalmente decidí cambiarme a Ubuntu en casa.

Eclipse y gedit no son un problema, aceptan una versión corregida de la fuente Fixedsys Excelsior TTF que puede encontrar aquí en el comentario # 16 (nombre de archivo: FSEX301-L2.ttf). Pero el terminal Gnome solo acepta fuentes monoespaciadas.

Aunque Fixedsys Excelsior es esencialmente monoespaciado, contiene glifos más grandes (principalmente para idiomas orientales) y también algunas ligaduras. Dado que aparentemente TODOS los caracteres deben tener el mismo ancho para que una fuente sea reconocida como monoespaciada, Fixedsys Excelsior no puede seleccionarse en todos aquellos contextos donde se requieren fuentes monoespaciadas, incluido gnome-terminal.

Entonces, ¿cuál es la forma más fácil / limpia de usar un clon Fixedsys en contextos que solo aceptan fuentes monoespaciadas?

Walter Tross
fuente
Por cierto, para usar Fixedsys Excelsior en NetBeans, debe agregar -J-Dswing.aatext=falsea netbeans_default_options en /etc/netbeans.conf. De lo contrario NetBeans se lo califica como "color" y borrosa - esto se aplica a Windows demasiado
Walter Tross
Actualización de mi comentario anterior: Netbeans 7.4 en Windows requiere -J-Dawt.useSystemAAFontSettings=ondeshacerse del anti-aliasing.
Walter Tross
En el MacBook Pro, tengo que trabajar con la imagen de muestra que no es nítida. La fuente Fixedsys parece tener píxeles de borde gris. AFAICT esto se debe a la llamada pantalla "retina", una pantalla de alta resolución que hace que las imágenes dentro de HTML se escalen en un factor de dos (sí, prefirieron romper HTML y tener imágenes borrosas ...). La misma escala se aplica a la fuente en sí, echándola a perder. Por otro lado, las pantallas de alta resolución mejoran enormemente la legibilidad de todas las fuentes, obviando la necesidad de Fixedsys.
Walter Tross

Respuestas:

7

Esta es la solución que encontré. Lo he probado a fondo varias veces, y he estado usando la fuente resultante en varios lugares durante más de 2 años, pero tenga en cuenta: algunas partes del procedimiento pueden ser desde subóptimas hasta completamente incorrectas.

Antes de preguntar "por qué no haces que la fuente resultante esté disponible", la respuesta es: "porque no estoy seguro de poder hacerlo". El copyright de las fuentes es un asunto complejo.


Descargue la fuente corregida Fixedsys Excelsior (archivo FSEX301-L2.ttf, en el comentario # 16)

Instale FontForge (por ejemplo, desde el Centro de software de Ubuntu)

Haga clic derecho en el FSEX301-L2.ttfarchivo y ábralo con FontForge. En el mapa de bits Cargar fuentes ventana que aparece, haga clic en No .

Haga clic en Archivo → Ejecutar script ... , y copie y pegue lo siguiente en la ventana que aparece:

SelectAll()
foreach
   if (GlyphInfo("Width") != 80)
      DetachAndRemoveGlyphs()
   else
      b = GlyphInfo("BBox")
      if (b[0] < 0 || b[1] < -30 || b[2] > 80 || b[3] > 130)
         DetachAndRemoveGlyphs()
      endif
   endif
endloop
SelectNone()

Luego seleccione FF y haga clic en Aceptar (llevará un tiempo, tendrá que esperar hasta que desaparezca la ventana Ejecutar secuencia de comandos )

Haga clic en Elemento → Información de fuente ... En los Nombres de PS, cambie el Nombre de fuente , el Nombre de familia y el Nombre para humanos , por ejemplo, agregando Mono(los espacios se permiten solo en la segunda y tercera cadena).

En la misma ventana de Información de fuente , seleccione OS / 2 .
En la miscelánea. pestaña cambiar la familia PFM a Monospace .
En la pestaña Métricas, configure Win Descent Offset y HHead Descent Offset en 0 (*) .
En la pestaña Panose , cambie la Proporción a Monoespaciado .

En la misma ventana de Información de fuente , seleccione Búsquedas .
En la pestaña GSUB y en la pestaña GPOS , seleccione cada línea a su vez y haga clic en Eliminar .

En la misma ventana de información de fuente , haga clic en Aceptar y en ¿ Cambiar ID único? ventana que aparece, haga clic en Cambiar .

Si lo desea, puede modificar una o más características cuestionables de Fixedsys. Por ejemplo, el carácter cero se desplaza un píxel a la derecha. Para volver a colocarlo en el centro, haga doble clic en él, luego haga clic en Métricas → Establecer LBearing ... , configure LBearing en 10y haga clic en Aceptar . También puede cambiar la forma de los caracteres, pero siempre mantenga los puntos de control en múltiplos de 10 y el ancho en 80.

Haga clic en Elemento → Bitmap ataca Disponible ... , a continuación, en la ventana que aparece sistema Pixel Tamaños a 16y haga clic en OK .

Haga clic en Archivo → Generar fuentes ... , elija un directorio diferente y / o un nombre de archivo diferente si es necesario, asegúrese de que el formato de salida sea TrueType y haga clic en Guardar . En la ventana Tamaño de Em no estándar que aparece, haga clic en . En la ventana Errores detectados que aparece a continuación, haga clic en Guardar (no se preocupe).

Salga de FontForge ( Archivo → Salir ). En la ventana Fuente cambiada que aparece, haga clic en No guardar .


Mueva el archivo generado al .fontssubdirectorio de su directorio de inicio (créelo si no existe).

Abre la terminal de Gnome. Haga clic en Editar → Perfiles ... En un perfil (le sugiero que cree uno nuevo) cambie la fuente a Fixedsys Excelsior 3.01-L2 Mono(o como haya llamado la versión mono de Fixedsys Excelsior), en tamaño 12(que es el único tamaño "verdadero" de Fixedsys) . Si lo desea, también puede deshabilitar el texto en negrita. Sugiero texto en negro sobre fondo blanco, pero eso es cuestión de gustos.

La variante en negrita de esta fuente es equivalente a repetir el carácter desplazado un píxel a la derecha (esto es diferente de FSEX301-L2.ttfdonde aparece suavizado). No es muy legible, pero ¿realmente necesitas negrita? Yo no. El problema es solo con aquellos contextos donde el negrita no se puede deshabilitar (ni siquiera, por ejemplo, editando el resaltado de sintaxis), especialmente en aquellos casos en los que el espaciado de caracteres también se incrementa en un píxel, rompiendo las alineaciones (este no es el caso en gnome -terminal). Todavía no he encontrado una solución a esta última molestia. Las sugerencias son bienvenidas.


(*): no es necesario desde el lanzamiento de FontForge del 31/07/2012 (en 14.04 LTS - Trusty Tahr)

Walter Tross
fuente
Para todos los que han guardado y / o aplicado esta receta: tenga en cuenta que puede haber cambiado ligeramente mientras tanto para resolver algunos pequeños problemas, y que aún puede cambiar en el futuro. Podrías echar un vistazo al historial de edición.
Walter Tross el
Para su información, también funciona bien en Windows. También con "Fixedsys Excelsior 2.0" (que, en mi opinión, es mucho mejor para terminales ya que los caracteres son un poco menos altos que en FSEX3). ¡Gran fuente para PuTTY! (El FSEX original y cualquier fuente que se considere no monoespacial hace que PuTTY sea realmente lento cuando la pantalla se actualiza con mucha frecuencia)
ThiefMaster
PhpStorm 7.1 en 14.04 no reconoce la fuente que describo en mi respuesta como una fuente monoespaciada, no sé por qué :-( Afortunadamente, si desmarca "mostrar solo fuentes monoespaciadas", aún puede obtenerla. Por alguna razón el tamaño debe ser 15 o 16 (se ven iguales) en lugar de 12. PhpStorm me parece un poco defectuoso ...
Walter Tross
3

Gran solución de Walter Tross, pero si no quieres hacer todo el trabajo, aquí está el enlace de descarga:

FixedsysExcelsiorIIIb-L2_Mono.ttf

Borjovsky
fuente
1
Gracias Rafael, el "por qué" está en el segundo párrafo de mi respuesta
Walter Tross el
Ops! Lo siento ... Falta de atención ... Reparado ahora.
Borjovsky