[GRASS-dev] font path question for Linux and Windows

William Kyngesburye woklist at kyngchaos.com
Mon Apr 30 16:11:22 EDT 2007


On Apr 30, 2007, at 1:45 PM, Glynn Clements wrote:

>> But, then there is another problem (and in general TT font usage) -
>> d.font.freetype doesn't handle multiple faces in a file.  Many dfonts
>> and resource fonts (the ones with no extension) have multiple faces
>> in a single file (ie regular, italic, bold..).  Without specifying
>> the face index or name, freetype defaults to the first face in a font
>> file. (I thought I made a feature request for this, but I don't see
>> it in either tracker)  There is no guarantee that plain/regular will
>> be the first face in a font file, so you may get italic or bold or
>> other unexpected style.
>
> Regarding both cases (mkftcap and R_font()), fixes are welcome. They
> will need to come from someone who can devise (and test) a solution,
> though (i.e. someone with a Mac).
>
I can poke around for an OSX prog that can return type/creator info.   
I know there is something in the Dev tools, but someone who installs  
a binary GRASS may not have that.  There should be something that is  
on all Macs that can give type/creator info...

I don't know about the C equivalents for R_font().  but it would  
probably involve tapping into some system frameworks, something that  
hasn't been done in GRASS yet, at least directly.

>> - Maybe Michael's proposed font path env var could be used here?  For
>> additional user font paths to search automatically.
>
> I can add "$@" to the list used by mkftcap, so other directories can
> be passed as arguments. Environment variables are problematic when
> directories contain spaces, but command-line arguments can be quoted.
>
If it uses a colon-separated list like other path env vars do, can't  
it be split that way, and then each item quoted in the loop?  My  
shell scripting isn't very good to know.

>> - since this is now in /tools and installed in etc/, that implies
>> that mkftcap will get run automatically somehow?  From GUI?  Or some
>> future script module?  On startup?
>
> At present, it gets run at build time; thereafter, it has to be run
> manually. It could be run from a post-install script used by the
> packaging system (.deb, .rpm, etc).
>
> It isn't intended to be run automatically during normal use.
>
What about at startup time?  Users may want to manage fonts in  
between runs of GRASS, so the available fonts can change often.

>> - regenerating the freetypecap at runtime in the GRASS application
>> folder is not a good thing on OSX (see my previous discussions about
>> OSX apps and user preference/config/addon files).  There should be
>> some way to have GRASS look for alternative external freetypecap
>> files, for both generating the freetypecap file, and reading it to
>> set the font.
>
> The code which reads the file already uses $GRASS_FT_CAP if that is
> set.
>
I missed GRASS_FT_CAP - how recent is this?

-----
William Kyngesburye <kyngchaos*at*kyngchaos*dot*com>
http://www.kyngchaos.com/

[Trillian]  What are you supposed to do WITH a maniacally depressed  
robot?

[Marvin]  You think you have problems?  What are you supposed to do  
if you ARE a maniacally depressed robot?  No, don't try and answer,  
I'm 50,000 times more intelligent than you and even I don't know the  
answer...

- HitchHiker's Guide to the Galaxy





More information about the grass-dev mailing list