Valdemar Bilas Side

Microsoft Word Gør Dig Dum

Og det samme gælder for Office-kloner som Googles Office-suite, LibreOffice eller OnlyOffice.

I løbet af min SRP-skriveproces, har jeg forsøgt at gøre mig bekendt med det gamle Unix-opmærkningssprog, groff (GNU troff – groff er GNU-implementeringen af troff, som er det egentlige sprog fra Unix. Forskellene betyder ikke meget for dette indlæg). Forskellen på et program som groff og et program som Word er, at Word er en WYSIWYG-editor (forkortelse for What-You-See-Is-What-You-Get). I et WYSIWYG-miljø, har du en grafisk brugerflade med små elementer, du kan trykke på for eksempelvis at lave fed eller kursiv skrift, alt imens programmet viser dig layoutet på siden som du skriver det. I Word er det, du ser, det, du får – vil du have noget andet, end hvad du ser, er det bare ærgerligt.

Hvad er Groff?

Groff er ikke en WYSIWYG-editor. Groff kan ikke engang redigere tekst. Groff eksisterer for at gøre én ting (og kun den ene ting): at konvertere (compile) en tekstfil med den ønskede tekst og strukturelle beskrivelser af layoutet til et dokument i et format, som kan printes (fx PDF eller Postscript).

Et eksempel på indholdet af en sådan tekstfil kunne være følgende:

.NH
Redegørelse for nonsenslitteratur
.NH 2
Victoriansk nonsenslitteratur
.PP
I 1846 samler kunstneren Edward Lear de vers,
han har skrevet til fornøjelse for greven af Derbys børnebørn.
.[
emile poetry of nonsense
%P 2
.]
Denne samling bliver i 1861 til \fIA Book of Nonsense\fP,
.[
lear book of nonsense
.]
som markerer nonsenslitteraturens begyndelse.

som producerer denne pdf som output.

Makroer og deres fordele

Ren groff-syntaks er ikke så elegant at skrive i. Der findes derfor en række forskellige makro-pakker som simplificerer syntaksen (eksemplet ovenfor bruger ms-makropakken) sådan at operationer, der ofte udføres, er simplere. I eksemplet bruges makroerne .NH og .NH 2 til at formatere overskrifter i forskellige niveauer, mens .PP bruges til at lave en paragraf, hvor første linje indrykkes. Makroer sikrer, at man ikke behøver at skulle rode med et eller andet variabel-fikumdik til at sørge for at hver overskrifts nummer øges med 1 for hver ny overskrift – alt dette er defineret i makroerne. Fordelen ved denne tilgang er, at man altid kan interagere med det mere komplekse lag under makroerne – den rene groff-syntaks – for at løse nye problemer, der ikke findes prædefinerede løsninger på, på samme tid med at den almindelige syntaks forbliver meget simpel.

I praksis betyder dette, at groff kan håndtere alle dine layout-behov uanset om den funktion, du ønsker, er implementeret, eller ej.

Unix-filosofien og hvordan den hjælper dig

Unix-filosofien handler (bl.a.) om at et program kun skal gøre én ting (og gøre den éne ting godt) for at programmet kan fungerer i samspil med andre programmer (læs også mit andet blogindlæg om unix-filosofien, hvis det interesserer). Groff gør kun én ting: groff konverterer tekstinput til et dokument. Det betyder, at du kan bruge hvilket som helst program til at skabe inputfilen – du kan endda bruge Microsoft Word, hvis du er masochistisk anlagt.

En af fordelene ved denne tilgang over Words fully-featured-tilgang er, at du ikke er låst fast i et bestemt workflow. Ift. mit eget workflow, er jeg en ivrig Vim-bruger. Med et tekstbehandlingsprogram som Vim, som kan udføre komplekse tekstoperationer med meget få tast, sparer du timer, når du redigerer længere dokumenter.

Fordi det er lettere at vise, hvad Vim kan, end at fortælle det, har jeg optaget en hurtig video, for at demonstrere nogle af Vims funktioner. På intet tidspunkt (bortset fra i min browser) behøver jeg at rykke hånden over til musen. Med Vim kan jeg gøre alt fra tastaturet. Og er der noget, Vim ikke lige kan (eller bør) klare, åbner jeg blot Vims indbyggede terminal og får et andet program til at gøre det.

.docx og tvungen inkompatibilitet

Arbejder du sammen med andre, er det utroligt praktisk, at have alt i et simpelt tekstformat; alle kan åbne en tekstfil. Med Word må du bruge lorteformatet .docx, som er tvungent inkompatibelt med alle andre programmer end Word. Forsøger du at åbne dokumentet med et andet office-program som Google Docs, ender du i et eller andet formateringshelvede, hvor alle overskrifterne pludseligt er grønne og teksten er kinesisk. Dette er ikke nogen fejl i .docx-formatet, det er fuldstændigt tiltænkt. Hvis alle bruger et dokumentformat, der kun er ordentligt kompatibelt med Microsofts software, bliver alle nødt til at bruge Microsofts software. Microsoft har selvfølgelig ingen interesse i at brugerne rykker til andre systemer end deres. Er .docx ikke længere det mest udbredte format, taber Microsoft de månedlige licenser, som alle institutionerne betaler for at få lov til at gøre brug af deres software. Microsofts succes med office-pakken subsidieres praktisk talt af staten: skolerne lærer børnene at bruge den, og så kan de bruge resten af livet på at finansiere skolernes dyre licenser gennem skatten.

Office-pakker gør folk dumme

Microsoft Word har en masse funktioner, som den almindelige bruger slet ikke ved hvordan man bruger. Hvor mange Wordbrugere kan finde ud af at lave en automatisk indholdsfortegnelse? Hvad med automatiske referencer? Hvad med forskellige sidehoveder på ulige og lige sider? Fordi Word er designet til at være idiotsikkert, kan ingen finde ud af at bruge det effektivt. Fordelen ved mere avancerede programmer (som kun er avanceret på en meget overfladisk måde – egentlig er de langt mindre avancerede end dén sorte boks, Word er) er, at de tvinger dig til at forstå, hvad du har gang i. Alle, der bruger groff, forstår dets potentiale. Alle, der bruger groff, kan udtænke måder at optimere deres workflow i næste dokument. Alle, der bruger groff, kan lære sig selv at løse nye formateringsudfordringer gennem den tilgængelige dokumentation.

Andre fordele ved groff

Jeg er for doven til at udpensle fordelene yderligere, så her vil jeg citere fra manualen til groff:

Although WYSIWYG systems may be easier to use, they have a number of disadvantages compared to troff:

“GUIs normally make it simple to accomplish simple actions and impossible to accomplish complex actions.”

–Doug Gwyn (22/Jun/91 in comp.unix.wizards)

Groff-alternativer

I indlægget her, har jeg forsøgt ikke at forklare hvorfor groff er bedre end Word, men hvorfor groffs tilgang er bedre end Words. I virkeligheden er groff et lidt underligt dyr med nogle idiosynkrasier, jeg kun holder ud fordi på grund af min software-radikalisme. For det første er der meget lidt hjælp at hente med groff; dokumentationen er meget knap og skrevet i et mindre end tilgængeligt sprog. For det andet er det et meget gammelt system. Groff stammer fra troff, som stammer fra Runoff, som er et program fra midten af 60’erne. Dette betyder bl.a. at groff ikke af sig selv kan lave en indholdsfortegnelse i begyndelsen af et dokument (i stedet må du bruge pdfroff, som er væsentligt langsommere). Manualen har følgende at sige om dette:

Printing the table of contents at the end is necessary since groff is a singlepass text formatter, thus it cannot determine the page number of each section until that section has actually been set and printed. Since ms output is intended for hardcopy, you can manually relocate the pages containing the table of contents between the cover page and the body text after printing.

Et andet problem med groff er, at det har begrænset unicode-support. Dette betyder bl.a. at man skal bruge en ekstra preprocessor, preconf, til at lave symboler som æ, ø og å.

Gider man ikke nørkle med disse begrænsninger, kan man dog bruge en af de andre troff-implementationer som neatroff, der forsøger at løse problemerne med groff.

Der findes også andre programmer end groff, der arbejder med tekstinput på lignende måde. I dag bruger alle, der ved, hvad de laver, LaTeX til at skrive dokumenter. LaTeX er et opmærkningssprog ligesom groff og har den fordel over groff, at der rent faktisk er folk, der bruger det. Dette betyder, at det er meget lettere at finde hjælp og ressourcer online.

Foreløbigt vil jeg holde mig til groff og dets varianter i det omfang, jeg får lov at arbejde med et ordentligt format (mange lærere kræver aflevering i .docx, hvilket bogstaveligt talt er tyranni på linje med (hvis ikke værre end) gulaggerne). Groff, trods alle dets finurligheder, har de fordele over LaTeX, at det er et mindre program, det er bedre til at følge Unix-filosofien, hurtigere til at compile dokumenter, har en simplere / kortere syntaks og et mindre overbrugt standardlayout.