OmniGraffle to TikZ?

Is there any good way to export OmniGraffle to TikZ for LaTeX? Even if it requires a slightly more convoluted workflow? Others have suggested workflows where OmniGraffle is used with TikZ, but they only seem to be going in the other direction (moving TikZ to OmniGraffle). I want to be able to put the diagrams together in OmniGraffle, but then let LaTeX actually generate the images (since then LaTeX appropriately handles font, etc for the diagram). Any suggestions?

The obvious route to TikZ might be through SVG.

I haven’t checked the current state/completeness of OmniGraffle SVG exports, but there is already a plugin which you can use with InkScape:

1 Like

Disclaimer: I have great respect for folks who can use TikZ to draw in LaTeX, but I have equal desire to avoid having to learn to use it for my own drawing needs.

This seems a bit convoluted to me. Why not export the image to PDF, import the image with \includegraphics{...}, and then write whatever else you want the image?

Alternatively, why not use compatible fonts in the OG image at the outset and then just export + import the entire finished product (again as a PDF)?

Beyond the thrill of the coding, what does the process OG -> TikZ -> LaTeX give as benefit over using OG -> PDF -> LaTeX?


Mostly the ability to dynamically change the formatting in a LaTeX document without having to separately go and make sure the figure’s components still properly match. Specifically, things like font within the image should appropriately match the font within the LaTeX document. If I want to change the size of the image, the font within the image should still be the correct document font size. And if I add the image to a document with a different formatting, again the appropriate font should automatically be used within the image without me needing to manually select it separately. At least, this would be ideal, though I know it’s not an easy implementation to expect to be available.

Yeah, I think this might be one of the best choices at the moment. Though it is pretty outdated you need to use some old versions of packages to get it working, but a separate virtualenv makes it workable.