Tkfont.families does not list all installed fonts

A

Atul

Hi,

I have installed a truetype font (.ttf) on a linux machne (SUSE linux
10, KDE) by copying it to my .fonts folder. I can use the font in all
applications like open-office and firefox browser.

However, I cannot use the font in a python app that I am writing. The
list returned by Tkfont.families does not contain this particular font.

Any suggestions ?

Regards,
 
E

Eric Brunel

Hi,

I have installed a truetype font (.ttf) on a linux machne (SUSE linux
10, KDE) by copying it to my .fonts folder. I can use the font in all
applications like open-office and firefox browser.

However, I cannot use the font in a python app that I am writing. The
list returned by Tkfont.families does not contain this particular font.

I don't know the Suse distro, but it seems on "modern" Linux
distributions, there are 2 levels of font support: the first is the
"native" X support, the second is provided by the graphical toolkit you're
using (Qt with KDE, but I think OpenOffice & FireFox use Gtk).
Unfortunately, tk - and therefore Tkinter - only sees the fonts at the X
level, and not those at the Qt/Gtk level. But apparently, dropping your
font file in your .fonts directory only makes the font available for
Qt/Gtk, not for X. You can check that by running the command xlsfonts in a
terminal: I really suspect your font will not appear in the list.

To make the font visible at X level, you should make your .fonts directory
a component of the X font path:
- Go to your .fonts directory.
- Check if the directory contains file named fonts.dir; If it does, check
that the file contains a line referencing your .ttf file. If it does, skip
the next 2 steps.
- Create the fonts.scale file describing your TrueType fonts; this is done
via a distribution-dependent utility, usually mkfontscale or ttmkfdir.
- Create the fonts.dir file describing all the fonts in the directory by
running mkfontdir in it.
- Add the directory to you X font path by running the command: xset +fp
~/.fonts

This last step is for testing purposes only, since its results won't
survive your X session. You'll have to find a way to do it each time you
log to your session, or each time your X server is restarted. You may also
add your font file to a global font directory so that X will automatically
see it when it starts (you'll have to rebuild the fonts.scale and
fonts.dir files as above).

HTH
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,767
Messages
2,569,572
Members
45,046
Latest member
Gavizuho

Latest Threads

Top