Creating Figures for Publication in MATLAB

Kimo Johnson

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.