Dienstag, 19. Mai 2009

GSOC 2009

I guess I am really the last GSOC student (at least in KDE land) to blog about my project but better late then never. I will work on the Formula editor in Koffice which sadly got a little bit battered by the transition to Koffice 2. My main focus will be on user interaction, which means keyboard and mouse input and offering a possibility to insert various mathematical elements. When I am not working for KDE I am studying mathematics in the beautiful German city of Dresden, play various instruments and like to do stuff with my girlfriend and the guys from my church. My mentor is Alfredo Beaumont and my full proposal looked like this:


Jeremias Epperlein

Email Address:


Freenode IRC Nick:


Location (City, Country and/or Time Zone):

Aue, Germany, GMT+1

Proposal Name:

Enhance Formula Shape

Motivation for Proposal / Goal:

Being able to add formulas is a requirement for many users of an office suite like teachers or scientists. Although most of the later use LaTeX for this, when you need a lot of manual layout, a program like kword is a better choice.

Koffice in Version 1.6 included a very good formula editor. The port to the new flake architecture in Koffice 2.0 is very incomplete and lacks several features. Especially the user interface needs a lot of work. I would like to add support for navigating and editing a formula, as well as inserting various mathematical elements like Greek letters.

Additionally I would like to work on the loading and saving of MathML, which is used in ODF for storing formulas, or add the possibility to enter a certain subset of LaTeX.

Implementation Details:

For the editing part, I will add the missing logic in FormulaCursor and KoFormulaTool as well as implement the missing methods in the classes, that represent the MathML elements. For inserting mathematical objects I will select useful MathML templates and add a possibility to insert them to the tool docker.

There should be a possibility to insert (this list is not necessarily complete):


  • fractions

  • roots

  • matrices

  • fenced elements (braces, brackets, ...)

  • super- / subscript

  • alignment hints


  • operator symbols (small / big)

  • Greek letters

  • arrows


  • under / over bars

  • boxes

Tentative Timeline:

  • 3 weeks getting keyboard navigation working

  • 3 weeks add mouse interaction, drag&drop, selecting and moving elements

  • 3 weeks design and implementing the ToolWidget for inserting elements and changing there style

    2 weeks improve the loading of MathML, get more unit tests to pass

  • 1 week clean up the code, add missing documentation

Do you have other obligations from late May to early August (school, work, etc.)?:

I will have university until end of July, but I will have a very low course load, basically only one seminar and two lectures.

For the same reason, I would also be able to start coding earlier.

Apart from that I hope to be a guide at the International Mathematical Olympics at the end of July but this will take only one and a half week.

Finally in August I may start a Hebrew course, but this will nevertheless allow me to finish the project.

About Me (let us know who you are!):

the Technical University of Dresden. I have experience programming in C++ with QT from I am a student of mathematics and computer science in my last year at various university projects. I started using Linux and KDE around 7 years ago. Apart from writing a small patch for Canorus (www.canorus.org) I have never before programmed for an open source project. But I am already reading koffice-devel for a year andso I think I could find into the project relative easily.

In my free time I like to play trumpet, bike, travel, do stuff with my friends, my girlfriend and the guys from my church.