LaTeX documents print beautifully, but images often looks "ugly", "pixelated" or "low-res" compared to the text. By images I don't mean photos, which I rarely use, but rather diagrams, charts and drawings made in other programs such as Visio, Excel and Photoshop. I would love for these to look just as good as the rest of the report when printed.
If you can, save diagrams as a vector-based format such as PDF or EPS- these formats can be readily included in LaTeX documents and scale without appearing pixelized. Note that PDF should be used for input to
pdflatex and EPS should be used with plain
Inkscape is an excellent, free, cross-platform program for creating and editing vector graphics- similar to Adobe Illustrator. There is even a project that is producing a plug-in for Inkscape that allows Inkscape graphics to be exported to TikZ.
TikZ is a TeX-based language for creating vector graphics- it is incredibly expressive and lets you create graphics right inside your TeX document. However, using TikZ requires writing out the commands required to create an image- it is not a GUI-based drawing program.
If you are using
latex instead of
pdflatex, then the PSTricks package is also available- but your document must be rendered into PostScript somewhere along the for the images to appear. However, passing through PostScript has advantages- PostScript is a complete programming language for creating graphics which PSTricks is able to leverage in order to produce some effects that are difficult/impossible to replicate using TikZ.
If all you have is a raster image, PNG, JPEG, GIF, TIFF, ect, then you must pay close attention to the resolution that the image file has been saved at. The resolution will determine how much scaling can occur before the image starts to appear pixelated.
Many programs default to saving images at 72 dpi (dots per inch) as that is a lightweight resolution that is commonly used for images displayed on the web. However, for printed output you need a much higher resolution for the results to look good. A common rule of thumb is that the final scaled image should have a resolution of at least 300 dpi if it is to appear on a printed page without noticeable pixelation.
I have switched to PGF/TikZ for all vector drawing. The level of control and the beauty of the results provided by this package is worth learning the syntax.
If you're working with diagrams, I would recommend you to make them using vector graphics instead of raster graphics. This will allow you to upscale them infinitely. Inkscape (free) and Illustrator (paid) can make vector graphics. For graphs, I like to use graphviz (free).
One package that I'll do a shout out for is Ipe. You should think of Ipe as the next generation of xfig: great for line drawings, and by far the best killer feature: WYSIWYG latex. Ipe 7 has many of the modern vector graphics features (gradients, shading, transparency) etc that inkscape has, and is perfect for quick and dirty drawings.
it also has an extensible API, so if you need to demonstrate your algorithm, you can actually write an Ipe plugin in C++ that does the computation for you.