[R] Placing eps files from R into Adobe InDesign documents: specifying fontfamily

dwalcerz
Tue, 12 Jan 2010 15:36:16 -0000

This is a solution I am posting for a problem that others may have.

If you want to:
1.  Place lattice graphics from R into an Adobe InDesign document, and
2.  Use the export as eps function in R to maximize resolution (it is much
better than exporting as a metafile or bitmap), and
3.  Use long strings of text in your titles or captions or to label your
axes.

Then you will have problems because:
1.  Adobe InDesign doesn't recognize R fontfamilies in eps files, and
2.  Adobe InDesing replaces the default R font, Helvetica, with a fontfamily
that looks like Courier, which significantly changes the physical length of
each character string and disrupts the spacing and justification of titles,
captions, and axis labels.

The way I solved this problem is:
1.  When you execute a graph in R, use the Hershey family of fonts.  I
particulary like HersheySans.  You can specify the fontfamily for axes and
strips and titles as shown in the example below.
2.  Export the file in eps by right-clicking the on-screen display and
selecting 'save as postscript'.
3.  Place the file in InDesign using the usual command (ctrl-D) and
selecting the file.  You will still get the Adobe error about unrecognized
fonts, but the automatic replacement that Adobe uses for the Hershey
fontfamily is much better than the one they use for Helvetica, your spacing
and justification will be almost perfect, and you get the excellent
resolution and small size of vector-graphics.

In the following example the fontfamily is specified for strips, axes, and
titles with these lines:
par.strip.text=list(fontfamily="HersheySans") #for strips
scales=list(alternating=1, tck=c(1,0), fontfamily="HersheySans") #for
axes
xlab=list("Combined Score", fontfamily="HersheySans") #for
titles such as
'main', 'sub', 'xlab' and 'ylab'

Here is the example:
bwplot(school.name~score|assessment+course_code, data=temp2.stack,
	plot.points=FALSE, drop.unused.levels=TRUE,
	panel=function(..., box.ratio, varwidth) {
		panel.violin(..., col="cornsilk", varwidth=FALSE,
box.ratio=box.ratio)
		panel.bwplot(..., box.ratio=0.1)
	},
	layout=c(2,3,1),
	par.strip.text=list(fontfamily="HersheySans"),
	scales=list(alternating=1, tck=c(1,0),
		fontfamily="HersheySans",
		x=list(relation="same", cex=0.7, rot=90),
		y=list(relation="same", cex=0.7, rot=0)),
	xlab=list("Combined Score", fontfamily="HersheySans"),
	ylab=list("School(State)(students)",
fontfamily="HersheySans")
)

--
View this message in context:
http://n4.nabble.com/Placing-eps-files-from-R-into-Adobe-InDesign-documents-specifying-fontfamily-tp1012186p1012186.html
Sent from the R help mailing list archive at Nabble.com.