[ Note: Please be aware that this page has not been updated since 2010 and might thus contain
(potentially highly) outdated information! ]
I've had a few problems in the
past producing high-quality .pdf
documents that would be accepted for publication smoothly (that is,
from a
typesetting point of view!) by various journals and/or conferences.
Especially when producing papers for IEEE publications or for
IEEE-sponsored conferences
and workshops, very specific guidelines need to be followed when
producing the final document for publication, usually in .pdf format.
One of the most irritating problems I encountered is that IEEE requires
all fonts in the document to be "embedded subset". I have tried a
number of ways to produce my .pdf files but until recently, I was
always unable to have all fonts embedded. So you could typically rely
on some externally-provided solution to this problem: for IEEE
conferences for instance, the IEEE provides the
PDFeXpress
tool, that basically uploads your LaTeX files and does the entire
compilation itself. The problem with this is that you can only convert
or check your documents if you're planning to submit to a current
conference (you can't just
randomly
convert your documents this way). And besides, I want to be fully in
charge of my documents and don't want to depend on an online help
system all the time, especially when I don't
exactly know what they're doing to
my files during compilation.
So I did a bit more fiddling around and finally found an easy way to
achieve the desired result (i.e., embed all fonts!). The procedure
basically uses the following steps:
article.tex => latex -> dvips
-> GhostScript's pdfwrite (from GSview) => article.pdf
The main advantage of this procedure is that it only requires basic
(and free!!) software: some LaTeX package (e.g.,
MiKTeX) and
GSview (
GhostScript), that's it! No
need for Acrobat Distiller or (even worse!) some pricey Microsoft product!
Also, I tend to make an intensive use of .eps figures and \psfrag
inputs in my documents. Since "pdfLaTeX" and "dvi2pdf" don't seem to
recognise .eps and \psfrag, the above procedure nicely circumvents this
problem (i.e., you can use .eps and \psfrag as much as you like!!).
The details of the procedure are as follows:
- Create your .tex file, then LaTeX/BibTeX it:
latex article.tex
bibtex article.tex
- Convert the resulting .dvi file to .ps:
dvips -Ppdf -G0 -ta4 article.dvi
The -ta4
option specifies the paper format, you can use -tletter instead, or leave it
out.
- Open the .ps file with GSview, then, under the "File" menu,
select "Convert...". In the "Convert" popup, select "pdfwrite" under
"Device", as well as an appropriate "Resolution" value (I usually use
600 or 720). Now here is the trick: still in the "Convert" popup, click
on "Properties" and make sure that the "Property" fields have the
following values:
Property
|
Value
|
| CompatibilityLevel |
1.4 |
| PDFSETTINGS |
/prepress or /printer
|
| AutoRotatePages |
/None |
| CompressPages |
true |
| ASCII85EncodePages |
false |
| UseFlateCompression |
true |
| EmbedAllFonts |
true |
| SubsetFonts |
true |
| MaxSubsetPct |
100 |
| ConvertCMYKImagesToRGB
|
false |
| AutoFilterColorImages |
true |
| ColorImageFilter |
/DCTEncode |
| EncodeColorImages |
true |
| DownsampleColorImages |
true |
| ColorImageDepth |
-1 |
| ColorImageResolution |
300 |
| ColorImageDownsampleThreshold
|
1 |
| ColorImageDownsampleType
|
/Bicubic |
| AutoFilterGrayImages |
true |
| GrayImageFilter |
/DCTEncode |
| EncodeGrayImages |
true |
| DownsampleGrayImages |
true |
| GrayImageDownsampleThreshold
|
1 |
| GrayImageDownsampleType
|
/Bicubic |
| GrayImageDepth |
-1 |
| GrayImageResolution |
300 |
| MonoImageFilter |
/CCITTFaxEncode |
| EncodeMonoImages |
true |
| DownsampleMonoImages |
true |
| MonoImageDownsampleThreshold
|
1 |
| MonoImageDownsampleType
|
/Bicubic |
| MonoImageDepth |
-1 |
| MonoImageResolution |
600 |
These settings are a bit of a pain to enter manually, but they remain
set after closing GSview, so it only has to be done once.
Once the correct properties have been set, simply click "OK" in the
"Convert" popup, then enter the name of the .pdf file (including the
".pdf" extension) to be created form the .ps file.
- The resulting .pdf file should have all fonts "embedded
subset", and should successfully pass the IEEE PDFeXpress inspection. You can
check the font status by opening your .pdf file with Acrobat
Reader, opening "Document properties..." under the "File" menu, and
checking that all fonts used in the document (under the "Fonts" label)
have "embedded subset" next to them.
Notes
It seems like the configuration of
dvips
is crucial to the embedding of fonts in the resulting .pdf document. I've
noticed that the contents of the localtexmf folder could make the difference
between a successful or a failed completion of the above procedure. If
you still have problems, try again after downloadding
these files [120kB] into your
X:\localtexmf\dvips\config
folder. It worked for me...
The procedure described here has been tested and works on a Windows XP
system using GSview 4.6, GhostScript 8.50 and MiKTeX 2.4 (dvips 5.94b and e-TeX 3.14159-2.2). I suspect that
other versions of the same software packages should also work. And
since this procedure only calls for non-proprietary programs
downloadable free-of-charge from the web, I'm guessing that these steps
should also achieve the desired results on a different operating system
(Linux, Mac, etc.). Feel free to
let
me know if you get positive or negative results on your system.
The property settings given in the table above are copied from the "
GhostScript Settings Reference for IEEE
Xplore-Compatible PDFs", available from the IEEE PDFeXpress web site,
except for the
value set for the "PDFSETTINGS" property. Setting "PDFSETTINGS" to
"[Not defined]", as given in this IEEE reference, failed to produce a
proper .pdf file on my system.
Finally, it is likely that you don't need to set
all the above parameters in order
to obtain proper results. Obviously, you typically want to set
"EmbedAllFonts" and "SubsetFonts" to "true", but simply doing this and
leaving other settings to "[Not defined]" isn't enough.
And also...
Thanks to Matthew J. Probst for the following advice (August 2010): CompatibiltyLevel
needs to be set to 1.4, or IEEE's PDF eXpress will fail the doc with the error: "Acrobat
version is less than 5.0".