Publishing research results is part of professor’s routing jobs. However, the process of creating ‘portable’ format for different publishers is a really painful process. In particular, it is very often that one works on different computers to prepare the manuscripts and cannot keep the standard SOP for the process. You may find the success command for this purpose at end of this article.
On Mac, dvips does not embed fonts properly by default, and pdflatex also cuts corners. This post actually converts a pdf file to postscript file, and converts the postscript file to pdf file to embedded all fonts in pdf files. Here is the steps on the post:
- Generate the PDF however you like (command line or TeXShop)
- Open the PDF in Preview, duplicate, and save a copy. This will embed the fonts but make the PDF version 1.3 or something. Say the file is called
- In a terminal, run
pdf2ps copy.pdfto generate copy.ps. This will create a PS file with the fonts embedded.
pdf2ps14 -dEmbedAllFonts=true copy.psto generate a new version of
copy.pdfthat is both 1.4 and has fonts.
It is evident that the above steps can be revised.
Another issue is the fonts in figures. pdflatex may embed fonts for the context in tex files but not the fonts in figures. (In particular, if you use PowerPoint or visio to draw figures and convert them to PDF later, some special fonts are missing.)
IEEE provides the setting to be downloaded so that you can use distiller to convert files to PDF files to meet its requirements. This approach works well for people using WORD or other editor to prepare their manuscripts. It does not work for people using pdflatex to create PDF files.
Finally, here is what I used on Mac to convert PDF files to meet IEEE requirements, based on this discussion:
gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dEmbedAllFonts=true -sOutputFile=$YOUR_OUTPUT_FILE.pdf -f $YOUR_INPUT_FILE.pdf
(Updated on 2017) If the generated file fails to pass the check, here are more steps to eliminate fonts errors. (Solution was found here.)
pdftops yourfile.pdf ps2pdf14 -dPDFSETTINGS=/prepress yourfile.ps
Or call ps2pdf14 directly on the pdf file, despite its name:
ps2pdf14 -dPDFSETTINGS=/prepress yourfile.pdf yourfile-output.pdf