Подтвердить что ты не робот

Получение интерфейса Mathematica для выполнения функции FontFamily

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

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

EDIT: Вот несколько тестовых кодов:

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

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

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

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

Fonts in WordFonts in Mathematica


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

4b9b3361

Ответ 1

Может быть, математика заменит ваш параметр Font-Family на соседний шрифт. Запуск

Options[$FrontEnd, FontSubstitutions]

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

Ответ 2

Имена семейств шрифтов не эквивалентны именам файлов системных шрифтов. Вы можете прочитать эти имена шрифтов следующим образом.

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

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

image

Ответ 3

Для вашего первого редактирования некоторые шрифты SimSun могут не покрывать достаточный диапазон CJK (некоторые из символов на странице принадлежат расширению Unified Ideographs CJK 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 (есть даже запись Klingon LOL), которая ссылается на предложение @JohnFultz.