Here's my GSoC application, any comments/critiques are welcome!




I would like to implement a PGF output extension for Inkscape. Currently, the TeX exporter in Inkscape utilizes the PSTricks macros, which are not portable and do not work with pdftex/pdflatex.

PGF is a Portable Graphics Format for use with TeX/LaTeX/ConTeXt and works with all major back-end drivers.

There are several feature requests which will be solved by this project:
https://bugs.launchpad.net/inkscape/+bug/170802 : PS + LaTeX export
https://bugs.launchpad.net/inkscape/+bug/171141 : Richer text layout features
https://bugs.launchpad.net/inkscape/+bug/172195 : Export LaTeX with PGF/TikZ macros
https://bugs.launchpad.net/inkscape/+bug/172022 : Combined PDF/LaTeX export


The implementation will be rather straightforward due to Inkscape's extension system.  A new output extension (latex-pgf) will be developed which provides TeX output using the PGF macro package.

PGF has two interface layers: the base system (PGF) and the front-end interface (TikZ).  While exporting TikZ code might make subsequent editing easier, the base PGF layer is much more flexible and therefore will be used for this project.


While I haven't used GTK or worked with the Inkscape code base (aside from a simple bug fix for proof-of-competency: https://bugs.launchpad.net/inkscape/+bug/168349/comments/10), I have extensive experience with C++ and have used other widget toolkits such as JUCE.  I have contributed small patches to several open source projects including Django and Lazy C++.

I am also very familiar with LaTeX, having used it to typeset many reports over the last several years, and I use the PGF/TikZ package whenever I need to typeset drawings and diagrams.

I also work well alone, and require little hand-holding.  I have completed numerous projects on my own and am currently working on a software metrics visualization application in C++ which I plan to open source.


The PGF exporter will have support for the following features:
  * Paths
    - Clipping
  * Fill styles
    - Solid
    - Gradient
    - Pattern
  * Stroke styles
    - Dashes, Dots, etc.

Implementation Plan

The first order of business will be to get a very basic export working.  This will include support for paths, and nothing more. After this, features will be added on incrementally until the full export extension is complete.

After basic path support is working, text output will be added.  An option will be provided to either escape text or pass it through as-is so that it will be processed by TeX, allowing for formulas and other TeX trickery.

Strokes styles, fills, and gradients will be implemented next.  These all have direct equivalents in PGF.

Finally, more esoteric features such as pattern fills and clipping will be implemented.  Although these are supported in PGF, they are far less likely to be used than the other output functionality and thus will be implemented last.