I know that TikZ was mentioned already, but I think it deserve its own answer. It is different from Omnigraffle
just like TeX
is different from Word
. But, if you're up for the effort, you'll enjoy the freedom of producing extremely high quality figures!
True, using TikZ
for "heavy" diagrams can lead to lengthy compilations, but this can be solved using the externalize
library of TikZ
, or the Standalone
class. See also this possible approach using make
.
Although TikZ
is not at all WYSIWYG, there are several editors, that enable the use to draw "by hand" the diagram and export it to a Tikz
snippet. Personally, I don't have experience with this kind of combination.
Another advantage of TikZ
, that as it is somewhat a programing language (after all TeX
is turing-complete) you can program your diagram and use external data sources and visualize them. To that end, you can use a combination of TeX
, lua
or other languages of your choice.
Finally, and most important; TikZ
provides an amazing live community which can help you with everything related to it. A perfect starting point would be the TeX.se.
PS: You can also have a look at pstricks
. It implements a similar spirit like TikZ
but... Well, I'm not using it so I cannot say much. I can say, that I saw amazing outputs of pstricks
.