К сожалению, обработка шрифтов фрагментирована в X11, и то, что вы хотите, невозможно.
Функция Xlib XListFonts()
вернет список «старых» шрифтов фиксированного размера, таких как «-adobe-courier-bold-o-normal» - 0-0-100-100-m-iso10464-1. И это вся информация; просто имя и набор параметров.
Что вы ищете, это функции Freetype, такие как XftFontOpenName()
, где вы можете поместить образец, похожий на «Courier New-14: жирный: наклонный - курсив, наклонный». Но это совсем другой способ визуализации шрифтов, и между двумя системами шрифтов нет никакой связи.
Вы можете запросить библиотеку Xft для списка шрифтов, используя XftFontMatch()
, возможно, это даст вам информацию, которую вы ищете. Но вам придется использовать библиотеку freetype (небольшая цена для оплаты, я думаю).