Wednesday, May 18, 2011

Latex type 3 fonts not embedded

If you are submitting a camera ready paper to a conference (ACM/IEEE), the typesetting company will come back to you saying some of the fonts are not embedded. This happens when the pdf does not carries the fonts and in some cases the reader ends up rendering as bitmaps with inferior quality.

You can check if all of the fonts are embedded If you open it in acrobat reader, and go to "file -> properties" and then "fonts" it gives you a listing.

+ Use ghostscript to open your PS file. Generate PS by using latex2dvi followed by dvi2ps.
+ In ghostscipt file menu use convert option, select the pdfwrite device and put resolution as 720.
+ Then click on properties on the same window
+ Within the properties set compatibilitylevel to 1.4
+ Change PDFSETTINGS to /prepress
+ Select EmbedAllFonts option to true and also true for SubsetFonts
+ Say ok on both windows you will be asked to enter a file name. Enter a pdf file name. This should have all fonts embedded.

You can check if this worked by using the check described above with the adobe reader.

Further problems:
I did all of the above and had all type 1 fonts embedded but a pesky type 3 font would not be embedded. Reading more showed that some fonts are embedded as type 1, and some meta fonts are embedded as type 3. I had a review that the problem was in the figures. So i guessed that the problem is arising because of some non standard fonts. The approach I took was brute force. I essentially converted all text in my two figure files (sources) and converted  them to the "times new roman" font. I did this also for helvetica fonts which matlab uses by default for labeling their figures. Saved the EPSs. Followed all of the steps above.

Lo and behold the pain ended and finally all the fonts were embedded!
This solution should work on both windows and linux. I used miktex with windows. End of misery  :)


Post a Comment