Как программа MATLAB может проверить, может ли MATLAB отображать определенный шрифт? - PullRequest
0 голосов
/ 12 июня 2018

Я хотел бы использовать некоторые специальные символы на рисунке MATLAB.Как моя программа может гарантировать, что шрифты доступны перед их использованием?

listfonts () не является надежным.Он утверждает, что «Zapf Dingbats» доступен на моем компьютере, но это не так (а text () отображает шрифт по умолчанию).listfonts () всегда включает стандартные шрифты PostScript.Я предполагаю, что это потому, что они всегда доступны для вывода PostScript, но меня интересуют отображаемые цифры.Точно так же uisetfont () и MATLAB -> Preferences -> Fonts -> Custom list "Zapf Dingbats", но рендерит образец с использованием шрифта по умолчанию.

Также не работает просто поиск файла шрифта.Например, «Webdings» отлично работает на моей основной машине.Однако на втором компьютере установлен «Webdings» (есть файл /Library/Fonts/Webdings.ttf, и Word может его использовать), но MATLAB заменяет шрифт по умолчанию.

Я подумал об одном тесте: создайте маленькую фигуру с одним символом маркера, используйте print (), чтобы записать ее в файл .png, прочитайте файл как данные, вычислите хеш и сравните этот хеш ссохраненное значение.Есть ли менее неуклюжий метод?

Я нашел Unicode-эквиваленты для большинства символов, которые мне нужны, которые работают на обеих моих тестовых машинах.Тем не менее, они тоже, очевидно, зависят от того, что у меня установлены правильные шрифты.Например, существует много версий квадрата в Юникоде.Шестнадцатеричные коды 2588, 25a0 и 25fc работают здесь, но 25fe, 2b1b и 2bc0 отображаются как пустые.Есть ли способ узнать, доступны ли эти символы?

Я использую R2017b под macOS версии 10.13.5, и «set | grep LANG» отображает «LANG = en_US.UTF-8».

...