2015-05-23 41 views
1

我的程序要加載等寬字體使用此命令:X11:我如何得到我想要的字體?

font_info = XLoadQueryFont(dpy, 
     "-*-*-medium-r-*-*-12-*-*-*-m-*-iso8859-1"); 

字體它結束了加載

-apple-monaco-medium-r-normal--12-87-100-100-m-90-iso8859-1 

我怎樣才能得到我的本地機上實現了「最好」的字體使用是

-urw-nimbus mono l-medium-r-normal--12-87-100-100-m-90-iso8859-1 

我不想在我的程序中命名特定的字體,因爲我不能保證我的電腦會有它。我希望我的電腦知道這是最好的字體。

這可能嗎?

+2

您尚未定義「最佳」條件。蘋果字體是滿足的字母順序中的第一個。你爲什麼不把自己的字體嵌入到應用程序中,並專門稱爲thoss字體。否則你將需要一個如果沒有找到的開關/情況聲明。 –

+0

標準非常「無論我最喜歡的是什麼」。我的目標是學習如何定義「最好」的標準,並告訴我的本地計算機「當你必須選擇一種字體時,請按照這個順序選擇它們」。我的編程技巧不足以嵌入字體,我只是希望程序能夠選擇字體。 – hymie

+0

蘋果字體不是第一個按字母順序排列的字體。我也有-adobe-courier-medium-r-normal – hymie

回答

0

創建您自己的優先級列表,您可以將其作爲後備。請先嚐試加載nimbus字體。

font_info = XLoadQueryFont(dpy, 
          "-*-nimbus*-medium-r-*-*-12-*-*-*-m-*-iso8859-1"); 
if (!font_info) { 
    fprintf(stderr, "XLoadQueryFont: failed to load nimbus font, looking for a fallback font\n"); 
    font_info = XLoadQueryFont(dpy, 
           "-*-*-medium-r-*-*-12-*-*-*-m-*-iso8859-1"); 
} 
if (!font_info) 
    fprintf(stderr, "XLoadQueryFont: failed to load a font\n"); 
+1

該程序的目的是要求' - * - * - medium-r - * - * - 12 - * - * - * - m - * - iso8859-1',並且對於單個客戶端回答「我會先嚐試靈氣」或「我會先嚐試控制檯」或「我會先嚐試lucida」。如果我可以避免的話,我不想在程序中放入特定的字體。 – hymie

相關問題