Embedding the Base-14 (Times, Helvetica...) fonts in PDFs created with LaTeX

The Problem

I'm sending a book to printers in PDF format. It is typeset in the Times font. I use pdfLaTeX but the printer says my Times font is not embedded.

In general, one of the strengths of the pdf format itself is the ability to embed required fonts directly into the document. In this way, you need not worry about whether or not a remote user has the fonts required to display your document. This is of particular importance when sending electronic copy to printers. If you send a PDF with the fonts embedded they should be able to print without issues with symbols etc.

There are a few exceptions however. There are a set of standard fonts (aka the Base-14 fonts) which pdfs in general (including pdfLaTeX generated ones) do not generally have embedded. These include Times and Helvetica. The reason is that these fonts are standard and taken to already be available on all systems (so embedding them would be redundant and wasteful of disk space and bandwidth).

The advantage of this is that by using these fonts you can make a nice small PDF which will not need any fonts embedded. The disadvantage is that some extended accent characters (eg vowels with macrons) may vary from one person's Times font (or TeX's times clone) to another. This means that to reliably get these characters you must embed your Times font in the PDF. It is recommended that any book being sent to printers in PDF format have the fonts embedded, even if it's in Times.

It is not easy to get pdfLaTeX to embed Times (you could trick it by loading Times under a different name but now it seems there is an option you can set in modern TeX distributions, see references). An easy way though is to create Postscript and then convert to Times using the following commands.

latex myfile.tex
dvips myfile
gs -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sPAPERSIZE=a4 -dPDFSETTINGS=/printer \
-dCompatibilityLevel=1.3 -dMaxSubsetPct=100 -dSubsetFonts=true -dEmbedAllFonts=true \
-sOutputFile=file.pdf myfile.ps 

References

  • Jose Carlos Santos, Michael Shell, Maarten Sneep et al on comp.tex.tex here, here and here.
  • Explanation of the pdfLaTeX option in MiKTeX
  • The gs man page