fonts wolfram-mathematica mathematica-frontend

fonts - Obtención de la interfaz de Mathematica para obedecer la opción FontFamily



wolfram-mathematica mathematica-frontend (3)

Los nombres de las familias de fuentes no son equivalentes a los nombres de los archivos de fuentes del sistema. Puedes leer esos nombres de fuentes de la siguiente manera.

Esta es la manera fácil de obtener el nombre correcto de la familia de fuentes es

  • En primer lugar, escriba un texto, por ejemplo, "我们", edítelo a su "fuente de destino" utilizando el menú de Mathematica.
  • En segundo lugar, agregue //InputForm . Después de ejecutar la celda, obtendrá el nombre de fuente correcto. En mi computadora, el nombre de la familia de fuentes para "楷体" es "¿[Not] Ìå_GB2312". Increíble.

Cuando se trata de caracteres chinos, no puedo obtener el Front End de Mathematica para usar las fuentes de mi elección. ¿Cómo puedo hacer que use las fuentes que necesito?

Aquí proporciono dos capturas de pantalla para mostrar el problema, una de Word (arriba) y la otra de Mathematica en WinXP, ambas mostrando la misma cadena. Tenga en cuenta que Mathematica usa varias fuentes diferentes (supongo que utiliza la sustitución de fuentes cuando la fuente que intenta usar primero no contiene un glifo, sin embargo, la fuente que especifiqué contiene todos los glifos que necesito). Aquí utilizo la fuente Microsoft YaHei, que viene con Win7, pero también se puede downloadable para XP.

EDIT: Aquí hay un código de prueba:

str = "肖诮陗俏削帩消峭捎绡莦弰悄焇琑逍㲖㲵䏴哨娋宵屑綃梢痟睄筲艄萷销䇌䘯趙揱旓硝稍踃輎矟䌃箾蛸誚榍蕱銷鞘潲碿糏霄䴛韒髾鮹鞩魈颵" Style[str, Large, FontFamily -> "SimSun"]

(SimSun viene con XP y también debe contener todos estos caracteres, aunque no está seguro si está en todas las versiones).

EDIT 2: Estoy en Windows XP (con el soporte de idioma de Asia Oriental habilitado ), me pregunto si los resultados son diferentes en otros sistemas operativos.

Resumen: parece que el comportamiento depende del sistema operativo en particular y de las fuentes instaladas, y desafortunadamente no parece haber ninguna manera de hacer que las fuentes sean uniformes (incluso si existe una sola fuente que contenga todos los glifos).


Para su primera edición, es posible que algunas fuentes de SimSun no cubran el rango CJK suficiente (algunos de los caracteres en str pertenecen a la Extensión A de los ideogramas unificados de CJK ). Hay un site maravilloso que resume los rangos de cobertura de muchas fuentes de East Asian Unicode.

Para tu segunda edición, creo que tal vez te gustaría usar

"/[CapitalIHat]/[Cent]/[CapitalEGrave]/[IAcute]/[CapitalNTilde]/[CapitalARing]/.ba/[CapitalUAcute]"

como FontFamily, que en realidad es una representación Unicode de la versión simplificada de Chinese del nombre de fuente:

FromCharacterCode[ToCharacterCode["微软雅黑", "CP936"]]

Funciona bien en mi versión de Windows 7 en inglés.

Y creo que, al menos para la versión en inglés Mathematica, FrontEnd siempre intenta interpretar un carácter CJK como un carácter japonés primero, si falla (lo que significa que el carácter no aparece en la sección # Japonesa de UnicodeLanguageFontMapping.tr ), busque # Sección simplificada china . Luego, las fuentes predeterminadas para diferentes idiomas se definen en UnicodeFontMapping.tr (incluso hay una entrada Klingon LOL), que enlaza con la sugerencia de @JohnFultz.


Podría ser que mathica esté reemplazando su configuración de Font-Family con una fuente adyacente. Corriendo

Options[$FrontEnd, FontSubstitutions]

le dará la lista de reemplazo que utiliza mathica.