y="text">
<style:properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style>

To est' "tekstovyj" (simvol'nyj) stil', predpolagayushchij nabor i otobrazhenie poluzhirnym shriftom.

Teper' content.xml mozhet obrabatyvat'sya lyubym XML-instrumentom uzhe bez ispol'zovaniya OO.o. Ego mozhno preobrazovat' v HTML ili proindeksirovat', vyvesti na pechat', prosmotret' brauzerom, podderzhivayushchim XML. Proizvol'nye opredeleniya dokumentov napryamuyu poka brauzerami ne podderzhivayutsya, odnako tekst (neformatirovannyj) mozhno uzhe segodnya prosmotret', prosto otkryv content.xml v Mozilla ili drugom brauzere, podderzhivayushchem XML.


U OW est' massa nedostatkov. On (versiya 1.0) vypushchen syrovatym, on dostatochno "tyazhel" dlya slaboj tehniki, on neideal'no otdokumentirovan i lokalizovan), kotorye postepenno ispravlyayutsya. U nego est' chetyre ochen' ser'eznyh dostoinstva:

1) on svoboden, postavlyaetsya konkurentno (s sootvetstvuyushchimi cenovymi posledstviyami) i mozhet byt' ispol'zovan kak baza dlya dal'nejshih razrabotok (v tom chisle, specificheski uchebnyh);

2) on iznachal'no platformenno-nezavisim, i pol'zovanie im ne diktuet prakticheski nikakih ogranichenij na vybor operacionnoj sistemy i operacionnoj sredy. Bolee togo, navyki raboty s nim takzhe v bol'shoj stepeni perenosimy. Fakticheski, OO.o vyglyadit i upravlyaetsya odinakovo pod lyuboj standartnoj OS (razrabotchiki govoryat o podderzhke Linux i Solaris; izvestno ob ustojchivoj rabote paketa pod FreeBSD), a takzhe pod Microsoft Windows 9x/Me i Microsoft Windows NT/00/XP, est' eksperimental'nyj port (perenos) na "Makintoshi", pod MacOS X (po nekotoroj informacii, v komandu uzhe voshli predstaviteli Apple Computers);

3) on ispol'zuet v kachestve yazyka razmetki XML (ne tol'ko dlya razmechennogo teksta, no takzhe i dlya matematicheskih formul, t.e. po suti, vse ego formaty sut' prilozheniya mezhdunarodnogo standarta razmetki teksta SGML). V kachestve kodirovki ispol'zuetsya Unicode, chto pozvolyaet zabyt' pro tret'yu (posle klassicheskih "durakov i dorog") rossijskuyu problemu s raznoboem v kodovyh tablicah, ispol'zuemyh dlya predstavleniya kirillicy v raznyh sistemah,

4) v komande razrabotchikov est' rossijskie programmisty i firmy, kotorym nebezrazlichny perspektivy ego primeneniya v shkole.

1.6 Resursy

Paket OO.o vhodit vo vse "bol'shie" (mnogodiskovye universal'nye) distributivy OS Linux i vo mnogie "malen'kie" (odno-, dvuh- i trehdiskovye, isklyuchaya orientirovannye isklyuchitel'no na servernoe primenenie).

My rekomenduem obratit' vnimanie na rossijskuyu sborku OO.o, postavlyaemuyu s ALT Linux ("bol'shoj" distributiv Master 2.0 i "malen'kij" Junior 2.0; www.altlinux.ru) i ASPLinux 7.3 (v razlichnyh variantah, www.asplinux.ru). V nej ran'she, chem v osnovnoj vetke, poyavlyayutsya novye vozmozhnosti, orientirovannye na russkoyazychnogo pol'zovatelya, v to zhe vremya, zaderzhka sborok novyh versij (po otnosheniyu k osnovnoj vetvi razrabotok) minimal'na.

Mnogoplatformennaya (Linux i Microsoft Windows) rossijskaya sborka dostupna v sostave sbornika OpenOffice.ru, ego mozhno vzyat' na sajte www.openoffice.ru ili priobresti (spisok resellerov dostupen na tom zhe sajte) odnodiskovuyu korobku. O rossijskih sborkah OOO pod "Makintosh", Solaris i drugie OS nam nichego ne izvestno, i ih pol'zovatelyam mozhno porekomendovat' sledovat' po ssylkam s www.openoffice.org.

Osnovnoj russkoyazychnyj resurs, posvyashchennyj OpenOffice, -- eto tot zhe sajt www.openoffice.ru i ego satellity (vklyuchaya http://docs.openoffice.ru).

Osnovnoj mezhdunarodnyj resurs -- eto bazovyj sajt razrabotki (www.openoffice.org).

OO.o voobshche i OW v chastnosti poka osveshcheny lish' v sravnitel'no nebol'shom kolichestve publikacij. Vnimaniya zasluzhivayut [6-9].

Lekciya 2. Svobodnyj instrumentarij raboty s tekstom

Obrabotka "ploskih" (nerazmechennyh) tekstov -- odna iz pervyh (posle vychislitel'nyh zadach i upravleniya priborami) i isklyuchitel'no prorabotannaya oblast' prilozhenij komp'yutera.

Rabota s tekstami kritichna dlya mnogih pol'zovatel'skih prilozhenij. |lektronnaya pochta -- eto tekst. Formaty razmetki, posredstvom kotoryh predstavleny formatirovannyj tekst, vektornaya grafika, noty i t.p. (prakticheski vse dannye, za isklyucheniem rastrovoj grafiki i volnovogo predstavleniya zvuka) -- v osnove svoej takzhe tekst.

Dazhe kartinki i zvukovye fajly, razmeshchennye v WWW, peredayutsya nezametno dlya pol'zovatelya mezhdu mashinami v zakodirovannoj tekstom forme, hotya v dannom sluchae tekst i ne yavlyaetsya "sobstvennoj" formoj predstavleniya dannyh.

Komandy, s pomoshch'yu kotoryh pol'zovatel' "obshchaetsya" s sistemoj -- eto tekst. Skol'ko by ne populyarizovali i ne navyazyvali graficheskie interfejsy, dlya ser'eznoj i produktivnoj raboty, kak pravilo, ne obojtis' bez polnocennogo testovogo dialoga, tak zhe kak pri ser'eznom i predmetnom razgovore slozhno obojtis' zhestami i otvetnoj mimikoj.

Bolee togo, rabota s tekstom kritichna i dlya razvitiya samih vychislitel'nyh i kommunikacionnyh sistem, poskol'ku sami programmy v ishodnoj svoej forme -- teksty. Dlya programm na interpretiruemyh yazykah teksty yavlyayutsya i ispolnyaemoj formoj, tak chto takie programmy -- teksty vdvojne (a tipichnaya standartizovannaya OS pochti napolovinu sostoit iz "scenariev", t.e. programm, napisannyh na interpretiruemyh yazykah).

|ffektivnye metody i priemy raboty s tekstom -- neot容mlemaya chast' komp'yuternoj gramotnosti, no v podavlyayushchem bol'shinstve sluchaev oni okazyvayutsya ne osvoennymi vovremya. Zachastuyu v kurse srednej shkoly znakomstvo s obrabotkoj "ploskih" tekstov ogranichivaetsya vstroennymi redaktorami v srede programmirovaniya i elektronno-pochtovoj programme, a navyki -- prostejshimi priemami nabora i ispravleniya. Bolee abstraktnye i vseobshchie operacii izuchayutsya kak chast' word-processinga, i hotya inogda pri etom i demonstriruyutsya vozmozhnosti vstroennyh v word-processory yazykov programmirovaniya, oblast' obrabotki tekstov ostaetsya "veshch'yu v sebe" i nikak ne integriruetsya s drugimi oblastyami, osvaivaemymi v kurse informatiki.

2.1 Razmechennyj i "ploskij"

Vodorazdel mezhdu tekstovymi redaktorami i word-processorami, kak eto obsuzhdalos' v predydushchej lekcii, prohodit po sposobu otobrazheniya razmechennogo (imeyushchego nekotorye atributy, takie, kak cvet, nachertanie i kegl' (razmer) simvolov, vyklyuchka (vyravnivanie) i raspolozhenie abzacev, oformlenie stranicy i t.p.) teksta.

Word-processor opredelennym obrazom interpretiruet razmetku, vizualizuya ukazannye atributy.

Tekstovyj redaktor otobrazhaet tekst "kak est'", hotya on vpolne mozhet byt' "v kurse" sintaksisa yazyka razmetki (esli tekst razmechen, naprimer, XML, HTML ili TeX) ili dazhe samogo teksta (naprimer, sintaksisa yazyka programmirovaniya) i kakim-to obrazom na nego reagirovat' (naprimer, rascvechivat' tegi razmetki HTML ili zarezervirovannye slova Pascal). V principe, on mozhet byt' "v kurse" sintaksisa, grammatiki i leksiki dazhe estestvennogo yazyka, hotya dlya raboty s estestvennymi yazykami "ploskij", nerazmechennyj tekst ispol'zuetsya vse rezhe, ili, po krajnej mere, nerazmechennyj tekst vse rezhe ispol'zuetsya kak pervichnaya forma predstavleniya teksta na estestvennom yazyke.

Otkazat'sya vovse ot raboty s "ploskim" tekstom zatrudnitel'no po davno izvestnoj ergonomistam prichine: ispol'zovanie vizualizacii "pozvolyaet demonstrirovat' lish' rezul'tat formatirovaniya, po nemu nevozmozhno opredelit' zadachi formatirovaniya, postavlennye pol'zovatelem sisteme. Naprimer, esli pol'zovatel' zamechaet, chto sistema ne delaet perenosov ... nevozmozhno opredelit' ... yavlyaetsya li eto prostym sovpadeniem ili zhe pri formatirovanii dannoj glavy perenos zapreshchen" [10].

2.2 Redaktory

Kogda komp'yutery byli bol'shimi i dorogimi, rech' ob ih ispol'zovanii dlya avtomatizacii processa redaktirovaniya programm ili drugih tekstov idti ne mogla: eta zadacha reshalas' gorazdo bolee prostymi ustrojstvami.

S udeshevleniem komp'yuternoj tehniki i razrabotkoj mnogopol'zovatel'skih sistem poyavilas' vozmozhnost' posadit' operatora za podklyuchennyj k mashine teletajp. Dlya udobstva operatorov (chasto imi okazyvalis' sami programmisty) razrabatyvalis' programmy redaktirovaniya tekstov (ili, poprostu, tekstovye redaktory), kak pravilo, vyvodivshie tekst postrochno i ozhidavshie klaviaturnoj komandy (zachastuyu na osobom izoshchrennom yazyke), soobshchayushchej, sleduet li ostavit' stroku neizmennoj, libo vnesti v nee kakie-to izmeneniya.

Sleduyushchij shag byl sdelan, kogda teletajp v kachestve terminal'nogo ustrojstva smenil displej s |LT. |to prevratilo tekst pered glazami operatora v dinamicheskij i pozvolilo sovershit' revolyuciyu, vnedriv nak nazyvaemye "polnoekrannye" (ili prosto "ekrannye") redaktory, vzaimodejstvuya s kotorymi, operator poluchil vozmozhnost', hotya i manipuliruya klaviaturoj, primenyat' tehniku, skoree pohozhuyu na priemy raboty s listom bumagi pisatelya, vozvrashchayushchegosya k ranee napisannomu, stirayushchego i ispravlyayushchego tekst nelinejno (predstaviteli nekotoryh shkol v informatike do sih por schitayut, chto eto negativno povliyalo na stil' programmirovaniya).

2.3 Vi i Emacs

Interesno, chto dva, po-vidimomu, pervyh ekrannyh redaktora, sozdannyh v nachale semidesyatyh, i yavilis' rodonachal'nikami "semejstv" takih programm, do sih por naibolee populyarnyh v professional'noj srede. |to vi Billa Dzhoya (togda aspiranta Universiteta Kalifornii v Berkli, a zatem osnovatelya Sun Microsystems) i Emacs Richarda Stollmena (togda sotrudnika Laboratorii iskusstvennogo intellekta Massachussetskogo tehnologicheskogo instituta, a nyne -- prezidenta Fonda svobodnogo programmnogo obespecheniya i lidera proekta GNU). Oba oni, po suti, proishodyat ot ekrannyh rezhimov raboty populyarnyh togda redaktorov ed i TECO, sootvetstvenno.

Milaya Lena!
Ty ne otkazhesh'sya pouzhinat' so mnoj v noch' s pyatnicy na voskresen'e?
- Maksim
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
-- INSERT -- 3,1 All

Redaktor vi

Pervyj nyne standartizovan i, v toj ili inoj realizacii (naibolee populyarna, vidimo, vim Brama Moolenaara) dostupen v sostave lyuboj standartnoj operacionnoj sistemy (v tom chisle, svobodnyh). Vtoroj pod nazvaniem GNU Emacs podderzhivaetsya Fondom svobodnogo PO (www.fsf.org) i vyderzhal s teh por bolee dvadcati izdanij (relizov).

Ishodnaya ideologiya i ergonomicheskaya model' etih dvuh vydayushchihsya razrabotok ser'ezno razlichaetsya, chto sluzhit povodom dlya shutlivoj "svyashchennoj vojny" mezhdu ih priverzhencami. Vi(m) otnositsya k tak nazyvaemym "mnogorezhimnym" redaktoram. V rezhime redaktirovaniya operator vvodit i ispravlyaet tekst. Peremeshchenie po tekstu, kontekstnyj poisk i zamena, bolee slozhnye operacii vypolnyayutsya v komandnom rezhime. Mezhdu etimi rezhimami (a takzhe, unasledovannym ot ed i redko primenyayushchimsya rezhimom postrochnogo redaktirovaniya) nuzhno yavnoe pereklyuchenie nazhatiem klaviaturnoj kombinacii. Zato bol'shinstvo komand privyazany k nazhatiyam odnoj klavishi, i dazhe peremeshchat'sya po tekstu v komandnom rezhime mozhno, ne sbrasyvaya kist' na dopolnitel'nuyu klaviaturu so strelkami, a nazhimaya alfavitnye klavishi v centre klaviatury. Adepty vi -- programmisty i sistemnye administratory -- ochen' ser'ezno otnosyatsya k ekonomii vremeni i energii za schet minimizacii dvizheniya pal'cev.

Emacs -- primer "bezrezhimnogo" ili, esli ugodno, "odnorezhimnogo" redaktora: pol'zovatel' vsegda nahoditsya v rezhime neposredstvennogo redaktirovaniya teksta v tochke kursora, a komandy izdaet, nazhimaya slozhnye sochetaniya klavish i, pri neobhodimosti, vvodya parametry komand v otdel'nom okne. Iz-za stremleniya obespechit' pryamuyu klaviaturnuyu privyazku kak mozhno bol'shemu kolichestvu komand i sleduyushchej iz nee slozhnosti ispol'zuemyh klaviaturnyh sochetanij byl dazhe pushchen sluh o tom, chto Emacs rasshifrovyvaetsya kak "Esc-Meta-Alt-Ctrl-Shift" (hotya na dele, konechno, klaviaturnye akkordy vse zhe ne tak slozhny, a Emacs -- eto prosto Editing MACroS, t.e. "makrokomandy redaktirovaniya").

V dejstvitel'nosti razlichie eto skoree ideologicheskoe, chem pragmaticheskoe: v sovremennyh versiyah vi v bol'shinstve sluchaev takzhe mozhno osushchestvit' privyazku chasto upotreblyaemyh komand k klaviaturnym kombinaciyam i vypolnyat' ih iz rezhima redaktirovaniya, a v Emacs mozhno dostatochno tochno (esli komu-to eto potrebuetsya) symitirovat' komandnyj rezhim, harakternyj dlya mnogorezhimnyh redaktorov.

2.4 Didaktika redaktorov

Real'noe ochen' znachimoe otlichie zaklyuchaetsya v tom, chto po svoej arhitekture vi -- bolee ili menee monolitnaya programma (s vytekayushchej otsyuda kompaktnost'yu), a Emacs -- na samom dele, rasshiryaemaya (programmiruemaya) kollekciya makrokomand redaktirovaniya, napisannyh na Emasc Lisp (dialekte izvestnogo yazyka funkcional'nogo programmirovaniya). Lish' nebol'shoe kolichestvo chasto vypolnyaemyh i trebovatel'nyh k resursam komand vstroeny v samu programmu i napisany na kompiliruemom C, bol'shinstvo zhe komand napisany na Lisp i mogut izmenyat'sya ili dopolnyat'sya pol'zovatelyami (ili professional'nymi programmistami po zakazu pol'zovatelej).

Za chetvert' veka sushchestvovaniya Emacs, blagodarya svobodnoj modeli licenzirovaniya i otkrytoj modeli razrabotki, "obros" neveroyatnym kolichestvom makrokomand, "zatachivayushchih" ego pod sintakcicheskie osobennosti razlichnyh formal'nyh yazykov (vklyuchaya, no ne ogranichivayas' yazykami programmirovaniya i yazykami razmetki), a takzhe realizuyushchih prilozheniya, tradicionno slabo associiruemye s "prosto redaktorami". Naprimer, ne vyhodya iz Emacs, mozhno rabotat' s elektronnoj pochtoj i sluzhbami novostej USENET (a takzhe s gipertekstom so stranichek WWW).

Ili -- chto ne menee interesno -- ne vyhodya iz Emacs, mozhno prognat' tekst programmy cherez kompilyator i podsvetit' sintaksicheskie oshibki ili preduprezhdeniya, vospol'zovat'sya simvol'nym otladchikom ili profilirovshchikom (real'no, Emacs obrazuet obolochku integrirovannoj sredy razrabotki programm, i v etom kachestve yavlyaetsya vdohnovitelem i predshestvennikom stol' lyubimyh shkol'nym narodom integrirovannyh sred, naprimer, ot Borland). I eto lish' para primerov.

Fakticheski, regulyarno ispol'zuemyj Emacs pozvolyaet realizovat' (chisto v tekstovom rezhime) metaforu "rabochego stola", bolee izvestnuyu po pozdnejshim graficheskim paketam. On realizuet mnozhestvennost' okon (neperekryvayushchihsya) na odnom ekrane ("frejme"), a v graficheskoj srede sposoben rabotat' so mnogimi "frejmami" (oknami v terminah menedzhera okon). Paket Emacspeak dobavlyaet k funkcional'nosti Emacs rechevoj vyvod, predostavlyaya moshchnuyu podderzhku dlya nezryachih i slabovidyashchih pol'zovatelej.

Vse eto (dostupnost', rasshiryaemost', integriruemost') delaet ego ser'eznym pretendentom na organizaciyu "uchebnogo" rabochego prostranstva programmista .

Nam neizvestny takie (orientirovannye na sredu na osnove Emacs) kursy dlya shkol voobshche. A chto kasaetsya Rossii (i russkoyazychnogo soobshchestva), to nam neizvestny primery shkol'nyh kursov, vvodyashchih na dostatochno rannem etape idei funkcional'nogo programmirovaniya (esli oni vse zhe est', nam bylo by krajne interesno uslyshat' o nih). A bez poslednego -- uvy -- rasshiryaemost' Emacs ostaetsya chisto teoreticheskoj.

Odnako v kachestve integrirovannoj sredy imenno dlya programmirovaniya (v tom chisle, na obychno izuchaemyh v shkole direktivnyh (sentencional'nyh) yazykah, naprimer, Pascal) Emacs ispol'zovat', bezuslovno, mozhno. Sleduet tol'ko uchest', chto preslovutaya "krivaya obucheniya" dlya nego gorazdo bolee vognutaya, chem dlya bolee prostyh (no i menee moshchnyh) sredstv redaktirovaniya, obychno ispol'zuemyh v podobnogo roda sredah. Grubo govorya, mozhet potrebovat'sya para zanyatij do togo, kak uchashchijsya budet chuvstvovat' sebya uverenno pri nabore i redaktirovanii programm, zato potom eti zadachi budut reshat'sya gorazdo effektivnee4.

Pochemu v obychnyh uchebnyh kursah vi izuchaetsya ran'she Emacs? Delo v tom, chto vi, vo-pervyh, standartizovan (i dostupen vo vseh bez isklyucheniya otkrytyh sistemah), a vo-vtoryh, kompakten. Administrator sistemy mozhet okazat'sya v srede, gde emu iz ekrannyh redaktorov dostupen tol'ko vi. Poetomu dlya sisadminov bazovye navyki raboty s nim obyazatel'ny (vne zavisimosti ot lichnyh predpochtenij).

V uchebnoj obstanovke, ne orientirovannoj na professional'nuyu podgotovku, takogo imperativa, polagaem, net, poetomu metodisty i prepodavateli vol'ny vybrat' naibolee adekvatnyj instrument dlya demonstracii vozmozhnostej tekstovyh redaktorov, esli zadacha sostoit tol'ko v znakomstve uchashchegosya s takovymi.

2.5 Redaktirovanie "bez redaktorov"

Daleko ne vsegda otkryvat' fajl i redaktirovat' ego vruchnuyu yavlyaetsya optimal'nym sposobom raboty s soderzhashchimsya v nem tekstom. CHem bolee formalizovan tekst, i chem bolee tipovym yavlyaetsya redaktirovanie, kotoroe neobhodimo vypolnit', tem bol'she shansov, chto sushchestvuet sposob "maloj krov'yu" optimizirovat' etot process.

Rassmotrim ochen' formal'nuyu zadachu. Dopustim, v fajle note sohranen tekst zapiski:

Milaya Lena!
Ty ne otkazhesh'sya pouzhinat' so mnoj v noch' s pyatnicy na voskresen'e?
- Maksim

Esli zhizn' poshla po diagonali, i plany rezko izmenilis' (i my otdaem sebe otchet, kak imenno), mozhno otkryt' fajl s etim tekstom v tekstovom redaktore, naprimer, vi, i izdat' komandu:

:s/Lena/Ira/g

Tekst (predskazuemo) priobretet vid:

Milaya Ira!
Ty ne otkazhesh'sya pouzhinat' so mnoj v noch' s pyatnicy na voskresen'e?
- Maksim

Odnako, to zhe samoe dejstvie mozhno vypolnit' i "bez redaktora", a tochnee, bez interaktivnogo redaktora, s pomoshch'yu redaktora potokovogo. Standartnyj potokovyj redaktor nazyvaetsya sed, i sintakis ego komand shozh s sintaksisom komandnogo rezhima standartnogo interaktivnogo redaktora vi, komanda pri etom izdaetsya neposredstvenno iz komandnoj stroki:

$sed -n 's/Lena/Tanya/g' note

Esli u nas podgotovlen ne odin fajl, a mnozhestvo (naprimer, note.1, note.2, note.3), i nuzhno vnesti v nih edinoobraznye zameny (i nichego ne propustit', i nigde ne oshibit'sya), my obojdemsya takzhe vsego odnoj komandoj.

$sed -n 's/Lena/Vera/g' note.*

Esli fajlov budet tysyacha, a trebuemye izmeneniya budut poslozhnee, nam, skoree vsego, ponadobitsya opyat'-taki vsego odna komanda (hotya, vozmozhno, i potrebuetsya ser'eznoe izuchenie sintaksisa). |to nazyvaetsya potokovym redaktirovaniem, i ono intensivno primenyaetsya, naprimer, dlya nalozheniya "zaplatok" na ishodnye teksty programm (odnako, kak bylo prodemonstrirovano, mozhet ispol'zovat'sya i dlya obrabotki teksta na estestvennom yazyke).

2.6 Avtomatizirovannaya obrabotka tekstov

UNIX byl vo mnogom "rozhden dlya obrabotki tekstov" (prezhde vsego, eto byla sistema dlya programmistov, a programmy -- s chego my nachali segodnyashnyuyu lekciyu -- eto teksty). Nabor sluzhebnyh programm (utilit) sovremennyh standartnyh OS prodolzhaet etu tradiciyu, i v ih sostave mozhno najti desyatki programm, orientirovannyh na rabotu s tekstom. Mnogie iz nih (no ne vse) yavlyayutsya postrochno-orientirovannymi, to est' tekst ponimaetsya kak posledovatel'nost' strok. Podrobnoe obsuzhdenie etih vozmozhnostej sm. v "lekcii" 6 "Stroka dlinoyu v zhizn'".

2.7 Resursy

Distributiv lyuboj sovremennoj standartnoj OS (vklyuchaya svobodnye) soderzhit vse upomyanutye programmy. Mnogie iz nih portirovany (pereneseny) i v al'ternativnye OS.

Dlya Microsoft Windows rekomenduetsya ustanovka paketa Cygwin, soderzhashchego utility GNU (vklyuchaya prednaznachennye dlya raboty s tekstom) i nekotorye drugie programmy (vklyuchaya redaktor vim), pozvolyayushchie organizovat' standartnuyu rabochuyu sredu. Sleduet uchest', chto pri rabote v versiyah MS Windows, osnovannyh na MS-DOS (MS Windows 95/98/Me), u mnogih programm voznikayut slozhnosti iz-za otsutstviya kontrolya za pravami dostupa k fajlam i katalogam (versii, osnovannye na NT -- MS Windows NT/00/XP, lisheny etogo nedostatka), a takzhe to, chto lokalizovannaya dlya russkoj sredy sborka Cygwin v nastoyashchee vremya ne postavlyaetsya. Dlya podderzhki kirillicheskih simvolov neobhodimo v kataloge pol'zovatelya sozdat' fajl s imenem ".inputrc", soderzhashchij stroki:

set meta-flag on
set convert-meta off
set output-meta on

Al'ternativoj Cygwin (po ryadu prichin menee predpochtitel'noj) yavlyaetsya ispol'zovanie sistemy Interix UNIX Tools for Windows, takzhe soderzhashchej utility GNU (ee mozhno priobresti cherez Microsoft na diske libo skachat' s ih sajta).

GNU Emacs dlya MS Windows mozhno skachat' s sajta GNU (www.gnu.org).

Horoshee opisanie standartnyh utilit (v tom chisle, dlya raboty s tekstom) soderzhitsya v nedavno perevedennoj knige [11], da i pochti v lyubom tolstom uchebnike, rukovodstve ili spravochnike po Unix ili Linux. Ser'eznyh otlichij pri ih ispol'zovanii v kontekste drugih OS net.
To zhe otnositsya i k interaktivnym redaktoram. Krome togo, v 1999 g. izdan russkij perevod shestisotstranichnogo Rukovodstva po GNU Emacs [12], ego tekst mozhno najti i na sajte GNU (www.gnu.org); kak i sam Emacs, eta kniga svobodna.

Lekciya 3. OpenDraw -- svobodnyj redaktor vektornoj grafiki


Komp'yuternaya grafika, chut' bolee desyati let nazad byvshaya esli ne ekzoticheskim, to dovol'no special'nym prilozheniem komp'yutera, segodnya povsemestna.

Vsyakij, vpervye stalkivayushchijsya s komp'yuterom, uzhe v samom nachale obucheniya (esli kurs special'no ne postroen tak, chtoby ogranichit'sya na pervyh porah programmami s tekstovym ili psevdograficheskim interfejsom), skoree vsego, vstretitsya s graficheskim terminalom, otobrazhayushchim razlichnye graficheskie elementy (vklyuchaya i tekstovuyu informaciyu, takzhe otobrazhayushchuyusya v graficheskom rezhime sredstvami komp'yuternoj grafiki).

|lementarnaya obrabotka (sozdanie i redaktirovanie) izobrazhenij (kak vektornyh, tak i rastrovyh) vhodyat v chislo prilozhenij, perechislennyh v "Obyazatel'nom minimume soderzhaniya obrazovaniya po informatike" [1] v kachestve obyazatel'nyh k osvoeniyu v kurse srednej shkoly.

Predmetnost' obucheniya predpolagaet, chto uchashchijsya "uznaet" v sozdavaemyh ili redaktiruemyh im kartinkah pri izuchenii obrabotki izobrazhenij podobie uzhe znakomyh emu elementov graficheskih interfejsov. CHtoby eto schastlivoe uznavanie proizoshlo, predstavlyaetsya celesoobraznym vklyuchit' nekotorye pervonachal'nye svedeniya o komp'yuternoj grafiki uzhe vo vvedenie v predmet, kotorym nachinaetsya ego izuchenie. K sozhaleniyu, ne vse uchebniki eto realizuyut, poetomu prepodavatelyu mogut potrebovat'sya nekotorye dopolnitel'nye usiliya, no, na samom dele, nebol'shie, poskol'ku naglyadnyj material "pod rukoj" v lyubom komp'yuternom klasse.

3.1 Vektornoe i rastrovoe kodirovanie izobrazhenij

Sposoby kodirovaniya graficheskih dannyh delyatsya na dve kategorii: rastrovyj (tochki ravnomerno razmechennogo pryamougol'nika) i vektornyj (opisaniya linij i figur, sostavlyayushchih izobrazhenie).

Naprimer, rastrovoe izobrazhenie okruzhnosti mozhet byt' takim: "zapolnyaem kvadrat 5h5: belaya tochka (B), chernaya tochka (CH), CH, CH, B, CH, B, B, B, CH, CH, B, B, B, CH, CH, B, B, B, CH, B, CH, CH, CH, B". (Bolee umnye "formaty so szhatiem", vozmozhno, pozvolyat sokratit' zapis' do chego-nibud', podobnogo: "zapolnyaem kvadrat 5h5: B, 3CH, B, 3(CH, 3B, CH), B, 3CH, B", a to i eshche bolee kompaktno, no sut' ne v etom).

Vektornoe ee izobrazhenie sovsem drugoe: "chernaya okruzhnost' s centrom v (3,3), radiusom 2 i tolshchinoj linii 1".

Vazhno ponimat', chto bol'shinstvo komp'yuternyh graficheskih ustrojstv segodnya -- i terminaly, i skanery, i printery -- po svoej prirode rastrovye. Isklyuchenie sostavlyayut tol'ko grafopostroiteli (ploterry) i redko dostupnye v uchebnyh usloviyah ih promyshlennye "kuzeny" (takie, kak frezernyj stanok s chislovym upravleniem).

Sootvetstvenno, izobrazhenie, vne zavisimosti ot ego sobstvennoj prirody (vektornoj ili rastrovoj), budet pri otobrazhenii preobrazovano v rastr i dostupno chelovecheskim chuvstvam v rastrovoj forme (dazhe esli rastr pochti nezameten, kak na displeyah s vysokim razresheniem, ili voobshche imeet setku nizhe poroga vospriyatiya, kak pri pechati na kachestvennyh strujnyh ili lazernyh printerah). I ukazannye dva sposoba vpolne mogut privesti k neotlichimomu rezul'tatu.

3.2 Primenenie vektornoj i rastrovoj grafiki

Raznica mozhet proyavit'sya togda, kogda my nachnem obrabatyvat' elementy izobrazheniya.

Vektornoe izobrazhenie mozhet bez ushcherba masshtabirovat'sya (uvelichivat'sya ili umen'shat'sya), prichem eta operaciya obratima. V privedennom primere my mozhem bez truda uvelichit' vektornuyu okruzhnost' v pyat' raz: "chernaya okruzhnost' s centrom v (15,15), radiusom 10 i tolshchinoj linii 5", i ona ostanetsya okruzhnost'yu.

A vot, rastrovoe izobrazhenie pri uvelichenii obnaruzhit lish' svoj rastr v uvelichennom vide (i na okruzhnost' nash primer pohozh uzhe budet malo). Bolee togo, operaciya umen'sheniya (ili uvelicheniya v neceloe chislo raz) rastrovogo izobrazheniya uzhe ne yavlyaetsya obratimoj: informaciya pri osushchestvlenii takoj operacii bezvozvratno teryaetsya.

Krome togo, vektornoe izobrazhenie, soderzhashchee bolee odnogo elementa (naprimer, izobrazhenie dvuh peresekayushchihsya okruzhnostej), mozhet byt' raz座ato na elementy bez kakih-libo poter'. S rastrovym izobrazheniem takoe, v obshchem sluchae, nevozmozhno: programma "ne znaet" ob elementah izobrazheniya i o prinadlezhnosti teh ili inyh tochek otdel'nym elementam.

V obshchem sluchae, vektornoe kodirovanie horosho podhodit dlya raboty s chertezhami, shemami, kartami, diagrammami, grafikami i t.p., a rastrovoe -- dlya obrabotki fotografij i risunkov. Vektornoe izobrazhenie mozhet byt' bez ushcherba vospriyatiya preobrazovano v rastr, v to vremya, kak obratnoe preobrazovanie v obshchem sluchae problematichno (hotya est' programmy, pozvolyayushchie s toj ili inoj tochnost'yu raspoznavat' graficheskie obrazy). Vektornoe kodirovanie chasto kompaktnee rastrovogo, no ego otobrazhenie trebuet bol'shih vychislitel'nyh resursov5.

Primer, kotoryj vsegda pered glazami pol'zovatelya komp'yutera -- shrifty. Kogda tochno izvesten masshtab, v kotorom budet otobrazhat'sya tekst, chasto ispol'zuyutsya rastrovye ("fiksirovannye") shrifty, predstavlyayushchie soboj nabor rastrovyh izobrazhenij otdel'nyh bukv i drugih simvolov ispol'zuemogo alfavita (naprimer, rastrovye shrifty ispol'zuyutsya videokartoj, rabotayushchej v tekstovom rezhime, no takzhe chasto i kak element graficheskogo interfejsa). Ih primenenie pozvolyaet otobrazhat' simvoly s nedostizhimoj inym sposobom chetkost'yu, no, esli nuzhny bolee odnogo razmera shrifta, potrebuetsya trudoemkaya rabota po razrabotke neskol'kih takih shriftov.

Kogda neobhodimo svobodnoe masshtabirovanie shriftov, ispol'zuyutsya vektornye shrifty (na samom dele, bol'shinstvo masshtabiruemyh shriftov -- eto biblioteki programm, "risuyushchih" sootvetstvuyushchie bukvy, chasto - s uchetom vazhnosti ih otdel'nyh elementov dlya vospriyatiya; no raznica v dannom sluchae nesushchestvenna). Kachestvo otobrazheniya melkogo keglya ili na ekrane s nizkoj razreshayushchej sposobnost'yu u nih nizhe, no oni universal'nee.

Prochie elementy graficheskih pol'zovatel'skih interfejsov takzhe ispol'zuyut kak vektornuyu (bol'shinstvo organov upravleniya i bol'shinstvo elementov oformleniya okon), tak i rastrovuyu (piktogrammy-"znachki") grafiku.

3.3 Svobodnye programmy dlya raboty s vektornoj grafikoj

Iz mnozhestva svobodnyh programm, prednaznachennyh dlya redaktirovaniya vektorno-graficheskih fajlov, razumnye potrebnosti bol'shinstva uchebnyh kursov mozhet udovletvorit' lyubaya iz sleduyushchih:

i, nakonec,

Rekomenduetsya pri vozmozhnosti hotya by vkratce oznakomit'sya s kazhdoj iz nih, chtoby ponyat', kakaya luchshe podhodit dlya konkretnogo uchebnogo kursa. V etoj lekcii dalee budet obsuzhdat'sya OpenDraw, ishodya iz preimushchestv, uzhe opisannyh v "Lekcii" 1, posvyashchennoj drugomu komponentu togo zhe paketa -- word-processoru OpenWriter, no eto ne v koej mere ne oznachaet neprigodnost' dlya uchebnyh celej prochego iz perechislennogo.

3.4 Obshchie harakteristiki OpenDraw

Kak i ostal'nye komponenty paketa OO.o, OpenDraw ispol'zuet v kachestve "rodnogo" formata special'no razrabotannoe XML-prilozhenie (ob XML i o tom, pochemu orientaciya na etot stremitel'no nabirayushchij populyarnost' format dannyh vazhna pri vybore uchebnyh programm, sm. materialy "Lekcii" 1).

|tot paket dostupen dlya populyarnyh standarnyh (Linux, Solaris) i nestandartnyh (Microsoft Windows, MacOS) operacionnyh sistem i prilichno (hotya i ne ideal'no) lokalizovan.

Samym zhe sushchestvennym nedostatkom OpenDraw yavlyayutsya otnositel'no vysokie trebovaniya k apparatnym resursam, poetomu ego ispol'zovanie zatrudnitel'no na staryh ili malomoshchnyh komp'yuterah (dlya komfortnoj raboty nad neslozhnymi uchebnymi uprazhneniyami dolzhno byt' dostatochno Intel P-II, Celeron ili K6-2 s chastotoj ot 500 MGc ili G3 s chastotoj ot 350 MGc pri pamyati ot 64 MB). Esli nuzhna demonstraciya vektorno-graficheskih vozmozhnostej na takih komp'yuterah, my rekomenduem sodipodi ili eshche bolee "legkuyu" XFig.

Sohranenie v "chuzhih" vektornyh formatah (eksport) na segodnya realizovano tol'ko dlya rannih versij predshestvennika OpenOffice.org paketa StarOffice (i StarDraw kak otdel'noj programmy). Zato import (chtenie "chuzhih" formatov) vozmozhen ne tol'ko iz universal'nyh vektornyh formatov, no i iz DXF, ispol'zuemogo v populyarnyh sistemah avtomatizirovannogo proektirovaniya (SAPR).

OpenDraw takzhe pozvolyaet eksportirovat' risunok vo mnogie rastrovye formaty ili v gipertekstovuyu stranicu.

Sleduet ponimat', chto StarDraw, na osnove kotorogo razrabotana programma, zadumyvalas' kak "ofisnyj" graficheskij redaktor, prezhde vsego prednaznachennyj dlya sozdaniya i redaktirovaniya graficheskih elementov oformleniya dokumentooborota (soprovozhdayushchih dokumenty risunkov, kart, diagramm, grafikov i pr.). Poetomu dejstviya, tipichnye dlya takoj raboty, maksimal'no oblegcheny i "vyneseny na pervyj plan", i OpenDraw soderzhit massu gotovyh detalej, shiroko upotrebimyh v "ofisnoj" grafike (naprimer, gotovyh strelok i mnozhestva soedinitel'nyh linij, chasto ispol'zuemyh v takih sluchayah). Dlya tehnicheskogo chercheniya i shemotehniki OpenDraw ne prisposoblena (hotya pri sluchae v nej mozhno sozdat' prostoj chertezh ili elektronnuyu shemu).

Dokument OpenDraw nazyvaetsya "risunkom", chto neskol'ko dezorientiruet, poskol'ku na samom dele on mozhet soderzhat' celuyu "pachku" otdel'nyh izobrazhenij, nazyvaemyh slajdami. Kazhdyj slajd, v svoyu ochered', mozhet soderzhat' odin ili bolee sloev .

Risunok sohranyaetsya v fajle, kotoryj tehnicheski predstavlyaet soboj PKZip-arhiv, vklyuchayushchij stilevye opredeleniya i sobstvenno soderzhanie dokumenta na yazyke XML. Kakoj-libo instrumentarij, special'no prednaznachennyj dlya obrabotki OpenDraw XML, nam ne izvesten.

Kak i ostal'nye komponenty OpenOffice.org, OpenDraw v vysshej stepeni konfiguriruemaya i nastraivaemaya pod konkretnoe primenenie programma. Dlya ispol'zovaniya v uchebnom kontekste mozhet okazat'sya poleznym predvaritel'no nastroit' ee dlya nekotorogo sokrashcheniya obiliya neposredstvenno dostupnyh pol'zovatelyu funkcij, chtoby uchenik v nih ne zateryalsya.

3.5 Osnovnye vozmozhnosti OpenDraw

Funkcional'nost' OpenDraw sopostavima s bol'shinstvom drugih redaktorov vektornoj grafiki i vklyuchaet:

Preobrazovanie ob容ktov vklyuchaet:

Bol'shinstvo opisannyh operacij preobrazovaniya dostupny kak posredstvom menyu (k punktam kotorogo mogut byt' privyazany "goryachie" klavishi), tak i na piktograficheskih palitrah instrumentov, naryadu s palitroj cveta prisutstvuyushchih (po zhelaniyu) v glavnom okne programmy.

Tochnoe pozicionirovanie ob容ktov oblegchaet vozmozhnost' otobrazit' setku razmetki slajda, a takzhe komandy vyravnivaniya ob容ktov otnositel'no uzlov etoj setki, kraya ili centra lista (slajda), a takzhe otnositel'no drug druga. Osobenno polezno eto pri sozdanii dostatochno formalizovannyh ob容ktov.

3.6 Mehanizm stilej

Vazhnoj osobennost'yu OpenDraw yavlyaetsya ispol'zovaniya mehanizma stilej dlya formatirovaniya graficheskih elementov. Ispol'zovanie stilej v vektornoj grafike vpolne sopostavimo s ispol'zovaniem togo zhe mehanizma pri oformlenii razmechennogo teksta (sm. "Lekciyu" 1) i imeet te zhe preimushchestva pered "zhestkim" formatirovaniem/oformleniem.

|tot priem pozvolyaet ser'ezno oblegchit' variantnoe oformlenie risunkov, otkazavshis' ot "zhestkogo" (takogo, pri kotorom dlya kazhdogo ob容kta ili gruppy ob容ktov harakteristiki zadayutsya vruchnuyu) formatirovaniya ob容ktov.

Naprimer, pri podgotovke shemy orgstruktury uchrezhdeniya mozhno sozdat' stil', kotorym oformlyayutsya izobrazheniya podrazdelenij, dopustim, s goluboj zalivkoj v chernom konture v 3 punkta tolshchinoj. Esli pozdnee potrebuetsya izobrazit' te zhe podrazdeleniya zheltymi pryamougol'nikami bez ramki, ne nuzhno budet pomechat' ih vruchnuyu (predstav'te, naskol'ko eto mozhet byt' trudoemko dazhe dlya otnositel'no prostoj organizacii tipa srednej shkoly), dostatochno budet lish' izmenit' parametry stilya. Bolee togo, mozhno opredelit' stil' i dlya strelok, pokazyvayushchih svyazi mezhdu podrazdeleniyami, s "nasledovaniem" cveta ot cveta stilya podrazdelenij, esli predpolagaetsya, chto ih cvet dolzhen sovpadat'.

Stil' mozhno opredelit' i dlya slajda v celom, chto pozvolyaet edinoobrazno oformlyat' seriyu risunkov. Nabor stilej mozhno ob容dinit' v shablon (sohranyaemyj v otdel'nom fajle), esli predpolagaetsya regulyarnoe ego ispol'zovanie.

3.7 "Logicheskie operacii" nad ob容ktami, "3D" i morfing

Interesnoj funkciej OpenDraw yavlyaetsya nalichie tak nazyvaemyh logicheskih operacij nad ob容ktami. Dva ili bolee zapolnennyh kontura mogut byt' skombinirovany osobym obrazom, chto porozhdaet novyj ob容kt, yavlyayushchijsya ob容dineniem form, ih peresecheniem ili "vychitaniem" odnoj formy iz drugoj.

Eshche odnoj interesnoj osobennost'yu programmy yavlyaetsya vstroennaya v nee bazovaya funkcional'nost' imitacii trehmernoj grafiki (3D-funkcii). Ona ogranichena 1) konstruirovaniem tel vrashcheniya, 2) preobrazovaniem v tela vrashcheniya proizvol'nyh dvumernyh figur, a takzhe 3) ekstruziej (pridaniem poslednim "glubiny"). Trudno ponyat' neobhodimost' rutinnogo konstruirovaniya tel vrashcheniya v "ofisnoj" grafike, odnako dlya shkoly vozmozhnost' takoj demonstracii vozmozhnostej komp'yuternoj grafiki mozhet byt' ves'ma polezna.

Dvumernyj morfing (plavnoe peretekanie figur) realizovan v OpenDraw ne luchshim s tochki zreniya esteticheskogo rezul'tata, obrazom, odnako interesnym didakticheski: na samom dele, programma prosto gruppiruet zadannoe (v kachestve "kolichestva shagov" morfinga) kolichestvo "promezhutochnyh" (po forme i cvetu) figur mezhdu morfiruemymi figurami. Sozdannuyu takim obrazom gruppu mozhno razgruppirovat' i posmotret', chto i kak, sobstvenno, programma sdelala.

3.8 Vektorizaciya rastrovyh izobrazhenij


Vyshe uzhe bylo zamecheno o tom, chto, hotya preobrazovanie vektornogo izobrazheniya v rastr -- elementarnaya tehnicheskaya zadacha, garantirovannoe obratnoe preobrazovanie v obshchem sluchae nevozmozhno. Tem ne menee, sushchestvuyut programmy, kotorye pytayutsya eto sdelat'.

OpenDraw obladaet funkciej vektorizacii, "spryatannoj" v menyu "Preobrazovat'" pod klichkoj "V mnogougol'nik". Esli primenit' dannyj punkt menyu k importirovannomu rastrovomu izobrazheniyu, poyavitsya okno predprosmotra s vozmozhnost'yu zadat' nekotorye parametry i uvidet' rezul'tat.

Nichego misticheskogo v etoj funkcii net: programma ishchet svyaznye oblasti, zalitye odnim ili blizkimi cvetami, i opisyvaet ih kontur kak mnogougol'nik. Zatem ona gruppiruet poluchennye figury odnogo cveta i perehodit k sleduyushchemu cvetu ili gruppe cvetov. Rezul'tiruyushchij vektornyj ob容kt predstavlyaet soboj gruppu, v svoyu ochered' sostoyashchuyu iz cvetovyh grupp.

Bolee glubokogo analiza programma ne provodit (v principe, mozhno bylo by kazhdyj vydelennyj ob容kt pytat'sya approksimirov