Заставить интерфейс Mathematica подчиняться опции FontFamily - PullRequest
17 голосов
/ 02 мая 2011

Когда речь идет о китайских иероглифах, я не могу заставить Front End of Mathematica использовать выбранные мной шрифты. Как я могу заставить его использовать нужные мне шрифты?

Здесь я предоставляю два снимка экрана, чтобы показать проблему, один из Word (вверху), другой из Mathematica на WinXP, оба отображают одну и ту же строку. Обратите внимание, что Mathematica использует несколько разных шрифтов (я думаю, что он использует замену шрифта, когда шрифт, который он пытается использовать первым, не содержит глифа - однако указанный шрифт содержит все глифы, которые мне нужны!). Здесь я использую шрифт Microsoft YaHei, который поставляется с Win7, но загружаемый для XP тоже.

РЕДАКТИРОВАТЬ: Вот несколько тестовых кодов:

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

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

(SimSun поставляется с XP, и должен также содержать все эти символы, хотя не уверен, что во всех версиях.)

РЕДАКТИРОВАТЬ 2: Я на Windows XP (с поддержка восточноазиатских языков включена ), мне интересно, отличаются ли результаты на других ОС.

Fonts in Word Fonts in Mathematica


Резюме: Похоже, что поведение зависит от конкретной ОС и установленных шрифтов, и, к сожалению, нет никакого способа сделать шрифты единообразными (даже если существует один шрифт, содержащий все глифы).

Ответы [ 3 ]

4 голосов
/ 21 сентября 2012

Имена семейств шрифтов не эквивалентны именам файлов системных шрифтов. Вы можете прочитать эти названия шрифтов, как показано ниже.

Это простой способ получить правильное имя семейства шрифтов

  • Во-первых, введите текст, например, «我们», отредактируйте его в «целевой шрифт» с помощью меню Mathematica.
  • Во-вторых, добавьте //InputForm. После запуска ячейки вы получите правильное имя шрифта. На моем компьютере имя шрифтовой семьи для «楷体» - «¿[Not] Ìå_GB2312». Потрясающе.

image

4 голосов
/ 09 июня 2011

Возможно, Mathematica заменяет настройку Font-Family соседним шрифтом. Запуск

Options[$FrontEnd, FontSubstitutions]

предоставит вам список замен, который использует Mathematica.

1 голос
/ 08 января 2012

При первом редактировании некоторые шрифты SimSun могут не охватывать достаточный диапазон CJK (некоторые символы в строке принадлежат CJK Unified Ideographs Extension A ). Существует замечательный сайт , в котором кратко описаны диапазоны многих восточноазиатских шрифтов Unicode.

Для вашего второго редактирования, я думаю, вы могли бы использовать

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

как FontFamily, которая на самом деле является представлением Unicode версии шрифта ChineseSimplified:

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

На моей версии для Windows 7 отлично работает.

И я думаю, что, по крайней мере, для английской версии Mathematica FrontEnd всегда пытается сначала интерпретировать символ CJK как японский, если произошел сбой (что означает, что этот символ не отображается в разделе # Japanese из UnicodeLanguageFontMapping.tr ), поиск в разделе # Китайский упрощенный . Тогда шрифты по умолчанию для разных языков определены в UnicodeFontMapping.tr (есть даже запись клингона LOL), которая ссылается на предложение @JohnFultz.

...