Creating Figures for Publication in MATLAB
14 August 2006
Recently, I ran into a snag with a publisher over non-embedded fonts in
figures in my paper. While these figures displayed and printed fine
from both Mac OS X and Windows, the publisher required that all fonts
used in the paper be embedded in the PDF, including the standard
PostScript (or Base 14) fonts. Using Adobe Acrobat’s Preflight tool, I
was able to see exactly where the problem was occurring – it was the
axis and tick labels in figures I created using MATLAB.
MATLAB’s default font for axis and tick labels is Helvetica, one of the
standard PostScript fonts. When you print a figure in MATLAB using
print -deps, or print -depsc, you get an encapsulated PostScript file
without embedded fonts. I typically drag this eps file onto TexShop to
create a pdf, though this is just a simple way of calling epstopdf on
the file. The resulting pdf does not have embedded fonts, however, and
this was the source of my problem.
The best way to get embedded fonts in MATLAB figures is to run an
additional program on the PDF output of epstopdf:
ps2pdf13 -dPDFSETTINGS=/prepress fig_non_embedded.pdf fig_embedded.pdf
The first PDF is the output of epstopdf that does not have embedded
fonts, and the result is a PDF with embedded (Type 1) fonts. After
running this additional step on all my figures with text and
re-typesetting the paper, I no longer had a problem with non-embedded
fonts.