LaTeX Tips
-Posted 2007-05-22.
+Posted 2007-05-22; updated 2021-07-01.
+Note that these instructions are over a decade old. Some things may have changed since then. :)
Embedding fonts in PDFs
To check whether fonts are embedded, use pdffonts
, which is included with xpdf
. pdffonts
gives output that looks like this:
$ pdffonts paper.pdf -name type emb sub uni object ID +name type emb sub uni object ID ------------------------------------ ------------ --- --- --- --------- -FHQIOS+NimbusRomNo9L-Medi Type 1 yes yes no 6 0 -NEESMN+NimbusRomNo9L-Regu Type 1 yes yes no 9 0 -PJQNOS+CMSY10 Type 1 yes yes no 12 0 +FHQIOS+NimbusRomNo9L-Medi Type 1 yes yes no 6 0 +NEESMN+NimbusRomNo9L-Regu Type 1 yes yes no 9 0 +PJQNOS+CMSY10 Type 1 yes yes no 12 0
You want emb
to be yes
for all fonts (and possibly sub
as well; also, all fonts should be Type 1, not Type 3). By default in Ubuntu, pdflatex should embed all fonts. Just in case, you can check /etc/texmf/updmap.d/00updmap.cfg
, which should have a line like this:
pdftexDownloadBase14 true
If it’s set to false
, change it to true
, then run update-updmap
as root. Remake the PDF; if it still has non-embedded fonts, your figures are probably to blame. Check your PDF figures and make sure their fonts are embedded (using the pdffonts
command). For anything that doesn’t have embedded fonts, you can try the following magical invocation (all on one line):
gs -dSAFER -dNOPLATFONTS -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sPAPERSIZE=letter -dCompatibilityLevel=1.4 -dPDFSETTINGS=/printer -dCompatibilityLevel=1.4 -dMaxSubsetPct=100 -dSubsetFonts=true -dEmbedAllFonts=true -sOutputFile=figures/Mprime-new.pdf -f figures/Mprime.pdf +If it’s set to
+false
, change it totrue
, then runupdate-updmap
as root. Remake the PDF; if it still has non-embedded fonts, your figures are probably to blame. Check your PDF figures and make sure their fonts are embedded (using thepdffonts
command). For anything that doesn’t have embedded fonts, you can try the following magical invocation:diff --git a/feed.atom b/feed.atom index fb33e24..00a416e 100644 --- a/feed.atom +++ b/feed.atom @@ -18,22 +18,26 @@gs -dSAFER -dNOPLATFONTS -dNOPAUSE -dBATCH -sDEVICE=pdfwrite \ +-sPAPERSIZE=letter -dCompatibilityLevel=1.4 -dPDFSETTINGS=/printer \ +-dCompatibilityLevel=1.4 -dMaxSubsetPct=100 -dSubsetFonts=true \ +-dEmbedAllFonts=true -sOutputFile=figures/Mprime-new.pdf -f figures/Mprime.pdfLaTeX Tips - Posted 2007-05-22.
+Posted 2007-05-22; updated 2021-07-01.
+Note that these instructions are over a decade old. Some things may have changed since then. :)
Embedding fonts in PDFs
To check whether fonts are embedded, use
pdffonts
, which is included withxpdf
.pdffonts
gives output that looks like this:$ pdffonts paper.pdf -name type emb sub uni object ID +name type emb sub uni object ID ------------------------------------ ------------ --- --- --- --------- -FHQIOS+NimbusRomNo9L-Medi Type 1 yes yes no 6 0 -NEESMN+NimbusRomNo9L-Regu Type 1 yes yes no 9 0 -PJQNOS+CMSY10 Type 1 yes yes no 12 0 +FHQIOS+NimbusRomNo9L-Medi Type 1 yes yes no 6 0 +NEESMN+NimbusRomNo9L-Regu Type 1 yes yes no 9 0 +PJQNOS+CMSY10 Type 1 yes yes no 12 0You want
emb
to beyes
for all fonts (and possiblysub
as well; also, all fonts should be Type 1, not Type 3). By default in Ubuntu, pdflatex should embed all fonts. Just in case, you can check/etc/texmf/updmap.d/00updmap.cfg
, which should have a line like this:-
pdftexDownloadBase14 true
If it’s set to
-false
, change it totrue
, then runupdate-updmap
as root. Remake the PDF; if it still has non-embedded fonts, your figures are probably to blame. Check your PDF figures and make sure their fonts are embedded (using thepdffonts
command). For anything that doesn’t have embedded fonts, you can try the following magical invocation (all on one line):gs -dSAFER -dNOPLATFONTS -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sPAPERSIZE=letter -dCompatibilityLevel=1.4 -dPDFSETTINGS=/printer -dCompatibilityLevel=1.4 -dMaxSubsetPct=100 -dSubsetFonts=true -dEmbedAllFonts=true -sOutputFile=figures/Mprime-new.pdf -f figures/Mprime.pdf +If it’s set to
+false
, change it totrue
, then runupdate-updmap
as root. Remake the PDF; if it still has non-embedded fonts, your figures are probably to blame. Check your PDF figures and make sure their fonts are embedded (using thepdffonts
command). For anything that doesn’t have embedded fonts, you can try the following magical invocation:gs -dSAFER -dNOPLATFONTS -dNOPAUSE -dBATCH -sDEVICE=pdfwrite \ +-sPAPERSIZE=letter -dCompatibilityLevel=1.4 -dPDFSETTINGS=/printer \ +-dCompatibilityLevel=1.4 -dMaxSubsetPct=100 -dSubsetFonts=true \ +-dEmbedAllFonts=true -sOutputFile=figures/Mprime-new.pdf -f figures/Mprime.pdf