So, LaTeX isn’t strictly a Unix/Linux thing, but all the cool kids use LaTeX on those OSes so I’ll write about it from that perspective. I’ve been using LaTeX for over a decade now, and it’s definitely a love-hate relationship. This document isn’t intended to make you like LaTeX. Rather, it’s a few helpful hints that prevented me from tearing out my hair.

Font Problems

If you’ve ever submitted to a conference before, it’s likely you’ve received the dreaded Type 3 Fonts error. If you’re an engineer or scientist, the most likely culprit is a MATLAB figure.

The first thing you should do is ensure you’re using Times New Roman in your MATLAB figure, because if you’re not you’re mixing fonts and that makes you a BAD PERSON. That’s right. I’m .fontist.

To get around this, you can use this following MATLAB (or Octave) function. It’s dirty, but it works.

MATLAB beautify_plot()
function beautify_plot()
    textobj = [findobj('type','text')' ...
               findobj('type','axes')' ...
    set(textobj,'FontName','Times New Roman');
Important Call beautify_plot() after you write text on your figure with text() and after you draw your legend, but BEFORE you write your figure labels and figure title.

Once you’ve saved your pretty figure to an eps, then you might run into a Type 1 vs Type 1C Font problem. You just run the following:

Type 1 to Type 1C Fonts
ps2pdf -dPDFSETTINGS=/prepress -dAutoRotatePages=/None \
       -dEmbedAllFonts=true= -dMaxSubsetPct=100 -dSubsetFonts=true \
       -dAutoFilterColorImages=false -dAutoFilterGrayImages=false \
       -dDownsampleColorImages=false -dDownsampleGrayImages=false \
       -dDownsampleMonoImages=false old.pdf new.pdf

I found that trick here. It worked for me, it might work for you.

To test whether or not any of this works, you can just run pdffonts yourpdf.pdf.