fonts in mosaic
On Apr 2, 2011, at 11:16 AM, David Winsemius wrote:
On Apr 2, 2011, at 6:02 AM, Erich Neuwirth wrote:
The problem of changing the default font used fpr the windows graphics device seems to be quite complicated. As I wrote already windowsFonts(myfont="Consolas") par(family="myfont") will make the windows graphics device use Consolas as the defaut font for labels. Therefore, a function call like plot(1:10,main="Title") will use Consolas for labeling. It will, however, not change the default for mosaic(UCBAdmissions) The mosaic plot will still use the original default font for the device, which in a standard configuration seems to be Arial. par(family=NULL) will reset the current default font to the original default font, so after this command plot(1:10,main="Title") will use Arial again. The the font family used in graphics from package grid is set by explicitly using gpar paramenter in calls to functions from that package. gpar has default values, but there seems to be no way of changing the default values of the gpar object. Does anybody on the list know if there is a way of changing the default values of gpar objects?
Make one with your desired values:
gpCon <- gpar(fontfamily="Consolas", fontsize=8)
Then pass it to the appropriate argument. I don't have a Windows
device nor a copy of that font but the following changes several of
the defaults on a Mac if I use "Times" instead of"Consolas".
mosaic(Titanic, main="Test of gpar",
gp_varnames=gpCon,
gp_labels=gpCon )
You _might_ be able to change the defaults with grid:::set.gpar()
or with grid:::grid.Call("L_setGPar", list(...)) but my efforts did
not succeed (unless success is measured by undesirable side-effects
on one's system.) Neither of those functions is "exposed", so it
would appear that their use is not recommended (or documented). I
was able to change the internal values returned by get.gpar() but
passing them on to mosaic() did not succeed.
And then I re-read Prof Ripley's reply and the light dawned:
pdf.options(family="Times")
pdf(); mosaic(Titanic, main="Test of gpar")
dev.off()
# Works
My remaining puzzlement is how to apply this strategy to the Mac
screen device:
quartz(family="serif"); mosaic(Titanic, main="Test of gpar")
# Does not work
# Nor does
quartzFonts("serif"); mosaic(Titanic, main="Test of gpar")
# Nor any other of several permuations of arguments
--
David Winsemius, MD
West Hartford, CT