Fahrenheit nr 67 - październik 2oo9
fahrenheit on-line - archiwum - archiwum szczegółowe - forum fahrenheita - napisz do nas
 
Para - nauka i obok

<|<strona 18>|>

Radzić sobie, czyli teoretyczne podstawy komputerowej obrzędowości

 

 

Istnieje tradycja pewnego podejścia do komputera, które po mojemu aż prosi się o określenie „kolekcjonerskie”. To znaczy, ustawić w kredensie i podziwiać. Jeśli coś na maszynie jest robione, to o wiele bardzie chodzi o rytuał, niż aby było zrobione.

Przyznam szczerze, że nie raz na własnej skórze doświadczyłem skutków takiej tradycji. Czasami naprawdę coś trzeba było zrobić i... Wówczas padało na mnie, żebym to coś wykombinował. Niezgodnie z rytuałem, jakkolwiek, bo ratunku, bo wszystko nam idzie w maliny. Można być oczywiście dumnym, ale za którymś razem człowiek zaczyna się złościć.

Bodaj najbardziej dokuczliwe są lamenty użytkowników, że im rytuał nie wychodzi. Nie drukuje się z jakiegoś programu. Nieszczęsny „ałtluk” czegoś tam nie chce wysłać, „interneteksplorer” nie pokazuje. No i chodzi o to, aby przywrócić porządek na tym świecie, by słońce wschodziło na wschodzie, a program drukował. Ludzie dziwią się, że traktuję sprawę jako dziwactwo, natręctwo, że kręcę nosem i tłumaczę, że jeśli nawet nie wysyła, czy nie drukuje, to można inaczej. Dlaczego upieracie się, ludzie, przy swoich denerwujących rytuałach? Czy ktoś może mi wyjaśniać cykl zawirusowywanie – odwirusowywanie – ratowanie dokumentów – reinstalacja systemu – zawirusowywanie?

Ja miałem zawsze przekonanie, że narzędzia służą do tego, aby coś za ich pomocą wykonać. Za pomocą maszyn wykonuje się pracę. Ważne jest to, co wylatuje na końcu. Co się dzieje pomiędzy ma znaczenie tylko wówczas, gdy wpływa na to na końcu. Generalnie komputer jest maszyną jak każda inna. Trzeba nauczyć się jej obsługi i konserwacji. Tymczasem w reklamach oprogramowania czytamy „gdy praca stała się przyjemnością...”. Niestety, dla mnie największą przyjemnością jest zwykle koniec roboty i początek leniuchowania. To jest dopiero przyjemność!

Poniekąd ślad takiego podejścia, prozaicznego, że chcemy po prostu szybko i bez kłopotów coś zrobić, występuje w Linuksie. Weźmy (ukochany?) pakiet LaTeX. Ach, ileż razy już o nim pisałem! Bo... to dobry przykład.

Otóż jest to PAKIET, a więc zestaw programów uruchamianych zupełnie oddzielnie. Do tego, coś zupełnie nie do pomyślenia pod Windows, musimy korzystać z zewnętrznego oprogramowania, „jakiegoś” nieokreślonego edytora tekstu, którego nie ma w pakiecie. Nie wspomnę już o takim drobiazgu, że nie otwiera się żadne okienko programu.

Otóż, Kochany Czytelniku, co jest tematem tego tekstu? Bynajmniej nie jest to poradnik, jak wykonać coś tam czymś tam. Poniekąd mam ochotę podywagować nad technicznymi podstawami komputerowych rytuałów. Powydziwiać, bo w gruncie rzeczy mamy do czynienia z dwoma zasadniczo różnymi podejściami: złośliwie powiem „nabożnym” oraz nadzwyczaj utylitarnym. Naturalna wydaje mi się postawa „poradzić sobie” i mieć spokój. W jej imię stosuję niezawodny system, o ile tylko mogę, i oprogramowanie oraz procedury, które prowadzą mnie do wykonania zadania. Ponadto stosuję ekonomię, co oznacza, że na przykład nie zapłacę za to, że ktoś chce robić za mnie coś, co doskonale potrafię, nie kupię narzędzia, które na przykład zawiąże za mnie sznurówki. Nie zgodzę się na to, by nieistotne uproszczenie pozbawiło mnie jakiś możliwości. Nie interesuje mnie za bardzo wydumana elegancja pracy na komputerze, polegająca na tym, że coś tam otrzymam jednym klikiem, nie chcę mieć wszystkiego w jednym miejscu, nie przeraża mnie, że czegoś się trzeba nauczyć, doczytać jakieś README, wreszcie wykombinować, jak za pomocą kilku programów uzyskać, co chciałem.

Filozofia LaTeX-a to coś, można powiedzieć, odwrotnego do tego, co spotykamy pod Windowsem. Tu występują programy „do tego”, które robią coś od początku do końca. Dzielenie roboty na różne programy wygląda tu jak straszliwa fuszerka.

Mam wrażenie, że utrwala się skrajnie różne podejście: z jednej strony dzielenie algorytmów przetwarzania na funkcjonalne kawałki, które na każdym etapie dają możliwość interwencji, czy na przykład zastosowania do czegoś innego, z drugiej komasowanie, dążenie, by wszystko wykonywało się „jednoklikiem”. Coś, co w informatyce nosi nazwę ukrywanie. Użytkownik nie powinien widzieć paskudnej technicznej rzeczywistości, lecz jej wirtualną elegancką iluzję. Jednocześnie ma być tak, że do każdego pomysłu, jaki przyjdzie do głowy userowi, ma być specjalne narzędzie. Przykładem takiego podejścia jest powstanie tzw. pakietów biurowych, w których „wszystko mamy w jednym miejscu”. Wielkie programy, które moim skromnym zdaniem żadnego z zadań, które mają wykonać, nie robią dobrze. Za to starają się robić rzeczy, do których komputery w ogóle się kiepsko nadają, na przykład poprawiać błędy gramatyczne.

Do tego, mam wrażenie, użytkownicy tego oprogramowania żyją w przekonaniu, że to Linuksiarze są tymi, co odprawiają rytuały, oni zaś zwyczajnie używają oprogramowania. No więc, jakież są techniczne podstawy rytuałów u „odszczepieńców” nieuznających „jedynie słusznego systemu”?

Dlaczego ludzie ciągle jeszcze łapią się za LaTeX-a? Bynajmniej nie mam chęci pisać tu skróconego podręcznika ani opisywać systemu. W sieci są tony bardzo dobrych podręczników, np.

ftp://tug.ctan.org/pub/tex-archive/info/lshort/polish/lshort2e.pdf

Chodzi raczej o to, by sobie poopowiadać o tym czymś i podumać, co mianowicie z tego wynika, tak w ogólności, dla historii świata.

Bodaj najbardziej gawędziarska jest opowieść o dawnych czasach, w których komputery zajmowały pół piętra, a czas obliczeniowy był dla poszczególnych userów limitowany. I wówczas powstawały niezwykle oszczędne dla mocy obliczeniowej programy. Ale darujmy sobie tym razem. Co to jest ów LaTeX? Przypomnimy: to zestaw oprogramowania do tak zwanego DTP, czyli składania tekstów, książek, artykułów, tak, aby dało się je drukować. To komputerowy zecer. Program uchodzi za legendarnie trudny, nieprzyjazny, a jego używanie za rodzaj sportu ekstremalnego. Trudno się dopatrzyć w efektach pracy czegoś wyjątkowego, na pierwszy rzut oka otrzymujemy to samo, co za pomocą jakiegokolwiek „normalnego Worda”. Pochodzi z zamierzchłych czasów informatyki, wymaga, przynajmniej w opiniach obserwatorów, niezwykłej wiedzy komputerowej. Tak na pierwszy rzut oka, jak już wielokrotnie pisałem, dziwactwo. Tymczasem możemy się przekonać, że interesują się nim coraz to młodsze pokolenia. Spójrzmy na to trochę analitycznie: co w tej zabawie jest takiego, że przetrwała tyle lat i nie wyparły jej o wiele prostsze narzędzia ?

Produkt końcowy, który daje nam pakiet LaTeX, powstaje w kilku etapach. Pomyślane zostało to tak: najpierw piszemy tekst. W domyśle, gdy rzecz działa się gdzieś jeszcze, powiedzmy, w osiemdziesiątych latach, było to przepisywanie na komputer ręcznych notatek. Doprawdy, do dnia dzisiejszego to jeden z najlepszych sposobów, choć tego, dlaczego lepszy tekst powstaje na skutek mozolnego procesu, łatwo uzasadnić się nie da.

Kolejny etap to formatowanie tekstu. Przeprowadzano je w ten sposób, że się opisywało, jak ma on wyglądać. W tekst wstawiamy komendy, które każą coś tam wycentrować, coś wyboldować, dzielimy książkę na rozdziały i podrozdziały, wstawiamy rysunki. Można to opowiedzieć troszkę inaczej, najchętniej wypełniamy rodzaj szablonu dokumentu, wówczas najmniej się napracujemy. Następnie za pomocą programu, który potrafi ten opis odczytać, dokonujemy kompilacji, czyli zamiany opisu na plik tak zwany .dvi, który w założeniu miał być przenośny. Nie bardzo z tym wyszło, ale tak zostało i do dziś, zanim uzyskamy w LaTeX-u plik, który jest zjadliwy dla drukarki, czyli PostScript albo pdf, dostajemy ów .dvi i jego zamieniamy na plik drukowalny. Otóż robi się to tak, że w wierszu poleceń wpisujemy „latex nazwa_pliku” – po to, aby otrzymać plik .dvi. A potem dvips -f nazwa.dvi -o nowa_nazwa.ps . Tym zaklęciem produkujemy plik postscriptowy. To tak dla „pomacania” i sprawdzenia, czy np. potrafiłbym wpalcować takie polecenie bez literówek?

Na razie widać same dziwactwa i kłopoty. Dziś Word jednocześnie formatuje, wyświetla, jak to będzie wyglądać, i jeszcze poprawia literówki. Jak ktoś nie ma pieniędzy albo ochoty na Worda, może użyć Open Office’a. Albo Abiworda. No więc po co?

Po prostu nie widziałem jeszcze programu, który by sobie poradził z formatowaniem choćby w części tak dobrze jak LaTeX. Program bardzo skutecznie dobiera odstępy pomiędzy literami. Idealnie równa prawy i lewy margines, jeśli nie uda mu się to, raportuje, a jeśli użytkownikowi zależy na wyglądzie, może sam (człowiek, nie maszyna) poprzesuwać literki. Tak kiedyś robili prawdziwi zecerzy. Dzięki temu strony wyglądają jak ze starych książek. To także wynik dobrego szablonu, dobrania marginesów, odstępów oraz kroju czcionki. „Z domysłu” mamy dostępnych kilka rodzajów dokumentów wraz z tradycyjnym formatowaniem strony np. książka lub artykuł. O ile nie zaczniemy majstrować, zachowamy ich wypracowany, elegancki wygląd. Jest jeszcze kilka powodów, które ujawniają się przy dłuższej pracy z pakietem, np. skuteczne tworzenie nowych wzorców dokumentów, przemyślana organizacja pracy z wielkimi dokumentami.

Warto zwrócić uwagę na to, że sam pakiet LaTeX jest nam potrzebny na samym końcu roboty. Do momentu, do którego nie ukończymy roboty z pisaniem i formatowaniem tekstu, nie potrzebujemy go. Uruchamiamy ten program przy odrobinie szczęścia raz, dwa razy, gdy chcemy otrzymać pliki wynikowe. A więc do tego czasu możemy pracować na dowolnym komputerze, w dowolnym edytorze tekstowym, z którego da się uzyskać plik tekstowy. Nie jest przeszkodą np. brak polskich czcionek (a to się może nam przytrafić, gdy dopadniemy jakiejś zagranicznej maszyny). Oznacza to wolność od urządzenia, w szczególności bezprzedmiotowe jest ciąganie ze sobą pseudokomputera o nazwie laptop czy notebook. W dzisiejszych czasach powszechnego usieciowienia wystarczy jakikolwiek komputer i konto FTP. Jeśli nie ma sieci – karta pamięci czy nawet archaiczna dyskietka, bo pliki tekstowe są po prostu bardzo małe.

Te uproszczenia roboty czuje się zwłaszcza przy tekstach zawierających skomplikowane elementy, np. znaki matematyczne, nutowe, jakieś egzotyczne czcionki. Po prostu nie musimy mieć tego na komputerze, na którym opracowujemy tekst, wystarczy, że mamy to na maszynie, na której odbędzie się kompilacja.

Jest pewien szczegół. Mianowicie w naturalny sposób możemy zarchiwizować nasz dokument we w pełni edytowalnej formie. Można to wytłumaczyć niejako na zasadzie opozycji do stylu pracy w suitach biurowych. Tam, po złożeniu całego dokumentu, zamieszczeniu w nim wszystkich rysunków i tekstów ewentualnie innych plików powstaje pokusa „posprzątania”, czyli wykasowania wszystkich elementów składowych. Bo przecież mamy plik, w którym wszystko jest w kupie i na swoim miejscu. Gdy wracamy po latach do dokumentu, oczywiście awaria informatyczna uniemożliwia edycję, ale niekoniecznie musi się coś popsuć. Wystarczy, że zniknęła na skutek upgrade’u z komputera wersja programu, do której odwoływał się osadzony plik, i już mamy poważny kłopot. Bardzo częsta w Wordzie jest (była?) sytuacja, że kiedyś się drukowało, a teraz nie. Wymieniliśmy drukarkę albo tylko sterownik do niej. W przypadku LaTeX-a naturalne jest pozostawienie wszystkiego w jakimś jednym katalogu, przy czym plik źródłowy stanowi dokładny opis, gdzie co ma być. Nie ma problemów z ich edycją. Z powodów niemal fizycznych oddzielne pliki są mniej wrażliwe na uszkodzenia, np. na skutek „rdzewienia” (procesy zachodzące w wypalonych płytach CD i DVD) nośnika, niż dokument, który z nich powstał. Tak więc obyczaj zamienia się na techniczną własność, dostajemy archiwum odporne na różnie wypadki.

LaTeX produkuje plik finalny ze wskazanych plików, tekstów i rysunków. A więc działa jak przeglądarka internetowa, nie „grzebie” w pliku źródłowym, co znacznie zmniejsza możliwość awarii. W biurowych aplikacjach to dość częsty przypadek: otworzono dokument, ktoś myszką „ruszył”, delikatnie przesunął jakiś element, przy zamykaniu pojawia się komunikat, że zmieniono i czy zmiany zachować. Z rozpędu klika się „ok”. A potem plik się nie drukuje, bo wystaje o piksel poza margines. Trzeba z góry wiedzieć, że jest możliwy taki błąd, aby opracować sobie sposób jego znalezienia.

W systemie LaTeX z natury rzeczy działamy na dwóch rodzajach dokumentów: plikach źródłowych i wynikowych. Pliki źródłowe są edytowalne, wynikowe nie. Początkowo bardzo to irytuje ludzi wychowanych na standardzie „WYSIWYG”. Jednak na tym utrudnieniu bazuje skuteczność i niezawodność LaTeX-a. Dodajmy, że pomysły pozycjonowania elementów dokumentu np. za pomocą myszki są dopuszczalne na poziomie amatorskim. W czymś co, ma być wielokrotnie powielone, w „wydaniu”, które „idzie na maszyny”, odległości powinno się wyliczyć. Rozdział operacji (edycja pliku źródłowego, kompilacja) powoduje, że mamy o wiele lepszą kontrolę nad tym, co się dzieje. Takie sytuacje, że program coś sam nam wyprodukuje, gdzieś klikniemy i poznikają nam obrazki albo, co typowe w interaktywnych dokumentach suit biurowych, coś się zmieni na zupełnie coś innego, np. numer konta bankowego na liczbę z zapisem wykładniczym, nie są możliwe. Ponieważ kompilator nie jest w stanie niczego zmienić w pliku źródła. Jeśli coś się popsuło, to z naszej winy, ale nie uleciało w kosmos z powodu radosnej funkcji autoformatowania. Plik wynikowy służy tylko do wysłania na drukarkę albo do wyświetlenia na ekranie. Też nie ma za wiele okazji, aby narozrabiać. Operacje są więc odwracalne w tym sensie, że zawsze po kiepskim wyniku kompilacji możemy wrócić do pliku źródłowego. System jest bardzo ekonomiczny, oszczędny dla komputera i nerwów twórcy. Na przykład udostępnia wiele dróg wykonania zadania, możemy na istotnym etapie pracy korzystać z bardzo różnego oprogramowania. Oczywiście „źródła”, które obrabiamy w jakimkolwiek edytorze tekstu, pierwszym lepszym, jedynym działającym czy ulubionym (można użyć także Worda, czemu nie?), są niesłychanie mało wymagające od komputera. Możemy z nimi pracować w trybie tekstowym pracy systemu operacyjnego (czyli na czarnym ekranie) i, o ile komputer w ogóle jeszcze działa, to da się je zmieniać. Nie ma najmniejszego znaczenia, jakie pliki w wyniku kompilacji mają w końcu zostać zamieszczone, np. wielka w rozmiarach grafika rastrowa. Doceni się to przy pracy, która trwa wiele miesięcy. Jeśli podczas niej musimy się przemieszczać po świecie, nie musimy się martwić, czy wszędzie zastaniemy odpowiednio skonfigurowaną maszynę, dość mocarną, by podołała. Trochę paradoksalnie można nawet zauważyć, że wiedza informatyczna, jak przygotować komputer, zostaje zamieniona na znajomość LaTeX-a: byle było coś z klawiaturą i ekranem i trochę chodziło. Nie musimy w tym doinstalowywać, zmieniać, nawet odwirusowywać, gdy docelowy jest komputer z Linuksem. Po prostu siadamy i piszemy. Tak właśnie działa „komputerowy guru”: zamiast mocować się z zastanym sprzętem, konfiguracją, omija to wszystko sposobem. Siada i pisze.

Suity biurowe poszły w zupełnie przeciwną stronę. Maksymalna interaktywność, klikalność wszystkiego, jednoczesność. Przykładem Word i system tzw. dokumentów osadzonych (czytelnik zechce wybaczyć, jeśli opisuję coś byłego, szczęśliwie z pakietem skończyłem bliższy kontakt jakąś prawie dekadę temu). Z punktu niedoświadczonego (przez los) usera był to pomysł znakomity. Po pierwsze, na ekranie mamy wyświetlony wygląd strony, np. z rysunkiem. Możemy pozycjonować go, po prostu przeciągając myszką. Po drugie, możemy w łatwy sposób zrealizować różne efektowne sztuczki np. oblewanie tekstem. Po trzecie, klikamy w rysunek i automatycznie otwiera się nam on w programie, w którym został wyprodukowany. Możemy zmienić ilustrację, nie opuszczając Worda. O ile komputer wytrzyma otwarcie kilku programów. Oczywiście taki złożony system jest bardzo nieodporny na błędy, na zmiany konfiguracji. Nieszczęściem może się okazać np. wspomniany upgrade któregoś z programów, którego dokumenty znalazły się w naszej pracy, albo nawet doinstalowanie (że wyinstalowanie też, to oczywiste) fontów.

Elementem filozofii programu i generowanych przez niego rytuałów jest to, po co pisał go twórca. W przypadku programów komercyjnych chodzi o to, by je sprzedawać. To powoduje, że hierarchia ważności jest inna niż w programach „wolnych”, które zazwyczaj zaczynają się od tego, że coś trzeba zrobić, albo co najwyżej twórca chce usłyszeć pochwały użytkowników. Owa sprzedawalność programu daje czasami w efekcie dość niespodziewane efekty: o wiele bardziej chodzi o to, by potencjalny nabywca był zachwycony programem, nim go kupi, niż wówczas, gdy za jego pomocą rozpocznie ciężką robotę. Częsty efekt to niekompatybilność: na przykład nowa wersja nie chce czytać plików starej, a już całkiem naturalne jest, że stary program wywróci się na tym, co wypuszcza nowy.

Twórcy LaTeX-a są niezwykle konserwatywni, a że pakiet jest darmowy, nawet gdyby potrzebna była nowa wersja, o ile mamy dostęp do sieci, nie ma problemu. Poniekąd modułowa konstrukcja załatwia problem zmian, bo zamiast przewracać wszystko do góry nogami, dodaje się nowy program czy plik: jest stary i nowy. W zależności od humoru i potrzeby możemy uruchomić jeden lub drugi, czy trzeci jeszcze starszy. Warto zauważyć, że LaTeX nie posiada GUI, więc „w ogóle nie wygląda”. Oceniamy go TYLKO po efektach pracy. Owszem zapewne mogłeś, Czytelniku, oglądać edytory przeznaczone do tworzenia pliku źródłowego dla LaTeX-a. Ale to osobny i raczej niezbyt potrzebny produkt.

Obecnie już powszechnie posługujemy się elektronicznymi wersjami dokumentów. Trochę czym innym jest podejście do tego zagadnienia od strony formalnej, a co innego praktycznej. Otóż chce się np. wysłać coś przez sieć z zamiarem, że odbiorca zobaczy na swoim ekranie i wydrukuje to samo, co było u nadawcy. Kłopoty suit biurowych z takim trybem pracy biorą się chyba z historii tego oprogramowania. Bo na początku były osobne komputery, bez sieci. Podłączone na sztywno do swoich drukarek. Nie było problemu, bo nie było przenoszenia dokumentów. Z przyczyn historycznych LaTeX ma dokładnie na odwrót. Jego historia sięga bowiem czasów, gdy w „ośrodku obliczeniowym” była jedna drukarka i wszystko, co do niej trafiało, musiało być zestandaryzowane. Inna poniekąd sprawa, że użytkownik LaTeX-a jest niejako zmuszony do zapoznania się z problemami kompatybilności i albo zawczasu ustala, jak przygotować plik odbiorcy, albo, gdy wystąpią problemy, dobrze wie, co zrobić.

Tak na marginesie, twórcy Worda od zawsze proponowali użytkownikom „jakby co” rozwiązanie właściwie takie samo jak w LaTeX-u. Mianowicie tzw. pliki drukarkowe. Trochę to koślawy pomysł, ale dobrze ilustrujący „kulturowe różnice”. Mianowicie instalujemy sobie taką samą drukarkę jak odbiorca i drukujemy do pliku. Plik wysyłamy mu i powinno być dobrze.

LaTeX na wylocie daje plik postscriptowy. To język sterowania drukarką. Możemy wymusić na nim także np. pdf, na jedno wychodzi. Mamy nieedytowalny plik wynikowy dla końcowego urządzenia czytającego. Można powiedzieć, że suita biurowa „ukryła” przed użytkownikiem, że zawsze coś takiego powstaje. W efekcie system drukowania do pliku zawodził, bo zestresowani użytkownicy nie wiedzieli, jak się tym posłużyć.

Twórcy LaTeX-a mają takie podejście: na początku, Drogi Użytkowniku, musisz się nauczyć. To działa, ale na początku musisz poćwiczyć. Twórcy oprogramowania komercjalnego nie mogą postawić potencjalnemu klientowi żadnych wymagań. Zniechęci się i nie zapłaci. W efekcie na początku jest łatwo, a potem ewentualnie problem będzie miał dział reklamacji.

Dlaczego w dokumentach Worda wprowadzono mechanizm powodujący automatyczne otwieranie programu związanego z danym typem pliku? Bo biedny user najwyraźniej zaczął się gubić. Przestał się w „tym bajzlu” orientować. Albo jeszcze chyba dokładniej: chodziło o to, aby z komputera mogli korzystać ci, którzy nie wiedzą, co zrobić, gdy w miejscu pliku .jpg pojawił się .jpeg. Założenie jest takie, że na komputerze może pracować kompletny „lejek” i oszczędzimy mu nadwerężania głowy jakimiś technicznymi cudami.

Czego nie musimy wiedzieć? Myślę, że dobrym przykładem będzie zapisywanie dokumentów tekstowych. Komputer posługuje się „słowami”, czyli ciągami znaków, złożonymi z zer i jedynek. Trochę przypadkiem podstawową jednostką jest bajt, ciąg ośmiu znaków. Plik tekstowy to ciąg bajtów wyprodukowany tak, że zawiera informację o literach i znakach formatowania. Odnoszą się one ciągle jeszcze do nieistniejących już drukarek, które działały jak maszyny do pisania. Na tym etapie było prosto: bajt można było przypisać do znaku.

Kwestia „jaki bajt” jest dobrym miejscem do pewnego zawikłania problemu. Otóż chodzi o ciąg zer i jedynek. Bajt, jak wiadomo, to osiem takich znaków i da się z nich ustawić 256 różnych kombinacji. Informatycy domyślnie zamieniają owe bajty, ciągi zer i jedynek na odpowiadające im w kodzie dwójkowym liczby. W ten sposób możemy ponumerować bajty od 0 do 255. Razem 256 sztuk. Warto pamiętać, że utożsamienie bajt-liczba jest uproszczeniem. Ponieważ 256 znaków z nawiązką wystarczało do drukowania, bo znaków w alfabecie jest ok. 32 (można się kłócić), to przyjęło się, że w pliku tekstowym jeden bajt odpowiada jednemu znakowi lub jednemu sygnałowi sterującemu dla drukarki np. powrót karetki czy zakończenie tekstu.

Początkowo komputery były umiejscowione, pracowały z tymi samymi drukarkami i można to było zrobić w zasadzie dowolnie. Byle drukarka rozumiała komputer. Kolejnym etapem był (w uproszczeniu) standard ASCII, który definiował, jakim bajtom numerowanym według ich wartości w kodzie dwójkowym odpowiadają jakie znaki z alfabetu łacińskiego oraz operacje drukarki. Potem wprowadzono kodowania narodowe. Jak się łatwo domyślić, daje się to zrobić na wiele sposobów i z tejże przyczyny mamy dla polskiego alfabetu już to oficjalne iso 8859-2, już to stworzone wedle Microsoftu cp 1250 oraz inne cp 852, jakieś 28 systemów według Wikipedii.

Drogi Czytelniku, to jest powód (pewnie znasz go), dla którego zamiast liter w niektórych przypadkach komputer wyświetla w tekście tu i ówdzie krzaczki. Niestety, to nie jest takie proste, że jeśli są owe krzaczki, to wystarczy odnaleźć właściwe kodowanie. Kolejnym etapem jest bowiem czcionka. O ile w przypadku archaicznej drukarki znakowej nie było wyboru, drukowała takie znaki, jakie fabryka dała, to w kolejnym etapie drukarki igłowe, a także karty graficzne pracujące w trybie graficznym, aby wyświetlić literę, posługują się plikami zawierającymi te litery w formie obrazków. Oczywiście pewne kroje zawierają polskie znaki, inne nie. Czasami pomaga w zorientowaniu się w problemie to, że zła czcionka objawia się (o ile jej twórca był uprzejmy i przygotował ją standardowo) wyświetleniem prostokącików, a kodowanie – zwykle „krzaczkami”, ciągami bezsensownych znaków.

Szlachetną intencją wprowadzenia kodowania Unicode było zapobieżenie wszystkim nieszczęściom. Otóż prosty pomysł: skoro komputery są już mocarne, wprowadzamy kod dwu-bajtowy, w którym da się zakodować 65536 znaków, w domyśle wszystkie używane alfabety świata. Skutek na razie jest taki, że mamy kolejne kodowanie i ciut większe zamieszanie. Warto wiedzieć, że standard Unicode UTF-8 (który właśnie zawiera „wszystko”) ma tę przyjemną własność, że tekst napisany ASCII odczyta program z ustawionym kodowaniem UTF-8.

Wnioski z tej ogólnej wiedzy są takie: w przypadku gdy mamy krzaczki w tekście, sprawdzamy zarówno kodowanie (o ile w danym typie pliku da się przestawić), jak i ustawioną czcionkę.

Producenci oprogramowania chcieli uchronić użytkowników przed tym problemem. Plik tekstowy ma zapisany tylko tekst i znaki typu końca linii czy spacji. W plikach, które produkują bardziej zaawansowane edytory tekstu, zapisuje się całe multum danych, w tym jakie kodowanie, jaka czcionka, jaką ma mieć wielkość itd.

Zauważmy, że nie ma żadnego technicznego powodu, by trzymać się standardów kodowania i producent „procesora tekstu” może załatwić sprawę zapisu w jakiś swój egzotyczny sposób (w rzeczywistości zwykle i tak aplikacja posługuje się „wewnętrznie” jakąś znormalizowaną stroną kodową). Np. pliki Worda, .doc, są to tzw. pliki binarne i otwarcie ich programem, który nie został przystosowany do odczytu tego formatu, spowoduje, że zobaczymy kaszkę dziwnych znaków. Zapisują one nie tylko niezbędne, ale nadmiarowe informacje (np. historię edycji), które pozwalają użytkownikowi cieszyć się swym dziełem w pełnej glorii kolorów i wodotrysków, a np. służbom sprawdzić legalność licencji na oprogramowanie... Tak więc wystarczy „tylko” mieć Worda i można zapomnieć o wszystkich kłopotach, całej informatycznej sieczce, cieszyć się nie tylko bezbłędnie zachowywanym tekstem, ale i drukarskimi niuansami, zmianami wielkości liter, krojem czcionek, ich kolorem itd.

Warto jednak od razu zauważyć, że wraz z coraz to większą elastycznością zapisu, coraz większymi możliwościami np. formatowania tekstu, prowokujemy potencjalne kłopoty. O ile ograniczamy się do znaków alfabetu łacińskiego zapisanych za pomocą kodów ASCII, to chyba nie znajdziemy komputera (rosyjskie, chińskie?), który by go nie odczytał. W przypadku plików .txt i znaków narodowych zaczynają się problemy ze stroną kodową.

Gdy dołączamy jeszcze czcionkę, to pojawiają się kolejne kłopoty. Możemy zapisać w pliku informację o stronie kodowej i o użytych czcionkach (tak się robi w stronach www), ale jeszcze owe czcionki muszą się znaleźć na komputerze.

Myślę, że można dojść do następujących konkluzji. Po pierwsze, wiedza, przed jaką „chronią” nas komercjalne aplikacje jest niewielka. Faktycznie nabywa się ją niejako samoczynnie. Po jakimś czasie każdy posiadacz komputera to wszystko wie lub prawie wie, najwyżej mając te informacje w formie nieuporządkowanej. „Ukrywanie” przed nim technicznych szczegółów szybko traci sens, zaś odpowiedzialne za to mechanizmy stają nieszczęściem, bo na przykład trzeba długo grzebać, aby się dogrzebać do możliwości ustawienia czegoś. Albowiem zostało ukryte. Po drugie, im prostszego formatu używamy, tym mniej okazji mamy do błędów. Przeciwnie, używanie aplikacji, dzięki którym, w zamiarze producenta, możemy zapomnieć o całej informatyce, nie uchroni nas przed problemami. Kłopoty z czcionkami, o ile nie dotyczą ważnych fragmentów tekstu, np. wzorów, są do przeżycia, ale ilustrują one ogólną zasadę: im bardziej programiści usiłują ułatwić nam życie, tym więcej kłopotów na nas czyha.

Znajomość technologicznych niuansów pozwala się wywikłać z wielu problemów i wyrobić sobie dobre nawyki. Przykład: o ile to możliwe, to do zachowywania tekstu posługujemy się plikami tekstowymi. O ile to możliwe, to znaczy, o ile mamy np. dość komputerowo rozgarniętego odbiorcę, tekst nie wymaga jakiś wyszukanych formatowań itd.

Inny patent: nigdy nie używać w nazwach plików i katalogów żadnych narodowych znaków, także znaków białych, jak spacji. Bo przecież system operacyjny wyświetlając je, także używa strony kodowej. A pliki wędrują między komputerami. Niestety, mimo unicode, który powinien problem załatwić, zdarzają się niespodzianki z różnymi „ć” czy „ą-ę”.

Jeśli ktoś, kto wie, jak wygląda pisanie w LaTeX-u jeszcze dziwi się, dlaczego „to jeszcze żyje”, no to ma odpowiedź. Bo w naturalny sposób stosujemy się do prawie wszystkich porad, które tu wydumaliśmy. Tekst jest zachowany w najprostszy z możliwych sposobów, w pliku nagłówkowym mamy zapisane w czytelny sposób, jakiego użyliśmy kodowania. Z czcionkami na etapie edytowania dokumentu nie ma kłopotu. Jeśli dokument zawiera jeszcze jakieś pliki, grafiki, inne dokumenty LaTeX-a, wówczas radzi, czy nie, mamy je gdzieś osobno. Bo nieedytowalny wynik pracy programu zniechęca do wykasowania „niepotrzebnych” plików.

Nie, nie namawiam do używania LaTeX-a. Lata przekonały mnie co do słuszności tego, że „człowiekowi łatwiej oddać swoje życie, niż nauczyć się tabliczki mnożenia”. Co więcej, rzadko zdarza mi się przygotowywać tekst w wersji finalnej. Namawiam do posługiwania się na przykład czystym tekstem. Myślę, że dla poparcia sensowności tego zwyczaju ważna jest taka informacja, że w redakcjach, z którymi współpracowałem, dopuszczane były takie formaty jak .rtf, .txt czy .html, przy czym nie wolno było używać formatowań, załączać ilustracji itp.

Nie tyle dla ciekawskich, co dla zilustrowania innego problemu, omówimy sobie nagłówek (prawie) prostego dokumentu w LaTeX-u. Na początek załóżmy, że chodzi tylko o to, aby „pomacać” grzbiet tego dzikiego zwierzęcia, ale za chwilę spróbujemy wydobyć z naszych badań bardziej ogólne wnioski.

Spójrzmy:

 

\documentclass[a4paper,10pt]{article}

 

A więc rozbieramy na części. Po pierwsze, polecenia LaTeX-a zaczynają się odwrotnym ukośnikiem „\” (backslash). Po drugie, ich budowa jest taka: polecenie, opcje, parametr. Większość musi chyba na wiarę przyjąć, że to typowe. Polecenie jest wyrazem, czasem tylko pojedynczą literą (dotyczy to drukowania znaków specjalnych). Za poleceniem w kwadratowych nawiasach znajdują się opcje lub parametry opcjonalne. Jak sama nazwa wskazuje, czasami możemy je pominąć. Wreszcie główny parametr (częściej się pisze argument) w nawiasie klamrowym. Tak więc mamy polecenie wybierające klasę dokumentu „article” z dwoma opcjonalnymi argumentami, wielkość kartki papieru A4 i wielkość pisma 10 punktów.

Jak wcześniej napisaliśmy, sukces LaTeX-a, to między innymi szablony dokumentów. Nazywamy je tradycyjnie klasami i mają one swoje własności dotyczące formatowania (choćby gdzie umieszczony jest numer strony), ale także sposobu przetwarzania. Możemy np. automatycznie wydrukować spis treści naszej pracy czy spis literatury.

 

%\usepackage[T1]{fontenc}

 

Tu mamy zakomentowane (wyłączone) znakiem „%” polecenie dołączenia zestawu fontów T1. Polecenie zakomentowałem, bo kolejne polecenie spolszczające LaTeX-a, wedle mojej wiedzy, dołącza fonty. Czy mam rację, czy nie, inna sprawa, ale tak właśnie wygląda tekst, który jest pomijany przez kompilator, komentarz. Służy on do pracy nad tekstem redakcji, zakomentowywać możemy jak w tym wypadku polecenia, by szybko zobaczyć efekty zmian po kompilacji, fragmenty tekstu, który chcemy usunąć, pisać własne uwagi co w tekście chcemy jeszcze zrobić. Po mojemu, system znacznie lepszy od tego, który jest wprowadzany w suitach biurowych.

 

\usepackage[latin2]{inputenc}

 

Nagadaliśmy się o stronach kodowych. To polecenie uruchamia pakiet inputenc odpowiedzialny za czytanie stron kodowych. Informujemy go o tym, że tekst został zapisany w iso 8859-2. Inaczej się ta strona kodowa nazywa latin2. Jeśli używamy domyślnego teraz UTF-8, wpisujemy zamiast „latin2”, „utf8”. Działa, ale jak się mi zdaje, jeszcze są jakieś sęki z unicode.

 

\usepackage{polski} – pakiet udostępniający spolszczenie LaTeX-a. Dzięki niemu mamy zamiast „abstrakt” wstawianą polską nazwę „streszczenie” i polski pakiet fontów.

 

\title{Tytuł} – Informujemy program, jaki ma być tytuł dokumentu.

\author{Cebul} – Informujemy, kto jest autorem.

\begin{document} – Polecenie rozpoczyna część dokumentu, która ma zostać wyświetlona.

\maketitle – Każemy umieścić w dokumencie standardowe informacje: tytuł i autora. Program zgodnie z szablonem dobierze wielkość liter i odstępy.

 

\begin{abstract} – To jest streszczenie

\end{abstract} – Para poleceń, pomiędzy którymi wpisujemy streszczenie artykułu.

\section{Pierwsza} – Dzielimy dokument na części. W nawiasie klamrowym wpisujemy nazwę części. Program dobierze sam rozmiar czcionki, ponumeruje części. Potem możemy automatycznie wygenerować spis treści.

 

\end{document}

 

Plik: proba0.tex

 

O ile rozumiemy, co to kodowanie, że do wyświetlania liter potrzebny jest pakiet czcionek, to zapewne zrozumiemy opowieść o tym, że na początku, gdy z chaosu cokolwiek się wyłoniło ok. roku 1982, gdy Knuth, twórca TeX-a, zaproponował układ czcionek OT1 zwanych czasami teraz Old T1, był problem z literkami „ą” czy „ę”. A, co to TeX? To program, którym posługuje się LaTeX. Jak powiedzieliśmy, mamy pakiet programów, możemy sobie o tym pakiecie także poopowiadać, ale to innym razem. Otóż za czasów OT1 polskie literki produkowano sposobem, każąc dołączyć do „a” funkcjonujący w zestawie znaków ogonek.

Wniosek nieco ogólniejszy: jak sobie radzić z komputerem? Przyda się nawet wiedza historyczna czy plotkarska, która posłuży nam jako rodzaj „kleju” utrzymującego w porządku fakty. Już wiemy – na początku był chaos, potem czcionki Donalda Knutha zwane teraz Old T1, zaś potem konferencja w Cork i wyłoniły się z otchłani czcionki T1, to jawi się... pewna intuicyjność polecenia \usepackage[T1]{fontenc}. Jeśli zapamiętamy historię, że mamy pakiet „polski” autorstwa Mariusza Olko i Marcina Wolińskiego, poznamy jego własności, równie swojskie staje się „\usepackage{polski}”. Taki „humanizm komputerowy”.

Poniekąd można to przetłumaczyć na takie science fiction. „Kochany komputerze, chcę, abyś sformatował mi tekst jak artykuł. Tekst zapisałem w stronie kodowej latin2, użyj pakietu „polski” do formatowania. Dokument ma mieć tytuł – „Tytuł”, autorem jest Cebul. To jest streszczenie, to część pierwsza... Ponumeruj równania, rysunki. Dobieraj czcionki dla wyrazów wyróżnionych w zależności od czcionek tekstu normalnego, w jakim się znajdują”. Myślę, że warto się zadumać, czy aby da się dialog z maszyną (dialog, bo jak coś sknocimy, LaTeX przerwie kompilację i zapyta) jeszcze uprościć?

Poniekąd z przeciwnej strony, warto wiedzieć, jaka filozofia przyświeca jakiemu oprogramowaniu. Oczywiście owo przyświecanie filozofii na gruncie informatycznym to coś na kształt dość kiepskiego żartu, trudno powiedzieć nie tylko jak się zabrać za sprawdzanie, ale o co w ogóle chodzi? Po mojemu to jest tak: albo oprogramowanie jest do czegoś, to znaczy był jakiś problem, ciężka robota i zaprzęgnięto do niej maszynę, albo wymyślono, jak użytkownik zajmie komputer. Skrajnym przypadkiem są gry. Jeśli wiemy od razu do czego, to może być tak, że choć trudne, to się przyda. Jeśli mamy wątpliwości, jakie są ograniczenia oprogramowania, sprawia ono wrażenie, że jest do wszystkiego, to z dużym prawdopodobieństwem jest do niczego.

LaTeX, jak się mu przyjrzeć, to dobrze się nadaje do tworzenia ledwie kilku rodzajów dokumentów, określonych wedle nazw szablonów. A więc artykuł naukowy, książka, elegancki list, klasa report, dłuższe opracowania, slides – przeźrocza kiedyś drukowane na folii, dziś na rzutnik (obecnie znacznie lepszy pakiet Beamer). Nie nadaje się on więc za bardzo do pisania np. podań. Do podań używamy Worda.

Choć... No właśnie, nie wiem, czy to, co zrobiłem za pomocą dokumentu „letter”, jest dobrym podaniem, ale „obleci”.

 

Plik: proba_podanie0.tex

Plik: proba0.pdf

Plik: proba_podanie0.pdf

 

Jeśli masz wiedzę ogólną, wiesz, co ma jakie własności, da się obejść ograniczenia programów różnymi produktami oryginałopodobnymi. Puryści zapewne natychmiast zarzucą mi, że w tym dokumencie zastosowałem niewygodne miary w wartościach bezwzględnych. Praktycy stwierdzą, że musiałem się trochę nagrzebać w szablonie, tym niemniej, jak się zdaje, możemy go wrzucić gdzieś do „wzorców dokumentów” i będzie nam służył przez długi czas. W razie czego, gdy będziemy pisać następne podanie, wystarczy wymienić jakieś dane.

Warto zauważyć, że tak powstały szablon dokumentu, choć jest całkowicie nieinteraktywny, dla człowieka, który go zna i rozumie, jest całkowicie funkcjonalny. Dodać warto, że gdy chodzi o klasy dokumentów LaTeX-a znalazłem i cdcover. To coś naprawdę preparuje okładki na pudełka, w których trzymamy CD, dodajmy, jest nawet skrypt, który pobiera opis płyty z dostępnej w sieci bazy danych płyt. Co prawda mają bardzo urzędowy wygląd, ale być może (nie sprawdzałem) pakiet łyknie jakimś sposobem „\includegraphics”.

 

Plik: cd_proba.tex

Plik: cd_proba.pdf

 

W rzeczywistości, gdybym miał faktycznie wykonać jakąś bardziej ozdobną okładkę za pomocą tego programu, to nie zawracałbym sobie głowy tym, jak zmusić LaTeX do wykonania tego zadania. Obszedłbym problem na przykład za pomocą GIMP-a. (www.gimp.org)

Tu kolejne zjawisko socjologiczne. Rzadko w gazetach komputerowych pojawiały się (trochę zerwał mi się z nimi kontakt) opisy wykonania jakiejś pracy za pomocą kilku programów. Zdawało mi się to oczywiste: przecież każdy wymyśli sam. Tymczasem miałem się okazję przekonać na własnej skórze, że takie pomysły, jak dodawanie polskich opisów osi w edytorze grafiki, jakoś ludziom nie przychodzą do głowy.

Jedna ze zdiagnozowanych przyczyn: nie znają możliwości innych programów. Nie rozumieją, czym się różnią formaty plików, nie wiedzą, jakie są wyniki konwersji. Nie znają możliwości oraz ograniczeń, jakie mają programy, oraz z czego one wynikają.

To znowu brak wiedzy ogólnej. W gazetach komputerowych mamy ciąg na wyjaśnianie tu kliknij, tam kliknij, nie pytaj dlaczego. Wymijaj szerokim łukiem wiedzę ogólną. Niby chodzi o to, by skupić się na wykonaniu zadania. Ponieważ pomiędzy czynnościami nie ma związków przyczynowo-skutkowych, nie daje się z tymi informacjami, np. samodzielnie, o czym pisałem na początku, zaplanować roboty.

A więc na przykład gdybyśmy się wzięli za wykonanie owej okładki, o czym warto wiedzieć? Na przykład o tym, że wczytujemy grafikę wektorową do edytora grafiki rastrowej. Grafika wektorowa to specyficzny i dość złożony opis rysunku, można powiedzieć, za pomocą obiektów i ich parametrów. Na przykład zapisujemy, że mamy w pewnym miejscu koło o zadanej średnicy. „Pewne miejsce” zapisujemy za pomocą współrzędnych środka koła. Warto zauważyć, że tak opisany rysunek jest całkowicie odporny na przeskalowanie, w tym sensie, że nie nastąpi utrata informacji, gdy zmienimy jego rozmiary. Koła, linie, wielokąty, linie krzywe będą rysowane za pomocą procedur, których wyniki są zawsze takie same z matematyczną dokładnością. Jeśli gdzieś w grafice wektorowej pojawią się jakieś niespodziewane efekty w postaci np. zamiany krzywej na łamaną, to jest to już tylko wynik niezgulstwa programisty.

Grafika rastrowa, niemal jak koń, każdy widzi, jaka jest. Mamy tablicę kolorowych kwadracików, zwanych pikselami. Warto by chwilę podumać nad różnicą pomiędzy pikselami sprzętowymi i programowymi, ale to insza para kaloszy. Mówimy o plikach „komputerowych” i myślmy właśnie o kolorowych kwadracikach. Warto zauważyć, że w grafice rastrowej dokładność zapisu obrazu jest z założenia ograniczona i zależy od liczby owych pikseli. Istotna jest tylko ona, o ile idzie o operacje komputerowe. W przypadku wydruku możemy jeszcze zadać rozmiar owych pikseli i wówczas dostaniemy z tego samego pliku obrazki o różnej wielkości. Możemy dokonać przeskalowania grafiki, zmieniając liczbę pikseli. To zawsze prowadzi do straty informacji, zarówno przy powiększaniu, jak i zmniejszaniu rozmiaru obrazu. Dlatego grafika rastrowa powinna być przygotowywana na z góry określony rozmiar. Np. jeśli chcemy umieścić zdjęcia w Internecie, skalujemy je do finalnego rozmiaru, przeprowadzamy nad nimi trochę magicznych operacji jak wyostrzanie i dołączamy do strony w taki sposób, aby przeglądarki nie dokonywały przeskalowywania.

Jak widać, łączenie grafiki wektorowej i rastrowej to trochę łączenie wody z ogniem. Jak program do obsługi bitmap radzi sobie z grafiką wektorową? Zamienia ją na bitmapę o zadanej przez nas rozdzielczości. Tak postępuje GIMP. Programy do DTP potrafią traktować jednocześnie rysunki wektorowe jak wektor i wyświetlać obrazki rastrowe. Jeśli chcemy coś drukować, z przyczyn, które zaraz wyjaśnimy, lepiej przygotowywać plik końcowy w takich programach jak Scribus. Tym niemniej dla demonstracji zerknijmy na tryb postępowania z naszą okładką w GIMP-ie. Otwieramy z menu plik postscriptowy z naszym dziełem z LaTeX-a. Po wybraniu pliku i zatwierdzeniu „otwórz”, zobaczymy okno importu z PostScriptu.

Zwróćmy uwagę na dwie rzeczy. Po pierwsze, zapewne wyświetli nam się okno, w którym zobaczymy dwie strony do zaimportowania. Ano tak, PostScript został przygotowany do drukowania i zachowuje informację o stronach. Zaznaczmy stronę, na przykład, dwa. Bo akurat tam jest spis utworów. Jeśli wybierzemy wszystko, także nie będzie katastrofy, ale może być więcej kombinowania. GIMP nam otworzy te dwie strony w dwóch warstwach, co, niestety, pomieszałoby szyki, jeśli chodzi o plan szybkiego załatwienia sprawy. Następnie zerknijmy w okno renderowania. Wybieramy rozdzielczość 300 dpi, kolor i na przykład słabe wygładzanie tekstu. Nie zaznaczamy wygładzania grafiki.

Dlaczego tak? Ano z doświadczenia wiadomo, że 300 dpi wystarcza. Odpowiada to wielkości rastra 25,4/300=0,0846 mm. Bo rozdzielczość jest podawana w licznie punktów (pikseli) na ca, a cal (akurat ten cal z wielu innych możliwych) ma 25,4 mm. Standardowy rozmiar piksela na ekranie komputera to ok. 0,25 mm, więc u nas będzie znacznie lepiej. Ale gdy ktoś ma wymagania, może sobie zafundować 600 dpi. To najwyższa rozdzielczość stosowana w druku. Słabe wygładzanie liter, co to jest? To tzw. hinting, operacja, która poprawia czytelność liter w wyświetlaniu rastrowym. W takiej rozdzielczości, jaką my stosujemy, może ona całkiem oszukać oko. Czcionki wydadzą się całkowicie równe. Dlaczego słabe? Bo mnie akurat przy 300 dpi to wydało się ładne. Ale jeśli ktoś lubi inaczej, wie, do czego to służy. Obrazek jest czarno-biały, ale zaznaczamy kolor. To kolejna własność importu grafiki wektorowej: dość często chcemy operować na czymś, co kiedyś się zwało „bitmapą”, czyli obrazku składającym się tylko z czarnych i białych pikseli. Jest to bardzo oszczędna metoda zapisu: bajt wystarcza na osiem pikseli. Tu jednak będziemy potrzebować koloru i poświęcimy trzy bajty na zapisanie jednego punktu. Drobne 24 razy więcej. Warto jednak zapamiętać hasło „bitmapa jednobitowa” (troszkę koszmarnie brzmi) albo „paleta czarno-biała (jednobitowa)”. Jest to przypadek tak zwanego indeksowanego trybu zapisu grafiki.

Zatwierdzamy nasze warunki i obrazek zostaje wczytany. Co dalej? Chcemy sobie walnąć jakiś kolorek pod tekst. Dodajemy nową warstwę. Poszukaj okna „warstwy kanały ścieżki...”. Jak nie widać, to zaglądamy do menu Okna=>Dokowalne okna dialogowe. Powinno się znaleźć. Tamże, pod oknem warstw w prawym dolnym rogu jest ikonka wizardu tworzenia nowej warstwy. Można także kliknąć okno warstw prawym klawiszem myszki i otworzy się menu kontekstowe, z którego wybierzemy „nowa warstwa”. Tworzymy warstwę o rozmiarach naszego obrazka (czyli godzimy się na jej domyślny rozmiar) z wypełnieniem białym. Obrazek okładki oczywiście zniknie. Teraz w oknie warstw zmieniamy tryb mieszania warstw dla naszej nowej warstwy na „tylko ciemniejsze”. I obrazek się pojawi. Wybieramy polecenie Filtry=>Renderowanie=>Chmury=>Plazma. Za ciemno? Ustawiamy krycie nowej warstwy na ok. 40 %. Teraz polecenie Obraz=>Spłaszcz obraz, potem Plik=>Zapisz jako. Wybieramy format .png, .jpg nie jest najlepszy, bo mamy napisy, ale to rozróżnienie dla purystów. Koniec roboty. Teraz drukujemy.

O ile nie musimy dumać nad tym, czego komputer chce od nas, cała operacja upiększenia okładki w GIMP-ie będzie trwała kilkadziesiąt sekund, mniej niż minutę. Wspaniale! A dlaczego „spłaszczyliśmy” obraz? Bo format .png nie zapisuje warstw. A co to są warstwy? Wszystkie porządne edytory graficzne pozwalają umieszczać w grafice składowe obrazki, w uproszczeniu mówiąc, jakby znajdowały się na foliach ułożonych jedna na drugiej w stosiku. W uproszczeniu, bo mamy jeszcze tryby mieszania warstw.

Czy można załatwić naszą robotę w bardziej zawodowy sposób? Otwieramy wspomniany program Scribus.

Wczytujemy plik za okładką otrzymany z LaTeX-a. Musimy mieć przygotowane w jakimś programie graficznym tło w formie obrazka, np. .jpg. W Scibusie wybieramy Wstaw=>Ramkę graficzną i wstawiamy ją, przeciągając myszką na całą naszą okładkę. Następnie wczytujemy obrazek. Oczywiście znów znika okładka. Wybieramy Obiekt=>Poziom=>O poziom niżej. Napisy znów się pojawią. Trzeba tylko pilnować, by aktywnym obiektem była nasza ramka. Oczywiście poszło nam bardzo łatwo, bo mamy jakie takie obycie z programami operującymi grafiką wektorową i od razu wpadło nam do głowy, że tak się może dać, o ile (oczywiście?) program Scribus wczyta plik .ps z przezroczystością... Jeśli chcemy przenieść plik na inny komputer, eksportujemy go do formatu .pdf. Na końcu, Drogi Czytelniku, sprawdź, czy program drukujący nie przeskalował Ci wydruku, tak jak mnie się zdarzyło. Bez zachowania rozmiarów zysk z naszej roboty będzie wątpliwy.

Tak już na marginesie: co nam daje zastosowanie programu do DTP w stosunku do majstrowania w GIMP-ie? Wektorowy zapis tekstu. Co oznacza, że drukarka powinna wyprodukować litery ze swoją maksymalną rozdzielczością, jaką dała fabryka. W praktyce nie rozpoznamy tego na obrazku wielkości okładki na płyty CD, ale może nam przyjść do głowy zorganizować krótki kurs tworzenia tychże okładek, zechcemy wydrukować plakat w formacie A0 i na nim pochwalić się swoim dziełem. Wówczas sprzętowa rozdzielczość będzie i widoczna, i potrzebna, by świadczyć o profesjonalizmie.

W wielu książkach poleca się GIMP-a jako znakomity program do konwertowania formatów plików graficznych. Niektórzy twierdzą przy tym, że poza tym do niczego się nie nadaje, ale akurat tu... Otóż gdy mamy Linuksa, to polecam pakiet Image Magick.

Wspomina się o nim rzadko, bo go w ogóle nie widać w menu. Na dodatek wiemy tylko o (dobrze działających) wersjach pod Linuksa. Jest coś dla Windows, ale nie widziałem, jak pracuje. Uruchamia się go z wiersza poleceń za pomocą słówka „display”. Program ten potrafi nie tylko np. obsługiwać spore pliki (do majstrowania w naprawdę wielkich mamy coś o nazwie nip2, ale także obsługuje, jak napisano na jego stronie domowej, ponad 100 formatów. Poniekąd może stanowić to test wiarygodności autora. Jeśli pisze tylko o GIMP-ie, to...

Inną perełką w Linuksie, moim zdaniem, jest potrace.

Program do wektoryzacji grafiki rastrowej. Graficy nie lubią z jakiś powodów rezultatów pracy takich urządzonek, twierdzą, że to produkuje... wektoryzacje, a nie kliparty. Kliparty czy nie, ale mnie osobiście program wielokrotnie się przydał. Warto zwrócić uwagę na możliwość produkowania za jego pomocą różnych formatów wyjściowego pliku. Informacja przyda się nam, gdy wiemy, że np. jest program xfig i używa formatu .fig, albo np. co można zrobić z formatem wektorowym .svg w programie inkscape. Uwaga, ze znajomych formatów wejściowych program „łyka” .bmp. Plik, który chcemy skonwertować, radzę najpierw zamienić do bitmapy czarno-białej w GIMP-ie, wówczas mamy podgląd tego, co mniej więcej powstanie.

Co jeszcze? Program Antiword.

Nie tylko umożliwia odczytanie plików Worda podczas pracy w trybie tekstowym, ale także zamianę „doca” do pdf-a. Tu uwaga, nie działa kodowanie pdf-a do UTF-8, trzeba użyć standardu latin2. Zrobiłem to (pdf-a) np. takim poleceniem: antiword -a a4 -m 8859-2.txt glupoty.doc > wieksze_glupoty.pdf

No i nie opowiedziałem, jak się pozbywamy kompromitujących literówek: za pomocą programu aspell.

Aspell pozwala wybrać język, w którym został zapisany plik oraz kodowanie. Robimy to (mniej więcej, wpisz polecenie man aspell) tak:

 

aspell -c --encoding=iso8859-2 --lang=pl nazwa_pliku.txt.

 

Czy sobie radzimy? To trudno ocenić. Można powiedzieć, co potrafimy. Na przykład pisać skomplikowane dokumenty za pomocą programów w rodzaju Notatnika. Wykorzystywać oprogramowanie, które zostało stworzone dla matematyków do stworzenia sobie szablonów dokumentów biurowych albo nawet tworzenia okładek na płyty. Jest jeszcze wiele innych możliwości.

Operując na poziomie niewielkich programików poradzimy sobie np. z konwersją egzotycznych formatów graficznych. A prosty trik z zainstalowaniem sobie Linuksa pozwala zapomnieć, że istnieją jakieś trojany czy wirusy.

A niektórzy uważają, że sobie nie radzimy. Bo nas nie stać na komercjalne oprogramowanie. Cóż, piszący te słowa jest ze wsi i uważa, że gdy coś można mieć za darmo, to na kupowanie tego na pewno go nie stać.

To jeszcze jeden przyczynek do „humanizmu komputerowego”. Dwie zupełnie różne kultury. Moim zdaniem, poza niewielkimi wyjątkami, filozofia zarabiania na pisaniu programów całkowicie się nie sprawdziła. I cóż z tego, że powstała na niej największa fortuna (z pewnym uśrednieniem i przymrużeniem oka na chwilowe wahania, Bill Gates jest na szczycie finansowej piramidy). Świadczy to tylko o tym, że jest to doskonały sposób na zarabianie, ale nie, że napisano dobre programy. Po mojemu, pomrukiwania USA, że przywalą komuś, nie wskazując na razie na rudy pysk, za majstrowanie w sieci i tatki cybernetyczne, to właśnie efekt handlowania oprogramowaniem. Tak, bo handlowiec nie może nawet pomyśleć o tym, by prócz zarabiania pieniędzy jeszcze wyrabiać dobre obyczaje informatyczne. Owszem, może próbować czegoś takiego programista, który tak sobie p... puka po klawiaturze.

Powstały dwa różne światy. Tak po mojemu to podejście do komputera w jednym z nich jest takie „O, wreszcie maszyna za mnie będzie sobie radzić z ortografią!”. W drugim „O, wreszcie będę miał okazję pokazać, jak wspaniale potrafię sobie radzić z maszynami!”.

 


< 18 >