Kako s prosto programsko opremo izdelamo zahtevnejšo knjigo? Aleš Košir, Lugos Povzetek Izdelava knjige v slovenščini je preskus, koliko je današnja prosta programska oprema primerna za tovrstno opravilo, ki ga povrh zapletejo še posebnosti slovenskega jezika, pisav in kulturnega okolja. Predstavljena bodo orodja in prilagoditve, ki so bila pri takem projektu uporabljena, to pa so novi slogi in dodatna lokalizacija v okolju Latex, nove pisave in v urejevalnike vgrajen slovenski črkovalnik. Na kratko bodo opisane še nekatere uporabljene rešitve, kot so okolje za nadzor različic in skupinsko delo, priprava in obdelava slik, priprava stvarnega kazala knjige in izdelava matric za osvetljevanje. Opisane rešitve so s pridom uporabne že pri oblikovno kompleksnejših diplomskih nalogah in podobnih tiskanih gradivih. O čem govori prispevek? Člani društva Lugos so v zadnjih letih pripravili nekaj slovenskih knjig in si pri tem nabrali veliko dragocenih izkušenj, predvsem pa so rešili nekaj splošnih tehnoloških težav in nekaj takšnih, ki zadevajo le to jezikovno in kulturno področje. V tem prispevku se bom omejil le na rešitve, ki smo jih uporabili pri pripravi knjige Linux z namizjem KDE v prvi izdaji in pri obnovljeni izdaji. Vse so splošno uporabne tudi za druge podobne primere. Kako smo pisali knjigo? Knjigo o sistemu Linux se da kot katerokoli drugo prav gotovo napisati tudi v sistemih, ki nimajo s predmetom zanimanja nobene povezave. Ko je založba Pasadena povabila k sodelovanju bodoče soavtorje, smo se ti brez pomisleka odločili, da na svoji koži -- v tem primeru pri knjigi -- preskusimo, ali so današnja orodja v Linuxu že tako razvita, da bomo le z njimi zmogli knjigo napisati, oblikovati, jo opremiti in pripraviti za tisk. Toliko bolj smo se te metode dela držali ves čas, ker smo želeli dokazati, da je Linux kot sistem in kot skupek namenskih programov tega zmožen v celoti. Latex Zaradi izkušenj, ki smo jih pisci že imeli s sistemom za stavljenje Latex, in njegove razširjenosti, se nam je zdela naravna odločitev, da ga uporabimo za pripravo knjige. Založba je vnaprej predpisala obliko, ki se je moralo ujemati z drugimi knjigami iz zbirke, zato smo morali pripraviti poseben, založniku prilagojen slog za stavljenje in uporabiti nove pisave vrste Letter Gothic. Vsebino knjige smo razdelili na poglavja, ki so se večinoma ujemala z datotekami: poglavje ustreza ena datoteka. Ker so poglavja logične enote, je praviloma po en pisec kot skrbnik bdel nad takšno enoto. Uporabljeni paketi Glava datoteke v Latexu s seznamom najpomembnejših uporabljenih paketov je videti takole: \documentclass[a4paper]{book} \usepackage[slovene]{babel} \usepackage[latin2]{inputenc} \usepackage[T1]{fontenc} \usepackage{url} \usepackage{alltt} \usepackage{makeidx} \usepackage{graphicx} \usepackage{epsfig} \usepackage[rounded,nounderscore]{syntax} \usepackage{longtable} \usepackage{multicol} \usepackage{moreverb} \usepackage{rotating} \usepackage{doublespace} \usepackage[anne,small,bf,sf]{caption} \usepackage{array} \usepackage{palladio} \usepackage{pasadena} \usepackage{pascap} \usepackage{tocline} Ukaze za stavljenje strani smo prilagodili štirim podobnim, a v podrobnostih vendarle različnim zrcalom, ki so uporabljeni v predgovoru, kazalu, glavnem delu knjige in dodatkih, tako da smo izdatno spremenili originalne ukaze sistema Latex in jih na pravih mestih vključili v besedilo. Priprava stvarnega kazala Ukazi za pripravo stvarnega kazala so namenjeni za angleško pisanje, a vendarle omogočajo, da nekako opišemo tudi slovenske besede: \index{oznac~evalni jezik@označevalni jezik!SGML} Prvo polje do znaka @ pove mesto v vrstnem redu stvarnega kazala. Šumnike smo nadomestili z ustreznim sičnikom, ki mu je sledila ~. Za znakom @ pa sledi pravi izpis gesla z vsemi šumniki. Podgeslo SGML sledi klicaju. Če na tak način pripravimo vnose za stvarno kazalo, jih bo Makeindex skoraj pravilno vključil v stvarno kazalo. Motilo nas je le še to, da smo morali s programom Awk pripraviti kratek skript, ki je pred prvo geslo s šumnikom vrinil dodatno prazno vrstico. Skladišče in nadzor različic Pisci smo krajevno ločeni, a v dobi elektronskih komunikacij to ni bila ovira. Da bi lahko sočasno pisali in urejali knjigo, smo potrebovali skupno, vsem piscem dostopno in varno skladišče elektronskih dokumentov s podprtim sistemom verzij. Kot naravni izbor se je ponujal sistem za nadzor različic CVS; pri uporabi se je zelo dobro izkazal. Soavtorji so vselej lahko pregledovali trenutno stanje vseh besedil in jih dopolnjevali ali spreminjali. CVS zna samodejno zliti spremembe iste datoteke, če se spremembe ne prekrivajo. Če pa sta dva pisca hkrati preoblikovala isti kos besedila, je bilo treba njuni različici zliti ročno, kar je v urejevalniku Emacs mačji kašelj. Z njim je mogoče zlahka in varno upravljati različice in jih zlivati. Nekateri pisci so besedilo ustvarjali tudi na krajih brez stalne povezave v internet ali pa tam, kjer je bila zelo draga, in tudi v takih okoliščinah je urejevalnik brez težav pomagal, kolikor je bilo potrebno, datoteke pa je bilo moč urejati lokalno. Po vsaki zavedeni spremembi katerekoli datoteke v sistem CVS je ta z elektronsko pošto obvestil vse pisce o njenih podrobnostih. To je zadoščalo, da je vsak od piscev na svojem računalniku lahko stavil knjigo in jo tehnično neodvisno od drugih pripravil v končno obliko, primerno za tisk. Slike Pisci smo pripravili tudi vse zaslonske slike. Slike oken v namizju dogovorjene ločljivosti 800x600 pik smo zajeli s programom Import, ki je del paketa Imagemagick. Shranili smo jih v zapisu PNG, v besedilo pa smo jih vključili v zapisu EPS in PDF. Za pretvorbo je poskrbel program Convert. Prve slike namestitvenih zaslonov smo pridelali s programom VMWare, znotraj katerega smo pognali novo namestitev sistema Linux. Kasneje je namestitveni program distribucije Red Hat že omogočal shranjevanje zaslonskih slik kar s pritiskom tipk Shift+PrintScreen. Slike se shranijo v imenik /root/anaconda-screenshots na disku. Fotografske slike, ki so bile zajete s fotoaparatom, smo obdelovali s programom Gimp, če je šlo za zahtevnejši poseg. Za spremembo kontrasta ali svetlosti pa je zadoščal bolj preprosti Xv. Črtne slike smo izdelali s programom Xfig, z njim smo tudi z napisi opremili slike oken. Šumnike smo v napise k slikam vnesli s programom Xfig. Skladenjske diagrame smo izdelali s slogom Syntax, ki je del običajne distribucije sistema Latex. Gradnja Nastavitveno datoteko Makefile za program za gradnjo odvisnih datotek smo na novo ustvarili, saj česa podobnega do tedaj še nismo srečali. Izdelki v končnih zapisih so bili odvisni tako od datotek z besedilom, s slogi kot tudi od vključenih slik. Triki Nekaj koristnih nasvetov: * pri pisanju besedila za knjigo in v medsebojnem sporazumevanju smo uporabljali slovenski jezik z znaki po razporedu ISO-8859-2, * za pretvorbo izvornih datotek, da smo jih poslali v lektoriranje v operacijskem sistemu Windows, smo uporabili program Iconv in izhodni razpored CP1250, ki ga zna uporabiti MS Word, * pri pregledovanju pravilnosti črkovanja smo si zelo pomagali s programoma ispell in aspell, ki smo jima besedišče dopolnili z novo vpeljanimi in še neznanimi besednimi oblikami, * besedilo in slike smo na končne lege razporedili tik pred pripravo za tiskarno, celo potem, ko je bilo besedilo lektorirano, saj je bilo treba kje zaradi lepšega videza vriniti ali odstraniti kakšen košček, * razporeditev slik in tabel po straneh, kot jo je pripravil Latex, nam je ustrezala, * pripravo zrcalnega odtisa za osvetljevalno napravo smo izvedli z vključitvijo paketa: \usepackage[mirror]{crop} * strojna oprema, na kateri je besedilo nastajalo, ni bila zavidanja vredna, za pisanje v Emacsu pod namizjem Blackbox je nekoč zadoščal denimo prenosni računalnik s 75 MHz procesorjem Intel 486 in 12 MB pomnilnika, * udobno stavljenje s sistemom Latex je zahtevalo nekaj več kot le arheološki računalnik; z gigaherčnim procesorjem traja stavljenje celotne knjige na osebnem računalniku manj kot minuto, * sistem za stavljenje je izdelan tako, da smo kot izhodne izpise lahko ogledovali datoteke v enakovrednih zapisih DVI, PS ali PDF, * v tiskarno pa smo dostavili zrcalni odtis končne datoteke v postskriptnem zapisu, * četudi velja, da je postskriptni zapis zelo prenosljiv, so nas mojstri tiskarji opozorili, naj končni izdelek vseeno pozorno pregledamo, saj je lahko kakšen znak nepričakovano drugačen, * na največ tehničnih težav smo naleteli pri pripravi in uporabi novih pisav, kjer so nam nagajale ligature; nikakor jih nismo zmogli pripraviti do popolnoma enakega delovanja in videza v vseh treh podprtih izhodnih zapisih, dokler nismo pri pripravi postskriptnega zapisa v vmesnem koraku uporabili še programa Dvicopy, ki je datoteko DVI popravil; hokus-pokus s pisavami se nam je zdel bliže čaranju kot znanosti. * poskusno smo knjigo pripravili tudi za objavo v spletu, in sicer tako, da smo uporabili paket Latex2html z izbirami: latex2html -no_math -html_version 3.2,math,table,i18n -split 4 -link 5 -toc_depth 4 linux-kde.tex Spletni izdelek pa zaradi zahtevnosti obdelave vendarle ni dosegel sprejemljivega kakovostnega praga, četudi smo prijavili in odpravili nekaj napak v sistemu latex2html. Omejitve Pri delu smo naleteli na nekatere omejitve, od katerih pa so bile vse takšne narave, da bi jih z nekaj več truda lahko odpravili, tako kot smo mnoge pred tem. A ker bi tolikšno stremljenje k popolnosti za knjigo in nas pogubno, smo se odločili kdaj tudi zamižati. Oblika vsebinskega kazala, kot ga je bila zahtevala založba, je bila sicer podobna tistemu, kar smo na hitro znali pripraviti, a smo se na koncu odločili, da za prvo izdajo raje besedilo pripravimo v Framemakerju. Naslovnico je pripravil oblikovalec s programom za oblikovanje in tega se v Linuxu še danes ne bi lotili početi. Spregledali smo, da v enakokoračni pisavi izginejo vse ligature, kar smo kasneje znali odpraviti. Uporabljena orodja Seznam vseh uporabljenih orodij: * urejanje besedila: emacs, vim, ispell, aspell, etags; * priprava besedila:latex, pdflatex, makeindex, postscript; * priprava besedila za splet: latex2html; * nadzor različic: cvs, diff, ident; * dodatna orodja: awk, grep, iconv; * priprava slik: import, convert, gimp, xv, xfig. Sodelovanje Kljub tesni elektronski povezanosti piscev se je izkazalo, da so redna in osredotočena živa srečanja zelo koristna, celo nujna. Ob tem smo se naučili, da četudi delimo skupno veselje do dela v Linuxu, gojimo različne življenjske sloge, a smo se kljub temu ves čas izvrstno zabavali. Po delu Ko smo se ob pisanju utrudili, se je kdo lotil igric, denimo omrežnega spopada v igri Xblast, in kdo drug šaha prek interneta. Da pisanje ni bilo v pretihem okolju, si je avtor na istem računalniku predvajal še glasbo. Sklep Uporabljena orodja smo izdatno preskusili. Upamo, da nam je uspelo pokazati, da se jih da s pridom uporabiti za visokokakovostno pripravo zahtevnih knjig.