2011-05-02 15 views
17

Cuando se trata de caracteres chinos, no puedo obtener el Front End de Mathematica para utilizar las fuentes de mi elección. ¿Cómo puedo hacer que use las fuentes que necesito?Obtención de la interfaz de Mathematica para obedecer la opción de FontFamily

Aquí proporciono dos capturas de pantalla para mostrar el problema, una de Word (arriba), la otra de Mathematica en WinXP, ambas mostrando la misma cadena. Tenga en cuenta que Mathematica utiliza 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 he especificado contiene todos los glifos que necesito!). Aquí uso la fuente Microsoft YaHei, que viene con Win7, pero también es downloadable para XP.

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

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

Style[str, Large, FontFamily -> "SimSun"] 

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

EDITAR 2: Estoy en Windows XP (con East Asian language support enabled), me pregunto si los resultados son diferentes en otros sistemas operativos.

Fonts in Word Fonts in Mathematica


Resumen: Parece ser que el comportamiento depende del sistema operativo particular, e instalado los tipos de letra, y por desgracia no parece que no hay manera de hacer que el uniforme fuentes (incluso si hay existe una sola fuente que contiene todos los glifos).

+0

Se puede publicar el texto Unicode para esa cadena? –

+0

@ Mr.Wizard, sí, debería haber hecho eso. – Szabolcs

+0

Corrección, veo esto: http://i.imgur.com/zvA8o.gif –

Respuesta

4

Podría ser matemática reemplazar su configuración Font-Family con una fuente vecina. Ejecutando

Options[$FrontEnd, FontSubstitutions] 

le dará la lista de reemplazos que usa mathematica.

+0

Esta podría ser la solución al problema. Sin embargo, necesito más tiempo para descubrir cómo cambiarlo. – Szabolcs

+0

Al borrar esta opción, cambian las fuentes utilizadas, pero todavía hay varias fuentes diferentes para diferentes caracteres. – Szabolcs

+0

La otra razón podría ser que Mathematica muestra los caracteres con un ancho fijo. Eso puede ser alterado con la opción 'FontTracking'. – Phil

1

Para su primera edición, algunos de fuente SimSun no puede cubrir una gama suficiente CJK (algunos de los personajes de str pertenecen a CJK Unified Ideographs Extensión Un). Hay un maravilloso site que resume los rangos de cobertura de muchas fuentes Unicode de Asia oriental.

Para su segunda edición, creo que tal vez usted quisiera utilizar

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

como el FontFamily, que en realidad es una representación Unicode de la versión ChineseSimplified del nombredetipo:

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

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

Y creo que, al menos para Inglés versión de Mathematica, el frontend siempre trata de interpretar un personaje CJK como un personaje Japonés primero, si no (lo que significa que el personaje no aparece en los # japonesa sección del UnicodeLanguageFontMapping .tr), busque la sección # china simplificada. Luego, las fuentes predeterminadas para diferentes idiomas se definen en UnicodeFontMapping.tr (incluso hay una entrada LOL de Klingon), que enlaza con la sugerencia de @JohnFultz.

+0

Tengo la versión Win7 de SimSun instalada aquí, y estoy seguro de que contiene todos estos caracteres, ya que MS Word los muestra en un estilo unifrom al usar esta fuente. El resto de tus sugerencias necesitaré jugar. Sí, parece ser cierto para la mayoría del software (incluido el propio Windows) que las versiones en el idioma occidental siempre prueban primero una fuente en japonés. He modificado mi WinXP para buscar chino simplificado primero, así que obtendría la versión de, por ejemplo,直 que me gusta – Szabolcs

+0

@Szabolcs En ese caso, tal vez el "Nombre de fuente"/"Familia de fuentes" de la fuente SimSun no es "SimSun". Tengo tres archivos simsun, whoes "Nombre de fuente"/"Familia de fuentes" son por separado "宋体", "新 宋体" (ambos cubren los * Ideógrafos CJK * y * CJK Unified Ideographs Extension A *) y "SimSun -ExtB "(que cubre la * extensión CJK Unified Ideographs B * solamente). Tal vez use software como Babel Map (http://www.babelstone.co.uk/software/babelmap.html) para verificar el rango exacto de la fuente. – Silvia

+0

y encontré que en el archivo ** UnicodeLanguageFontMapping.tr **, muchos caracteres comunes para el chino simplificado y el japonés se colocan solo en la sección ** # Japanese **. Traté de mover los que pertenecen a * CJK Unified Ideographs * y * CJK Unified Ideographs Extension A * a la sección ** # Chinese simplified **, con el cambio de la codificación de ShiftJIS a CP936, y descubrí que esos caracteres se reconocen automáticamente como chinos caracteres y luego se les asignó DefaultChineseSimplifiedFont/DefaultMonoChineseSimplifiedFont ahora. – Silvia

4

Los nombres de las familias de fuentes no son equivalentes a los nombres de los archivos de fuentes del sistema. Puede leer esos nombres de fuentes por el camino a continuación.

Ésta es la manera fácil de obtener el nombre de familia de la fuente derecha se

  • En primer lugar, escribe algún texto, por ejemplo "我们", edición en su "fuente de destino" con el menú Mathematica.
  • En segundo lugar, agregue //InputForm. Después de ejecutar la celda, obtendrá el nombre de la fuente correcta. En mi computadora, el nombre de la familia de fuentes para "楷体" es "¿[No] Ìå_GB2312". Increíble.

image

Cuestiones relacionadas