help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Testing that a font is installed


From: Sébastien Vauban
Subject: Re: Testing that a font is installed
Date: Tue, 26 Feb 2008 11:52:05 +0100
User-agent: Gnus/5.110007 (No Gnus v0.7) Emacs/23.0.60 (gnu/linux)

Hi Kevin,

>> Could someone tell me which function I could use to test
>> (under Ubuntu or under Windows) that a font is installed?
>>
>> For example, I would like to test, in my `.emacs', if
>> "Consolas" has been added to my system.
>
> (x-family-fonts "Consolas")

Being bootstrapped by that piece of information, I also found
the appropriate section about this on EmacsWiki:

    "Testing if fonts are available?"
    http://www.emacswiki.org/cgi-bin/wiki/SetFonts#toc4

Thank you for this.

Though, I must admit it behaves very very weirdly... I explain
myself:

    1.  --[ on Ubuntu ]-------------------------------------------------

--8<---------------cut here---------------start------------->8---
        ELISP> (x-family-fonts "Consolas")
        nil

        ELISP> (x-family-fonts "consolas")
        nil
--8<---------------cut here---------------end--------------->8---

        The function returns an empty list of available fonts of
        family "Consolas", though this is the one I'm currently
        using in Emacs itself!!

        I've installed it, following the "How To Install Vista
        Fonts in Ubuntu" available at
        http://ubuntu.wordpress.com/2007/09/16/installing-vista-fonts-in-ubuntu/

        and I've put this in my `.emacs':

--8<---------------cut here---------------start------------->8---
        (set-default-font "Consolas-8")))
--8<---------------cut here---------------end--------------->8---

        And *it works*: I'm currently using Consolas for writing
        this, but Emacs sort of tells he's unaware of it!??

        But Emacs still finds information about Consolas via the
        function `describe-font':

--8<---------------cut here---------------start------------->8---
        ELISP> (describe-font "consolas")
        "\n"
--8<---------------cut here---------------end--------------->8---

        ,----[ *Help* ]
        | name (opened by): 
consolas:pixelsize=17:foundry=microsoft:weight=medium:slant=r:width=normal
        |        full name: 
consolas:pixelsize=17:foundry=microsoft:weight=medium:slant=r:width=normal
        |             size:  9
        |           height: 20
        |  baseline-offset:  0
        | relative-compose:  0
        `----

        BTW, I've setted Consolas to 8pt and Emacs tells that
        it's 9pt?


    2.  --[ on Windows XP ]---------------------------------------------

        I've installed Consolas "manually" (by copying the .ttf
        files in the fonts directory).

--8<---------------cut here---------------start------------->8---
        (set-default-font 
"-outline-Consolas-normal-r-normal-normal-11-82-96-96-c-*-*-*")
--8<---------------cut here---------------end--------------->8---

        is what I've in my `.emacs' file [¹] to tell him to use
        Consolas.

--8<---------------cut here---------------start------------->8---
        ELISP> (x-family-fonts "Consolas")
        (["consolas" normal 0 normal normal t 
"-outline-consolas-normal-r-normal-normal-*-*-96-96-c-*-iso8859-9" "iso8859-9"]
         ["consolas" normal 0 normal normal t 
"-outline-consolas-normal-r-normal-normal-*-*-96-96-c-*-iso8859-7" "iso8859-7"]
         ["consolas" normal 0 normal normal t 
"-outline-consolas-normal-r-normal-normal-*-*-96-96-c-*-iso8859-13" 
"iso8859-13"]
         ["consolas" normal 0 normal normal t 
"-outline-consolas-normal-r-normal-normal-*-*-96-96-c-*-iso8859-5" "iso8859-5"]
         ["consolas" normal 0 normal normal t 
"-outline-consolas-normal-r-normal-normal-*-*-96-96-c-*-koi8-r" "koi8-r"]
         ["consolas" normal 0 normal normal t 
"-outline-consolas-normal-r-normal-normal-*-*-96-96-c-*-iso8859-2" "iso8859-2"]
         ["consolas" normal 0 normal normal t 
"-outline-consolas-normal-r-normal-normal-*-*-96-96-c-*-iso8859-15" 
"iso8859-15"]
         ["consolas" normal 0 normal normal t 
"-outline-consolas-normal-r-normal-normal-*-*-96-96-c-*-iso10646-1" 
"iso10646-1"]
         ["consolas" normal 0 normal normal t 
"-outline-consolas-normal-r-normal-normal-*-*-96-96-c-*-iso8859-1" "iso8859-1"]
         ["consolas" normal 0 normal normal t 
"-outline-consolas-normal-r-normal-normal-*-*-96-96-c-*-iso8859-4" "iso8859-4"]
         ["consolas" normal 0 normal italic t 
"-outline-consolas-normal-i-normal-normal-*-*-96-96-c-*-iso8859-2" "iso8859-2"]
         ["consolas" normal 0 normal italic t 
"-outline-consolas-normal-i-normal-normal-*-*-96-96-c-*-iso8859-7" "iso8859-7"]
         ["consolas" normal 0 normal italic t 
"-outline-consolas-normal-i-normal-normal-*-*-96-96-c-*-iso8859-1" "iso8859-1"]
         ["consolas" normal 0 normal italic t 
"-outline-consolas-normal-i-normal-normal-*-*-96-96-c-*-iso10646-1" 
"iso10646-1"]
         ["consolas" normal 0 normal italic t 
"-outline-consolas-normal-i-normal-normal-*-*-96-96-c-*-iso8859-5" "iso8859-5"]
         ["consolas" normal 0 normal italic t 
"-outline-consolas-normal-i-normal-normal-*-*-96-96-c-*-koi8-r" "koi8-r"]
         ["consolas" normal 0 normal italic t 
"-outline-consolas-normal-i-normal-normal-*-*-96-96-c-*-iso8859-9" "iso8859-9"]
         ["consolas" normal 0 normal italic t 
"-outline-consolas-normal-i-normal-normal-*-*-96-96-c-*-iso8859-13" 
"iso8859-13"]
         ["consolas" normal 0 normal italic t 
"-outline-consolas-normal-i-normal-normal-*-*-96-96-c-*-iso8859-15" 
"iso8859-15"]
         ["consolas" normal 0 normal italic t 
"-outline-consolas-normal-i-normal-normal-*-*-96-96-c-*-iso8859-4" "iso8859-4"]
         ["consolas" normal 0 bold normal t 
"-outline-consolas-bold-r-normal-normal-*-*-96-96-c-*-iso8859-9" "iso8859-9"]
         ["consolas" normal 0 bold normal t 
"-outline-consolas-bold-r-normal-normal-*-*-96-96-c-*-koi8-r" "koi8-r"]
         ["consolas" normal 0 bold normal t 
"-outline-consolas-bold-r-normal-normal-*-*-96-96-c-*-iso8859-15" "iso8859-15"]
         ["consolas" normal 0 bold normal t 
"-outline-consolas-bold-r-normal-normal-*-*-96-96-c-*-iso8859-2" "iso8859-2"]
         ["consolas" normal 0 bold normal t 
"-outline-consolas-bold-r-normal-normal-*-*-96-96-c-*-iso8859-7" "iso8859-7"]
         ["consolas" normal 0 bold normal t 
"-outline-consolas-bold-r-normal-normal-*-*-96-96-c-*-iso10646-1" "iso10646-1"]
         ["consolas" normal 0 bold normal t 
"-outline-consolas-bold-r-normal-normal-*-*-96-96-c-*-iso8859-4" "iso8859-4"]
         ["consolas" normal 0 bold normal t 
"-outline-consolas-bold-r-normal-normal-*-*-96-96-c-*-iso8859-13" "iso8859-13"]
         ["consolas" normal 0 bold normal t 
"-outline-consolas-bold-r-normal-normal-*-*-96-96-c-*-iso8859-1" "iso8859-1"]
         ["consolas" normal 0 bold normal t 
"-outline-consolas-bold-r-normal-normal-*-*-96-96-c-*-iso8859-5" "iso8859-5"]
         ["consolas" normal 0 bold italic t 
"-outline-consolas-bold-i-normal-normal-*-*-96-96-c-*-iso8859-7" "iso8859-7"]
         ["consolas" normal 0 bold italic t 
"-outline-consolas-bold-i-normal-normal-*-*-96-96-c-*-iso8859-13" "iso8859-13"]
         ["consolas" normal 0 bold italic t 
"-outline-consolas-bold-i-normal-normal-*-*-96-96-c-*-iso8859-4" "iso8859-4"]
         ["consolas" normal 0 bold italic t 
"-outline-consolas-bold-i-normal-normal-*-*-96-96-c-*-iso8859-1" "iso8859-1"]
         ["consolas" normal 0 bold italic t 
"-outline-consolas-bold-i-normal-normal-*-*-96-96-c-*-koi8-r" "koi8-r"]
         ["consolas" normal 0 bold italic t 
"-outline-consolas-bold-i-normal-normal-*-*-96-96-c-*-iso8859-5" "iso8859-5"]
         ["consolas" normal 0 bold italic t 
"-outline-consolas-bold-i-normal-normal-*-*-96-96-c-*-iso10646-1" "iso10646-1"]
         ["consolas" normal 0 bold italic t 
"-outline-consolas-bold-i-normal-normal-*-*-96-96-c-*-iso8859-15" "iso8859-15"]
         ["consolas" normal 0 bold italic t 
"-outline-consolas-bold-i-normal-normal-*-*-96-96-c-*-iso8859-9" "iso8859-9"]
         ["consolas" normal 0 bold italic t 
"-outline-consolas-bold-i-normal-normal-*-*-96-96-c-*-iso8859-2" "iso8859-2"])
--8<---------------cut here---------------end--------------->8---

        Emacs finds thus information about Consolas.

        Weirdly enough, the function which more or less worked
        under Ubuntu (to find me information about Consolas)
        does not work in this case, under Windows!?

--8<---------------cut here---------------start------------->8---
        ELISP> (describe-font "Consolas")
        "No matching font being used"
        ELISP> (describe-font "consolas")
        "No matching font being used"
--8<---------------cut here---------------end--------------->8---

I'm lost. Both functions do not appear to work correctly,
neither under Ubuntu, neither under Windows.

What I'd like to have in my `.emacs' is something just like
this:

--8<---------------cut here---------------start------------->8---
(if (font-existsp "Consolas")
    (if running-ms-windows
        (set-default-font 
"-outline-Consolas-normal-r-normal-normal-11-82-96-96-c-*-*-*")
      (set-default-font "Consolas-8"))
  (set-default-font "-*-Courier New-*-*-*-*-12-90-*-*-*-*-*-*"))
--8<---------------cut here---------------end--------------->8---

Any hints?

Best regards,
  Seb

[¹] Just writing `(set-default-font "Consolas-8")))' is not
    successfull under Windows. Dunno why.

-- 
Sébastien Vauban


reply via email to

[Prev in Thread] Current Thread [Next in Thread]