¿Cómo hacen los terminales Windows que los caracteres chinos e ingleses tengan un ancho de 1:2?

¿Cómo hacen los terminales Windows que los caracteres chinos e ingleses tengan un ancho de 1:2?

ipconfigsalida en CMD:

ingrese la descripción de la imagen aquí

ipconfigsalida en PowerShell:

ingrese la descripción de la imagen aquí

ipconfigsalida en Git Bash:

ingrese la descripción de la imagen aquí

Observe que el ancho de los caracteres chinos e ingleses es siempre 1:2, sin importar qué familia de fuentes se utilice.y como resultado, los puntos están alineados.

Esto me sorprendió, ya que en un editor de texto normal, VSCode, por ejemplo, el resultado se verá así (la familia de fuentes es Consolas, que es monoespaciada):

ingrese la descripción de la imagen aquí

Como se puede ver,los puntos no están alineadosy, a diferencia de los terminales enumerados anteriormente, tendría que encontrar algunas familias de fuentes especiales (por ejemplo,Sarasa Gótica) para hacer que la relación de ancho sea 1:2.

Entonces, mi pregunta es,¿Cómo hacen estos terminales Windows que los caracteres chinos e ingleses tengan un ancho de 1:2 independientemente de la familia de fuentes? ¿Y podemos lograr eso en los editores de texto?

Respuesta1

¿Cómo hacen estos terminales Windows que los caracteres chinos e ingleses tengan un ancho de 1:2 independientemente de la familia de fuentes?

La mayoría de terminales de estilo de codificación o editores de texto de código muestran caracteres en una cuadrícula X/Y literal e ignoran por completo el espaciado de la fuente. Sin embargo, la mayoría de los editores de texto "generales" sólo utilizan el ancho del glifo definido en la fuente para determinar dónde colocar el siguiente carácter.

¿Podemos lograr eso en los editores de texto?

Obviamente, las funciones dependen del propio editor, peromonoespaciadoLas fuentes se utilizan para alinear caracteres en cualquier editor de texto. Por ejemplo, VS Code usa fuentes monoespaciadas de forma predeterminada (Configuración > Editor de texto > Fuentes), por lo que generalmente está alineado correctamente.

Sin embargo, no todas las fuentes monoespaciadas son iguales, y los caracteres poco comunes o anchos pueden ser excepciones en fuentes que normalmente esperaría que fueran monoespaciadas comoConsolas. Puedes probar una fuente que represente caracteres anchos como 2 caracteres latinos, por ejemplo, Inconsolata.

Las ligaduras (caracteres unidos) también se pueden habilitar en el editor, y puede ejecutar fuentes monoespaciadas sin glifos de ligadura monoespaciadas.

Respuesta2

Esta conversacionlo explica todo:

ingrese la descripción de la imagen aquí

PD: Aunque "Inconsolata" es una gran fuente para resolver este problema de alineación, encontré que los caracteres en inglés de esta fuente son demasiado delgados para mí, así que actualmente sigo usando "Consolas".

información relacionada