Both are vector graphics (typically) and both can be imported painlessly into a pdflatex document (so let's say we ignore dvi for this question).
What are the advantages and disadvantages of each? What should I use?
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It only takes a minute to sign up.Sign up to join this community
Use PDF. EPS cannot be imported directly by pdftex but must be converted using something like
epstopdf. These conversion procedures will often cause unwanted changes to the graphics, such as lossy JPEG encoding of embedded bitmap images. Pdftex will include PDF files directly without making any changes (except for unifying fonts, and even that can be disabled if needed), so you can have complete control over the final result by generating a PDF which is exactly as you want it (assuming your image editing software gives you control over image encoding lossiness, colour spaces, etc).
\includegraphicsand compiled with
pdflatex(see answer by Lev Bishop)
One advantage of EPS figures is the ability to use the psfrag package to replace axis labels etc. with properly LaTeXed versions generated with the same fonts etc. as your main document. I used to generate all my plots with matplotlib or MATLAB using this feature. Matplotlib's support for this is broken, but it instead provides a usetex option that allows you to embed LaTeX generated the labels directly in PDF files which I now use exclusively.
(See also: Using psfrag with pdflatex.)
latex, etc. The decision in choosing a compiler also depends on your real scenario. If you are developing a web based system, for example, a bunch of EPS images generated on the fly should be imported to LaTeX input files directly, they are then compiled with
latex. Converting the EPS to PDF, importing the resulting PDF to LaTeX input files, and compiling them using
pdflatexwill hurt the performance.
It cannot be decided without knowing your real scenario.