23-årig dansker koder ny formel-editor til LibreOffice 3.3

Jonas Finnemann Jensen fra Aalborg har programmeret en ny, visuel formel-editor til den netop lancerede kontorpakke LibreOffice 3.3.

Da kontorpakken LibreOffice tidligere på ugen blev lanceret i den første færdige udgave, var det med et tydeligt fingeraftryk fra den 23-årige danske studerende Jonas Finnemann Jensen.

Læs også: Ikke flere betaer: LibreOffice 3.3 er klar til download

Han læser til daglig datalogi på Aalborg Universitet og har haft fingrene nede i de cirka 25.000 linjer C++-kode til LibreOffices indbyggede formel-editor, som han har gjort langt mere brugervenlig end tidligere.

Formel-editoren LibreOffice Math er pendanten til den indbyggede formel-editor i Microsofts Office-pakke, der gør det muligt at skrive matematiske formler i for eksempel Word-dokumenter.

LibreOffice Math er nedarvet fra OpenOffice.org-projektet, som LibreOffice også udspringer fra.

Læs også: OpenOffice-folk i Oracle-skilsmisse: Stifter LibreOffice

Men mens Microsofts formel-editor viser formlen og lader brugeren redigere direkte i den efter WYSIWYG-princippet - What You See Is What You Get - har LibreOffice Math indtil nu overladt brugeren til formatteringskoder med krølleparenteser og underlige forkortelser under selve redigeringen af formlen.

Dermed har for eksempel gymnasieeleven, der skriver matematikopgave, skullet skrive formatteringskoden sqrt{x^2+1} for at skrive udtrykket 'kvadratroden af x i anden potens plus 1'.

»Det største problem har været, at man skulle skrive formatteringskoder i stil med LaTeX (matematisk typesettingsprog, red.) for at skrive en formel i både LibreOffice og OpenOffice. Det er der mange brugere, der ikke kan finde ud af,« siger Jonas Finnemann Jensen til Version2.

Småændringer blev til stort indgreb

Jonas Finnemann Jensen fik fingrene i kildekoden til formel-editoren under Google-projektet for studerende, Google Summer of Code, i 2010.

Det var oprindeligt planen, at han blot skulle ordne et par småproblemer med indryk af formler.

»Affødt at mine egne erfaringer med, at folk hellere vil bruge MathType eller andre, lettere editorer frem for formel-editoren i OpenOffice og LibreOffice tænkte jeg 'hvorfor ikke lave en visuel formel-editor?',« fortæller Jonas Finnemann Jensen.

Det primære problem var at finde ud af, hvordan LibreOffice Math repræsenterer formler, når de vises i dokumentet.

Ideelt set ville formlen blot været repræsenteret som en liste af operatorer og operander, forklarer Jonas Finnemann Jensen.

Men han fandt frem til, at formlerne i LibreOffice Math opbygges som træer af operator-applikationer, hvor bladene er operatorer eller operander fra formlen.

»Det er et meget konkret syntakstræ, som slet ikke er designet til visuel formel-editering. For eksempel angiver det, at multiplikation er en stærkere operator end plus, og det er ikke nødvendigt at vide, fordi udtrykket aldrig skal evalueres,« siger han.

Det afgørende i Jonas Finnemann Jensens løsning er at holde styr på cursorens nuværende position og formel-elementerne umiddelbart til højre og venstre for, mens brugeren flytter cursoren rundt i formlen.

Derfor besøger han alle knuder i formlens træ og opbygger efterfølgende en graf, hvor knuderne repræsenterer cursor-placeringer, og hver knude har en højre og en venstre kant.

Tilsvarende når brugeren sletter eller tilføjer elementer i formlen, gemmes alle elementer i den pågældende linje i formlen i en midlertidig liste, hvorefter listen manipuleres, løbes igennem for nye knuder, der skal oprettes, og sættes tilbage i syntakstræet, hvorefter grafen genopbygges med nye cursorpositioner.

»Det er et lidt grimt kompromis, som til gengæld fungerer. Ind i mellem må man acceptere, at tingene ikke kan blive perfekte, men kun rimeligt gode, når man arbejder med legacy-kode, der er over 10 år gammel,« siger Jonas Finnemann Jensen.

Stadig ustabil

Jonas Finnemann Jensens forbedrede formel-editor kræver stadig noget arbejde, før den er helt stabil.

For eksempel er det ikke muligt at slette en nyoprettet linje eller et super- og subskript i en formel, og af samme grund er den indtil videre kun inkluderet som eksperimentel funktionalitet i LibreOffice.

Derfor har han heller ikke planer om at kaste sig over nye projekter for LibreOffice, da studierne ved siden af også skal passes.

»I første omgang er der nok at gøre med hensyn til formel-editoren,« siger Jonas Finnemann Jensen.

Formel-editoren kan afprøves ved at sætte flueben i 'Tools -> Options -> LibreOffice -> General -> Enable experimental (unstable) features' i LibreOffice.

Der kan læses mere om Jonas Finnemann Jensens metode på hans blog.

Kommentarer (8)

Thomas Nielsen

"Man skal ikke skrive ret mange formler..."

Det er faktisk det der er problemet med den eksisterende. Hvis man hører til den brugergruppe som kun sjældent skriver formler, har rutinen det med at ruste. Netop disse brugere vil garanteret juble nu.

Men det er da lige til at blive morgenglad af, at høre den slags nyheder :-).

Jonas Finnemann Jensen

Man skal ikke skrive ret mange formler i et dokument før man bliver glad for at man kan kode det.

Det er rigtigt, jeg kan også godt garantere at den gamle redigerings metode ikke kommer til at tage skade... :)

Der er mange erfarne brugere, som godt kan lide kommando brugerfladen. Men jeg er heller ikke i tvivl om at der findes en stor gruppe, der ikke har lyst til at lære kommandoer...

Henrik Jess

Jeg har brugt OpenOffice på både Installatør og nu på HF og videre på Datalogisk ..

Jeg håber ikke der er ændret på af syntaxen .. elles ender med jeg må rode med LaTex ;-)

Log ind eller opret en konto for at skrive kommentarer

JobfinderJob i it-branchen

TDC skifter koncernchef efter faldende mobilomsætning

Jesper Stein Sandal Mobil og tele 14. aug 2015

Nyeste job

KurserStyrk dine evner med et kursus

Outlook 2010

Hvornår: 2015-09-30 Hvor: Østjylland Pris: kr. 2950.00

It i sundheds- og plejesektoren: implementering og gevinstrealisering

Hvornår: 2016-09-01 Hvor: Østjylland Pris: kr. 18000.00

CERT 70-414 Implementing an Advanced Server Infrastructure

Hvornår: 2015-10-19 Hvor: Storkøbenhavn Pris: kr. 4950.00

Koordinatoruddannelsen - overbygningsmodul

Hvornår: 2015-09-17 Hvor: Østjylland Pris: kr. 6990.00

SharePoint Governance workshop

Hvornår: 2016-05-13 Hvor: Storkøbenhavn Pris: kr. 3400.00