Если я оцениваю, например, SystemDialogInput ["Color"]
и выберите цвет, скажем красный, в выходной ячейке отображается RGBColor [1,0,0]
.
Чтобы просмотреть панель шрифтов, я могу оценить FrontEndTokenExecute ["FontPanel"]
. Если у меня где-то выделен текст, я могу изменить стиль шрифта выделенного текста (или ячейки) на системной панели, которая появляется из FrontEndTokenExecute
. Мне интересно, есть ли способ программно вернуть выбранные настройки шрифта, аналогичный тому, как SystemDialogInput ["Color"]
возвращает выбранный цвет. Например, оцените некоторый код, который включает выбор настроек шрифта на системной панели шрифтов, скажем, вручную выберите полужирный шрифт Arial 12pt на панели шрифтов,
и верните, например,
{FontFamily->"Arial",FontSize->12,FontWeight->Bold}
Просто для ясности, я говорю о том, чтобы делать это без какого-либо выделенного текста или ячеек в записной книжке. Кажется, одна из проблем - по крайней мере, на Mac - шрифт выбирается только в том случае, если вы что-то выделили в блокноте.В документации есть несколько подобных примеров ( ref / CurrentValue
):
Style["xxxx", FontFamily :> CurrentValue["ControlsFontFamily"],
FontSize :> CurrentValue["ControlsFontSize"]]
Это говорит о том, что ответ возможен, если существует соответствующий аргумент для CurrentValue
, но «ControlsFontFamily» и « PanelFontFamily "не являются правильными аргументами в этом случае.
Также можно программно перечислить все шрифты, доступные на определенном компьютере?
Edit
@kguler предоставил ответ на последнее предложение и вторую часть моего вопроса - это может быть использовано для создания моего собственная панель шрифтов. Я запустил код @ Heike и получил это (снимок экрана) на Mac OS X 10.6.8 с Mma 8.0.4. Обратите внимание на затенение PropertyValue
с помощью ref / PropertyValue
.