Re: [R] pdf font embedding --- again

From: Paul Murrell <>
Date: Tue 30 Aug 2005 - 07:32:17 EST


I think there are two problems:

(i) You are specifying the font incorrectly. Try ...

# You might need to specify full paths to these afmfiles <- c("lbr.afm", "lbd.afm", "lbi.afm", "lbdi.afm", "lbms.afm"); # Set up the mapping for "lucida" font family postscriptFonts(lucida=postscriptFont("Lucida", metrics=afmfiles)) # Specify that the "lucida" font is to be used postscript(file="", family="lucida"); l<- 40:80;

Should work for pdf() too.

This should put a reference to the appropriate font in the PostScript or   PDF file that R creates.

(ii) R does not embed font information. But you can, for example, use ghostscript to do it, as long as you tell ghostscript about the font too. You might have to set up a file 'FontMap' which looks something like ...

/Lucida (PATH_TO/lb___.pfb);

... (assuming that lb___.pfb is the name of the .pfb file for the Lucida font). Then try something like (NOTE that you have to specify GS_FONTPATH to tell ghostscript where your FontMap file is) ...

GS_FONTPATH=PATH_TO_FontMap gs -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sPAPERSIZE=a4 -sOutputFile=testembed.pdf test.pdf

This should give you a file with the font info embedded and then you should be able to include that in a LaTeX document.


p.s. Thanks for the segfault report. I will look at why that is happening. wrote:
> Thank you---as always.
> still, I remain font-desparate.

> I would love to use the fonts from my book, but [a] I cannot figure out
> how to do this yet even in the R postscript device; and [b] I am using
> the R pdf device, not the postscript device. I guess if I can solve
> [a], then I can rewrite all my graphics creations now into the
> postscript device, and replace the with something that
> follows it with ps2pdf. The following attempt, however, does not work:

> afmfiles <- c("lbr.afm", "lbd.afm", "lbi.afm", "lbdi.afm",
> "lbms.afm");
> Lucida <- postscriptFont("Lucida", metrics=afmfiles);
> postscript(file="", family=Lucida);
> l<- 40:80;
> plot(l,l,pch=l);
> By the way, if I try " postscript(family=afmfiles);" then I do not get
> an R error, but R 2.1.0 segfaults, which is probably not desirable.
> This occurs even if there is no .afm file in the current directory.

> Can I make a suggestion to the R team? It would be nice if I could
> specify a pdf() device parameter that says "choose font settings to
> embed all fonts" (i.e., do not use fonts that cannot be embedded,
> either). Something that guarantees me that I get a figure that I can
> give to someone that is fully specified. Right now, accomplishing
> this is not easy to figure out, and perhaps not even possible. Yes, in
> the list of font families that R recognizes are some fonts that do not
> seem among the 13 standard fonts (such as URWbookman). moreover, if I
> choose it as my pdf font family, it is smart enough to use a different
> symbol file ('StandardSymL'), which I hope is also open and not adobe.
> If so, they could be used in principle. How do I get R to embed
> URWbookman? ZapfDingbats always seems to be included, so I hope this
> is open and embeddable.

> more help would be highly appreciated.

> Regards,
> /iaw
> ---
> ivo welch
> -----Original Message-----
> From: Prof Brian Ripley <>
> To:
> Cc:
> Sent: Mon, 22 Aug 2005 17:07:14 +0100 (BST)
> Subject: Re: [R] pdf font embedding --- again
> On Mon, 22 Aug 2005 wrote:

> >
> > dear R wizards--- I would like to do some book-on-demand printing at
> a
> > popular printer named lulu, but lulu requires inclusion even of the
> > basic postscript fonts. Interestingly, my book itself does not need
> > the 14 base acrobat fonts, only the embedded R figures do. Of
> course,
> > I really would like to get pdftex to embed the fonts, but how to do
> > this is not obvious either. [This method seems to be what the R help
> > page is indicating... The software including the PostScript plot
> file
> > should either embed the font outlines (usually from '.pfb' or '.pfa'
> > files) or use DSC comments to instruct the print spooler to do so.)
> Why not use the fonts your book does use in the figures? (That's how
> my books are done.)
> > So, I would really, really like to embed the necessary fonts with
> the R
> > figures. I first reread the discussion in this mailing list about
> > (eps) font embedding earlier this year. This was ultimately not very
> > helpful. First, I do not know how to instruct my embedding program
> to
> > include the fonts that R figures want. Second, I already start with
> > the pdf device, so distilling eps files is not a good option--and it
> > would seem a bit crazy to first use the wrong output device
> > (postscript), then ship my files over to a windows machine somewhere
> > that has distiller installed, run distiller by hand, then ftp them
> back
> > to my linux machine---just for getting the fonts embedded.
> >
> > Is it impossible to get R to embed the necessary fonts in its pdf

> > output?
> Yes, as it has no access to them. They are not Open Source. You may be
> able to use URW clones, depending on their licensing conditions.

> -- Brian D. Ripley,
> Professor of Applied Statistics,
> University of Oxford, Tel: +44 1865 272861 (self)
> 1 South Parks Road, +44 1865 272866 (PA)
> Oxford OX1 3TG, UK Fax: +44 1865 272595
> ______________________________________________
> mailing list
> PLEASE do read the posting guide!

Dr Paul Murrell
Department of Statistics
The University of Auckland
Private Bag 92019
New Zealand
64 9 3737599 x85392

______________________________________________ mailing list
PLEASE do read the posting guide!
Received on Tue Aug 30 07:39:01 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:39:58 EST