Sunteți pe pagina 1din 191

Mihail Radu Solcan

A
Ghid L TEX

versiunea pentru Windows

Bucureti
2005

c 2005

Acest ghid poate printat doar pentru uz personal!

Avertisment
Textul acestei cri reect experiena autorului. El reect, de asemenea, o serie de preferine ale autorului.
Este important s nelegei c toate explicaiile referitoare la
folosirea computerului sunt rodul practicii personale a autorului i
oglindesc n mod inevitabil i limitele acestei practici. Toate soluiile
i programele descrise n carte au fost testate de ctre autor, inclusiv
pe parcursul elaborrii crii ca atare. Autorul i editura nu-i asum
ns nici un fel de rspundere direct sau indirect pentru eventuale
neajunsuri sau daune care ar putea rezulta din folosirea crii sau
a programelor de calculator prezentate n carte.
Utilizarea programelor i a soluiilor descrise n carte trebuie fcut de cititoare sau cititori pe propriul lor risc.
Sprijin n utilizarea programelor sau aplicarea soluiilor prezentate n carte nu pot primi, n limita timpului disponibil, dect studentele sau studenii care elaboreaz lucrri sub ndrumarea autorului. Orice alte persoane trebuie s ia textul crii ca atare, fr
posibilitatea de a cere sprijin sau ndrumri n aplicarea soluiilor
sau utilizarea programelor.
n sfrit, autorul nu se angajeaz sub nici o form s asigure
sprijin n dezvoltarea de noi programe sau soluii de aplicare a unor
programe pentru nici o categorie de persoane.
Multe denumiri sunt folosite de ctre rme sau creatorii de programe individuali pentru a distinge produsele lor. Unele dintre ele
sunt menionate n carte, respectnd forma proprie denumirii respective. Cititoarele i cititorii trebuie s tie c aceste denumiri nu
pot utilizate de ctre alte rme sau persoane individuale dect
pentru desemnarea produselor respective.
Pentru alte precizri i informaii suplimentare consultai pe Internet situl <http://www.ub-filosofie.ro/~solcan/wt>.

Cuprins
Avertisment . . . . . . . . . . . . . . . . . . . . . . . . . .

iii

1 Creionul electronic
1.1 Sistemul de operare i managementul ierelor
1.2 Editorul Vim . . . . . . . . . . . . . . . . . . .
1.3 Expresiile regulate . . . . . . . . . . . . . . . .
1.4 n cutarea surselor . . . . . . . . . . . . . . .
1.5 Corectura computerizat . . . . . . . . . . . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

1
1
24
46
52
60

2 Tehnoredactarea computerizat
A
2.1 L TEX . . . . . . . . . . . . . . .
2.2 BibTEX . . . . . . . . . . . . . .
2.3 Turnul Babel . . . . . . . . . . .
2.4 Tabele i formule . . . . . . . .
2.5 Indexarea electronic . . . . . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

63
64
114
121
144
156

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

3 Pensula electronic
159
3.1 Imaginile . . . . . . . . . . . . . . . . . . . . . . . . . 159
A
3.2 Inserarea imaginilor n L TEX . . . . . . . . . . . . . . 164
3.3 Inserarea literelor ca inserare de imagini . . . . . . . 167
4 Translatorii
171
4.1 Drumul ctre html . . . . . . . . . . . . . . . . . . . 172
4.2 Drumul ctre rtf . . . . . . . . . . . . . . . . . . . . 178
A
4.3 napoi ctre L TEX . . . . . . . . . . . . . . . . . . . . 179

Bibliograe

181

Indice

183

Capitolul 1

Creionul electronic
Cuprins
1.1

10

1.2

1.3

15

1.4
20

1.5

Sistemul de operare i managementul ierelor


1.1.1 Maina virtual ideal . . . . . . . . . .
1.1.2 De la ele tradiionale la ierele computerelor . . . . . . . . . . . . . . . . .
1.1.3 Vizualizarea ierelor . . . . . . . . . .
1.1.4 Cine se teme de utilizarea computerelor?
1.1.5 Principiul surselor deschise . . . . . . .
Editorul Vim . . . . . . . . . . . . . . . . . . .
1.2.1 nvarea Vim ntr-o zi . . . . . . . . . .
1.2.2 Vim la modul serios . . . . . . . . . . .
Expresiile regulate . . . . . . . . . . . . . . . .
1.3.1 Denirea abloanelor . . . . . . . . . . .
1.3.2 Utilizarea abloanelor . . . . . . . . . .
1.3.3 Utilizarea abloanelor cu grep . . . . .
n cutarea surselor . . . . . . . . . . . . . . .
1.4.1 Construirea unei concordane . . . . . .
1.4.2 Arheologie pe Internet . . . . . . . . . .
Corectura computerizat . . . . . . . . . . . . .

1
2
7
13
15
22
24
25
32
46
47
50
51
52
53
54
60

25

1.1

30

Sistemul de operare i managementul ierelor

Nu este sucient ca un computer s e n perfect stare de funcionare ca simplu dispozitiv zic. Fr un sistem de operare este
un obiect decorativ. S-ar putea s e util pentru a presa ceva sau
pentru a mpiedica accesul pisicii ntr-un ungher unde nu vrei ca
ea s intre.
Ce este sistemul de operare? Ca i losoa, sistemul de operare

1. Creionul electronic
nu este uor de denit. Tanenbaum i Woodhull spun c sistemul de
operare este programul fundamental al computerului.1 Ce face ns
acest program? Am putea s-l vedem ca pe un program care creeaz o main virtual. Aceeai main zic devine e o main
Windows98 sau WindowsXP, e o main Linux sau altceva. Am
putea vedea sistemul de operare i ca pe un manager al resurselor
sistemului.2

1.1.1

Maina virtual ideal

Care main virtual este mai bun? n ce s-mi transform computerul? Totul depinde de ceea ce vrem s facem cu computerul.

10

Dac vrem s am care este structura unui sistem de operare,


atunci Minix sau Linux sunt sistemele de operare la care trebuie s
apelm. Sistemul Minix este descris de Tanenbaum i Woodhull.3
Prin contrast, sursele Windows sunt secrete. Firma care le realizeaz
i protejeaz astfel drepturile sale de proprietate.

15

Dac vrem doar s utilizm un sistem de operare, atunci alte criterii intr n joc. Achiziia unei licene pentru un sistem Windows98
sau pentru o versiune de cas a sistemului WindowsXP nu este chiar
aa de costisitoare i costurile totale ale deinerii unui astfel de sistem sunt probabil sub cele ale unui sistem cu sursele deschise. Multe
periferice, precum scannerele sau aparatele foto, se integreaz foarte
uor sub Windows. Nu se poate spune acelai lucru despre Linux.
Cum cea mai mare parte a publicului care consult acest ghid
lucreaz cu un sistem Windows, soluiile descrise aici sunt cele valabile pe acest sistem.4 Presupunerea noastr a fost una minimal.
Am pornit de la ideea c sistemul utilizat este Windows98. De altfel,
dac nu suntei conectate direct la Internet i prelucrai doar texte
i imagini nu foarte complicate, sistemul Windows98 este preferabil.
Sistemul WindowsXP, cu distinciile lui ntre utilizatori obinuii i
administrator, mai mult v-ar ncurca.
1
Tanenbaum i Woodhull, Operating Systems (Upper Saddle River, NJ:
Prentice-Hall, 1997), p.1.
2
Aceste posibiliti de caracterizare a sistemului de operare sunt evideniate
de ctre Tanenbaum i Woodhull, op.cit., pp.35.
3
n Tanenbaum i Woodhull, op.cit. gsii n anex 27646 de rnduri eseniale
din sursa sistemului de operare Minix. Ca i-n anexele de fa, ecare rnd de
cod este numerotat. Putei face astfel o comparaie ntre micile fragmente de
cod reproduse aici i dimensiunile programului care servete drept sistem de
operare.
4
Se pare c 95% dintre PC-urile din lume funcioneaz cu ajutorul Windows.

20

25

30

1.1 Sistemul de operare i managementul ierelor


1.1.1.1

Ce se gsete n ghidul introductiv Windows

nainte de a ajunge la iere trebuie s ne familiarizm cu sistemul


Windows. Presupun c acesta a fost instalat de ctre rma de la care
ai cumprat PC-ul. De asemenea, rma v-a dat un cd autentic cu
sistemul i o carte care v arat pe scurt cum s v descurcai cu
sistemul. Trebuie s tii c fr sistemul de operare computerul
este un simplu obiect decorativ sau o achiziie menit s v fac s
cretei n ochii prietenilor.

10

Dac n-ai lucrat niciodat cu un computer, urmai sfatul din


ghidul introductiv Windows98 i studiai anexa despre utilizarea
mouse-ului i capitolul al 3-lea, cel despre suprafaa de lucru5 .
n capitolul al 3-lea, i siguri c-ai neles exact rolul butonului Start i al pictogramelor My Computer i Network Neighborhood.
Utilizarea lui Start este descris pe larg.

15

Esenial este apoi s nelegei felul n care se creeaz, se caut


i se deschid dosarele cu iere i ierele.6
Ghidul introductiv Windows98 v explic, de asemenea, pe scurt
ce anume este Internet-ul. Vom presupune, de asemenea, c utilizai
n mod curent Internet Explorer 6.7

20

25

30

1.1.1.1.1 Taste funcionale i combinaii de taste n Windows Unul dintre avantajele interfeelor grace este faptul c rolul meniurilor i butoanelor este explicat chiar de numele lor sau de
pictogramele asociate. De multe ori este ns mai uor de lucrat cu
taste i combinaii de taste.
Tastele cu utilizare general le gsii listate n nalul ghidului
Windows98. Dat ind importana lor, vom descrie i noi cteva
taste.
F10 servete la activarea meniurilor. Observai, de asemenea, c meniuri
n meniuri literele subliniate indic tasta pe care putei apsa
pentru a lansa o comand.
Ctrl+c servete la copierea unei poriuni selectate dintr-un - copiere
ier. Fii sigure c-ai neles ce nseamn selecie nainte de a utiliza
combinaiile care urmeaz.

35

Ctrl+x servete la decuparea unei poriuni selectate. Nu tre- decupare


buie s v induc n eroare dispariia de pe ecran a poriunii selec5

n englezete, desktop.
Termenul englezesc pentru dosar este folder. Cel pentru ier este le.
7
Dac versiunea preinstalat este 5, putei aduce lesne Internet Explorer la
o versiune superioar.
6

1. Creionul electronic
tate. Ea este disponibil pentru inserare n alt punct, n momentul
urmtor.
inserare

Ctrl+v servete la inserarea unei poriuni copiate sau decupate,


n punctul n care se a cursorul.

anulare

Ctrl+z servete la anularea aciunii pe care ai ntreprins-o n


momentul anterior. Este extrem de util s tii de existena ei, din
motive lesne de neles.

Acestea sunt combinaii de taste valabile n general n programele


Windows (n ferestrele pe care le deschide Windows).
Ca s v micai ntre ferestre v putei sluji de Alt+Tab. Evident, clicurile cu mouse-ul v permit s facei acelai lucru.

10

Mouse-ul nu este ntotdeauna o unealt cu care poi lucra precis.


Comparai selecia cu ajutorul mouse-ului i selecia pe care o putei
face innd Shift apsat i lucrnd cu sgeile sau Pg Up, Pg Dn.
1.1.1.1.2 Taste speciale Windows Dac avei o tastatur special Windows, atunci gsii pe rndul de jos al tastaturii dou taste
speciale Windows.

15

Tasta din stnga, cea cu steagul Windows pe ea, dac este apsat, deruleaz meniul de start.
Tasta din partea dreapt, cea cu o foaie i sgeat pe ea, este
poate mai rar observat, dar poate extrem de util. Selectai
meniul pictograma My Computer de pe suprafaa de lucru. Apsai tasta
con- respectiv. Apare un meniu.
textual
Acelai meniu apare i la un clic pe butonul dreapta al mouseului. Acest meniu se numete meniu contextual.
Meniurile contextuale sunt deosebit de importante i fr a
familiarizat sau familiarizat cu ele practic nu poi lucra ecient n
Windows. De ce? Un ier poate deschis de ctre mai multe programe. Ai nevoie de meniul contextual pentru a avea acces rapid la
programele care prelucreaz ierul respectiv. De asemenea, meniul
contextual v ofer acces la proprietile obiectelor cu care sistemul
de operare a populat computerul dumneavoastr.
1.1.1.1.3 Amenajarea suprafeei de lucru Ghidul primit o
dat cu achiziionarea Windows98 v ofer unele sugestii referitoare
la amenajarea suprafeei de lucru.
imaginea
Cu puin noroc putei nfrumusea lesne suprafaa de lucru. Cude pe tai pe Internet un situl <http://www.webshots.com>. Descrcai
suprafaa de acolo una sau mai multe dintre coleciile de imagini pentru su4 de lucru

20

25

30

35

1.1 Sistemul de operare i managementul ierelor


prafaa de lucru. Instruciunile de instalare le gsii pe sit. Putei
aduga i propriile imagini.
1.1.1.2

10

15

Partiionarea discului dur i segmentarea sistemului

S-ar putea ca multora aceast seciune s li se par vrjitoreasc.


n realitate, cred c este bine ca s v gndii la cele scrise aici nc
din prima faz a amenajrii sistemului dumneavoastr de calcul.
A putea aduga c v putei gndi la aceste lucruri chiar atunci
cnd achiziionai componentele sistemului. De ce? Pentru c putei
primi nu doar cd-ul cu sistemul Windows, ci i multe alte programe
utile care sunt, cum se spune n englez, bundled (ataate) unor
componente. De pild, o plac de baza poate avea ataat un program de partiionare a discului dur. Programele acestea ataate le
putei folosi n condiii perfect legale doar mpreun cu echipamentul procurat.
V ntrebai probabil la ce v-ar folosi partiionarea discului dur?
Ei bine, dac avei un singur disc dur, programul de partiionare va
crea mai multe discuri virtuale. Este ca i cum ai avea mai multe
discuri n computer.

20

25

30

35

Pot surveni accidente care s-ar putea s v determine s tergei


sistemul Windows i s-l reinstalai de la zero. n asemenea condiii
este mult mai sigur s avei sistemul de operare pe un disc separat. Citii ns i recitii instruciunile programului de partiionare.
Putei nu doar s distrugei date preioase, dar chiar s facei ceva
care ar duce la nerecunoaterea discului dur de ctre sistem.
Avariile teribile sunt mai mult o chestiune de principiu. Practica partiiile
de zi cu zi ne furnizeaz alte motive pentru a partiiona discul dur.
Putem avea, de exemplu, trei discuri virtuale. Discul c este dedicat sistemului Windows i programelor care sunt ataate diverselor
componente. Pe discul d sunt puse programele cu surs deschis.8
De asemenea, aici sunt adpostite datele importante. Discul e este
folosit pentru stocarea temporar de date i testarea de programe.
Discurile d i e trebuie s aib ns i un sistem de dosare judicios
organizat. Dosarele create de mine au nume scurte. De regul, dou- calea
trei litere sugestive sunt uor de inut minte i este uor de tastat
ceea se numete tehnic calea ctre un ier (n englez termenul
tehnic este path). Un exemplu de genul D:\use\bin\ ne arat imediat cum desemneaz Windows cile: mai nti este indicat discul,
8

Pentru ideea de surs deschis v. 1.1.5.

1. Creionul electronic
apoi se pune bara oblic invers i numele unui dosar i aa mai
departe.
ci n
Folosirea \ n numele de ci este exact opus celei din sistemele
Unix Unix, unde se utilizeaz n acelai scop /. ncurcturile create sunt
numeroase, dar trebuie s nvm s ne descurcm. De asemenea,
sistemele Unix nu folosesc conceptul de disc. Totul este organizat
pe un singur arbore, a crui rdcin este notat cu /. Dosarele
nu dai sunt organizate foarte disciplinat. Dosarele bin, de pild, sunt strict
dosarelor pentru programe executabile.
nume cu
Pentru o bun compatibilitate cu programele din lumea Unix nu
spaii dai, de asemenea, nume de dosare cu spaii. Folosii spaiul subli-

10

niat _ acolo unde vrei s introducei un spaiu. Un nume de dosar


care are spaii, dac apare n calea invocat de ctre un program,
va crea confuzii n sistem.9
n rezumat, reorganizarea i segmentarea sistemului au i scopul de pregti condiiile pentru un bun transfer al programelor din
lumea Unix. Avei astfel la dispoziie i sistemul Windows, cu posibilitile lui de a manevra sosticat interfeele grace, i elemente
ale sistemului Unix, mai orientat ctre programare. Calculatorul se
transform ntr-o veritabil staie de lucru.
adpostii
periodic
ierele
preioase

1.1.1.2.1 Copiile de siguran Dac avei un ier sau un


folder important, atunci este bine s-l salvai periodic ntr-un loc
sigur. Din acest punct de vedere, partiionarea discului dur joac un
rol important. Chiar dac ar trebui s reinstalai de la zero sistemul
de operare, avei un spaiu pe care s adpostii ierele preioase.

15

20

25

Inscripionarea de cd-uri este o alt soluie. Un cd poate adposti o mare cantitate de date.
Dac nu dispunei de un inscriptor de cd, atunci un program care
poate s mpart un ier mare n buci care ncap pe o dischet
este foarte util. Vei gsi cu siguran c programul Splitfile al
splitle lui Magnus Nilsson10 joac bine acest rol.
Splitfile ocup un loc foarte mic pe o dischet. Nu depindei de
nici un fel de program instalat pe un computer sau altul.11 Singura
precauie de care trebuie s inei cont este aceea de a nu ncerca
9

Putei pi acest lucru i cnd trecei un ier din Windows98 n Windows2000, nu doar cnd apelai programe Unix sub Windows.
10
Programul Splitle nu pare s aib o pagin de web proprie. Ultima
dat (12/01/2004) l-am gsit la adresa <http://biphome.spray.se/mason40/
index.html>. Trebuie cutat i cu ajutorul cuvintelor-cheie.
11
Versiunea 1.4.1.12 a 2xExplorer dispune i ea de un Split file intern. Nu
uitai ns c v trebuie 2xExplorer i pe computerul pe care vrei s refacei

30

1.1 Sistemul de operare i managementul ierelor


s umplei la maximum o dischet. Este mai prudent s indicai o
valoare mai mic de 1.44mb pentru bucile de ier.

10

O alternativ, pe care am testat-o mai puin, dar care pare o


soluie excelent, este programul SplitFile creat de ctre Jitendra
Garodia.12 Programul are mai multe posibiliti dect cel al lui Nilsson. De asemenea, formatul ierelor create este compatibil cu cel
din 2xExplorer.13 SplitFile creeaz o arhiv desfcut n mai multe
iere; cu aceast arhiv poate lucra i 7zip.14
n rezumat, morala principal este foarte simpl: nu lucrai fr
a face, n prealabil, o copie a ierului prelucrat, e pe alt disc dur,
e pe alt calculator, e pe un cd, e pe dischete. Punei periodic la
adpost ierele cu date preioase. n orice caz, salvai din cnd n
cnd ierele pe discul dur15

1.1.2
15

20

De la ele tradiionale la ierele computerelor

Munca intelectual tradiional st sub semnul munilor de e. Era


nevoie de zeci de sertare, de tot felul de cutii pentru a stoca ele.
Aveai nevoie de e pentru a-i consemna ideile proprii, pentru a
sistematiza ideile altora, pentru a crea liste bibliograce, note i
pentru a indexa cri.Doar manuscrisul ca atare era aternut pe coli
de scris de format A4.
ierele
electronice ca o
colecie
Fiierele cele mai importante pentru noi vor cele zise iere de e
plate. n esen, acestea sunt iere de tip text, n care sunt in- tradiiotroduse eventual anumite marcaje structurale, dar care pot citite nale
aidoma unor texte.
Dei este doar o analogie, asemuirea unui ier cu o colecie de
e este ct se poate de util. Ea ne ajut s facem legtura ntre munca intelectual de factur tradiional i cea efectuat cu
ajutorul calculatorului.

25

Dac v gndii la ele pe care v notai ideile, atunci putei face


ierul decupat n buci! De asemenea, formatul folosit de 2xExplorer nu este
compatibil cu cel al lui Nilsson.
12
Pagina sa de web este la <http://jituonline.freeservers.com>.
13
Atenie doar la faptul c arhivele generate de 2xExplorer trebuie redenumite. Extensia .1 trebuie transformat n .001 i aa mai departe, conform
extensiilor produse de SplitFile sau 7zip.
14
Arhiva este compatibil cu cea generat de ctre split.exe din setul de
unelte Unix, n versiunea GnuWin32. Acesta este un program cu surs deschis,
foarte cunoscut i bine testat. Este mai greu de folosit ns de ctre nceptori.
15
Cderile de curent pot inamicul cel mai periculos. Dac mine trebuie s
predai eseul i suntei aproape gata, o cdere de curent poate s compromit
totul, n cazul cnd n-ai fost prudent sau prudent.

1. Creionul electronic
o analogie ntre ele i rndurile dintr-un ier de tip text. Analogia
aceasta nu este lipsit de ambiguiti,16 dar este util.

cr lf
lf
cr

Ca lucrurile s e mai ncurcate dect par, sfritul de rnd


n sens logic nu este marcat la fel pe cele trei platforme importante(Windows, Unix i Mac). ntr-un ier de calculator totul are
un cod. Dac am crea un ier woo.txt n Windows sau n predecesorul acestuia, ms-dos, am vedea c sfritul de rnd este marcat
prin dou coduri. Numele convenional al acestora este cr lf. Un
ier analog, uoo.txt, creat sub Unix, are marcat sfritul de rnd
logic cu lf17 . Iar ierul analog, moo.txt, creat sub Mac, are marcat
sfritul de rnd logic cu cr18 .
1.1.2.1

10

Managementul ierelor

Mai important dect nfrumusearea suprafeei de lucru este extinderea posibilitilor de a explora discul dur al computerului. Sub
Windows98 i WindowsXP exist un program special destinat explorrii ierelor i pe care-l gsim n meniul contextual ataat lui
My Computer dac apsm pe Open sau Explore.
Programul de explorare a ierelor este setat automat la instalare dup o formul cam paternalist. Cea mai util schimbare mi
se pare a aarea extensiei tuturor numelor de iere. Windows
extensiile folosete extensia (literele puse dup un punct n numele ierului
ierelor pentru a determina tipul acestuia i aciunile asociate). Ca s vedem toate extensiile trebuie s parcurgem ruta Start Settings
Folder Options. . . . n Folder Options apsm pe View i deselectm
Hide le extensions for known le types.

15

20

25

WindowsXP include Folder Options. . . n Control Panel.


Ucenicii vrjitori nu vor rezista desigur tentaiei de a vedea ierele ascunse ale sistemului i vor selecta opiunea Show all les.
Atenie ns la modicrile pe care le facei n ierele care v sunt
dezvluite prin aceast manevr.
1.1.2.1.1 2xExplorer Programul de explorare inclus n Windows este oarecum limitat. Ar trebuie s avei un veritabil manager
de iere.
Programul care mie mi se pare cel mai potrivit pentru acest scop
16

V. distincia dintre rnduri logice i rnduri vizuale n 1.2.1.2.


De la expresia englezeasc line feed.
18
De la expresia englezeasc carriage return, care avea un sens evident pe
vremea mainilor de scris.
17

30

1.1 Sistemul de operare i managementul ierelor

10

15

20

25

30

este 2xExplorer. Este scris de Nikos Bozinis.19 Instalarea programului lui Bozinis este extrem de simpl,20 dar n faza n care presupun
c v aai acum s-ar putea s v vin mai greu s facei acest lucru
sub Windows98.21 WindowsXP dispune de un program de dezarhivare aa c ajunge s indicai un dosar n care s e despachetate
ierele programului. Ca s-l pornii comod putei crea o scurttur
pe suprafaa de lucru.
De ndat ce ai fcut dublu clic pe scurttura nou creat apare
o fereastr divizat n trei panouri. Eu am nchis ns panoul din
stnga apsnd semnul din colul din dreapta sus. Am tras, de
asemenea, bara cu unelte n partea de sus. Oricum, aceste lucruri
sunt mai puin importante n sine. Fiecare poate aranja cum vrea
aspectul ferestrei n care apare 2xExplorer.
La ce este bun 2xExplorer sau un program similar? Uureaz
enorm managementul dosarelor i ierelor. Am vzut muli utilizatori care pun totul pe suprafaa de lucru, n dosarul My Documents,
creat automat la instalarea Windows, sau care plaseaz ierele direct n rdcina discului c. Aceste obiceiuri denot faptul c nu au
fcut un efort pentru a nelege rolul managementului ierelor. n
orice caz, nici s nu v gndii s folosii uneltele transferate din
Unix fr managementul adecvat al ierelor. Riscai s producei
sute de iere n acelai dosar, printre care v va absolut imposibil
s v descurcai.
1.1.2.1.1.1 Crearea de dosare i iere cu 2xExplorer
Pentru nceput deschidei 2xExplorer i vericai dac nelegei
cum putei crea dosare i iere. Navigai ctre un loc care nu este
periculos.22 Apsai f8 i vei vedea cum apare un dosar pe care scrie
New Folder. Schimbai-i numele n Test.23 n 2xExplorer exersai
acum clicul simplu (apsarea) pe butonul din stnga al mouse-ului,
cu sgeata ndreptat ctre un dosar. Vei vedea cum se schimb
culoarea pictogramei dosarului. Dac apsai Enter ptrundei n
dosarul respectiv. Cu Back Space revenii.

f8

Intrai acum n dosarul nou creat. Creai alte cteva dosare.


19

l putei gsi la adresa <http://www.netez.com/2xExplorer>.


Versiunea 1.4.1.12 dispune i de un instalator. Eu am folosit ns, n continuare, dezarhivarea, copierea ierelor i generarea de scurtturi.
21
Citii seciunea 1.1.2.2 dac nu tii s lucrai cu arhive (cu iere comprimate).
22
Altundeva dect n dosarul Windows.
23
Evident, putei folosi oricare nume care v convine. Recomandarea ar
totui s nu utilizai nume cu spaii. De pild, n loc de New Folder folosii
New_Folder. V. i pagina 6, rndul 11.
20

1. Creionul electronic
f7

Intrai ntr-unul dintre aceste dosare. Apsai f7.24 Apare o pictogram lng care scrie New File.txt. Schimbai numele ca i-n
cazul dosarului.

Ce ai creat? Un ier zis de tip text. Dac dai un dublu clic


pe un ier de tip text i avei o instalaie Windows nemodicat,
Notepad atunci se deschide fereastra unei aplicaii numit Notepad. n traducere, numele programului nsemn carnetul de notie. Este chiar
ceea ce sugereaz pictograma acestui program.
Este bine s nvai folosirea Notepad explornd pe meniurile
sale. Presupun c-ai deprins folosirea n special a comenzilor Copy,
Cut, Paste. Acest lucru este desigur imposibil fr s tii s selectai
poriuni dintr-un text. Exersai, de asemenea, copierea de text ntre
diverse instane ale aplicaiei Notepad.

1.1.2.1.1.2 Operaii cu iere Fiierele pot copiate (sub


alt nume, chiar i-n acelai dosar!), pot mutate sau terse. Aceste
operaii ar trebui s e evidente pentru oricine s-a familiarizat cu
Windows. 2xExplorer ofer o bar cu pictograme speciale pe care
putei da un clic atunci cnd vrei s executai astfel de operaii.
Funcioneaz i meniurile contextuale Windows.

1.1.2.1.1.3 Filtre Creai un dosar. Creai n el mai multe


iere, unele cu extensia txt, altele cu tex (nu uitai punctul dinaintea extensiei!).
Mergei acum, n 2xExplorer pe ruta Files Filters. . . . Apsai
pe tasta cu sgeata ctre dreapta. Punei un punct i adugai extensia tex. Apsai Enter. Sunt aate acum numai ierele de tip
tex.

f12

10

15

20

25

1.1.2.1.1.4 Proprietile ierelor i dosarelor n 2xExplorer selectai un ier sau un dosar.25 Apsai tasta f12! Apare o
fereastr cu proprietile ierului sau dosarului.
Uitai-v mai ales la Attributes. De multe ori vrem s bifm sau
s debifm Read-only. Dup cum sugereaz i numele englezesc al
24

Versiunea mai nou a 2xExplorer include i un meniu special Actions. Una


dintre aciuni este chiar crearea de iere.
25
Studiai felul n care sunt setate clicurile pe sistemul dumneavoastr. Un
clic pe pictograma din stnga numelui este mai prudent. Clicul pe nume sau
un dublu clic rapid pe nume s-ar putea s deschid o mic fereastr pentru
operarea de schimbri n nume.

10

30

1.1 Sistemul de operare i managementul ierelor


acestei proprieti, ierul read-only poate doar citit. Dac vrem
s-l schimbm, trebuie s eliminm aceast proprietate.

1.1.2.1.1.5 Selectarea unui grup de iere O operaiune


asemntoare cu ltrarea este selectarea unui grup de iere. Mergei n meniul principal la Mark. Alegei Select Group. . . .
Acum trebuie s nvai doar s construii tipare foarte simple. tipare
Semnul * ine locul unui grup de litere. Semnul ? ine locul unei sin- simple
gure litere. Dac scriei *.tex, atunci vor selectate toate ierele
de tip tex.

10

15

20

25

30

35

1.1.2.1.1.6 Informaii despre un dosar cu iere n meniul principal dai clic pe Tools i apoi pe Folder Data. . . . Vei obine
date despre dosarul respectiv.
La ce sunt bune aceste date? Cea mai simpl utilizare este legat
de folosirea spaiului de pe discul dur. De pild, pe computerul pe
care scriu, dosarul cu complexul de programe TEX ocup 653.5mb.
Pot ns vedea i arborele subdosarelor din dosarul respectiv, cu
statistica numrului de dosare i de iere din ele.
Datele astfel obinute pot pstrate ntr-un ier de tip text.
Pentru aceasta folosii meniul contextual al ferestrei cu date despre
dosare. Dai un clic pe Print. n ciuda numelui, avei posibilitatea
s creai un ier. Putei face acest lucru i pentru un cd-rom.
Pstrai documentele descrcate de pe Internet n dosare care
au ca nume data descrcrii. n aceste dosare grupai ierele n
dosare cu nume semnicative. Adugai, dac este necesar, ntr-un
ier special adresa de Internet i date cu privire la locul de unde
ai descrcat documentele. Creai cataloage cu aceste dosare dup
metoda descris mai sus. n acest fel nu vei avea probleme cu citarea
documentelor de pe Internet.

cataloage
cu documente
descrcate
de pe
Internet

1.1.2.1.1.7 Cutarea de iere O operaie pe care o ntreprindem adesea este cutarea de iere. Mergei la Tools n 2xExplorer. Cutai un ier al crui nume nu-l tii. Punei doar *.*,
semn c nu tii nici numele, nici extensia. tii ns un fragment
de text din ier. Introducei fragmentul de text respectiv n caseta
de dialog, dup ce ai bifat use text constraints.
Cutarea pe care o ofer 2xExplorer nu este mult mai sosticat
dect cea pe care ai gsi-o la Start Find n Windows, dar o putei
efectua mai uor, direct n dosarul care v intereseaz.

11

1. Creionul electronic
1.1.2.1.1.8 Aranjarea meniului de start Activai panoul
din stnga al 2xExplorer-ului. Urmai ruta Bookmarks Go to folderStart Menu i dai clic pe Start Menu. Creai acum dosare n
care grupai scurtturi ctre programele pe care le-ai instalat.
Putei crea noi scurtturi ntr-un mod ct se poate de simplu.
n panoul din dreapta mergei la un dosar unde avei un executabil Windows. Selectai-l! Mergei la Edit i copiai (Ctrl+c).
Trecei apoi n panoul din stnga. Mergei la Edit i apsai Paste
Shortcut. Acum putei redenumi scurttura.
Nu uitai sfatul de a folosi un dosar i programe destinate doar
testrii pn suntei sigure i siguri pe ceea ce facei.

1.1.2.2

10

Managementul Fiierelor Comprimate

Chiar dac n-avei o idee prea exact despre iere v putei da


seama c ele ocup un loc n mediile de stocare. Arhivarea este este
un proces prin care ierele sunt comprimate. Mai mult dect att,
o colecie de iere este strns la un loc i circul sub forma unui
pachet unic.
WinXP dispune de un sistem de dezarhivare propriu. Lucrul
acesta nu este ns adevrat pentru mai vechiul Win98. Pe Internet
sau pe cd-urile ataate revistelor dedicate lumii calculatoarelor vei
gsi lesne destul de multe variante gratuite de programe de arhivare.
7-zip

O soluie care are numeroase avantaje o reprezint programul


7-zip, creat de Igor Pavlov. Pagina de web a acestui program
este <http://www.7-zip.org>. Consultai, de asemenea, <http:
//sf.net>.

15

20

25

7-zip are propriul manager de iere. Cu ajutorul acestui manager putei cuta n interiorul unui pachet de iere.
De asemenea, v putei sluji de comenzile pe care programul le
instaleaz n meniul ataat oricrui ier (meniul care apare cnd
facei clic pe dreapta pe pictograma ierului).
O problem este lipsa unui dezarhivator pentru arhivele specice
Mac. O soluie este Aladdin Expander al rmei AladdinSystems.
n acest caz, citii cu atenie licena produsului. Acest lucru este
valabil, evident, pentru toate programele pe care le vom meniona
aici. n special i atente i ateni la faptul c n-avei dreptul s
obinei un prot comercial n urma distribuirii produsului.26
26
Cu alte cuvinte, dac ai descrcat de pe Internet acest dezarhivator sau
l-ai obinut n alt mod nu-l putei vinde altcuiva. Evident, putei s-l dai mai

12

30

35

1.1 Sistemul de operare i managementul ierelor

1.1.3

Vizualizarea ierelor

Probabil v-ai familiarizat deja cu sistemul de extensii al ierelor n


Windows. Extensia este grupul de litere care urmeaz dup punctul
pus la sfritul numelui ierului.
5

10

n 2xExplorer putei vizualiza un ier dac-l selectai i apsai


apoi tasta F3. Evident, acesta este un mod foarte limitat de a vizualiza iere i v va de folos doar pentru cele care conin doar texte
simple. Pentru alte iere avei nevoie de programe de vizualizare
dedicate unui anumit tip de ier.
1.1.3.1

Vizualizarea ierelor PostScript

Pe parcursul acestui ghid avem mare nevoie de iere cu extensia


ps; denumirea complet a acestor iere este iere PostScript.

15

20

25

30

Pentru a vizualiza comod un ier PostScript sub Windows avei


nevoie de dou tipuri de programe. Primul este un interpretor al
coninutului ierului.27 Al doilea este programul de vizualizare ca
atare.
Descrcai de pe Internet unul dintre ierele gs700w32.exe,
gs704w32.exe, gs800w32.exe sau ceva mai nou din aceast serie.
Citii eventuale instruciuni de instalare. Oricum, procesul de instalare este extrem de simplu. Un ier exe este executabil direct n
Windows. Dup ce ai plasat convenabil ierele rezultate mergei
la dosarul doc i citii ierul public. El conine Aladdin Free
Public License, pe scurt AFPL. Comparai-o pe loc sau ulterior
cu importanta licen GNU a Free Software Foundation.
Pentru nceput n-are sens s ncercai s facei mare lucru cu Ghostprogramul pe care l-ai instalat. Este doar bine s tii un se a, script
care este versiunea sa i c se numete Ghostscript.
Pentru a instala vizualizatorul descrcai un ier cu un nume
de genul gsv44w32.exe. l gsii n multe locuri pe Internet. Primul
numr indic versiunea. Avei grij s e compatibil cu versiunea
programului Ghostscript. Din nou, instalarea este relativ simpl.
Citii ns instruciunile. Va trebui s indicai ns ce versiune a
Ghostscript vrei s folosii. Programul pe care tocmai l-ai insta- Ghostlat se numete Ghostview. Este foarte folosit n lumea academic, view
departe, dar nu putei cere o compensaie nanciar dect pentru mediul de
stocare sau pentru alte cheltuieli implicate de transferul produsului.
27
PostScript este un limbaj creat de rma Adobe pentru tiprirea de documente pe printere cu laser. Limbajul poate folosit i pentru crearea de imagini
pe ecran. Pentru o scurt prezentare a limbajului PostScript v. 3.1.2.

13

1. Creionul electronic
dar are o licen, ca s zic aa, la limita programelor care vor
recomandate n aceast carte. Pentru a face s dispar o fereastr
care tot apare cnd deschidei programul28 trebuie s nregistrai
programul contra unei sume de bani. Versiunea nenregistrat este
ns absolut funcional i nu cuprinde nici un fel de limitri.
pstoedit

Versiunile mai noi ale Ghostview nu integreaz ns o unealt extrem de necesar denumit pstoedit. Despre pstoedit putei citi la
<http://www.pstoedit.net/pstoedit/>. Concret, pentru instalare, v trebuie ierul pstoeditsetup.exe i, desigur, priceperea
minim necesar pentru a instala programe sub Win98.29

10

Ce face pstoedit? V ofer posibilitatea de a converti un ier


PostScript ntr-unul de tip pdf.

1.1.3.2

Vizualizarea ierelor pdf

Pdf este o prescurtare a unui termen englezesc care ne spune c


este vorba despre iere care stocheaz documente ntr-un format
portabil. Portabilitatea nseamn, ntre altele, c aceste iere pot
vzute att sub Windows, ct i sub Unix i Macintosh, cele trei
platforme principale n lumea calculatoarelor.
Tot att de important ca i portabilitatea este calitatea ieAcrobat relor pdf de a veritabile cri electronice. Pentru a vedea aceste
Reader cri trebuie s instalai un sistem de vizualizare. Cel mai faimos
este Adobe Acrobat Reader. Citii despre acest program la adresa
<http://www.adobe.com/products/acrobat>. Ca mai toate programele de vizualizare, Acrobat Reader este distribuit gratuit.
Pentru a avea pe deplin senzaia crii electronice putei instala
Adobe Acrobat eBook Reader.

1.1.3.3

15

20

25

Vizualizarea altor tipuri de iere

Programele de vizualizare a ierelor, spre deosebire de cele de editare, sunt de regul oferite gratuit de ctre rme.
Word
n mod sigur vei avea nevoie periodic de un vizualizator de iere
Viewer doc. Microsoft Word Viewer poate folosit n mod gratuit. Putei
vedea cu el i ierele de tip rtf.
OpenOce

OpenOce este o suit complet de aplicaii pentru birou; poate


28

Acestui tip de fereastr i se spune n englez nagscreen.


ntre altele, instalarea sub WinXP este mai complicat. Trebuie s studiai
n mod special cum se pot instala programe sub asemenea sistem de operare.
29

14

30

1.1 Sistemul de operare i managementul ierelor


folosit att pentru vizualizarea, ct i pentru editarea de iere
doc i rtf.30
Pe Internet vei gsi, de asemenea, iere de tip lit. Pentru a le Microsoft
vedea avei nevoie de Microsoft Reader.31
Reader
5

10

Un alt tip de iere pe care s-ar putea s le ntlnii pe Internet sunt cele pentru palm computere. Exist cri ntregi n for- Docmat pdb. Un vizualizator gratuit pe care l-am folosit cu succes este Reader
DocReader-ul creat de Mike Pickering.32
Evident, pentru omniprezentele, pe Internet, iere html, este
nevoie de un vizualizator pentru asemenea iere. De regul, Microsoft Internet Explorer sau Netscape Navigator sunt folosite pentru
a vizualiza asemenea iere.

1.1.4

Internet
Explorer
i/sau
Netscape
Navigator

Cine se teme de utilizarea computerelor?

15

Pentru a adopta perspectiva programatorului trebuie s tim ceva


mai mult despre utilizarea Windows.

20

Mergei la Start Run. Tastai cuvntul command i apoi apsai command


Enter. Apare o fereastr neagr ca aceea din vechiul ms-dos. n
aceast fereastr nu pot date dect comenzile numite comenzi n
linie. Dac nu tiai, tocmai ai dat o asemenea comand pentru a
chema fereastra ms-dos.

25

30

Revenii la Start Run. Apsai butonul Browse. Navigai un pic


pn gsii pe discul c dosarul Windows. Apoi cutai notepad.exe
i cnd l gsii dai un clic pentru selecie i apsai butonul Open.
Aranjai fereastra neagr a ms-dos prompt-ului n aa fel nct
s vedei mica fereastr Run deschis n colul din stnga-jos al
ecranului. Mergei n fereastra neagr a ms-dos. Tastai cu grij
comanda din fereastra Run. Vericai dac nelegei conceptul de
cursor33 Putei recurge i la procedura de copiere i inserare de
text dintr-o fereastr ntr-alta. Dup ce ai scris sau copiat textul
relativ misterios, apsai tasta Enter. Se va deschide o fereastr
Notepad.34

exemplu
de
comand
n linie

Ce mai putem scrie n fereastra neagr? Tastai echo Un text.


30
Putei s v procurai OpenOce de la adresa <http://www.openoffice.
org>.
31
Putei descrca programul de instalare de pe situl rmei la <http://www.
microsoft.com>.
32
l putei descrca de la <http://www.crosswinds.net/~mpicker0>.
33
O liniu clipete n fereastra neagr atunci cnd aceasta este fereastra n
care lucrai. Aceast liniu de subliniere indic punctul n care se a cursorul.
Este punctul n care, practic, putei insera un text.
34
Am fcut acelai test i-n WindowsXP. Nu au fost probleme. Copierea n

15

1. Creionul electronic
Programul va aa cuminte Un text. Cuvntul echo este o comand, care spune programului s aeze textul care urmeaz imeistoria diat dup comanda respectiv.
comenziPutem inuena ceea ce se ntmpl la prompt-ul ms-dos? Da.
lor Merit s dispunem de o istorie a comenzilor. Mergei pe discul c
chiar n rdcin i plasai sgeata cursorului Windows pe autoexec.bat. Facei clic pe dreapta. Facei apoi clic pe Edit. Fiierul
acesta este un ier de tip text, dar al crui coninut este, pentru sistemul de operare, un ir de comenzi. Adugai la sfritul ierului
comanda c:\windows\command\doskey.com. Vericai dac efectiv
avei pe calea indicat un ier cu numele doskey.com. Repornii
calculatorul.35
Cnd sistemul a repornit deschidei din nou o fereastr ms-dos.
Dai ce comenzi vrei n ea. Apsai apoi tasta cu o sgeat n
sus i pe cea cu sgeata n jos. Observai c acum sistemul ine
minte comenzile.36 Cu tastele cu sgei ctre stnga i ctre dreapta
v putei mica prin textul comenzii. Folosii tasta Ins37 pentru a
modica o comand fr a o scrie de la capt.
Ai dat deja peste un fel de resurs secret i extrem de util a
sistemului ms-dos.

1.1.4.1

10

15

20

Comenzile n linie din 2xExplorer

n multe situaii s-ar putea s avei nevoie s dai rapid o comand


n linie. Putem folosi pentru a atinge acest scop i 2xExplorer-ul.
Cea mai simpl comand n linie este format din numele unui
Run program executabil. Mergei la Tools i dai clic pe Run Command.
Command Tastai sfc i apoi Enter. Apare unul dintre cele mai utile programe din Windows98. Acest program veric integritatea sistemului. n-are nici un rost s reinstalai sistemul de cte ori avei o pan.
l putei restaura cu sfc.
Dac-ai pus splitfile undeva n path, atunci putei repeta comanda de mai sus cu splitfile.
Comenzile n linie de mai sus sunt utile pentru a chema programe
fereastra neagr difer desigur. Practic trebuie recurs la meniul obinut prin clic
pe butonul din dreapta al mouse-ului.
35
Windows v va sci de multe ori cu aceste reporniri dup instalri sau
modicri n sistem.
36
Le ine minte ct timp fereastra este deschis.
37
Tasta care alterneaz dou moduri de scriere: unul prin inserarea de text;
altul n care textul este suprascris.

16

25

30

1.1 Sistemul de operare i managementul ierelor


Windows. Tastai ns dir urmat de apsarea pe tasta Enter. Apare
doar pre de o clip o fereastr neagr. N-ai vzut nimic.

10

Dir este o comand n linie care trebuie dat ntr-o fereastr msdos. Apsai tasta f10 urmat de Enter. Apare o fereastr neagr
(cel puin aceasta este culoarea setat automat). Acum dir are alt
efect.

f10

Avantajul oferit de 2xExplorer poate din nou s par minor.


Putem chema fereastra ms-dos direct din sistemul Windows. Diferena este ns dat de faptul c ea are promptul chiar n dosarul
n care am chemat-o. n plus, 2xExplorer are propria sa istorie a
comenzilor. Avantajul nu este chiar mic.

1.1.4.2

Fiiere cu comenzi n 2xExplorer

15

O comand n linie este un text ca oricare altul. De ce n-am putea


crea un ier cu asemenea comenzi?
Generate
Mergei n dosarul unde ai creat (cu titlu de prob!) iere cu batch. . .

20

extensia tex. Selectai-le! Mergei n meniul principal la Mark i


dai un clic pe Generate batch. . . . Tastai comanda ren $N $B.txt.
Dai clic pe Create. Salvai ierul cu extensia bat. Dai comanda redenude executare a acestui ier.
mirea
Selectai ierul bat creat i apsai f3. Nu executai dublu clic ierelor
pe un astfel de ier pentru a-l deschide! Este un ier cu comenzi!
Se vor executa comenzile.

25

30

Nu este greu s nelegei structura comenzilor create. V-ar trebui


un manual de ms-dos pentru a crea iere bat mai complexe.38
Oricum, redenumirea este una din operaiile de care te loveti foarte
des. Este extrem de greu s o execui manual.
O alt operaie pe care uneori trebuie s o executm asupra
unui grup de iere este tergerea. Comanda este del. Mare atenie tergerea
ns la folosirea ei. nvai pe iere i-n dosare cu iere create de iere
doar pentru teste. Testai n mod repetat ceea ce ai creat. i nu
blestemai autorul pentru efectele nedorite. Cartea nu este nsoit
de nici un fel de garanii. Facei totul pe propria rspundere.

38
n WindowsXP exist comenzile n linie specice. Se pot obine explicaii
recurgnd la ajutorul oferit de sistem.

17

1. Creionul electronic
1.1.4.3

Programele ascunse din Windows

Exist oare i resurse Windows mai mult sau mai puin ascunse?
Cum s nu! De unele este relativ periculos s v apropiai. Altele
sunt ns puin cunoscute, dar extrem de utile.
Uneori exist scurtturi n Accessories pentru aplicaii utile,
dar ele nu sunt folosite prea des. Un exemplu este un program pe
nume kodakimg.exe. l gsii n dosarul Windows.
Putei crea i propriile dosare cu scurtturi n meniul Start. Mergei n 2xExplorer pe urmtorea rut cu meniuri: Bookmarks Go
to Folder Start Menu. Creai un nou dosar i dai-i un nume sugestiv. Intrai n acest dosar i facei o scurttur ctre programul
kodakimg.exe.

tiff

sfc

Cnd studiai meniul Start vedei un meniu derulant n care gsii


scurttura nou creat. Putei porni acum un program de prelucrare
de imagini. Acest program creeaz iere de tip tiff. Dac avei
un scanner sau acces la un scanner i copiai electronic, s zicem,
un manuscris de zece pagini, ierul de tip tiff ine toate aceste
pagini la un loc, ntr-un singur ier. Putei rsfoi acest ier ca pe
o carte. n plus, acesta este formatul folosit de ctre marea majoritate a programelor ocr, programele care recunosc literele. Aceste
programe pot transforma un ier de tip tiff ntr-unul de tip text.

regedit

Cu sysedit.exe putei edita ierele de congurare a sistemului.


Dac nu suntei ucenici vrjitori, recomandarea ar s editai doar
ierul autoexec.bat n modul indicat deja mai sus.
Un program pe care ucenicii vrjitori l vor ncerca desigur este
regedit.exe. Lansai acest program. Acum avei acces la ierele n
care Win98 i ine datele cu privire la programele instalate, tipuri
de iere, moduri de deschidere a lor i aa mai departe. Nu umblai
aici fr socoteal, deoarece avei toate ansele s instalai haosul
n sistemul dumneavoastr.
Dup ce ai lansat n execuie Regedit, dai clic pe cruciulia
de la hkey_classes_root. Folosii glisorul pentru a ajunge la
39

18

10

15

20

Un alt program deosebit de util este sfc.exe.39 l gsii tot n


dosarul Windows.

Alte programe ne duc limpede pe terenul unde se avnt doar


ucenicii vrjitori. Mergei, de exemplu, din dosarul Windows n domsconfig sarul System i cutai acolo programul msconfig.exe. Acest program v permite s congurai sistemul Win98. Evident, o facei pe
propriul risc.
sysedit

V. pagina 16, rndul 29

25

30

35

1.1 Sistemul de operare i managementul ierelor


Folder i facei iar clic pe cruciuli. Punei sgeata pe Folder i dai
clic pe dreapta. Alegei din meniu pe New Key. Numii aceast
cheie 2xExplorer. Acum construii o nou cheie, dar cu rdcina
n 2xExplorer, cheia pe care tocmai ai creat-o. Dai-i acestei chei
numele command. Nu-i dai alt nume! Aa cum sugereaz numele,
aceasta este cheia pentru comanda n linie. Deschidei-o aa cum ai
deschide orice dosar. Chemai un meniu prin clic pe dreapta valorii
Default. Introducei o comand de tipul D:\use\2xExplorer.exe.
Evident, punei calea adecvat pentru sistemul dumneavoastr. Vericai eventual calea cu Start Run Browse. . . .

10

nchidei Regedit. Obinei un meniu prin clic pe dreapta pe


icoana cu numele calculatorului dumneavoastr. n meniu apare
acum i 2xExplorer. Putei renuna la pictograma de pe suprafaa
de lucru.
15

1.1.4.4

Strat Unix peste Windows

20

nainte de a trece mai departe trebuie s ne reamintim un principiu


important. Cartea aceasta v ndeamn s nvai ct mai mult
experimentnd cu diverse programe. Nu facei acest lucru ns cu
mai multe programe deodat. Instalai pe rnd diverse programe i
vedei ce se ntmpl. Programele interacioneaz ntre ele i aceste
interaciuni nu pot anticipate. Ai instalat poate n acelai dosar
dou iere care, dac ar sta separat, rezultatul ar altul. Sau poate
ai estimat eronat felul n care un program face apel la alt program.
Nu v grbii s punei aceste efecte nedorite pe seama unor virui.

programele
interacioneaz

De asemenea, dac un program este nestabil, Win98 tinde s


se destabilizeze n totalitatea sa.40 Nu este neaprat un motiv s
renunai la Win98 n favoarea unui sistem de operare care separ
mai bine felul n care funcioneaz diversele programe. Win98 este
rodul unui efort superb de a pstra compatibilitatea cu mai vechile
programe ms-dos. Poate, de asemenea, emula Unix n bune condiii.
Instalai foarte prudent noi programe.

25

30

Cnd ne apucm s modicm sistemul Windows98 este bine Autoexec


s tim s modicm Autoexec.bat. Folosesc, din nou, exemplul
computerului pe care este scris cartea:
1
2
3
4

SET
SET
SET
SET

HOME=D:\dat\home
VIM=D:\USE\VIM
GHOSTSCRIPT_FONT_DIR=D:\ed\gs\fonts
PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;D:\USE\BIN

40
Avantajul WindowsXP const, ntre altele, n eliminarea acestui tip de instabilitate.

19

1. Creionul electronic
Aceasta este o parte din ierul Autoexec.bat. Citii cu atenie
aceste rnduri, dar nu facei modicri mecanice pe calculatorul
dumneavoastr. inei cont de denumirile propriilor dosare.
home este numele unei variabile al crei coninut este folosit de
ctre diverse programe. Programele transferate din Unix folosesc
dosarul indicat drept home pentru a plasa acolo iere de congurare.
Trebuie s i atente i ateni la modul n care se instaleaz Vim
(i alte programe) n funcie de existena sau nu a unei valori pentru
home. Editorul care este marea alternativ la Vim, Emacs, va cere
n mod explicit s dai o valoare lui home.
Urmtorul punct important n setrile de mai sus l constituie
set path i cile care urmeaz dup aceea (vedei linia a patra din
fragmentul din Autoexec.bat). Aceste setri v scutesc de tastarea
cii complete atunci cnd apelai un program printr-o comand n
linie. De exemplu, d:\use\bin va permite s apelez n linie orice
executabil pus n dosarul bin din dosarul use aat pe discul d. n
dosarul respectiv pun, ntre altele, unelte aduse din lumea Unix.

variabile
de mediu
n WindowsXP

Cum modicm variabilele de mediu sub WindowsXP? n sistemul XP Autoexec.bat nu mai joac rolul din ms-dos sau Windows98. Mergei pe ruta Start Control Panel System Advanced Environment Variables i ajungei la o fereastr n care vedei
lista variabilelor de mediu. XP distinge ntre variabilele create de
utilizatori i cele ale sistemului. De exemplu, eu am creat o variabil
home. Cutai pe path printre variabilele de sistem i selectai cu
mouse-ul respectiva variabil de mediu. Dai apoi un clic pe butonul
Edit i adugai calea pe care dorii s o tie sistemul.
1.1.4.4.1 Sistem Unix minimal sub Windows Resursele native Windows pentru comenzile n linie n fereastra ms-dos sunt
foarte limitate. O soluie o reprezint instalarea de unelte Unix.
Pentru nceput recomandabil este instalarea unui strat minimal de
unelte Unix.41

10

15

20

25

30

Putei instala numai uneltele, fr compilatorul de C++. Dac


vrei s accesai direct uneltele Unix instalate, nu uitai s setai n
mod corespunztor variabila path a sistemului.
Vom da o ilustraie foarte simpl a modului n care sunt folosite
uneltele Unix. Vrei s tii, s zicem, cte cuvinte sunt ntr-un ier.
numrai Apelai la programul wc.exe, al crui nume vine de la expresia
cuvintele
41
Sistemul zis msys dispune de un program de instalare n stil Windows. Este
din iere
excelent pentru nceput. Pentru detalii a se vedea http://www.mingw.org/msys.
shtml.

20

35

1.1 Sistemul de operare i managementul ierelor

englezeasc word count. Mergei, cu ajutorul 2xExplorer, n zona


rezervat ncercrii programelor i creai un ier test.txt n care
scriei cteva rnduri. Apsai, n 2xExplorer, tasta F10 i scriei
comanda wc test.txt i apsai tasta Enter. Putei scrie, evident,
comanda i direct n fereastra ms-dos. Rezultatul const dintr-o
serie de cifre. Prima cifr indic numrul de rnduri; a doua numrul
de cuvinte; a treia numrul de semne din ier.

10

Vrei ceva ajutor? Scriei comanda wc help i studiai utilizarea cerei


opiunilor. Parantezele drepte indic elementele comenzii care nu ajutor
sunt obligatorii. Singurul mod de a nva cu adevrat utilizarea
unor astfel de programe este experimentatul. Numai aa v putei
obinui cu sistemul de opiuni al comenzilor n linie.

15

1.1.4.4.2 GnuWin32 Sistemul msys nu folosete direct Windows. Exist unelte Unix care folosesc n mod direct sistemul de
operare Windows. Proiectul GNU are o versiune pentru Windows.
Gsii n ea un set vast de unelte Unix, precum i multe alte programe.

20

25

30

Versiunea pentru Windows a proiectului GNU se numete GnuWin32. Consultai pagina de web cu pachetele de programe realizate n cadrul acestui proiect.42 Alegei programele de care avei
nevoie. Recomandarea noastr este ca, la nceput, s instalai doar
programe care dispun de setup. Orice nceptoare sau nceptor vor
avea mari diculti la instalarea fr setup.
1.1.4.4.3 Programarea n C/C++ Ucenicii vrjitori interesai de programarea n C++ vor desigur atrai de versiunea pentru
Windows a compilatorului gcc. Acest compilator este foarte important n sistemul de operare zis Linux. Este att de important nct
muli cred c sistemului respectiv ar trebui s i se zic GNU/Linux.
Numele celui care iniiat elaborarea gcc i micarea GNU, Richard
Stallman, ar trebui s e cunoscut de toat lumea.43

gcc

La ce este bun compilatorul? Nu v convine modul cum se comport wc.exe? Putei rescrie programul.
Pe situl <http://sourceforge.net> gsii un excelent mediu
integrat de dezvoltare de programe n C/C++. Cutai un program
42
Adresa paginii de web cu lista de pachete GnuWin32 este <http://
gnuwin32.sourceforge.net/packages.html>. Pentru surse i documentaie,
v.<http://www.gnu.org>, <http://gnu.eunet.fi> sau orice alt sit Internet
legat de proiectul GNU.
43
Pentru ideile micrii GNU v. 1.1.5

21

1. Creionul electronic
care se numete Dev-C++. Vei avea o interfa grac tipic pentru Windows i compilatorul gcc integrat. Cu acest mediu putei
rescrie, evident dup ce nvai C/C++, programele de genul celui
de numrat cuvinte.

1.1.5

Principiul surselor deschise

Sistemul de operare propriu-zis ofer puine posibiliti de lucru.44


Pentru a produce un eseu frumos tiprit sunt necesare o serie de
alte programe.
Ce facem ns? Noi programe ar putea nsemna noi cheltuieli.
Dac este vorba despre o rm, atunci aceste cheltuieli ar putea s-i
gseasc justicarea: ele pot recuperate vnznd produsele rmei.
Dac este vorba despre o student sau un student, se proleaz o
dilem foarte neplcut. S-ar prea c alternativa este ntre a plti
sume considerabile i a pirata programe.
Pirateria este ns hoie i ar trebui exclus din start. Din pevitai cate nu se ntmpl de multe ori aa. n ciuda accesului masiv la
pirateria Internet,45 sunt puin folosite programele gratuite.46
Gratuitatea nu este ns un scop n sine. Este foarte important
s consultai licenele. Uneori produsul este gratuit doar pentru a-i
face (un timp) reclam. Versiunile ulterioare sau versiunile complete
nu sunt gratuite. Recomandarea noastr, mai ales n cazul eseurilor studeneti, este orientarea ctre o licen GNU sau o licen
asemntoare.
GNU este, n esen, o licen menit s asigure accesul la surlicena sele programelor, s previn plagiatul. Licena interzice, de asemeGNU nea, ascunderea rezultatelor fcute astfel publice ntr-un program
care n-are surse deschise. Persoanele care au scris sursele sau pri
ale acestora trebuie menionate n mod adecvat. De asemenea, cine
opereaz o modicare n surse trebuie s arate acest lucru n mod
explicit i s nu mpiedice accesul altora la surse.
GNU nu este o licen menit s asigure gratuitatea programelor.
44
Linux este, de obicei, distribuit mpreun cu o mulime de programe de
editare de texte, imagini etc. Cred c trebuie distins ns ntre aceste programe
i sistemul de operare ca atare. Windows include, cu unele excepii, programe
suplimentare foarte modeste i rma a fost chiar atacat n justiie din pricina
integrrii n distribuia de baz a Internet Explorer.
45
n Uniunea European, n 2003, accesul la Internet, n diverse ri, variaz
ntre aproximativ 20% i 75%. La noi procentul este desigur mic, dac numrm casele i apartamentele conectate la Internet. Situaia este diferit n cazul
universitilor.
46
Programele gratuite sunt distribuite, de asemenea, i de ctre reviste.

22

10

15

20

25

30

1.1 Sistemul de operare i managementul ierelor

Aa cum atunci cnd reproduci n editura proprie lucrarea altcuiva


sau plteti pentru a citi o carte, nimic nu mpiedic plata unei sume
de bani pentru a avea acces la sursa unui program. n practic ns,
multe dintre persoanele caru au scris programe cu surs deschis au
fost generoase i au plasat sursele i programele n domeniul public.
O serie de astfel de programe sunt rodul cercetrii din mediul
academic. Este absolut resc ca, atunci cnd le cerem studentelor i
studenilor s tehnoredacteze un eseu, losoc sau nu, s le artm
i cum pot folosi aceste programe.47

10

15

Pentru a nelege mai bine sensul acestor principii ar trebui s


claricm ce se nelege prin sursa unui program.
Toi cei care sunt ahtiai dup fora calculatorului lor discut
despre viteza procesorului calculatorului. Mai importante sunt ns
programele rulate pe calculatoare. Adevrata for o reprezint minile care programeaz inteligent. Pentru programare sunt folosite
limbaje de nivel mai nalt, care au anumite asemnri cu limbajele
umane.

fora
minii
este mai
important

Sursele programelor sunt scrise n aceste limbaje de nivel mai


nalt. Ele sunt stocate n iere de tip text.48
20

25

30

35

n mediul academic i-n cercetare, n lipsa surselor, nu poate


studiat dect utilizarea programelor. Lucrul acesta este absurd.
Gndii-v la un program care, dac i dai dou numere naturale,
v spune care este cel mai mare divizor comun al lor. N-avei cum ti
ns ce algoritm folosete. Este ca i cum am nva matematica fr
a studia algoritmul lui Euclid. A studia doar utilizarea programelor
ar echivala cu transformarea universitilor n coli de meserii.

sursele
deschise i
accesul la
cunoatere

Exist ns i alte avantaje ale surselor deschise n raport cu programele care sunt doar gratuite. Autoarea sau autorul unui program
gratuit ar putea s nceteze s mai dezvolte produsul su. Aceasta
i oblig pe utilizatori s foloseasc alt program. n cazul surselor
deschise, dac programul este cu adevrat valoros, se va gsi cu
siguran cineva care s-l dezvolte n continuare.

ameliorarea
programelor

n practic, principiul surselor deschise este foarte avantajos cnd


trebuie s operezi modicri, de multe ori banale, ntr-un program.
De pild, am vrut, cum este normal, ca bibliograa acestei cri s
nu e presrat cu cuvinte englezeti inutile, precum and (i). Am
47
Nu cred c este etic s-i form s foloseasc programe comerciale scumpe.
S-ar putea ca astfel s-i mpingem pe calea pirateriei. De aici i pn la producerea de eseuri plagiate nu mai este dect un pas. Dac un gen de hoie este
permis, alte tipuri de hoie devin i ele acceptabile.
48
De aceea un bun editor de texte este att de important pentru programatori.

23

1. Creionul electronic
folosit accesul la sursele programului care determin stilul bibliograei pentru a obine rezultatul dorit.49

1.2

Editorul Vim

Vim continu tradiia principalului editor din lumea Unix, editorul


vi. Vi a fost creat de William Joy.50 n ciuda faptului c, n forma
sa actual, Vim dispune de meniuri, muli s-ar putea s-l gseasc
neatrgtor.

Cred c unii se gndesc deja s-i scrie eseul cu unul dintre oceuri.51 Cartea de fa v propune ns alt perspectiv dect cea pe
care o adopt un program pentru munca de birou. Problema nu este
de a avea un program pentru munca de birou care s e gratuit.52
Ideea este de a schimba perspectiva utilizrii cu aceea a programrii.

10

perspecDin perspectiva programrii, un document tiprit este realizat cu


tiva ajutorul unui program. Programul este cel care stabilete aezarea
progra- n pagin a textului, imaginilor, tabelelor. Tot prin program sunt
mrii specicate tipurile de litere folosite. Tot programarea este cea care
ne permite s inserm note, trimiteri, bibliograi.

15

49

Un program care nu permite accesul la surse ofer posibilitatea de a regla o


serie de parametri. Dac parametrul care ne intereseaz nu este reglabil trebuie
s ne adresm direct rmei productoare. Licena nu ne permite s modicm
programul.
50
William Joy este unul dintre fondatorii Sun Microsistems. Vi ine ns de
perioada premergtoare celei de la Sun. Pentru istoria Vi v. interviul luat lui William Joy de ctre Eugene Eric Kim, Linux Magzine, <http://www.linux-mag.
com>, noiembrie 1999 (data accesri: 11/01/2004), What inspired you to write
vi?.
51
Are, evident, sens s instalai un oce. Putei pune foarte uor, de pild,
OpenOce, care este versiunea cu surs deschis a unui produs al rmei Sun,
rma lui William Joy. Programul acesta poate face i operaii care depesc sfera
operaiilor normale ntr-un birou. Este un program care, dac mergei pe ruta
Tools Data Sources vei vedea, cu titlu de demonstraie, cum putei lucra i cu
o bibliograe ale crei elemente le putei integra n documentul dumneavoastr.
Apsai ok. Apoi apsai f4. Expandai arborele Bibliography i ramura Tables.
Vei vedea chiar datele pe care le cuprinde bibliograa demonstrativ instalat
o dat cu programul. OpenOce are i o serie de alte faciliti pentru munca
intelectual. De asemenea, este capabil s deschid i s creeze documente ntr-o
serie de formate ntlnite frecvent.
52
Dac folosii Vim, vedei desigur c acesta nu este un program pur i simplu gratuit. Bram Moolenaar i ncurajeaz pe utilizatori s fac donaii unei
fundaii care desfoar activiti caritabile n Uganda.

24

1.2 Editorul Vim

1.2.1

nvarea Vim ntr-o zi

Vim este mai prietenos dect vechiul vi. Vi te punea n faa unui
ecran negru. Apsai tastele i nu se ntmpla nimic, dac nu tastai
din greeal i sau a. Atunci apreau nite litere pe ecran, dar mare
lucru nu se ntmpla. Te ntrebai cine o folosind Vi. Rspunsul
este relativ simplu: cei care scriu programe.
Mergei la adresa de Internet <http://www.vim.org> pentru a
aa cum putei descrca Vim de pe Internet. Versiunea cu care sunt
scrise i sursele acestei cri este 6.2.

10

15

Instalarea versiunii 6.2 sub Windows este ct se poate de simpl.


V recomand s optai pentru o apropiere ct mai mare de stilul
Windows. Astfel, ceea ce ai nvat exersnd cu Notepad putei
aplica n continuare.
Optai, de asemenea, pentru posibilitatea de a recurge la Vim
direct din meniurile contextuale ataate oricrui ier.
1.2.1.1

Un editor modal

Vim este un editor dedicat n special editrii de iere de tip text.


Este bine s v familiarizai mai nti cu modul n care Vim v
permitei s prelucrai un ier de tip text.
20

25

30

35

Creai un ier de tip text n 2xExplorer. Deschidei-l cu Vim, nu


cu Notepad. Dac-ai reuit, vedei cum clipete un dreptunghi negru
n colul din stnga sus al ferestrei Vim. Inutil apsai diverse litere.
De regul, nu vei face dect s apar litera respectiv pe ultima linie
a ecranului. Tastai i. Forma cursorului s-a schimbat. Pe ultimul
rnd al ferestrei scrie acum -- INSERT --, iar dumneavoastr ai
nceput s descoperii, fr s tii, ideile de baz ale programrii.
La nceput erai n modul numit modul normal. Putei reveni modul
oricnd n acest mod apsnd tasta Esc care este plasat n colul normal
din stnga sus al tastaturii unui PC. n acest mod Vim interpreteaz
apsarea oricrei taste ca pe o comand sau ca pe nceputul unei
comenzi.
1.2.1.1.1 Atenie la moduri Cnd au fost introduse calculatoarele la bordul avioanelor, un teribil accident a avut loc n Frana
din pricina nefamiliarizrii piloilor cu ideea de mod de lucru.
Piloii au vrut s ocoleasc un munte. Au dat o comand pentru
a ctiga n altitudine. Din pcate, nu au fost ateni la modul n
care se aa programul calculatorului de bord. Avionul s-a dus cu
ncpnare direct spre munte.

25

1. Creionul electronic
Cnd deschidei Vim v aai n modul normal. Dac tastm d
de dou ori, tergem un rnd! Din fericire, putem tasta u i rndul
se reface.
Sistemul complet al modurilor Vim este descris n documentaia
care nsoete editorul.

1.2.1.1.1.1 Modul normal Modul normal al Vim este cel


n care dai comenzi dintr-un punct de pe suprafaa de lucru a editorului. Cea mai frecvent comand n acest mod va probabil i.
Tastnd i putei ncepe s introducei text.
ncercai s vedei care este efectul apsrii diverselor taste n
modul normal. Care este, de pild, diferena tastarea lui a i a lui
i? Care este efectul lui A?

1.2.1.1.1.2 Inserarea textului Felul n care ajungem s introducem text a fost deja explicat (vezi seciunea 1.2.1.1, rndul 26).
Ca s ieim din acest mod apsm tasta Esc i revenim n modul
normal.

1.2.1.1.1.3 nlocuirea unei poriuni de text Din modul


normal putei trece n modul n care suprascriei textul deja existent n dou feluri: dac tastai r sau dac apsai combinaia de
taste Shift+r. n primul caz, dup nlocuirea unei litere revenii
la modul normal. n al doilea caz, revenii n modul normal doar
apsnd Esc.
Sub Windows, este probabil mai comod s suprascriem chiar pe
parcursul introducerii de text. Apsai tasta Ins. Pe ultima linie
a ferestrei Vim apare -- REPLACE --. Ca s ieim din acest mod
(familiar oricui a mai utilizat programe Windows!) apsm din nou
tasta Ins.
1.2.1.1.1.4 Selectarea textului ca-n Windows Pentru a
selecta text inei tasta Shift apsat i folosii tastele cu sgei
sau cele pentru derularea paginilor. Observai mesajul (insert)
SELECT care apare pe ultimul rnd al ferestrei Vim.
n acest mod putei lucra cu obinuitele comenzi Windows de
copiere, decupare i inserare de text.53
53

26

Vezi seciunea 1.1.1.1.1.

10

15

20

25

30

1.2 Editorul Vim


1.2.1.1.1.5 Modul vizual Vim are i modul su propriu de
a selecta text. Dac, n modul normal, tastai v, atunci trecei n
acest mod. Putei selecta apoi text n maniera Windows sau folosind
comenzi de deplasare a cursorului specice Vim.
5

Modul vizual are o versiune n care selectai cte un rnd n


ntregimea sa.54 Pentru aceasta tastai V n modul normal.

La prima vedere, modul vizual nu prezint mare interes. El are


ns unele avantaje subtile n raport cu seleciile Windows cnd
trebuie s copiem text dintr-un mod Vim ntr-altul.
10

15

20

25

30

Regula pe care v-a recomanda s o urmai este urmtoarea:


folosii cu seleciile n stil Windows comenzile (de copiere, decupare,
lipire) n stil Windows. Cnd vrei s folosii comenzi specice Vim,
utilizai modul vizual pentru selecii.
Exist, de asemenea, un mare avantaj al seleciei n modul vizual: selecia unor coloane de text. Creai un tabel precum cel de
la pagina 33, rndul 6. Mergei n colul uneia dintre coloane, trecei
n modul normal i apsai Ctrl-Q. Acum putei selecta coloana Ctrl-Q
respectiv.
n Unix selecia blocurilor de text n mod vizual se face dup
apsarea Ctrl-V, dar acest lucru nu este posibil sub Windows,
unde combinaia respectiv de taste servete la inserarea unui text
copiat sau decupat.
1.2.1.1.1.6 Comenzile n linie Comenzile pe care le putem
da tastnd doar o liter sau folosind combinaii de taste sunt fatalmente limitate. Vim are ns un set de comenzi (native) mult mai
bogat. Pentru a avea acces la ele trebuie s trecei din modul normal n modul comand n linie. Cum? Apsnd n modul normal pe trecerea
tasta : (tasta cu dou puncte pe ea).55
la
n aceste anexe gsii fragmente de cod. Fiecare rnd este nu- comanda
merotat. Putei obine i-n Vim o numerotare a rndurilor textului. n linie
n modul normal tastai :set nu! (nu v speriai din pricina faptului c dup ce-ai tastat dou puncte trecei pe ultima linie; este
semnul c-ai schimbat modul). Apsai Enter i apar numerele.
Cum scpai de numere? Trecei iar n modul comand n linie!
54

Este vorba despre rnduri n sens logic. Vezi despre rnduri i seciunea 1.2.1.2.
55
Se poate trece n modul comand n linie i apsnd tasta /. Acest lucru
l facem atunci cnd vrem s dm o comand de cutare prin restul textului
(din punctul n care se a cursorul n modul normal). Tastm ns ? (n modul
normal) atunci cnd vrem s cutm n poriunile de text aate nainte de
punctul n care se a cursorul.

27

1. Creionul electronic
Apsai tasta cu sgeata n sus. Vim ine minte comenzile n linie.56
Repetai comanda anterioar. Numerele dispar.
1.2.1.2

Rnduri logice i rnduri vizuale

Scriei, de pild, ceva care v trece pe moment prin cap. Apsai i


Enter de cteva ori. ncercai s v micai prin text cu sgeile de
pe tastatur. Observai cum Vim consider c un rnd se termin
logic cnd apsm Enter. Putei s v micai ns oriunde n text
folosind mouse-ul i cursorul din Windows. Atenie ns! Pentru a
schimba astfel poziia cursorului Vim trebuie s facei clic n punctul
n care vrei s v oprii.

10

Distincia dintre rndurile logice i cele vizuale este foarte important. Rndurile vizuale depind de dimensiunea ferestrei Vim.
Pentru a obine rnduri vizuale dai comanda :set wrap!; efectul
ei este aarea rndurilor logice n ntregimea lor, chiar dac depesc dimensiunile ferestrei.

15

Dezavantajul lui wrap este c rupe aarea n mijlocul cuvintelor.


Alternativa este comanda :set lbr!. Ea are drept efect crearea
unor rnduri vizuale n care cuvintele rmn ntregi.
1.2.1.3

Explorarea meniurilor

Citii ceea ce gsii cnd facei clic pe Help n meniuri, dar nu


ncercai s pricepei tot de la nceput. Pe de o parte, explicaiile
par scrise pentru cineva destul de versat n lucrul cu acest gen de
editoare. Pe de alt parte, multe dintre noiuni sunt mai degrab
relevante n contextul unui sistem de operare de tip Unix.
Mai productiv, la nceput, mi se pare alt mod, foarte simplu de a
nva Vim. Parcurgei cu rbdare meniurile programului i vedei
ce este de folos pentru dumneavoastr acolo. De exemplu, meniul
File v spune cum putei deschide, nchide i salva iere.
Vei vedea ns n meniuri i expresii misterioase de genul :w.
Dac scriei :w i apsai Enter vei salva ierul i vei primi o
conrmare de genul "test.txt" 3L, 144C written. Mesajul aat
de Vim cuprinde numele ierului, numrul de rnduri, numrul de
caractere i cuvntul englezesc written, pentru a ne indica scrierea
pe disc a ierului respectiv.
La meniul Edit acordai importan n special seciunii File Set56
Vim ine minte separat comenzile puse dup dou puncte de cele realizate
cu comenzile de cutare prin text.

28

20

25

30

35

1.2 Editorul Vim


tings i rubricii Select Font. . . . Mergei la File Format. . . i observai
c Vim cunoate cele trei tipuri de iere text.57
Literele (n englez fonts) sunt o problem cu mult mai dicil.
Alegei un tip de liter (n englez, font) care dispune de un Script
de tipul Central European. n acest fel avei acces la literele romneti. Nu trebuie dect s comutai n Windows pe tastatura litere
romneasc.58 Vim este perfect capabil s lucreze cu ea.
romneti

Dac revenim acum la meniurile principale, urmeaz trei meniuri


mai ciudate: Tools, Syntax, Buers. Nu este nevoie s le studiai cu
foarte mare atenie de la bun nceput. Primul dintre cele trei meniuri va fascina desigur pe ucenicii vrjitori. Cu ajutorul lui putei
nva, de pild, cum s editai codurile numerice pe care le folosete Windows n ierul dumneavoastr. Al doilea ne introduce o
trstur crucial a Vim: capacitatea sa de a vizualiza n culori diferite comenzile i datele din iere.59 Al treilea trebuie studiat cu
atenie. Conceptul folosit acolo nu trebuie confundat cu cel de fereastr. Buferele sunt ns efectiv utile cnd prelucrm deodat un
mare numr de iere.

10

15

1.2.1.3.1 Congurarea Vim Cum putem regla modul n care


se comport Vim? Pentru a nelege acest lucru trebuie s ne amintim c Vim vine din lumea Unix. n acest sistem de operare obiceiul
este s se foloseasc iere de congurare. Dac mergei n dosarul
n care este instalat Vim vei gsi un ier care se numete _vimrc.60
Imediat dup instalare vei gsi rndul urmtor n acest ier:

20

25

30

source $VIMRUNTIME/vimrc_example.vim

Cutai scriptul vim la care se face referire n acest rnd n dosarul


n care se a principalul ier executabil din Vim gvim.exe i facei
o copie a acestui ier. Redenumii copia. Cel mai normal ar s-i
zicei simplu vimrc.vim; putei acum s facei modicrile dorite
n aceast copie. Apoi, n _vimrc modicai n mod adecvat rndul
care trimitea la exemplul de congurare creat la instalare.
57

Fiierele Dos sunt totuna cu ierele text din Windows. Vezi mai sus (pagina 8, rndul 4) deosebirile dintre trei tipuri de iere text.
58
V. 2.3.1
59
Pentru detalii v. 1.2.1.3.3.1.
60
Linia din faa numelui ierului imit stilul Unix. n Unix ierele de congurare au nume care ncep cu un punct. Linia n-are un mare rol aici. S-ar putea
s e o msur de precauie fa de programele antivirus care vd un duman
n tot ce nu este ca-n Windows.

29

1. Creionul electronic
Pe calculatorul cu care este scris cartea adugirile mai importante sunt urmtoarele:
1
2
3
4
5
6

set
set
set
set
set
set

guifont=lucida_console:h12:cEASTEUROPE
listchars=tab:\|\_,trail:-,eol:<
lbr!
shiftwidth=3
tabstop=3
noexpandtab

literele Prima linie de mai sus spune Vim ce font s foloseasc atunci cnd
deschide un ier, ct de mare s e corpul literei i s recurg la
un litere printre care se gsesc i cele romneti. Rolul celorlalte
linii l putei descoperi lesne dac folosii bara cu instrumente (bara
ajutor cu pictograme) i facei clic pe semnul de ntrebare cu lup. Punei
Vim cuvntul care v intereseaz n caseta de dialog i cerei ajutor.
Atenie! Semnul de exclamare, egalul etc. nu fac parte din cuvintelecheie ca atare.
1.2.1.3.2 Scripturile Vim Vim are desigur i multe puteri ascunse. Este imposibil s converteti n meniuri tot ce poate face Vim.
limbajul Important este extensibilitatea sa. Vim folosete pentru aceasta
Vim propriul su limbaj.61 Acest limbaj nu este ns foarte greu de nsuit i putem crea cu ajutorul lui o mulime de lucruri utile, inclusiv
noi meniuri.
n limbajul Vim se pot scrie programe. Un program Vim este scris
script ntr-un ier de tip text, dar care are extensia vim. Aceste iere sunt
colecii de comenzi pe care le interpreteaz Vim. Exist i un nume
generic pentru astfel de programe. Ele se numesc script-uri.
n primul rnd, merit s extindei Vim cu ajutorul altora. n
vimles funcie de modul n care ai instalat Vim, cutai un dosar care se
numete vimfiles. Cutai n el dosarul plugin. Recomandarea ar
s nu folosii dosarul plugin din vimfiles. Putei astfel distinge
ntre extinderile operate direct din instalare i cele ulterioare. O alt
variant ar s pstrai unul dintre dosare pentru extinderile create
de alii i una pentru cele create de dumneavoastr.
Eu am adugat, de pild, UnMtchBracket.vim. Este o extensie
creat de Chandra Naveen. i permite s sesizezi dac o parantez
a fost sau nu nchis. Dup cum vei observa ulterior, acest lucru
este absolut esenial din perspectiva programrii. Extensia aceasta
v scutete de multe bti de cap.
61

30

Spre deosebire de Emacs, care folosete Lisp.

10

15

20

25

30

1.2 Editorul Vim

Uneori vrei s vedei ns care este perechea unei paranteze


date. Pentru aceasta procedai n felul urmtor. Trecei n modul
comand. Punei cursorul pe paranteza creia vrei s-i gsii perechea. Apsai %. Cursorul se va muta pe paranteza pereche. Putei
face acest lucru cu toate cele trei tipuri de paranteze.

O alt extindere util a Vim este DirDo.vim. Autorul acestui


program este William Lee. Valoarea sa o vei descoperi imediat ce
ncercai s modicai foarte multe iere aate n dosare diferite.

10

15

20

25

30

35

1.2.1.3.3 Vim bun la toate Ucenicii vrjitori vor vrea desigur


s deschid cu Vim printr-un dublu clic o mulime de iere. Pot
face acest lucru n felul urmtor. Se pornete programul Regedit.
n hkey_classes_root este localizat cheia txtle. Se merge pe
ramura care pornete din aceast cheie pn se ajunge la comanda
pentru deschiderea ierelor de tip text i acolo se schimb comanda
care spune Windows s foloseasc Notepad cu una care deschide
ierul cu Vim (ceva de genul D:\use\vim\vim62\gvim.exe %1).
Evident, calea ctre gvim.exe trebuie s e cea de pe calculatorul respectiv. Trebuie pus i %1, care spune sistemului s deschid
ierul pe care se face dublu clic.
Nu trebuie ns abuzat de procedurile de genul celei de mai sus.
Putem deregla relativ lesne Windows. De asemenea, de multe ori
este mai interesant s deschidem simultan mai multe iere cu Vim
sau s deschidem cu Vim un anume tip de ier numai atunci cnd
vrem s editm ierul, nu i atunci cnd vrem s-l vizualizm.
1.2.1.3.3.1 Vericarea corectitudinii sintactice Fiecare
limbaj de programare are sintaxa sa. Greelile de sintax trebuie
evident eliminate. Pentru a ne ajuta n procesul de identicare a
erorilor de sintax Vim coloreaz textul programelor.
evidenierea
sintaxei
prin
Dac Vim nu detecteaz sintaxa sau vrei s o pornii manual, colorare
mergei la meniul Syntax; apsai Show letypes in menu pentru a
putea alege limbajul dorit. Restul comenzilor au nume care explic
limpede rolul lor.
Comanda pentru colorarea textului este dat n ierul de congurare. Vim folosete extensia ierelor pentru a detecta limbajul
n care este scris coninutul lor. De asemenea, Vim folosete informaiile coninute n primul rnd al anumitor iere.

1.2.1.3.3.2 Integrarea Vim n 2xExplorer Din 2xExplorer poate se poate apela direct la un editor extern. Folosind View

31

1. Creionul electronic
Options. . . bifai butonul radio pentru editorul extern i indicai
calea ctre gvim.exe.
Putei deschide acum cu Vim orice ier prin simpla apsare a
tastei f4. Metoda aceasta este foarte comod i este o bun alternativ la meniul contextual.

f4

1.2.1.3.3.3 Cte cuvinte sunt n ier? Studentele i studenii sunt uneori foarte nedumerii cnd li se cere ca eseul lor s
nu depeasc un anumit numr de cuvinte. Vor s msoare totul
n pagini de text.
n epoca ierelor electronice este ns relativ lesne s numeri
cuvintele.
Vrei s aai cte cuvinte ai scris n ier? Trecei n modul
comand. Tastai g. Apoi tastai Ctrl+g (inei tasta Ctrl apsat i, n acelai timp, apsai g). Pe ultimul rnd al ferestrei Vim
va aprea un mesaj care v spune la al ctelea cuvnt suntei i cte
cuvinte sunt n ier.62
1.2.1.3.3.4 Semne de carte n ierele foarte mari este greu
s revenim cu uurin la un punct din ier. Vim are posibilitatea
de a se deplasa la rndul dorit, dar pentru a folosi aceast metod
trebuie s notm numere de rnd. Mai simplu este s punem semne
de carte.
Trecei n modul comand (modul normal al Vim). Tastai m.
Apoi tastai o liter oarecare. Este recomandabil ca litera respectiv
s v e cumva asociat cu tema textului n punctul unde am pus
semnul de carte.

10

15

20

25

Mergei n alt parte a textului. Cum revenii n locul n care am


pus semnul de carte? Trecei n modul comand. Tastai . Tastai
apoi litera care slujete drept semn de carte i vei reveni n punctul
n care ai pus semnul de carte.

1.2.2

Vim la modul serios

Ce facem, de fapt, cu Vim? Am tot vorbit despre ierele text. Eu


am crea unul pe care l-am folosit cnd am testat exemplele care
urmeaz. Este un ier foarte simplu, cu urmtorul coninut:
1

filosofie uman
62
Pentru mai multe detalii a se vedea manualul scris de Bram Moolenaar
pentru utilizatorii Vim (seciunea 12.5).

32

30

1.2 Editorul Vim


2
3

\section{woo} poveste mit


filosofic bibliografie

Am botezat acest ier woo.txt. Litera w sugereaz faptul c este


vorba de un ier text de tip Windows. Putei crea lesne unul la fel
sau unul asemntor.
Mergei n meniul principal la Tools i dai clic pe Convert to
hex. Fereastra Vim se modic. n cazul ierului meu woo.txt
coninutul ferestrei arat astfel:

1
2
3
4
5

0000000:
0000010:
0000020:
0000030:
0000040:

6669
5c63
7665
6f66
650d

6c6f
6861
7374
6963
0a

736f
7074
6520
2062

6669
6572
6d69
6962

6520
7b77
740d
6c69

756d
6f6f
0a66
6f67

616e
7d20
696c
7261

0d0a
706f
6f73
6669

filosofie uman..
\section{woo} po
veste mit..filos
ofic bibliografi
e..

Ce s-a ntmplat? Vim a folosit un program extern63 pentru a ne


dezvlui din ce anume este fcut ierul woo.txt. Fiierul este pur
i simplu o colecie de coduri.

xxd

Rezultatul aat de ctre Vim const din cinci rnduri. n stnga


vedei numerele pe care le-am pus aici pentru a v uura numrtoarea.n centrul primelor patru rnduri se vd opt grupuri de patru
cifre. Trebuie s grupai aceste cifre cte dou. Fiecare pereche de
cifre reprezint un numr scris n baza 16.64

10

S-ar putea s vi se par curios, dar scrierea numerelor n baza 16


este mai comod. De ce? Procesorul computerului lucreaz, de fapt,
cu numere n baza 2. El vede miezul unui tabel de genul urmtor:

15

1
2
3
4
5
6
7
8
9
10
11
12

00:
06:
0c:
12:
18:
1e:
24:
2a:
30:
36:
3c:
42:

01100110
01100110
01100001
01101000
01111011
01110000
01100101
00001010
01101111
01101001
01110010
00001010

01101001
01101001
01101110
01100001
01110111
01101111
00100000
01100110
01100110
01100010
01100001

01101100
01100101
00001101
01110000
01101111
01110110
01101101
01101001
01101001
01101100
01100110

01101111
00100000
00001010
01110100
01101111
01100101
01101001
01101100
01100011
01101001
01101001

01110011
01110101
01011100
01100101
01111101
01110011
01110100
01101111
00100000
01101111
01100101

01101111
01101101
01100011
01110010
00100000
01110100
00001101
01110011
01100010
01100111
00001101

filoso
fie um
an..\c
hapter
{woo}
povest
e mit.
.filos
ofic b
ibliog
rafie.
.

Observai c nu mai sunt acum dect ase coloane n centrul tabelului. Sunt aceleai numere ca i mai sus, dar scrise n baza 2. Se vd
63

Programul xxd.exe, pe care-l putei folosi independent de Vim. l gsii n


dosarul n care se a i gvim.exe.
64
De aici denumirea de hex (de la hexadecimal).

33

1. Creionul electronic
limpede grupurile de opt cifre de 0 sau 1. n limbajul informaticii
un grup de asemenea cifre binare se numete octet 65
Creai cu ajutorul Vim un ier woof.txt cu urmtorul coninut:
1
2
3

filosofie uman
\section{woof} poveste mit
filosofic bibliografie

n 2xExplorer selectai pe rnd cele dou iere i apsai tasta f12.


Comparai dimensiunile! Fiierul woo.txt are 67 de octei(bytes);
ierul woof.txt are 68 de octei. Fiierele difer ntre ele printr-o
singur liter! Litera f de pe rndul 2 difereniaz cele dou iere.
octet

Concluzia este foarte simpl. Un octet servete la codicarea unei


litere. Dar un octet este format din dou grupuri de patru 0 sau 1.
n reprezentarea n baza 16 a octetului ecrui grup de patru cifre
binare i corespunde o singur cifr. Este mai comod s folosim
scrierea codului numeric n baza 16: scriem doar dou cifre, nu opt.
Iar trecerea este direct: ecare cifr din hex este tradus separat
n patru cifre binare corespunztoare.
Uitai-v i la numrtoarea de pe margine. Noi am folosit obinuita reprezentare n baza 10 a numerelor pentru rnduri. Programul xxd a pus ns (pe coloana separat cu dou puncte de rest)
cifre n baza 16. n baza 16, 10 din baza 10 este a, 11 este b, 12
este c, 13 este d, 14 este e i 15 este f. Cnd avem de a face cu o
reprezentare n baza 16 format din dou cifre, prima cifr trebuie
nmulit cu 16 pentru a-i aa valoarea (n baza 10, mai accesibil
nou); rezultatul, adunat cu a doua cifr ne d, reprezentarea n
baza 10. Uitai-v pe rndul opt mai sus: cifra 2a reprezint numrul 2 16 + 10 = 42 (n baza 10). Este numrul de octei de pe
primele apte rnduri.
Complicat? i da i nu. Ar imposibil s manevrm direct codurile numerice. Vim ne ofer ns o vizualizare a acestor coduri.
Programul ne ajut, de asemenea, s facem tot felul de modicri
n coduri: s adugm, s tergem, s schimbm ntre ele coduri i
aa mai departe.
S ne concentrm atenia asupra codurilor n baza 16. Putei s
identicai codul pentru litera f? Este 66.66
65

n englez, octet sau byte.


Citii ase-ase! Nu este chiar corect, dar aizeci i ase ar absolut
greit, deoarece este vorba despre o reprezentare n baza 16 a numrului pe care
n baza 10 l reprezentm prin 102. ase ori aisprezece plus ase ar corect,
dar dac n-avei cumva capaciti de a face rapid calcule n minte mai mult
ne ncurc.
66

34

10

15

20

25

30

1.2 Editorul Vim


Un spaiu alb are i el un cod! Este vorba de 20. Dac ierele spaiul
dumneavoastr nu coincid cu dimensiunile indicate aici, probabil alb are un
avei vreun spaiu alb pe undeva.
cod
5

Sfritul de rnd este indicat prin dou coduri (n Windows).


Acestea sunt 0d, zis cr, i 0a, zis lf.67

cr lf

Exist un cod pentru sfritul de ier? n principiu da, dar Vim


a construit ierele fr s introduc acest cod. Nu este o greeal.
Codul respectiv ar 1a, zis i eof68 . Vim l-ar vizualiza (n modul
n care este setat la instalare) cu un Z.
10

15

Exist rete un cod i pentru bara oblic invers. Acest cod este
5c.
n rezumat, serviciul fundamental pe care ni-l face un editor ca
Vim este acela de a ne facilita manipularea coleciilor de coduri de
genul celor descrise mai sus. Vim nu este destinat arii frumoase
a unui text ntr-o pagin. Nu este un sistem de tiprire, e pe ecran,
e pe hrtie.

1.2.2.1

20

Atracia interfeelor grace

Vi este editorul favorit al persoanelor care folosesc metoda oarb


de tastare.69 Pentru a folosi oarba trebuie ns s ii permanent
degetele pe taste.70 Mouse-ul mai mult ncurc lucrurile pentru c
trebuie s ridici mna de pe taste.
Vim continu tradiia vi i poate folosit fr a ridica mna de
pe taste. n versiunea sa cu interfa grac Vim are ns meniuri
i permite recursul masiv la serviciile mouse-ului.

25

n continuare, vom folosi meniuri pentru a prezenta posibilitile


Vim. n general, vom urma ordinea temelor din manualul lui Bram
Moolenaar[7]. Moolenaar explic ns ideile pentru cineva care folosete cu prioritate tastatura.71

67
Pentru detalii despre sfritul de rnd n diverse tipuri de iere vezi
1.1.2, pagina 8, rndul 4.
68
De la expresia englezeasc end of le.
69
Numele sugereaz faptul c persoana respectiv se uit la ecran sau n alt
parte, dar nu la taste.
70
Tastele f i j au pe ele mici prole distincte pentru a putea reveni lesne la
poziia standard a minilor pe tastatur.
71
Pentru explicaii cuprinztoare, bogat ilustrate, vezi cartea despre Vim
scris de Steve Oualline[9].

35

1. Creionul electronic
1.2.2.1.1 Construirea meniurilor Vim are un sistem foarte
exibil de adugare a unor meniuri suplimentare.72 Pentru a nva
scrierea de meniuri, creai un dosar special pentru exerciii. n acest
dosar (folder) creai un ier aidoma lui woo.txt73 .
Comenzile pentru toate meniurile pe care le vei crea trebuie
un prim puse n iere cu extensia vim. Creai, n dosarul pentru exerciii,
meniu un ier simplu.vim; aici vei pune cel mai simplu meniu posibil.
Scriei urmtoarea linie de cod (fr numrul de linie din fa!):
1

:imenu Simplu.text Am realizat un prim meniu.

Salvai coninutul ierului.


Deschidei ierul woo.txt cu ajutorul Vim. Suntei n modul
normal! Mergei cu ajutorul mouse-ului sau al tastelor cu sgei pe
ultimul rnd. Apsai tasta o (fr s apsai Shift!).74 Cursorul
se mut pe rndul urmtor i editorul trece n modul insert. Pe
bara cu instrumente (bara cu pictograme) dai clic pe omuleul care
alearg (Run a Vim Script). Se deschide o caset de dialog. Deschidei
simplu.vim ca pe orice ier. n bara cu meniuri apare un nou
meniu.
Acum putei da un clic pe meniul Simplu i apoi pe text. Pe ultimul rnd al ierului apare textul Am realizat un prim meniu.
Putei da un clic pe pictograma Undo (sgeata rsucit ctre stnga)
i anula efectul meniului dumneavoastr. Cu un alt clic pe Undo
aducei ierul la forma iniial.

10

15

20

Ce trebuie s studiai n codul meniului? n primul rnd cele trei


blocuri ale meniului.
Primul bloc ncepe cu dou puncte. Am putea deci folosi acest
cod pentru o comand n linie! Apoi urmeaz imenu, care spune
programului c este vorba de un meniu care funcioneaz n modul
insert.
Al doilea bloc conine textul care apare n meniuri. Atenie la
punct. Nu punei spaii albe aici! Ar interpretate ca un semn c
urmeaz al treilea bloc. Dac vrei spaii albe, trebuie s le precedai
cu o bar oblic invers, ca-n exemplul urmtor:
1

:imenu Simplu.pre\ text Am realizat un prim meniu.


72

A se vedea manualul lui Moolenaar[7, 42].


Vezi pagina 32, rndul 33
74
Combinaia Shift+o creeaz un rnd deasupra celui pe care am dat comanda.
73

36

25

30

1.2 Editorul Vim


n al treilea bloc pot s apar spaii albe. Al treilea bloc conine
comenzile pe care le execut Vim cnd facei clic pe item-ul respectiv din meniu. n exemplele de mai sus suntem n modul insert i
ceea ce i se spune, de fapt, editorului Vim este s insereze textul
respectiv n ier.

1.2.2.1.1.1 Submeniuri Dac mergei la meniul standard


Edit i apoi la File Settings, vedei cum apare un submeniu.
Putei exersa crearea de submeniuri n Vim meterind liniile de cod
care urmeaz:
1
2

:imenu Simplu.nod.text1 Am realizat submeniul 1.


:imenu Simplu.nod.text2 Am realizat submeniul 2.

Fii atente i ateni la faptul c trebuie s dai din nou clic pe


pictograma cu omuleul care alearg! Vim trebuie inut la curent cu
schimbrile pe care le-ai fcut.

10

Dac vrei s luai totul de la nceput, nchidei ierul text.


Redeschidei apoi ierul i repetai operaiile de creare a meniului.
1.2.2.1.1.2 Acceleratori Mai mult ca sigur, tii deja la ce
slujesc literele subliniate din titlurile meniurilor. Combinaia de
taste Alt+E, de pild, deschide meniul Edit. Apoi este sucient s
apsm tastele care corespund literelor subliniate pentru a avansa
prin meniu sau pentru a executa comanda asociat respectivului
articol din meniu.

15

20

Cum pot realizai acceleratorii? Foarte simplu. n linia de cod


de mai jos m este transformat ntr-un accelerator.
1

:imenu Si&mplu.&accelerat Am realizat un meniu accelerat.

Punei semnul & n faa literei care desemneaz acceleratorul.


25

&

Trebuie s i atente i ateni la posibilele conicte cu alte meniuri sau inconsistene. Dac nu folosii des acceleratorii, atunci
n-are probabil rost s-i creai.
1.2.2.1.1.3 Bara cu instrumente B. Moolenaar explic n
manual cum poate modicat bara cu instrumente.75
75

Moolenaar[7, 42.4].

37

1. Creionul electronic
Efectul obinut prin modicarea barei cu instrumente v va convinge probabil c Vim este efectiv exibil. Dac avei pasiunea interfeelor grace, vei pune desigur cel puin o pictogram proprie
pe bara cu instrumente.
S vedem un exemplu practic. Creai un ier vim care conine
urmtorul cod:
1
2

:tmenu ToolBar.LtxCmd Comand LaTeX


:amenu ToolBar.LtxCmd <Esc>\{}<Left><Left>

Prima linie de cod spune editorului ce mesaj s aeze n mica fereastr care apare cnd ducem mouse-ul pe pictograma de pe bara
cu instrumente. A doua linie include comanda. Am pus amenu pentru ca pictograma s e aat n toate modurile Vim76 . Comanda
ca atare este n cel de-al treilea bloc. Ea i spune lui Vim s inseA
reze scheletul unei comenzi L TEX, format din semnele \{} i apoi
s mute cursorul dup bara oblic invers. Pe <Esc> l putei ignora
deocamdat. Nu-l eliminai ns.77
La urm, dar nu n cele din urm, examinai blocul din mijloc
al celor dou linii de cod de mai sus. Scriei ToolBar i nu altceva.
Nu schimbai nici majusculele n minuscule sau invers. Altfel Vim
nu nelege c vrei s punei ceva pe bara sa cu instrumente. V
trebuie ns i o imagine pentru pictograma de pe bar.
Eu am creat un dosar (un folder) bitmaps n dosarul standard
vimfiles. Vim citete o variabil de mediu care-i spune unde sunt
dosarele sale.78 Dosarul bitmaps trebuie s e undeva unde caut
Vim. Eu prefer vimfiles pentru c aici stau doar ierele create sau
instalate local (de ctre mine) i nu cele din instalaia standard Vim.
De asemenea, nu schimbai numele lui bitmaps. Punei n bitmaps
imagini de tip bmp cu dimensiunea de 18 x 18 pixeli.
Imaginile din dosarul bitmaps sunt folosite pentru pictograme.
Numele lor trebuie s e exact acelai cu cel care urmeaz dup
ToolBar i punct. n exemplul nostru, imaginea trebuie s aib desigur numele LtxCmd.bmp.
Dac nu tii nimic despre imaginile folosite de ctre programele
de computer, putei aa cte ceva aici n 3.1.
76

Acel a din amenu vine de la englezescul all modes (toate modurile).


Citii despre caracterul aparte al lui amenu n manualul lui Moolenaar[7,
p.207]. Practic, acel <Esc> este echivalent cu apsarea tastei Esc, necesar pentru a anula efectul lui Ctrl-O introdus automat n modul insert de ctre
amenu. Noi vrem doar s introducem un text, nu s executm o comand i abia
apoi s revenim la modul insert.
78
La instalare suntei ntrebate unde vrei s punei vimfiles.
77

38

10

15

20

25

30

1.2 Editorul Vim


1.2.2.1.1.4 Meniurile standard Morala de baz n cazul
meniurilor standard este s nu le modicai. Dai meniurilor dumneavoastr alte nume. Folosii alte taste pentru accelerare.
Morala aceasta fundamental nu v interzice ns s examinai
felul n care sunt construite meniurile standard. Mergei n dosarul
Vimxx.79 Cutai ierul menu.vim i studiai-l.

Nu folosii unele dintre prile meniurilor standard? Nu folosii,


de exemplu, din Tools seciunea a treia, cea care se refer la compilare? Nu este nevoie s distrugei ceva n menu.vim. Eu am pus n
ierul de congurare al Vim urmtoarele rnduri:

10

1
2
3
4
5
6
7
8
9

:aunmenu
:aunmenu
:aunmenu
:aunmenu
:aunmenu
:aunmenu
:aunmenu
:aunmenu
:aunmenu

Tools.&Make
Tools.&List\ Errors
Tools.L&ist\ Messages
Tools.&Next\ Error
Tools.&Previous\ Error
Tools.&Older\ List
Tools.N&ewer\ List
Tools.Error\ Window
Tools.Set\ Compiler

Aceste comenzi fac s dispar din meniu poriunile pe care nu le


folosesc. n-am distrus ns nimic pentru a putea restaura lesne meniurile iniiale.
Atenie la comenzile de mai sus. Ele au ntre litera care indic
modul Vim i menu secvena un. Restul se nelege de la sine.

15

Mai exist o metod blnd de schimbare a meniurilor standard.


Putem transforma toat linia de cod (de program deci) ntr-un comentariu. Vim ignor comentariile. Comentariile sunt rnduri (n comentasens logic, nu vizual) care ncep cu ghilimele duble. Exemplul ur- rii n
mtor ne arat cum scap de linia de separare rmas n plus n Vim
meniu dup comenzile de anulare de meniuri de mai sus:

20

"an 40.520 &Tools.-SEP3-<Nop>

Singura modicare pe care am fcut-o a fost inserarea ghilimelelor


duble la nceput de rnd. Evident, este uor s le elimin la nevoie.
Tot cu ghilimele duble am scpat i de unele pictograme:
1
2

"
"

an 1.250 ToolBar.Make :make<CR>


an 1.270 ToolBar.RunCtags :!ctags -R .<CR>
79

ele dou x -uri stau pentru numerele versiunii Vim.

39

1. Creionul electronic
1.2.2.2

Micrile cursorului Vim

Cu un simplu clic pe butonul din stnga mouse-ului putem schimba


poziia cursorului n fereastra Vim. Foarte comod! Ctui de puin
dac vrem s scriem un meniu Vim care s fac i altceva dect s
insereze text.

Vim este un editor, dup cum am vzut, de colecii de coduri


pentru tot felul de semne. n aceste condiii ne intereseaz prea
puin punctele de pe ecran i aarea pe ecran a semnelor. Ne-ar
interesa s ne deplasm cumva de la un cod la altul. Este ceea ce
explicm n continuare.

10

1.2.2.2.1 Micri ale cursorului n modul normal n modul normal, care este modul n care putem da comenzi apsnd pe
taste, exist o serie de taste care controleaz micrile cursorului.
Este destul s indicm aceste taste ntr-un script Vim pentru ca s
obinem acelai efect ca atunci cnd apsm zic pe taste.

15

1.2.2.2.1.1 Micile micri Dac ai studiat felul n care se


creeaz meniurile, nu este greu s folosii urmtoarele rnduri ntrun script Vim:
1
2
3
4

menu
menu
menu
menu

Cursor.<- h
Cursor.^ k
Cursor.v j
Cursor.-> l

Dup cum se observ mai sus, cele dou puncte din faa cuvntului
menu nu sunt absolut necesare. Evident dac ai folosi tastatura, ar
trebui s apsai pe tasta cu dou puncte pentru a trece n modul
comand n linie.
Meniul pe care-l creai nu este, n practic, de mare folos. Dup
cum sugereaz i semnele noastre, sgeile pot face lesne acelai
lucru. Important este ns descoperirea efectelor comenzilor.

20

25

1.2.2.2.1.2 Numrarea pailor Ne putem ns mica nu


doar cu pai de melc. Putem face un fel de salturi de cangur.
1
2

menu Cursor.<- 3h
menu Cursor.-> 3l

Cifra din faa literei indic de cte ori se aplic comanda. Fiierul
meu woo.txt este prea strmt pentru salturi peste rnduri, dar ideea
se aplic i-n acel caz.

40

30

1.2 Editorul Vim


Meniurile nu se compar aici ca ecien cu tastarea direct n
modul normal, dar jucria ar trebui s poat sugera posibilitile de
aciune ale Vim. Eu unul m joc pornind de la litera w de pe rndul
2 din woo.txt.
1.2.2.2.1.3 De la un cuvnt la altul Deplasarea de la un
cuvnt la altul este o chestiune mult mai subtil. Pentru nceput
putei studia posibilitile urmtoarelor meniuri:

1
2
3
4
5
6
7
8

"comanda w deplaseaz cursorul la urmtorul nceput de cuvnt


menu Cursor.w w
"comanda e deplaseaz cursorul la urmtorul sfrit de cuvnt
menu Cursor.e e
"comanda b deplaseaz cursorul la precedentul nceput de cuvnt
menu Cursor.b b
"comanda ge deplaseaz cursorul la precedentul sfrit de cuvnt
menu Cursor.ge ge

Comentariile de pe rndurile 1, 3, 5 i 7 ofer explicaiile necesare.


Restul este o chestiune de exerciiu.
Ca i-n cazul pailor mici, se pot i aici numra paii care urmeaz
s e fcui. Putem da napoi, de pild, cu trei cuvinte.

10

1.2.2.2.1.4 Deplasrile pe distane lungi Putem s mergem ns de la un capt la altul al rndului. Putem merge de la un
capt la altul al ierului.
1
2
3
4
5
6
7
8

15

20

"comanda ^ deplaseaz cursorul la nceput de rnd (logic)


menu Cursor.capRand ^
"comanda b deplaseaz cursorul la sfrit de rnd
menu Cursor.sfarsitRand $
"comanda gg deplaseaz cursorul la nceput de fiier
menu Cursor.capFisier gg
"comanda G deplaseaz cursorul la sfrit de fiier
menu Cursor.sfarsitFisier G

Asemenea deplasri sunt foarte utile ntr-un script Vim. Putem


spune deja c scripturile Vim sunt programe veritabile. Uneori vrem,
de pild, s cutm ceva prin tot ierul. Atunci are sens s mergem
la nceputul ierului i s ncepem cutarea.
1.2.2.2.2 Micrile cursorului n modul insert n scripturile Vim putem comanda micrile cursorului i fr s m n modul
normal (cel n care dm comenzi). Metoda este limpede dac vei
construi un meniu folosind rndurile de cod Vim de mai jos:

41

1. Creionul electronic
1
2
3
4
5
6
7
8

imenu
imenu
imenu
imenu
imenu
imenu
imenu
imenu

Cursor.Stanga <Left>
Cursor.CuvantStanga <C-Left>
Cursor.Sus <Up>
Cursor.Jos <Down>
Cursor.Dreapta <Right>
Cursor.CuvantDreapta <C-Right>
Cursor.CapRand <Home>
Cursor.SfarsitDeRand <End>

Meniul este activ n modul insert.


Se observ lesne c denumirile sunt mai sugestive (pentru cei
care tiu limba englez). Nu omitei parantezele unghiulare! Ele fac
parte din limbajul n care sunt scrise programele Vim.
O explicaie aparte necesit doar <C-Left>. Ideea este c C ne
arat c inem tasta Ctrl apsat. Similar, S-Left conine o indicaie de apsare a tastei Shift. Evident, n programe, aceste apsri
de taste sunt apsri virtuale, nu reale.
Comenzile <Left>, <Up> i celelalte pot folosite i-n modul
normal. Ele pot precedate de un contor al pailor doar n modul
normal. n modul insert comanda 3<Left> ar avea drept rezultat
inserarea cifrei 3 n text.

<Esc>

1.2.2.2.2.1 Trecerea de la un mod la altul Pentru a trece


de la un mod la altul putem folosi n comenzi pe <Esc>. De pild,
dac suntem n modul normal, <Esc>i sau <Esc>a fac trecerea la
modul insert. Invers, pentru a trece din modul insert n modul normal, putem folosi pe <Esc>.
1.2.2.3

10

15

Modicarea ierelor

Putem modica un ier prin adugarea de text. Putem modica


un ier prin inserarea de text. Asta este tot ce tim dac stpnim
doar micrile prin ier.

20

Pentru a copia poriuni de text sau pentru a le terge, pentru a


nlocui poriuni de text ar trebui s stpnim alte tehnici.
1.2.2.3.1 Regitrii de memorie Presupunerea noastr constant este c Vim este congurat pentru lucrul n manierea MS
Windows. Oricine a inspectat bara cu instrumente din Vim, a remarcat trei pictograme care servesc la modicarea textului: o foarfec, dou foi de hrtie i un clipboard. Se pot folosi, de asemenea,
combinaiile Ctrl+X Ctrl+C Ctrl+V pentru a obine aceleai
efecte ca i prin clicuri pe pictogramele amintite.

42

25

30

1.2 Editorul Vim


Clipboard-ul standard din Windows are ns o mare limit. Nu
ine minte dect o singur poriune de text o dat. Are, ca s zicem
aa, o memorie de scurt durat.
Creai ns un meniu Vim folosind urmtoarele rnduri de cod
Vim:

1
2
3
4
5
6
7
8
9
10
11
12

10

"Copie n registrul a
menu Redactor.copieA "ay
"Scrie din registrul a
menu Redactor.scrieA "ap
"Copie n registrul b
menu Redactor.copieB "by
"Scrie din registrul b
menu Redactor.scrieB "bp
"Copie n registrul c
menu Redactor.copieC "cy
"Scrie din registrul c
menu Redactor.scrieC "cp

Eu m-am jucat cu ierul woo.txt n felul urmtor: am creat un


rnd suplimentar gol; am selectat cuvntul bibliograe; meniul
Redactor s-a activat i am copiat textul selecta n registrul (sectorul) de memorie a; am pus apoi cuvntul losoc n registrul de
memorie b i cuvntul woo n registrul c. Am folosit linia liber
pentru a plasa acolo coninutul celor trei regitri de memorie. Fii
ateni ns la faptul c meniul Redactor este activ doar n modul
normal.

20

S analizm acum comenzile din meniu. Apoi trebuie s ne lmurim ce rol au ghilimelele duble. Ele trebuie folosite n modul normal
(modul comenzilor) pentru a-i spune lui Vim s atepte restul comenzii. De pild, dac am selectat text n modul vizual al Vim,
putem da o comand de genul "dy. Vim pune poriunea selectat n
registrul d. Cum? Acel y, care vine de la termenul yank este cheia
comenzii respective.80

25

Ce regitri putem folosi? Vim are nou tipuri de regitri.81 n


practic, la nceput vei folosi probabil regitrii numerotai, de la 0
la 9, i regitrii care au drept nume o liter, de la a la z, respectiv de
la A la Z. n orice caz, cel mai simplu este s punei text n regitrii
care au drept nume o liter.

15

yank

1.2.2.3.2 Copiere inteligent Programarea se nva cel mai


bine meterind. S-ar putea ca ucenicul vrjitor s se ntrebe dac
80
81

Pentru copiere vezi manualul lui Moolenaar[7, 4.6].


Vezi n documentaia Vim ierul change.txt pentru o descriere complet.

43

1. Creionul electronic
nu-r putea renuna la ghilimelele duble. Nu n meniurile de mai
sus. Cu seleciile am putea lucra, dar, n modul normal, un a, de
pild, ne-ar duce n modul insert. Vim nu-r ti c este vorba despre
registrul de memorie. i totui ucenicul vrjitor are dreptate.
Exist o soluie. Meterii meniuri cu ajutorul urmtoarelor rnduri de cod Vim:
1
2
3
4

"Copie un cuvnt
menu Redactor.copieCuvant bye
"Copie (inclusiv) pn la acolada din dreapta
menu Redactor.copiePanaLaAcoladaDreapta yf}

Dac yank n-are o selecie cu care s lucreze, atunci va atepta o


comand care s-i spun ce s copieze.
Mergei n woo.txt la prima acolad i copiai pn la acolada
din dreapta cu ajutorul meniului. Apsai tasta p n modul normal
pentru a vedea rezultatul. Observai c s-au copiat i acoladele.
Cum? Secvena f} este o comand care-i cere editorului Vim s
gseasc82 acolada din dreapta.
Dac nu vrei i acoladele, punei cursorul pe cuvntul woo i
copiai cu ajutorul meniului cuvntul. Putei apoi s v gndii cum
este realizat comanda.

10

15

Hm, mormie nemulumit ucenicul vrjitor. Dac nu este un


singur cuvnt ntre acolade! Atunci folosete:
1
2

"Copie pn la acolada din dreapta


menu Redactor.copiePanaLaAcoladaDreapta vf}hy

Selecia textului este fcut chiar n interiorul comenzii.


1.2.2.3.3 Inserare de text n stil Vim Dac yank este un
termen pe care nu-l auzim n lumea Windows, n schimb p-ul folosit
pentru a pune text amintete de paste-ul din Windows.

20

atenie la
Vim distinge ns ntre dou feluri de a pune text, dup cum se
diferena vede mai jos:
dintre
minuscule 1 "Plaseaz (dup cursor) ceea ce ai copiat
2 menu Redactor.plaseazaDupa p
i 3 "Plaseaz (nainte de cursor) ceea ce ai copiat
majuscule 4 menu Redactor.plaseazaInainte P
Toat diferena este dat de folosirea unei litere minuscule sau a
uneia majuscule.
82

44

n limba englez nd.

25

1.2 Editorul Vim


1.2.2.3.4 Decupare/eliminare de text n stil Vim Vim poate
terge o singur liter. Bnuiesc ns c v-ar interesa mai mult eliminrile masive de text. Meterii meniurile urmtoare i vei vedea
ce poate s fac Vim:
1
2
3
4
5
6
7
8
9
10
11
12

"tergem o liter
menu Sterge.x x
"terge pn la sfritul cuvntului
menu Sterge.dw dw
"terge pn la sfritul celui de al treilea cuvnt
menu Sterge.d3w d3w
"terge un rnd
menu Sterge.dd dd
"Anuleaz efectul comenzii anterioare
menu Sterge.undo u
"Anuleaz anularea unei comenzi
menu Sterge.redo <C-R>

Am adugat i capaciti de a elimina dezastrele produse de tergeri


sau anulri de tergeri.

Cum decupm? Foarte simplu. Mergei la nceputul unui cuvnt


i tergei (decupai) cu ajutorul comenzii dw din meniu. Mergei n
alt punct din ier i, n modul normal, apsai tasta p.
Ce facem dac vrem s decupm un cuvnt fr s mergem la
nceputul su? O soluie este:

10

1
2

"aw este text-object (adic un cuvnt)


menu tObiect.unCuvantSters daw

Subiectul este ns cam avansat pentru ambiiile acestei anexe.83


1.2.2.4

Meniuri care fac viaa mai uoar

Meniurile de pn acum au avut mai mult un rol pedagogic. Ca


atare, nu sunt foarte utile. La ce este ns cu adevrat bun un meniu?
Este bun atunci cnd ai de tastat o secven mai complicat de
comenzi sau una simpl, dar pe care ai uitat-o.

15

Mai inei minte cum se numr cuvintele din ier? Probabil c


nu. S-ar putea s gsii meterirea urmtoarelor meniuri util sau
chiar foarte util:

20

1
2

"Numr cuvintele din fiier


menu Util.numara g<C-G>
83

A se vedea pentru detalii manualul lui Moolenaar[7, 4.8].

45

1. Creionul electronic
3
4
5
6
7
8
9
10
11
12
13
14
15

"Aflai n ce loc din fiier v aflai


menu Util.loc :set noruler<CR><C-G>
"Ca s punei ruler-ul la loc
menu Util.ruler :set ruler<CR>
"Gsirea perechii unei paranteze
menu Util.perecheaParantezei %
"Schimb minusculele n majuscule i invers
menu Util.schimbaCasaDeLitere ~
"Schimb un cuvnt ntreg;
"mai bine cu aw dect cu bve~
menu Util.schimbaCasaDeLitereCuvant vaw~
"Schimb ntre ele dou litere
menu Util.xp xp

Meniurile de pe rndurile 4 i 6 v permit s v aai locul n


care suntei n ier. Meniul de pe rndul 6 repar eventuala eroare
produs de meniul de pe rndul 4, dac v place s avei permanent
ruler-ul n faa ochilor.
perechea
Gsirea perechii unei paranteze este ceva vital cnd folosim proA
parantezei grame precum L TEX. S-ar putea s socotii util instalarea permanent a scriptului matchit.vim. l gsii n dosarul macros din
distribuia standard a Vim.84
casa de
liter

Schimbarea casei de liter85 este adesea o problem.


Aceast anex am prezentat Vim dintr-o perspectiv elementar.
Cunotinele de baz de aici v permit s editai ns iere de tip
text simple. Problemele specice ierelor tex sau bib vor tratate
separat. De asemenea, cutarea ntr-un ier va discutat n alte
anexe.

1.3

Expresiile regulate

Dincolo de orice teorie sosticat, ideea care st n spatele expresiilor regulate poate lesne explicat printr-un exemplu. S zicem
c-am ieit n ora i studiez numere de nmatriculare ale mainilor.
Unele numere de nmatriculare ncep cu una-dou cifre i continu
cu o liter. Dar sunt vechile numere! Altele au o liter urmat de
mai multe cifre. Par a numere provizorii. Majoritatea mainilor
au numere de nmatriculare noi. Cum le disting? A putea oferi o
descriere de acest gen: la nceput sunt una sau dou litere, apoi dou
cifre, urmate de trei litere.
84

Instalarea ca atare este banal. Este bine s punei matchit.vim n dosarul


plugin din vimfiles. Instalarea ajutorului pentru acest script este descris n
manualul lui Moolenaar[7, 5.5].
85
Acesta este termenul tehnic din poligrae. Vine de la franuzescul casse.

46

10

15

20

1.3 Expresiile regulate


A putea oare caracteriza cumva formal un numr de nmatriculare? Care este gramatica adecvat?

10

15

20

M pot gndi la numerele de nmatriculare ca la nite expresii.


Fiecare expresie conine numere i litere (majuscule). Exist o mulime a tuturor acestor expresii. Toat problema const n separarea
din mulimea mare a acestor expresii a acelor expresii care constituie
mulimea numerelor de nmatriculare (posibile).
n ciuda posibilelor asociaii greite pe care le poate sugera numele, o expresie regulat nu este o expresie n sensul de mai sus,
ci un tipar (un ablon) care surprinde regularitile care disting
o expresie de alte expresii.
Din explicaia de mai sus decurge ideea c unei expresii regulate
i corespunde o mulime de expresii. Expresia regulat este un ablon care ne permite s decidem dac o expresie aparine sau nu
mulimii respective. Aceasta este ideea care st la baza gramaticilor
cu expresii regulate.
La ce ar bune aceste abloane? n primul rnd, fr ele nici nu
poate vorba de cutri mai sosticate prin iere. De asemenea,
orice program de prelucrare de texte, de pild, nu poate trece de un
stadiu foarte rudimentar dac n-are posibilitatea s disting ntre
diverse expresii.

1.3.1

25

apartenena la o
mulime
de
expresii

Denirea abloanelor

Unii scriu losoe, alii lozoe. Eu unul nu cred c este o problem de substan n spatele acestei diferene. Exemplul este ns
bun pentru a explica modul de cutare ntr-un text cu ajutorul unor
abloane sau tipare.
Creai un ier care cuprinde urmtorul text:

30

filosofie filozofie bibliofil


fiilosofie fiiilozofie b37fil
fiiiilosofie fiiiiilozofie
filoofie flosofie f+losofie
Un nume sugestiv pentru acest ier ar test.txt.
Pentru o prim cutare n ierul de mai sus folosim un tiparul
urmtor:

35

/filo[sz]ofie/
Cu tiparul se potrivesc att filosofie, ct i filozofie. Parantezele drepte indic faptul c oricare dintre literele din parantez s-ar

47

1. Creionul electronic
bara putea potrivi. Barele oblice sunt necesare n Vim pentru cutri
oblic i-nlocuiri de iruri de semne. Le vom folosi n continuare i pentru
c marcheaz clar graniele unui tipar.
Deschidei ierul test.txt n Vim. Punei cursorul la nceputul
ierului.86 Trecei n modul comand n linie i tastai tiparul de
mai sus. Cnd execut comanda, Vim mut cursorul la prima apariie a unui ir de semne care corespund tiparului i evideniaz cu
ajutorul fondului colorat tot ce corespunde cu tiparul dat.87
Vim folosete tipare pentru a ltra un text, separnd ceea ce
corespunde tiparului de ceea ce nu corespunde. Mulimea expresiilor
care corespund tiparului este evideniat prin colorare.
1.3.1.1

10

Logica abloanelor

Persoanele pasionate de logic vor descoperi cu plcere modul de


construire a tiparelor. n exemplul de mai sus este deja prezent
variabil ideea de lacun ntr-un text. Astfel concep logicienii ideea de variabil. Formal, o variabil este o lacun dintr-un text; lacuna respectiv poate umplut cu un anumit material. Mai sus umplerea
era limitat la literele s sau z. Puteam scrie [a-z] i atunci domeniul de valori al variabilei ar cuprins literele de la a la z.
punctul

Dac punem ns un simplu punct, tiparul devine /filo.ofie/


i Vim va evidenia i cuvntul looe. Punctul pus ntr-un tipar
corespunde cu ideea de lacun pentru un semn. Tiparul /f.l/ nu
va produce nici o evideniere n osoe. Nici tiparul /f[.]l/ nu
va evidenia nimic! Ar trebui s avem n text pe f.losoe sau ceva
de acest gen pentru ca s se produc o evideniere.

15

20

25

Din nou, persoanele interesate de logic pot s mediteze la cuanticarea implicat de parantezele drepte puse n tipar. n cuvinte
aceasta ar nsemna pentru oricare dintre semnele din parantez.
\?

Punctul pus n tipar cere ca lacuna s e completat efectiv.


Pentru a admite i zero apariii ale unui semn trebuie, n setarea
care este dat prin instalarea Vim,88 trebuie scris un tipar de genul
/f\?losofie/.
Bara oblic spre stnga din \? nu ine de construcia standard a
tiparelor. Ea depinde de modul n care este setat Vim. Bara i spune
86

Pentru c modul cutrii va nainte. Pentru cutri napoi ar trebui s


folosim un semn de ntrebare n locul primei bare oblice.
87
Atenie! Vericai n meniul Edit la Global Settings dac este dat comanda de activare-dezactivare a evidenierii.
88
Ucenicii vrjitori care au modicat setrile standard ale Vim trebuie s
consulte documentaia pentru a putea obine efectele dorite cu tiparele folosite.

48

30

1.3 Expresiile regulate


lui Vim c nu trebuie s ia n sens literal semnul care urmeaz.
Observai diferena dintre /f+losofie/ i /fi\+losofie/.

10

15

\+

Dac vrei un mod standard de formare a tiparelor, atunci trebuie s punei o opiune \v chiar la nceputul tiparului. Experimentai cu /\vfi+losofie/. Pentru alte opiuni care afecteaz tiparele modul
sau pentru eventuale nepotriviri cu explicaiile date aici citii docu- standard
mentaia Vim.
Am introdus deja mai sus o alt cuanticare n tipare. Ea ar putea citit n felul urmtor: una sau mai multe apariii ale semnului
anterior. Astfel, tiparul /\vfi+losofie/ caut losoe cu una sau
mai multe apariii ale lui i.
Cuanticarea * funcioneaz ca i +, dar admite i situaia cnd
n lacuna aat n raza sa de aciune nu a fost completat cu nici
un semn. Setarea normal a lui Vim89 ne permite s ne dispensm
de opiune \v n acest caz.

Putem cuantica i numeric. Tiparul /\vfi{1,3}losofie/ va cuanticonduce la ltrarea acelor cazuri n care i apare cel puin o dat care
sau cel mult de trei ori. Putem omite unul dintre numere.
numeric
20

Ce facem ns dac, folosind un tipar standard, vrem s-l cutm


chiar pe +. n acest caz, vom scrie, de exemplu, /\vf\+losofie/.
Evident, opiunea \v am pus-o de dragul Vim. Oricum, n Vim, cum
am vzut mai sus, putem s-l recunoatem pe + direct.
Dac vrem s gsim barele oblice ntr-un text, atunci trebuie s
folosim \\, respectiv \/.

25

30

35

Tiparele de cutare pot foarte sosticate. Putem indica, de nceput


exemplu, dac tiparul trebuie cutat la nceput de rnd. Pentru de rnd
aceasta scriem /\v^fil/. Observai diferena fa de /\vfil/.
Din nou, folosit ntre [] semnul ^ are cu totul alt rol. Dac scriem excludere
/[^0-9]/, aceasta nseamn c suntem n cutarea a orice altceva
n afar de cifre. Dac exeperimentai cu ierul test.txt, vedei cum
Vim subliniaz tot, n afar de 37. Spaiile sunt i ele semne!
Dac vrem doar cuvintele care ncep cu f, trebuie s construim un cuvinte
tipar de genul /\v<f[a-z]>/. Practic cuvntul este pus n paranteze
unghiulare. Dac nu punem \v, atunci, n Vim, trebuie s punem
bara oblic spre stnga ca n \< i \>. Cnd experimentm observm
c looe nu este evideniat. Iar + trece drept grani a unui
cuvnt.90
89

Ucenicii vrjitori se pot juca folosind comenzile :set magic i :set


nomagic; setarea recomandat este magic, dar nici ea nu este, cum am vzut
mai sus, sucient pentru o utilizare standard a tiparelor.
90
Cu titlu de exerciiu, putei ncerca s aai ce efect are /\v<f[a-z,]>/.

49

1. Creionul electronic
1.3.1.1.1 Conectori pentru abloane Ca i-n logica propoziiilor, putem folosi conectori pentru obine abloane compuse. Un
tipar poate avea, de pild, dou ramuri, precum /\vfil|biblio/.
Bara vertical o putem citi sau. Dac experimentm acest tipar
pe ierul test.txt, observm desigur cum cuvntul bibliol este
evideniat n ntregimea sa.
Trebuie s m ateni la spaii. Spaiile puse n jurul barei verticale vor interpretate ca ind o parte a tiparului. Dac ni se pare
confuz expresia, putem pune paranteze rotunde n jurul tiparelor
conectate.

1.3.2

10

Utilizarea abloanelor

Dac nu scriem programe avansate, n practic, n-avem nevoie de


structuri ale tiparelor mai complicate dect cele descrise mai sus.
La ce am putea, de altfel, folosi tiparele, n afar de cutri n
substitu- iere? Tiparele sunt utilizate frecvent n operaiile de substituire a
ie unui semn sau ir de semne cu alt semn sau ir de semne. De pild,
pot nlocui pe 37 cu 73 n ierul test.txt cu ajutorul urmtoarei
comenzi: :%s/37/73/. Se observ acel s pus n faa tiparului irului
care va substituit, precum i felul n care este plasat irul cu care
se substituie.91 Semnul % spune lui Vim s caute n tot ierul.
Comanda :%s/\vfi+l/fil/ nu duce chiar la efectul scontat! Vim
caut n tot ierul, dar nu substituie peste tot. Pentru aceasta
trebuie s punem dup irul cu care se substituie o opiune. Dac
vrem o substituire global, punem g. Comanda noastr este atunci
ceva de genul :%s/\vfi+l/fil/g. Putem apsa Esc i experimenta.
Pentru a anula efectul comenzii apsai, n modul comand, u sau
facei clic pe pictograma Undo92 .
Acum putei face un prim pas ctre programare. Programarea nu
este, n fond, dect arta de a proiecta algoritmi, de a descoperi paii
care duc la rezolvarea unei probleme. Fie urmtoarea problem:
n test.txt, substituii pe s din losoe cu z i pe z din
lozoe cu s. N-ar ru s nu v uitai o vreme la soluia care
urmeaz i s experimentai propriile idei.
Exerciiul nu este chiar banal dac n-ai scris niciodat programe.
Dac substituii direct pe z cu s sau invers, ajungei precum hoii
derutai de Morgiana n O mie i una de nopi. Hoii au fcut un
91

Evident, la substituire trebuie s indicm un ir (posibil vid), nu tiparul


unui ir. De altfel, dac punem tiparul, Vim va substitui cu tiparul ca atare.
92
Numele pictogramelor apare scris sub ele dac deplasai cursorul Windows
pe pictograma respectiv.

50

15

20

25

30

35

1.3 Expresiile regulate


semn pe casa unde sttea Ali Baba, dar Morgiana l-a reprodus pe
toate casele din cartier. Nu mai tii unde a fost z i unde a s.

Soluia este foarte simpl. Efectuai o substituire intermediar.


De exemplu, dai comanda :%s/filosofie/filoofie/g. Apoi dai
comanda :%s/filozofie/filosofie/g. Pasul al treilea, cel nal, l
reprezint :/filoofie/filozofie/g.

1.3.3

10

15

20

25

30

35

substituire
intermediar

Utilizarea abloanelor n programul grep i-n


TEXnicCenter

Dac v ntrebai ce programe, n afar de Vim, folosesc tipare pentru cutri, cel mai simplu ar s instalai o unealt Unix numit grep sau s folosii mediul integrat de dezvoltare de proA
grame L TEX.93 Mergei cu ajutorul 2xExplorer n dosarul n care
inei test.txt i chemai fereastra ms-dos. Tastai urmtoarea grep
comand n fereastra ms-dos: grep filo[sz]ofie *. Comanda are
trei pri: numele comenzii, un tipar dup care se face cutarea i
numele ierului n care se face cutarea. n locul numelui ierului
am pus * pentru a arta c este vorba despre orice ier (din dosarul
respectiv).
Rezultatul este aarea numelui ierului n care grep a gsit
ceva care corespunde tiparului i a rndului n care apare irul care
corespunde tiparului. Dac vrei i numrul rndului, punei opiunea -n dup grep. Pentru a v convinge c grep caut efectiv
prin mai multe iere, creai un alt ier text n dosarul respectiv i scriei acolo, ntre altele, losoe i/sau lozoe. Dac
vrei instruciuni ceva mai detaliate pentru grep, dai comanda
grep --help > grep.txt. Aceast comand va crea un ier cu
explicaii. Se observ c-am folosit pe >, care redirecioneaz rezultatul comenzii. Acesta nu mai este aat pe ecran, ci este scris ntr-un
ier.
n TEXnicCenter cutai pictograma cu binoclul aezat peste un TEXnicdosar (Find in les). Cnd dai clic pe aceast pictogram apare Center
o fereastr de dialog. Ar trebui s nu v e deloc greu s alegei
tipul ierelor. De asemenea, este relativ uor s alegei dosarul
unde se face cutarea (Directory). Bifai butonul de validare Regular
expression.
Eu am avut, de exemplu, nevoie s caut contextele n care aprea
una dintre formele expresiei ucenic vrjitor. Am folosit ablonul
ucenic[i]* vr.jitor[i]*. De ce? Voiam s gsesc i cazurile cnd
93

Pentru instalarea TEXnicCenter vezi aici 2.1.2.

51

1. Creionul electronic
expresia era folosit la plural; de asemenea, era mai simplu s nu
m ncurc cu diacriticile.94
TEXnicCenter construiete o list cu toate contextele n care
apare expresia. Dnd clicuri pe lista respectiv deschidei ierul
chiar n punctul dorit. Acest mod de cutare de tip grep este unul
dintre marile avantaje ale TEXnicCenter.

n TEXnicCenter putei construi dou liste cu contextele n care


gsii dou expresii diferite. Putei face comparaii i lucra ecient
cu ierele aate ntr-un dosar sau chiar n subdosarele acestuia.

1.4

n cutarea surselor

10

n mod tradiional rsfoiai cri n bibliotec. Este o plcere la care


eu unul nu a putea renuna. Dar astzi cutm mai degrab n
biblioteci electronice i mai ales n imensa bibliotec electronic denumit Internet.
S zicem c-am gsit pe Internet Fraii Karamazov sub forma
unui ier text.95 Deschid ierul n Vim. Dau un clic pe pictograma
cu o foaie i o lup pe ea. Apare o mic fereastr. Scriu cuvntul
Inquisitor i aps Enter. Vim deruleaz textul i apare cuvntulcheie pe care l-am tastat anterior pe un fond galben. Este chiar
punctul din text n care Ivan i spune lui Alioa c a scris un poem
despre Marele Inchizitor.
Evident, sunt foarte interesat de aspectele losoce ale poemului
lui Ivan. Pe moment, trebuie remarcat ns deosebirea principal
din perspectiva cutrii prin textul romanului: nu ncerc s gsesc
o pagin (acest concept nici n-are sens aici), ci locul n care apare
un cuvnt-cheie.

15

20

25

cutare cu
Pot cuta ns i cu ajutorul comenzilor n linie. Aps tasta Esc
comand urmat de / i cuvntul-cheie Peter. Cursorul se mut ceva mai jos
n linie n text n punctul n care este vorba despre Petru cel Mare.
n principiu, n textul n limba rus se caut n acelai fel. Ceea
ce complic lucrurile sunt literele chirilice. Cnd deschid textul apar
semne incomprehensibile. Merg la meniul Edit i apoi la Select Font
chirilice pentru a schimba script-ul tipului de liter n Cyrillic. Acum pot citi
textul. M mulumesc s selectez un cuvnt din text i s-l copii n
94
Putei ns pune litere cu diacritice n abloane. Atta doar c trebuie s
comutai pe tastatura cu literele cu diacritice nainte de a deschide caseta de
dialog.
95
Romanul lui Dostoievski este disponibil n rus; de asemenea, putem gsi
traducerea n englez realizat de Constance Garnett.

52

30

1.4 n cutarea surselor


fereastra de cutare a Vim, dar numai dup ce am dus cursorul la
nceputul textului. Vim ascult silitor comanda i coloreaz fondul
cuvntului respectiv prin tot textul.
5

10

15

Limitele lucrului cu ferestrele Windows se fac ns rapid simite.


Este mult mai sigur s procedez dup cum urmeaz. Aps Esc i
apoi v. Vim scrie pe ultimul rnd VISUAL, semn c sunt n modul selecia
lui specic de selecie. in tasta Shift apsat i selectez cu s- vizual
geata ctre dreapta ca-n Windows. Cnd termin de selectat, copiez Vim
tot ca-n Windows selecia (prin clic pe pictograma cu cele dou foi
suprapuse). Trec n modul comand n linie, tastez / i lipesc textul
copiat anterior, tot ca-n Windows, cu clic pe pictograma corespunztoare. Cutarea funcioneaz. Pot s repet cutarea trecnd n
modul comand n linie i recurgnd la istoria comenzilor pstrat
de Vim (aps sgeata ndreptat n sus).
Pot scrie cuvntul-cheie cutat direct n linia de comand, dar
pentru aceasta trebuie s dispun n Windows sau Vim de tastatura
pentru limba rus.
Putei aa mai multe despre cutrile cu ajutorul Vim citind
help-urile. Aici n-avem spaiu dect pentru discuia de principiu.

20

25

30

1.4.1

Construirea unei concordane

Este limpede c nu toi cei care se ocup cu losoa au i o pasiune


special pentru logica formal. Mai mult dect att, s-ar putea s
aib nevoie de cutri amnunite prin iere persoane care studiaz
texte vechi sau stilul unor loso. A le cere s foloseasc n practic
tipare construite de la un capt la altul de ctre ele ar probabil o
utopie.
Pe de alt parte, din ceea ce tiu din propria practic, atunci
cnd studiezi un text losoc ai nevoie de o list cu apariiile unui
cuvnt-cheie n text. Dac lista aceasta ofer i contextul n care
apare cuvntul-cheie, ai deja ceea ce se numete o concordan.
Putei gsi pe Internet un program gratuit de realizare de concordane scris de Zdenek Martinek i Les Siegrist. Numele programului
este Wconcord.96

35

Instalarea programului Wconcord este ct se poate de simpl.


Dac l-ai gsit arhivat, l dezarhivai ntr-un dosar potrivit i putei
deja lucra. n-ar mai necesar dect o scurttur ntr-un dosar din
96
A se vedea subseciunea 1.4.2 pentru o explicaie a modului n care putei
gsi programul pe Internet.

53

1. Creionul electronic
Start Menu. Putei crea, de exemplu, un dosar pentru Editare i-n
el unul pentru Analiza textelor.
Wconcord construiete concordanele pe baza ierelor de tip
text.97 Prima operaie care trebuie fcut cu programul este elaborarea unei liste a ierelor n care se vor opera cutrile.
Programul are o interfa grac i este extrem de uor de folofrecvena sit. Cel mai simplu lucru este s construim o list a cuvintelor care
cuvintelor apar n text i s o ordonm n funcie de frecven. Am experimentat acest lucru cu textul romanului lui Dostoievki Fraii Karamazov. Alioa, de exemplu, este menionat de 1243 de ori. Termenul
moarte apare de 121 de ori, n vreme ce libertate apare de 53 de
ori.

concordane
pentru
documente
pdf

Mai interesante dect frecvenele sunt utilizrile n context ale


unor termeni-cheie. Am folosit practic acest sistem pentru a analiza
textul tratatului lui Ludwig von Mises Human Action.Textul disponibil pe Internet este n format pdf. Am extras cu ajutorul Adobe
Acrobat Reader textul pur i am folosit sistemul de investigare oferit de Wconcord. Regsirea punctului din text n formatul pdf nu
este o problem dac folosim n mod adecvat un fragment-cheie de
text. Astfel putem stabili cu exactitate toate referirile unui autor la
un anumit concept.
Foarte interesante sunt concordanele n care este identicat contextul n care apar mai muli termeni-cheie. Wconcord poate lucra
simultan cu cinci termeni-cheie. Putem specica i alternative la un
termen-cheie. De asemenea, poate precizat ordinea n care apar
cheile i distana maxim dintre ele.

10

15

20

25

Wconcord poate lucra, de asemenea, cu formele gramaticale ale


unui cuvnt. Pentru aceasta este nevoie s construim noi ierele cu
lista de forme gramaticale.

1.4.2

Arheologie pe Internet

30

Toate programele despre care este vorba n aceast carte sunt disponibile pe Internet. Este deci resc s spunem cteva cuvinte despre
modul n care putem gsi un document pe Internet.
Presupun c nu scriei eseul i efectuai cutrile pe Internet pe
acelai calculator. Putei merge n laboratorul Facultii i vei gsi
acolo o reea de calculatoare care este conectat la Internet. De altfel, Internetul nu este dect o reea de reele de calculatoare care
97
Extragerea textului este posibil din orice ier. De la un format la altul,
trebuie vzut ns cum se procedeaz i ce program poate s fac acest lucru.

54

35

1.4 n cutarea surselor

10

15

20

acoper tot globul. Fiecare reea mai mic are un calculator care le
deservete pe celelalte. Termenul englezesc pentru acest calculator
este server. Dac reeaua este mai dezvoltat s-ar putea s existe
un alt calculator care are instalate pe el programele care formeaz
poarta ctre Internet. Termenul englezesc este gateway. Calculatoarele acestea nu se disting de celelalte neaprat prin modul n care
construite, ci prin sistemul de operare de care dispun.
Categoric, Windows98 este nepotrivit pentru conectarea la Internet. Este vulnerabil la atacurile de pe Internet. Ceea ce-l face
att de plcut cnd este folosit pe un calculator separat, uurina
cu care avem acces la iere devine un handicap cnd persoane ru
intenionate au i ele cam acelai acces facil la iere.
Oricine poate face pe ucenicul vrjitor i vedea ct de vulnerabil
este Win98. Mergei cu 2xExplorer pe discul c. Nu facei ns modicarea care urmeaz dect dac avei organizarea ierelor sugerat
n acest capitol.98 Redenumii dosarul Program Files prin simpla eliminare a spaiului din nume. Vei primi un avertisment, dar att.
Sistemul nu v mpiedic s acionai. ncercai acum s deschidei
un ier cu extensia html. Dac n-ai modicat locul n care se a
Internet Explorer, vei primi un mesaj care spune c sistemul nu
poate descoperi unde se a iexplore.exe. Redenumii Program
Files pentru a-l aduce la forma pe care o tie sistemul.

e uor s
distrugi;
greu e s
construieti

Ai vzut deci c un pirat de pe Internet nu trebuie s e prea


inteligent. Este mult mai uor s distrugi dect s construieti.
25

30

35

40

Calculatoarele cu Win98 sunt cel mult bune n reea n postura


de clieni ai server -ului. Acesta este cel care le servete cu ceea ce
doresc i are misiunea de a le apra de atacuri.
n laboratorul Facultii, sistemul de operare al serverelor este
de tip Unix (GNU/Linux i Sun Solaris). Cea mai mare parte din
clieni au i ei sisteme Unix. Pe aceti clieni, pentru a vedea ierele
html tipice pentru Internet se folosete programul Netscape.
Un client Windows folosete n mod tipic programul Internet
Explorer. n orice caz, sub Win98, putei folosi acest program pentru
a vizualiza iere de tip html. Acestea sunt tot iere de tip text, dar
conin o mulime de comenzi folosite de programul de vizualizare
pentru a produce imaginea frumoas de pe ecran. Fiierele html
conin, de asemenea, trimiteri ctre alte iere aate poate la mari
distane n spaiu.
n esen, chiar i atunci cnd vrei doar s vedei ceva pentru o
clip trebuie s descrcai iere. Este ca i cum ai suna pe cineva
98

n orice caz, s n-avei 2xExplorer n Program Files.

55

1. Creionul electronic
la telefon, iar persoana respectiv v-ar dicta un text. Cam tot aa,
un calculator apeleaz numrul unui alt calculator i i procur
ierul de care este nevoie.
Ca persoan uman ar greu s inei minte numerele de pe
Internet ale calculatoarelor. De aceea se folosesc adrese umanizate.
De exemplu, adresa paginii de pe Internet a acestei cri este <www.
fil.unibuc.ro/~solcan/eft/>.
Dac vorbii la telefon trebuie s tii i limba persoanei cu care
conversai. Tot aa, adresa de mai sus nu este complet funcional
fr o indicaie privitoare la limb. Completat astfel, ea devine
http://www.fil.unibuc.ro/~solcan/eft/.
descrcarea de
iere de
pe
Internet

10

S zicem c ai ajuns la pagina de Internet a crii i ai descoperit un script, un program, pe care vrei s-l descrcai pe calculatorul
dumneavoastr. n Internet Explorer, putei duce cursorul Windows
pe numele ierului respectiv; obinei apoi un meniu prin clic pe
dreapta. Folosii Save Target As. . . pentru a descrca ierul. Dac
utilizai Netscape, procedura este asemntoare, numai c recurgei
la Save Link As. . . .

15

De multe ori vei gsi indicaii cu privire la descrcarea de iere


(numit n limba englez download ). Evident, citii condiiile n care
putei obine ierele. Citii licenele aferente i avertismentele.

20

n tot acest proces cel mai important lucru este s ajungei ns la


pagina dorit. De unde am ce s tastm dup acea magic Address
din Internet Explorer? Exist un fel de grep-uri ale Internetului.
Ele se numesc motoare de cutare. Aa cum sugereaz i numele,
vei deservite i deservii de o mainrie. Cu puin ingeniozitate
din partea dumneavoastr, rezultatele vor ns din cele mai bune.
Cartea de fa ofer i ea adrese de pe Internet. Acestea se pot
motoare ns schimba. Este mult mai simplu i mai sigur s apelai la un
de cutare motor de cutare. Tastai, de pild, dup Address sau Location, comanda http://www.google.com i citii instruciunile de utilizare
a motorului.
Tehnica de cutare se bazeaz pe cuvinte-cheie. i vei oferi motorului un ir de cuvinte-cheie i acesta v va furniza adrese pe Internet
i o serie de informaii despre ceea ce gsii la adresa respectiv.
Cygwin

56

Pentru a gsi, de exemplu, Cygwin am folosit cuvintele-cheie


cygwin Linux emulation download. Cutarea a durat 0, 24 de secunde. Am primit, ce-i drept, o list cu 3630 de adrese. Pare enorm,
dar motorul le-a ordonat deja n mod automat. A doua adres este
<http://www.cygwin.com/>; a patra este <http://www.redhat.
com/download/cygwin.html>. Pare rezonabil s citesc informaiile

25

30

35

40

1.4 n cutarea surselor


generale de la prima adres i s au la a doua adres cum pot
descrca Cygwin.

10

15

20

Acum se vede de ce este mai raional sistemul cutrilor dect


recursul la o singur adres gsit n carte. Sunt destul de multe
locurile de pe Internet unde putem gsi ceea ce cutm. Atunci
cnd locul respectiv este organizat sub forma unei colecii de iere
i pentru transferarea lor se folosete limbajul http, n englez, se
vorbete despre un site. Cred c este potrivit s folosim n romnete sit
cuvntul sit. Folosim de mult vreme expresia sit arheologic. Aici
este vorba de sit pe Internet. Cutarea pe un asemenea sit presupune cteodat veritabile nclinaii pentru arheologie. Cele mai mici
fragmente de informaii trebuie exploatate. Vom ilustra acest lucru
cu o serie de exemple.
Urmtorul exemplu este absolut crucial pentru cartea de fa. De TEX
data aceasta cutm un loc de unde s descrcm o distribuie TEX.
Cuvintele-cheie folosite sunt doar TeX distribution Windows98.
Informaiile despre a cincea adres arat o legtur cu MikTEX.
Gsim astfel un posibil capt de r de care s tragem pentru a
ajunge, navignd de la o pagin la alta, la <http://www.miktex.
org/>, pagina de web a distribuiei TEX descrise i-n aceast carte.

25

Ucenicii vrjitori nu vor rezista probabil tentaiei de a introduce C++


cuvintele-cheie C++ IDE SourceForge download. Dac vor cuta
atent ce se potrivete cu Win98, vor descoperi adresa http://www.
bloodshed.net/devcpp.html. Cei mai curioi se pot uita i la pagina <http://sourceforge.net/projects/dev-cpp/>.

30

Mai sunt cteva programe extrem de utile a cror cutare me- TEXnicrit s o ilustrm aici. Dac folosim cuvintele-cheie TeXnicCenter Center
download, gsim adresa de la care putem descrca mediul integrat
A
pentru crearea de programe L TEX: <http://www.toolscenter.
org/products/texniccenter/download.htm>.

35

Dac utilizm cuvintele-cheie weaverSlave HTML editor download, descoperim adresa de Internet <http://www.subjective.
de/en/weaverslave/index.php>. De aici se poate descrca un editor de iere html, php i comenzi sql, foarte util pentru crearea de
pagini web.

40

Dac suntei n cutarea unui program pentru statistic, g- vista


sii o soluie cu ajutorul cuvintelor-cheie ViSTA statistics. Prima
adres din list este chiar cea a paginii de Internet a Dr. Forrest Young, creatorul programului vista,<http://forrest.psych.
unc.edu/research/vista-frames/welcome.html>.

editor
pentru
pagini
web

Un alt mod de a gsi documente sau programe pe Internet este

57

1. Creionul electronic
reprezentat de paginile cu trimiteri ctre documente sau programe.
pagini cu Dac navigai pe Internet la adresa <http://www.uni-giessen.
trimiteri de/~ga1007/ComputerLab/concordance.htm>, gsim o pagin n
care se explic pe scurt ce este o concordan i o list cu programe de creat concordane. Pagina aceasta nu ofer ns direct
posibilitatea de a descrca programe. La <http://www.ujaen.es/
dep/filing/profesores/alejandro_alcaraz.html> gsim o pagin care ofer aceast posibilitate. Putei descrca direct arhiva
Wconcord de la adresa <http://www1.ujaen.es/~aalcaraz/HEL/
wconcord.zip>.
1.4.2.1

alternativa la
Save
Target
As. . .

10

Programul wget

O adres precum cea pentru Wconcord poate folosit i cu una


dintre cele mai bune unelte Unix transpuse sub Windows, programul
wget. Acest program poate apelat e sub Cygwin, e ca program
independent, n funcie de modul n care l-ai instalat. Este un program cu comand n linie. Are o serie de avantaje ns fa de Save
Target As. . . . Nu trebuie s descarci interactiv zeci de iere care
sunt menionate ntr-o pagin.
Comenzile pentru wget sunt de forma wget [opiuni] [adresa-pe-Internet] [opiuni]. Adresa pe Internet este opional;
putem folosi comanda n forma urmtoare: wget -i nume-fiier.
n ierul folosit vom scrie adresa sau adresele care ne intereseaz.
Astfel nu trebuie s tastm adresele n linia de comand.
Opiunea -nc mpiedic descrcarea repetat a aceluiai ier. O
opiune extrem de util, pe care o putem pune n nalul comenzii
este -k; ea i spune lui wget s converteasc trimiterile. n loc ca
trimiterile s e fcute pe Internet, ele vor locale. Fiierul va putea
consultat fr probleme i pe un calculator care nu este conectat
la Internet.
Opiunea -p este, de asemenea, util pentru a vedea pagina cnd
nu suntem conectai. Ea i spune lui wget s descarce tot ce este
necesar (imagini, sunete) pentru a vedea pagina.
Opiunile -r i -l trebuie folosite cu grij pentru c ele vor pune
wget s descarce iere n mod recursiv pn la un anumit nivel.
Aceasta nseamn c wget descarc o pagin, apoi se uit la ce
trimite pagina respectiv i descarc, pn ajunge la nivelul la care
i-ai spus s se opreasc. Metoda are un dublu dezavantaj: poate suprasolicita calculatorul de unde vrei s obinei iere, forndu-l
pe administratorul acestuia s v blocheze accesul; de asemenea,
dac nu suntei prudeni, v putei trezi c-ai descrcat un volum

58

15

20

25

30

35

40

1.4 n cutarea surselor


uria de date care v-au lsat fr spaiu pe discul propriului calculator (i fr bani, pentru c va trebui s pltii furnizorul de servicii
Internet). Nivelul pn la care merge wget trebuie reglat cu maxim
grij. De asemenea, un simplu Ctrl+c va stopa wget.99
5

10

15

O precauie contra descrcrii n exces de iere o reprezint opiunea -A urmat de o list de extensii de iere (separate prin virgule). Acestea sunt singurele tipuri de iere care vor descrcate.
Alternativ, putei pune opiunea -R i specica tipurile de iere
care nu vor descrcate.100
Programul wget este extrem de util pe o reea instabil. n acest descrcare
caz, descrcarea de iere se ntrerupe frecvent. Rmnem cu o bu- n reele
cat de ier. Fiierele de mari dimensiuni nu pot practic descr- instabile
cate. Folosind opiunea -c putem continua descrcarea din punctul
unde s-a rupt ierul. Continuarea descrcrii n acest mod nu depinde numai de wget, ci i de sprijinul pentru aceast operaie pe
serverul de pe care descrcm ierul. Nu toate serverele ofer sprijin pentru continuarea unei descrcri ntrerupte.101

1.4.2.2

20

25

30

Limitarea ariei cutrilor

Cutarea cu ajutorul cuvintelor-cheie este deosebit de ecient. Un


ir de cuvinte-cheie este asemenea unei conjuncii de condiii. Nu
este nevoie s i expert sau expert n logic pentru a-i da seama
c n acest fel se limiteaz lista cu adrese pe care o obinem de la
motorul de cutare i, implicit, aria cutrilor noastre prin aceast
list.
Exist ns o problem a cuvintelor-cheie. Ca orice cuvinte, aces- reducerea
tea pot avea o doz de ambiguitate. Exist, de pild, un limbaj de ambiguiprogramare numit python. Ce se ntmpl dac folosim acest cu- tii
vnt pentru o cutare pe Google? Vor veni adrese cu situri despre
limbajul de programare, dar i cu situri despre arpele cu acelai
nume.
99

Wget este un program din lumea Unix, unde acesta este modul de a opri
forat rularea unui program. Programele ms-dos sunt oprite, probabil, de
Ctrl+Break. n Win98 apsai Ctrl+Alt+Del i oprii procesul respectiv.
100
Din practic tiu c se ntmpl ca o persoan s aib n pagina sa texte pe
care a vrea s le citesc i care nu ocup mult loc pe disc, dar i iere enorme
cu muzic sau lme, de care n-am nevoie i care ar putea epuiza spaiul de pe
disc. Sub sistemele Unix sau WindowsNT, n mod normal, utilizatorii obinuii
au alocat doar o poriune limitat de disc. S-ar putea ca un lm s nici s nu
ncap pe zona care le-a fost alocat.
101
Pentru mai multe detalii despre wget i pentru problemele ridicate de combinarea diverselor opiuni consultai documentaia programului.

59

1. Creionul electronic
Ce-i de fcut? Cutm pe Google folosind tehnica exemplicat
de secvena: python -snake -monty. Semnul minus pus n faa unor
cuvinte-cheie i spune motorului de cutare s exclud de pe lista
pe care o produce siturile despre erpi sau monty.
Persoanele care sunt n cutarea arpelui i nu a limbajului de
programare pot s pun python -programming.

O alt restrngere a cutrilor rezult evident atunci cnd ne


limit la situri care sunt numai ntr-o anumit limb. Acest lucru
se poate face explicit sau implicit: cuvintele folosite sunt, s zicem,
n limba romn.

10

n afara limbii, o alt posibilitate de a restrnge aria siturilor


investigate o reprezint folosirea unui motor de cutare specializat.
Putem porni ns de la un motor de cutare general i de aici s
descoperim siturile cu motoare de cutare specializate. Google are
chiar liste gata fcute cu asemenea situri specializate.

15

Dac motorul de cutare permite acest lucru, putem desigur


aplica i tehnicile mai subtile ale expresiilor regulate.102

1.5

Corectura computerizat

Exist multe metode i programe de corectare, n special pentru


limba englez. Noi vom prezenta aici posibilitatea de a efectua o
corectur ortograc n mediul integrat TEXnicCenter.

20

TEXnicCenter folosete aceeai mainrie pentru corectur ca i


MySpell OpenOce. Numele tehnic al bibliotecii respective de funcii este
MySpell 103 .
Pe situl <www.openoffice.org> putei gsi legturile necesare
pentru a descrca o sumedenie de dicionare ortograce.
Soluia pe care o descriem aici este una care poate dezvoltat
independent de existena unui dicionar gata fcut. n practic, am
avut nevoie de ea pentru c mai demult nu exista pe situl OpenOce
un dicionar ortograc pentru limba romn.104
102

Dac n-ai examinat nc anexa despre expresiile regulate, putei s o facei


acum; vezi 1.3.
103
Autorul MySpell este Kevin B. Hendricks. Algoritmii utilizai pentru a
opera cu axe sunt bazai pe cei ai lui Geo Kuenning, autorul programului Ispell. Persoanele interesate de detalii pot citi cu folos sursele programului
TEXnicCenter n partea lor care privete MySpell.
104
La data de 22/10/2003 am gsit un dicionar MySpell creat de Nicu Buculei
pornind de la dicionarul Ispell al lui Mihai Budiu <http://www.cs.cmu.edu/
~mihaib>. Este un dicionar destul de amplu, dar fr semnele diacritice din
dicionarul lui Budiu. RomanianOce, care este un program de birou bazat pe

60

25

30

1.5 Corectura computerizat


L-am improvizat n felul descris pe scurt n continuare. Primul
pas const n construirea unui ier ro_FI.dic pe care trebuie
s-l plasai n dosarul Language aat pe calea folosit la instalarea TEXnicCenter. n ierul acesta plasai o list de cuvinte, corect
ortograate, puse ecare la nceputul unui rnd i sortate alfabetic.
Primul rnd al acestui ier este rezervat pentru numrul de rnduri din ier. Nu este greu s stabilii, cu ajutorul Vim, numrul
de rnduri.

meterirea
unui
dicionar
ortograc
romnesc

Mai trebuie s creai un ier ro_FI.aff pe care-l punei tot


n dosarul Language din dosarul unde este instalat TEXnicCenter.
Raiunea existenei acestui ier este foarte simpl. O voi explica
cu ajutorul unui mic fragment dintr-un asemenea ier:

10

SET ISO8859-2

2
3
4

1
2

25

meta

Primul rnd specic pentru corectorul ortograc codicarea folosit. Rndul al patrulea i spune sistemului cum s ataeze un prex,
foarte important pentru losoe i nu numai, prexul meta. Se observ c aici a fost declarat un steag, cum se spune tehnic.105 Steagul
trebuie ataat cuvintelor din ierul de tip dic care pot prexate
cu meta. Iat dou exemple evidente:

15

20

PFX G Y 1
PFX G
0

filosofie/G
limbaj/G

Sistemul va recunoate acum drept corecte i cuvintele metalosoe i metalimbaj.


Nu rmne de fcut dect un mic reglaj n TEXnicCenter. n
meniul Tools mergei la rubrica Options. . . i apoi la panoul Spelling.
Alegei ro n caseta Language. Observai cum apare automat FI
(romna FIlosoc) n caseta Dialect. Nu rmne dect s bifai
Check spelling while typing i sistemul va colora cuvintele pe care
nu le gsete n list sau nu le poate obine din cuvintele din list
folosind metodele descrise n ierul de tip aff.
OpenOce, include un dicionar cu diacritice, dar dicionarul este proprietatea rmei intersol. Chiar dac versiunea 1 a produsului RomanianOce este
gratuit, nu putei folosi dicionarul dect n cadrul acestui produs-program. n
consecin, cred c este n continuare interesant de lucrat la un dicionar plasat
sub o licen de tip gpl.
105
n limba englez, termenul este ag.

61

1. Creionul electronic
n versiunile mai vechi ale TEXnicCenter nu se putea folosi dect Spelling. . . din meniul Tools. ncepnd cu versiunea 1 Beta 6.20
Beta, este posibil s dm un clic pe butonul din dreapta al mouseului, pe cuvntul marcat ca incorect i s folosim un meniu contextual.

62

Capitolul 2

Tehnoredactarea
computerizat
Cuprins
5

2.1

10

2.2

15

2.3

20

2.4
25

2.5
30

A
L TEX . . . . . . . . . . . . . . . . . . . . . . . 64
A
2.1.1 Utilizarea programului L TEX: costuri i
benecii . . . . . . . . . . . . . . . . . . 65
2.1.2 Instalarea TEX i a programelor asociate 69
A
2.1.3 L TEX ntr-o sptmn . . . . . . . . . 75
BibTEX . . . . . . . . . . . . . . . . . . . . . . 114
2.2.1 Primii pai n lumea bazelor de date . . 114
2.2.2 Sistemul BibTEX . . . . . . . . . . . . . 116
2.2.3 Stilurile bibliograce . . . . . . . . . . . 119
Turnul Babel . . . . . . . . . . . . . . . . . . . 121
2.3.1 Literele romneti . . . . . . . . . . . . 122
2.3.2 Vim i adaptarea tastaturii . . . . . . . 125
2.3.3 Limbile europene care folosesc alfabetul
latin . . . . . . . . . . . . . . . . . . . . 132
2.3.4 Tehnica alegerii tipului de liter . . . . 134
2.3.5 Limba greac veche . . . . . . . . . . . 136
A
2.3.6 L TEX i unicod . . . . . . . . . . . . . . 141
A
2.3.7 Alte pachete cu simboluri n L TEX . . . 143
Tabele i formule . . . . . . . . . . . . . . . . . 144
2.4.1 Principiile de baz ale construirii tabelelor144
2.4.2 Cteva idei simple despre formule . . . . 148
2.4.3 Tehnicile avansate de scriere matematic 156
Indexarea electronic . . . . . . . . . . . . . . . 156

2. Tehnoredactarea computerizat

2.1

A
L TEX

Programul de care ne-am folosit pentru a tehnoredacta cartea de


fa s-a nscut din nevoi pur practice. Autorul su, Donald E.
Donald Knuth, era absorbit de munca la tratatul su despre Arta programKnuth rii calculatoarelor 1 . Lucrul la tratat l-a nceput n 1962, pe vremea
cnd crile se tipreau n mod tradiional. Dup 1970, n SUA, a
nceput trecerea la producerea crilor cu ajutorul sistemelor computerizate. Donald Knuth a fost ns ngrozit de forma pe care o
avea tiparul electronic la nceputurile sale. El s-a decis s realizeze
propriul su program de creat cri frumoase. Generos, el a plasat
sistemul su zis TEX n domeniul public.2
Procesul prin care un text ajungea, n veacul trecut, s e tiprit ar putea segmentat n urmtoarele faze: autorul crea un
manuscris; manuscrisul era dactilograat; textul dactilograat era
prelucrat ntr-o redacie; dup redactare, textul era tehnoredactat;
dup ce era tehnoredactat se ddea la cules, adic se crea pentru
ecare pagin o pagin din litere de plumb; textul cules era dat la
corectur; varianta nal se tiprea folosind paginile de plumb.
Faza tehnoredactrii nsemna punerea pe manuscris a fel i fel de
semne pe care tipograi le citeau pentru a ti cum s metereasc
paginile lor de plumb. Pe de o parte, trebuie s identicai existena
unui limbaj al tehnoredactrii. Pe de alt parte, trebuie s inei
cont c realizarea formelor n care erau turnate literele de plumb
era o art.3
Donald Knuth a fost extrem de dezamgit de decderea brusc
a artei tiparului sub impactul computerizrii. El a rezistat tentaiei
de se crampona de vechile litere de plumb i a folosit fantasticele
sale caliti de programator pentru a realiza un sistem de aezare a
textului n pagin probabil fr egal.

Vezi Donald E. Knuth, Arta programrii calculatoarelor, 3 volume (Bucureti: Teora, 1999-2002). Aceasta este o carte celebr. Aa cum reiese din textul
reprodus pe ultima copert a tuturor celor trei volume, Bill Gates a scris despre
ea urmtoarele: Dac te crezi programator, . . . citete Arta programrii calculatoarelor de Knuth. . . Dac poi citi toat cartea, trimite-mi neaprat un C.V.
Trebuie s inei cont c aceste cuvinte vin nu doar din partea unuia dintre cei
mai mari oameni de afaceri din toate timpurile, ci i a cuiva care a publicat ca
programator-cercettor (a se vedea B. Gates i C. Papadimitriou, Bounds for
sorting by prex reversals, Discrete Mathematics 27: 47-57, 1979)
2
O excelent prezentare a bazelor sistemului TEX, n limba romn, o gsii
n cartea lui Moroanu[8].
3
Istoria acestei arte este povestit de S.Tth[12].

64

10

15

20

25

A
2.1 L TEX

2.1.1

10

A
Utilizarea programului L TEX: costuri i benecii

A
A
Ce este L TEX? Fr a intra n detalii, putem spune c L TEX v
permite s tiprii (pe hrtie sau n format electronic), cu ajutorul
n ultim instan al TEX, eseurile dumneavoastr. Aceleai tehnici
pot folosite pentru a tipri practic orice: articole, cri, ae i aa Leslie
A
mai departe. L TEX a fost creat de ctre Leslie Lamport.4
Lamport
A
Ct este de greu de folosit sistemul L TEX? Nu v grbii cu
aceast ntrebare! Mai bine facei un calcul cu privire la costuri i
benecii.

De ce s nu folosim doar Vim pentru a da forma nal eseurilor?


A
Vim este precum un stilou sau o main de scris. L TEX este ca un
tipograf.
15

Vestea bun ar c putei benecia de posibilitile unei edituri


A
i ale unei tipograi, folosind L TEX i programele asociate.
i vestea proast? Este chiar proast dac avei nici un fel de
A
cunotine despre programarea calculatoarelor. L TEX, ca i TEX,
este un limbaj de programare. Pentru a tehnoredacta eseul i a-l
tipri frumos trebuie s scriei un program.5

20

25

30

Care sunt acum rezultatele analizei cost-benecii? Cred c sunt


A
n favoarea L TEX. Dac scriei un eseu losoc, nivelul pe care treA
buie s-l atingeni n domeniul programrii n L TEX este ct se
poate de elementar. Practic, v trebuie doar cteva zile ca s nvai chiar dac n-ai programat niciodat. Costul acesta (care nu
este nul)6 este contrabalansat din plin de calitatea rezultatului obinut.

programare
elementar

La beneciile unui text frumos tiprit se adaug ns i disciplina


A
intelectual pe care o impune utilizarea L TEX. Acesta este un ctig disciplina
A
mai puin vizibil, dar extrem de consistent. TEX, L TEX, BibTEX i intelecprogramele asociate sunt realizate de mini strlucitoare din mediul tual
academic. Dac elaborai eseuri n mediul universitar, atunci spiritul
acestor programe este cel de care avei nevoie.
4
Prezentarea standard a sistemului este cea pe care o face chiar Leslie
Lamport[4]. Cartea cuprinde un manual de utilizare i o descriere sistematic
A
A
a L TEX. n limba romn, exist o prezentare a versiunii mai vechi a L TEX
A
(Pusztai i Ardelean[10]). Blaga i Pop[1] prezint L TEX2e.
5
Moroanu[8, p.10] subliniaz foarte limpede caracterul de limbaj de programare al TEX.
6
Cu un procesor de cuvinte putei scrie un text din prima clip. Problemele
A
vin abia cnd vrei s facei lucruri mai complicate. n cazul L TEX lucrurile
stau exact invers: este mai greu la nceput, dar este mai uor ulterior.

65

2. Tehnoredactarea computerizat
2.1.1.1

Avantajul de a face fa complexitii rescrierii


textului

n aparen obiectivul este modest: aezarea textului n pagin. n


cazul Vim am fost preocupai de crearea de iere care conin text,
de cutarea de iruri de semne ntr-un text i de substituirea lor
cu alte semne. Acum problema este de a aranja textul n pagin.
Pentru a aeza textul n pagin trebuie s ne angajm ns deplin
pe calea programrii. Ca i vechii tehnoredactori care-i scriau pe
manuscris mesajele ctre tipogra, noii tehnoredactori trebuie s
trimit mesaje unui program care va aranja textul.

10

Mesajele ctre programele care vor prelucra textul pe computer


sunt scrise ntr-un limbaj. Chiar dac uneori pot s nu par prea
complicate, n spatele lor se a algoritmi, specicri ale pailor care
trebuie fcui pentru a rezolva o problem.
n ciuda obiectivului principal aparent modest, Knuth a pus bacapaci- zele unui sistem care face o mulime de lucruri. ntre altele, sistetile mul poate gestiona structura unui articol sau a unei cri. Poate
TEX ine evidena i plasa automat n pagin notele de subsol sau notele
marginale. Insereaz imagini. Creeaz desene, scheme de care au
nevoie autorii. Realizeaz indici. ine evidena listei bibliograce.
Asigur posibilitatea de a face trimiteri interne sau la documente
aate pe Internet.
Ar greu de descris tot ce poate face o distribuie TEX. Conceput
iniial pentru tiina computerelor, sistemul a fost adoptat de ctre
matematicieni. Din punctul de vedere al losoei, aceasta nseamn
c exist n el o sumedenie de mijloace pentru a tehnoredacta texte
de logic simbolic. Este ns ct se poate de util i dac vrem s
scriem n greaca veche.
S-ar putea ca vestea proast pentru muli s e aceea c, pentru
a lucra n TEX, trebuie s scrii o surs care va supus procesului
compilare de compilare. Programele obinuite de birou tehnoredacteaz totul
din mers, interpretnd ecare pas fcut de utilizator. Procesul de
compilare este diferit. Sursa este prelucrat n ntregimea ei. Erorile
de programare pot duce la oprirea procesului de compilare ca atare.
Procesul de realizare a produsului nal este mai dicil, dar rezultatul
obinut are alt calitate.

15

20

25

30

35

Un sistem TEX, dup cum se vede din cele scrise mai sus, este
altceva dect o suit de programe pentru munca de birou.
Marea calitate a unui sistem TEX este c permite soluionarescrierea rea problemelor legate de rescrierea textului. Dac n-ar trebui s
textului rescriem un text, atunci sistemele uzuale ar destul de potrivite.

66

40

A
2.1 L TEX

n realitate, munca intelectual presupune aternerea unor straturi


succesive ale textului. Aici se vede, dac trecei peste dicultile
nceputului, superioritatea sistemului lui Donald Knuth.
5

Evident, frumuseea aranjrii nale n pagin nu este de neglijat


nici ea. Dar, n practic, chiar dac editorul m-a forat s-i dau
textul n formatul ierelor unui editor de birou, tot a fost mai uor
s scriu n sistemul lui Knuth.7
2.1.1.2

10

15

20

25

Avantajele pentru cine vrea s aib o perspectiv


general asupra tiinei computerelor

Sunt toate acestea doar simple unelte? Punctul de plecare al sistemului a fost de ordin practic, dar el a luat turnura necesar pentru
a punctul de pornire i al unor reecii cu caracter general. O
anex la un ghid de elaborare a eseurilor losoce nu ofer cadrul
necesar pentru a duce prea departe consideraiile teoretice. Putem
face doar scurte observaii despre natura algoritmilor i a proceselor
algoritmice.
ncepem cu o distincie care amintete de distincia dintre tip i
mostr. Dac aranjm n pagin irul de semne validitate, cte li- prob de
tere a, i sau t trebuie s plasm? Una sau dou? Putem formula liter vs.
rspunsul n termenii distinciei tip-mostr (sau prob de liter)8 . liter
n validitate exist apte tipuri de liter, iar din tipurile a, i i
t avem cte dou mostre sau probe de liter.
n sistemul lui Knuth ecare liter are un cod. La rndul lor,
literele sunt grupate pe categorii. O prob, n sistemul lui Knuth,
este desemnat printr-o pereche format dintr-un cod i o categorie.
Operarea cu o prob seamn cu felul n care, n vechile tipograi,
zearii9 culegeau cu mna literele din nite cutii. Aveau cutii cu
litere de unde luau ce le trebuia i aezau n pagin. Aceasta nu este
altceva dect esena tiparului lui Gutemberg: literele mobile. Pe de
7
Cel care m-a convins denitiv de superioritatea sistemului lui Knuth este
cunoscutul logician Melvin Fitting. El mi-a explicat c, ntr-adevr, i scrie
scrisorile cu un editor de birou; crile i articolele sale de logic sunt scrise ns
cu un sistem TEX. Distincia este limpede i convingtoare: dac scrisorile ar
rodul unui proiect de cercetare, dac-ar avea o structur complicat, numeroase
trimiteri etc., atunci ar trebui i ele scrise cu un sistem gen TEX. O scrisoare
are, de multe ori, o singur pagin i este mult mai comod s aranjezi direct,
vizual elementele ei n pagin dect s scrii un program. O carte are sute de
pagini. Aici avantajul programrii se face repede simit.
8
Tipograi colecioneaz exemple din literele de care dispun i alctuiesc albume care se numesc probare de litere(v. Dicionarul limbii romne(Bucureti:
Editura Academiei, 1984), tom VIII, partea a 5-a, s.v.).
9
n limba veche se numeau chiar probari.

67

2. Tehnoredactarea computerizat
alt parte, un a poate avea categorii diferite. Aa cum, n Vim,
ntr-un mod este comanda de a plasa litera a n text, iar n alt mod
o comand de trecere la inserarea de text dup poziia curent a
cursorului.
Mai departe, putem rana ideea de procesor. TEX are un numr
limitat de comenzi de baz. Aceste comenzi pot folosite pentru a
scrie alte comenzi mai complexe. Cu alte cuvinte, n inima sistemului
conceput de Donald Knuth exist un procesor virtual.
procesor

Cnd vorbesc despre procesoare oamenii se gndesc la procesoarele zice. Putem face ns abstracie de ele i s ne concentrm
asupra a ceea ce face procesorul virtual.
n sistemul lui Donald Knuth, putem face o distincie ntre dou
procese fundamentale: plasarea unor cutii virtuale pe pagin i ceea
ce este pus n cutiile respective. Sistemul nu plaseaz deci literele ca
atare, ci cutiile n care sunt puse probe de litere. Putem astfel separa
procesul de aranjare a cutiilor de procesul de desenare a literelor.
Aici ne vom concentra atenia, n primul rnd, asupra aranjrii
cutiilor i alegerii unui coninut potrivit pentru ele. La urma urmei,
nu refacem desenul tipurilor de liter de ecare dat cnd scriem
un text. Folosim probele de litere existente i variantele lor pentru
a da un coninut cutiilor. Limbajul care ne permite acest lucru ne
intereseaz cu precdere.
Ca i-n cazul procesoarelor reale, nu este tocmai uor s programm direct n limbajul procesorului virtual. n multe situaii putem
face abstracie de ceea ce se ntmpl la nivelul procesorului. Ca i
atunci cnd folosim limbaje de nivel mai nalt, i-n cazul sistemului
lui Donald Knuth putem utiliza sisteme de comenzi mai complexe,
care vor traduse automat n procesul compilrii.
Compilarea nseamn n sistemul lui Knuth generarea a unor
iere care pot vizualizate i tiprite. Pentru vizualizare i tiprire
vor folosite programe precum Ghostview sau Acrobat Reader.

Sistemul de comenzi complexe de nivel mai nalt pe care-l vom


A
limbaje de folosi este L TEX. Ca i limbajele de nivel nalt, el faciliteaz enorm
nivel nalt programarea. De asemenea, ne ajut s nu reinventm roata. Dac
avem o problem i suntem nceptori, atunci este aproape sigur c
A
altcineva a gsit o soluie. L TEX ne permite s integrm comod
asemenea soluii n propriul nostru program.

68

10

15

20

25

30

35

A
2.1 L TEX

2.1.2

10

15

20

25

30

35

Instalarea TEX i a programelor asociate

Distribuia TEX la care ne referim constant n aceast carte se


numete MikTEX. Putei gsi instruciunile de instalare la adresa
<http://www.miktex.org>. Primul pas este obinerea unei colecii
de arhive cu ajutorul unui program de descrcare-instalare. Presupun c vei descrca mai nti arhivele pe propriul computer. Cum
volumul MikTEX este foarte mare, s-ar putea s e mai rezonabil s
obinei de la laboratorul Facultii un cd cu ierele MikTEX.
Asigurai-v apoi c-ai instalat Ghostscript, Ghostview i Adobe
Acrobat.
Instalarea ca atare nu presupune nimic deosebit. Este sucient
s urmai instruciunile. Recomandarea mea ar s nu economisii
spaiul de pe disc i s instalai sistemul TEX n forma sa complet.
Punei, de asemenea, sistemul TEX ntr-un dosar special i pe o
cale care nu conine nume de dosare cu spaii. Ai putea folosi, de
pild, ceva de genul D:\ed\tex. Punei n dosarul tex att dosarul
texmf, dosarul principal al distribuiei MikTEX, ct i localtexmf.
Tot n tex a sugera s e pus tot ce este legat de TEX.
Instalarea total a distribuiei MikTEX poate s ia destul de mult
timp.10 n momentul cnd scriu aceste rnduri, ultima versiune a
MikTEX, versiunea 2.4, instaleaz 44850 de iere (929 de pachete).
Pe computerul cu care este scris aceast carte dosarul tex, cu toate
programele asociate, ocup 654MB i conine 46758 de iere n 4566
dosare.
Dac n-avei sucient spaiu pe discul dur, instalai doar o versiune redus a distribuiei. Avei o opiune n acest sens chiar n
programul de instalare. Mai putei elimina, de asemenea, din documentaia sau pachetele pe care nu le folosii foarte des. Folosii
pentru aceasta programul MikTEX Package Manager.
Congurarea sistemului MikTEX nu este deosebit de complicat.
Asigurai-v de existena n autoexec.bat, dup set path, a unei
ci de genul d:\ed\tex\texmf\miktex\bin. Aceasta este calea din
Windows unde sunt puse executabilele MikTEX. Dac ea nu exist,
adugai calea adecvat sistemului dumneavoastr. Nu uitai c trebuie s separai cile prin punct i virgul (vedei modelul din subsecinea 1.1.4.4).
10
Se consum timp i cu vericarea integritii pachetelor. Acest proces este
ns absolut necesar. S-ar putea ca unele iere s se descarcat parial de
pe Internet. De asemenea, procesul acesta de vericare v ferete de nedorite
coruperi ale ierelor pe parcursul circuitului lor pe Internet sau al scrierii pe
cd.

69

2. Tehnoredactarea computerizat
N-ar ru s reorganizai i Start Menu n aa fel nct s nu e
toate scurtturile puse n Programs. n orice caz, gsii scurttura
care se numete MikTeX Options i care trimite ctre mo.exe, unul
dintre executabilele MikTEX. Executai un clic pe Languages i bifai
limbile de care avei nevoie. n orice caz, bifai romanian. Dai apoi
clic pe General i, pentru siguran, un clic pe Refresh Now. Aceast
mprosptare a bazei de date este absolut necesar cnd adugai
noi pachete cu iere.
Sistemul este efectiv uria i integreaz o contribuii realizate de
ctre diveri autori. Pornii MikTeX Package Manager i vei avea o
list a pachetelor instalate, cu unele scurte informaii despre ceea
ce face ecare.11

10

Dup congurare, Win98 trebuie repornit. Dac totul a mers


bine, ar trebui ca sistemul MikTEX s e funcional.
2.1.2.1

Sub ce sisteme de operare funcioneaz TEX?

ntrebarea din titlu este foarte important. Dac intrai n sala calculatoarelor de la Facultatea de Filosoe, observai imediat computerele Sun i PC-urile care funcioneaz sub sistemul de operare
Linux. Sistemele de operare sunt, n acest caz, de tip Unix. Alturi
de ele vei gsi ns cel puin un PC care folosete Windows.

15

20

Multe utilizatoare i utilizatori de sisteme de calcul au acas


A
sau la serviciu WindowsXP, nu Windows98. Merge L TEX sub toate
aceste sisteme de operare? Rspunsul este categoric da.
Instalarea sub WindowsXP este asemntoare cu aceea de sub
Windows98. Atenie doar la setarea specic a variabilei de mediu
pentru calea pe care se a executabilele MikTEX.12 Din experiena
noastr concret am putea spune c MikTEX se instaleaz mai lesne
sub WindowsXP. ntr-unul dintre cazuri instalarea a fost foarte dicil, pe acelai computer, sub Windows98 i lin sub WindowsXP.
Sub Windows98, computerul s-a blocat de cteva ori. WindowsXP
gospodrete evident mai bine resursele calculatorului i asigur o
funcionare mai stabil.
A
Dar Linux? L TEX este la el acas sub Linux. Orice distribuie
Linux important include TEX i programele asociate. Numele distribuiei respective, sub Linux, este TeTEX.
A
N-am o experien direct de utilizator de L TEX sub alte sisteme
11

Acest program exist ncepnd cu versiunea 2.3 a MikTEX, dar lipsete din
versiunile anterioare.
12
Vezi aici explicaiile de la pagina 20, rndul 18.

70

25

30

35

A
2.1 L TEX

Unix. Din cte tiu, lucrurile ar trebui s decurg fr probleme.


Aceeai este situaia i-n cazul Mac.

2.1.2.2

10

15

20

Ce se ntmpl dac n-avei computer sau ai unul


foarte vechi?

A
A recomanda ns L TEX studentelor i studenilor care nu au acas
un computer sau care au un model foarte vechi.13 Ce poi face cu
un computer foarte vechi? Poi scrie iere de tip text! Poi folosi o
versiune mai veche a Vim, eventual fr interfaa grac.
A
Pentru sursele L TEX nu este nevoie dect de iere de tip text.
O carte ntreag ncape fr probleme pe o singur dischet. Sursele respective pot apoi compilate i corectate sub Linux, ntr-un
laborator care dispune de computere performante.
A
Putei folosi pentru a crea surse L TEX chiar i un calculator
care n-are disc dur! Un PC foarte vechi, de la nceputul anilor 80 ai
secolului trecut, cu doar dou dischete poate folosit cu mult succes.
Un calculator de tip Spectrum, dar care are i sistemul de operare
CP/M (cum este calculatorul romnesc HC2000), poate servi i el
A
la producerea ierelor text care alctuiesc sursa L TEX.
A
Nu uitai c L TEX sau programele asociate pot produce i desene
pornind de la iere de tip text!

Achiziionarea de sisteme scumpe doar pentru a scrie eseuri pentru examene, lucrri de diplom, articole, teze de doctorat, cri
este efectiv o eroare. Investiia trebuie fcut n direcia nvrii
programrii, nu a utilizrii de computere foarte scumpe.
25

30

Singurul lucru de care este nevoie, pe lng computerul ieftin


care produce ierele de tip text, este accesul la un laborator cu
A
computere pe care este instalat L TEX.
La limit, putei sta i scrie chiar n laborator (sau la un Internet
caf). Rezultatul depinde de mintea celei sau celui care scrie, nu de
preul pltit pe calculator.14

13

Astzi, un model vechi de computer pe care s mearg btrnul ms-dos


sau o versiune veche de Windows poate achiziionat la un pre care oscileaz
ntre salariul minim i cel mediu din Romnia. Un sistem foarte vechi are un
pre chiar mai mic.
14
n practic, se ntmpl, uneori, s primeti eseuri scrise n limba romn,
dar fr diacritice! Ce ai zice dac vi se arat, prin contrast, un text cu dicritice
i citate frumos realizate, n greaca veche?

71

2. Tehnoredactarea computerizat
2.1.2.3

Mediul integrat de dezvoltare TEXnicCenter

n conguraia pe care o avei n acest moment trebuie s folosii


comenzile n linie ntr-o fereastr ms-dos pentru a compila sursele
A
L TEX. A sugera c este absolut util instalarea unui mediu integrat
A
de dezvoltare de programe L TEX.15
Exist i un script Vim, creat de Fritz Mehner, care creeaz meniuri, inclusiv pentru compilare i vizualizare.16 Scriptul trebuie
congurat pentru a lucra adecvat.17 S-ar putea s dorii s folosii acest script sub Linux pentru a avea acces rapid la compilare i
vizualizare.

10

Am artat deja cum putem gsi pe Internet locul de unde poate


descrcat TEXnicCenter.18 Recomandarea ar s instalai acest
program ntr-un dosar plasat n dosarul n care avei i MikTEX.
Instalarea ca atare n-ar trebui s v creeze probleme, dac urmai instruciunile. Versiunea care a fost folosit pentru a compila
sursele crii de fa are ns o particularitate care s-ar putea s v
atrag atenia; se numete 1 Beta 6.01. Ce semnicaie are Beta?
Programele sunt texte i lor li se aplic din plin principiul rescrierii.
Ele sunt rescrise pn se ajunge la o versiune matur. O versiune
beta este nc ntr-un stadiu n care mai sunt erori. Este ns sucient de bun pentru a utilizat, iar autorii ateapt mesajele
utilizatorilor cu privire la eventuale deciene.
n ciuda acelui beta din versiunea folosit de ctre noi, mediul
integrat funcioneaz destul de bine. Este totui recomandat s-l
folosii exclusiv pentru a compila sursele.19 Pentru scrierea surselor
ar mult mai sigur s folosii Vim.
Congurarea TEXnicCenter este ceva mai problematic dect in-

15

Este vorba aici mai ales de utilizatorii sistemului de operare Windows. Linux transform computerul ntr-o puternic staie de lucru. Cine este capabil
sau capabil s lucreze n Linux se poate descurca folosind Makefile-uri. De asemenea, comanda n linie din Linux este incomparabil ca putere cu ceea ce ofer
sistemul Windows ca atare.
16
Vezi <http://lug.mfh-iserlohn.de/vim/vim-latex/vim-latex.html> pentru
explicaii, exemple de utilizare i descrcarea scriptului lui Mehner.
17
N-am testat scriptul sub Linux, dar acesta pare conceput sub un sistem
Unix.
18
A se vedea aici pagina 57, rndul 30.
19
Modul acesta de lucru este, de altfel, imperios necesar dac n-avei la disA
poziie n mod curent un calculator pe care este instalat L TEX. Creai sursele
programelor separat i apoi executai ciclul compilare-vizualizare-corectare pn
obinei rezultatul dorit.

72

15

20

25

A
2.1 L TEX

stalarea. Cnd pornete pentru prima oar TEXnicCenter lanseaz


automat un Wizard20 care congureaz mediul integrat.

10

15

20

25

30

35

Dac mergei pe ruta Build Dene Output Prole. . . i dai


un clic pe butonul Wizard, putei porni oricnd dorii programul de
congurare.
Dac pe computer este instalat editorul Acrobat, editorul de iere pdf al rmei Adobe, atunci s-ar putea s obinei automat o
congurare n care ierele de tip ps (ierele PostScript) sunt deschise de ctre programul distiller, care convertete un ier de tip
ps ntr-unul pdf. Dac dorii doar s vizualizai ierul PostScript,
trebuie s modicai manual conguraia TEXnicCenter sau s facei
n aa fel nct Ghostview s e programul care deschide automat
ierele pdf sub Windows.
Ce trebuie s tii pentru a congura mediul integrat? n primul rnd, trebuie s tii unde sunt plasate executabilele MikTEX21
Cile ctre Ghostscript i Acrobat Reader ar trebui s e identicate
automat. Evident, este bine ns s le cunoatei dinainte.
Singurele probleme serioase cu congurarea automat, sub Windows98, le-am avut n cazul Acrobat Reader. Dac vedei, pe parcurs, c Acrobat Reader nu pornete cnd l chemai din mediul
integrat, mergei pe ruta BuildDene Output Prole. . . , selectai
LaTeX=>PDF i dai clic pe Viewer. Vei vedea acolo trei comenzi.
Dac este o comand dde, la primele dou punei
[FileOpen
("%bm.pdf")]. Acum ar trebui s putei deschide Reader-ul. Alternativ, alegei comanda n linie i punei "%bm.pdf" la primele dou
comenzi. Problema care rmne este legat de rescrierea ierului
pdf deschis n Reader. Reader-ul nu permite modicarea ierului
pe care l-a deschis. Acesta ar trebui nchis. Dac n-o face mediul
integrat, nchidei manual ierul direct n Reader.
Sub WindowsXP, TEXnicCenter a congurat n mod automat vizualizarea cu Acrobat Reader n modul descris mai sus. Posibilitatea
de a nchide automat ierul pdf nu exist. Dac nu-l nchidei, vei
primi un mesaj de eroare de la compilator.
Versiunea mai nou, 1 Beta 6.20, integreaz mai bine Reader-ul.
Ea are i un corector ortograc mai funcional, precum i o serie de
alte mbuntiri.

20

Cuvntul acesta nseamn n englez vrjitor. n-are ns sens s-l traducem.


Aici este folosit ca o simpl etichet.
21
Pentru conceptul de executabile MikTEX se vedea aici explicaia de la
pagina 69.

73

2. Tehnoredactarea computerizat

deschidei
Vim la
rndul
curent

2.1.2.3.1 Integrarea Vim n TEXnicCenter TEXnicCenter


are propriul su editor de texte. Are, de asemenea, meniuri care
permit introducerea direct n mediul integrat a comenzilor din limA
bajul L TEX.
Este posibil ns s integrai editorul Vim n TEXnicCenter. Mergei la meniul Tools Customize i dai un clic pe Tools, iar apoi
un clic pe pictograma New. Dai un clic pe butonul din dreptul casetei Command i procedai ca i cum ai deschide ierul gvim.exe
(principalul executabil din dosarul unde este instalat Vim). La argumentele comenzii punei +%l %pc.22 La directorul iniial punei
%dc. Ai indicat astfel c vrei s deschidei documentul curent din
TEXnicCenter n Vim.
Vim i TEXnicCenter colaboreaz bine i, dac ai modicat textul n Vim, TEXnicCenter v va ntreba dac s modice la rndul
su textul. Invers, dac ai modicat textul n TEXnicCenter, la revenirea n Vim dai clic pe Load File n caseta de dialog care va
aprea automat. Preluai astfel automat schimbrile. Altfel, le pierdei! Vei primi, ce-i drept, nite mesaje din partea Vim.
Pentru a verica dac totul merge fr probleme este imperios
necesar s exersai pe iere test. Nu trecei direct la scrierea eseului pe care trebuie s-l predai mine. S-ar putea s avei surprize
neplcute.

Multe cititoare i cititori se vor ntrebnd ns ce rost are s


folosim Vim.Mediul integrat are o mulime de pictograme care ne
A
A
permit s scriem comenzile L TEX fr efort. Limbajul L TEX este
creai extrem de subtil. Ar imposibil pentru cineva s creeze exact comeniuri menzile de care avei nevoie. Recomandarea noastr este s creai
proprii propriile dumneavoastr meniuri. Alternativ, dac n-avei interfa
grac sau nu v plac meniurile, folosii scripturi Vim. Putei crea
uor scripturi Vim folosind doar al treilea bloc de cod din exemplele
noastre cu meniuri Vim.23
La urm, dar nu n cele din urm, cred c trebuie accentuat
recomandarea de a folosi separat Vim de mediul integrat ct timp
construim sursele. Cu alte cuvinte, editorul Vim (sau unul similar)
22

Litera l vine de la line; nu o confundai cu cifra 1. Studiai opiunile la


invocarea n linia de comand a lui Vim cu ajutorul comenzii gvim.exe help.
23
Cum pornii un script Vim? Tastai, n modul normal, comanda :source
sau, mai scurt, :so i apoi calea unde se gsete scriptul, respectiv doar numele
scriptului vim, cnd acesta se a n dosarul curent. De asemenea, istoria comenzilor n linie este de mare ajutor. Cutai i un ier _viminfo. S-ar putea
s e n home, dac avei aa ceva. Acolo gsii istoria comenzilor. Ce vi se pare
mai reuit putei pstra n alt ier n vederea construirii de script-uri Vim.

74

10

15

20

25

30

A
2.1 L TEX

trebuie folosit pentru a introduce textul ca atare. Folosim mediul


integrat doar pentru a compila sursele i pentru a le corecta. n acel
moment s-ar putea s avem nevoie de funcionarea integrat i a
editorului Vim.24
5

10

2.1.2.3.1.1 Vim i programul de vizualizare a ierelor


A
dvi Dup compilarea sursei L TEX rezult un ier dvi care este
vizualizat cu ajutorul programului Yap din distribuia MikTEX. La
instalarea TEXnicCenter, Yap este setat n aa fel nct un dublu
clic ne readuce n editorul mediului integrat.
Mergei n Yap pe ruta View Options. . . . n panoul Inverse
Search modicai comanda dup modelul urmtor:
D:\use\Vim\vim62\gvim.EXE +%l %f

15

20

Fii atente i ateni s nu repunei n drepturi TEXnicCenter: nu


selectai nimic n caseta pentru programe! Secretul comenzii ctre
Vim este +%l care-i spune s deschid ierul-surs la linia l. Punei
evident calea potrivit pentru felul n care este instalat Vim.
S-ar putea s e necesar s vericai i registrul Windows, dac
nu merge totul cum trebuie. Cu toate c pare mai dicil de operat,
schimbarea aceasta este foarte util cnd vrei s operai corecturi
mai complicate n ier.

2.1.3

A
L TEX ntr-o sptmn

A
L TEX este un limbaj de programare. Trebuie nvat ca orice limbaj
de programare: fcnd exerciii. Exerciiile propuse de ctre noi aici
constau n construirea unor meniuri Vim foarte simple.25
25

30

De data aceasta meniurile Vim nu sunt un scop n sine, ci un


mijloc de a tasta mai rapid componentele diverselor construcii poA
sibile n L TEX. Atenia trebuie s e concentrat asupra comenzilor
A
L TEX ca atare, nu asupra modului n care sunt denite meniurile
n limbajul Vim.
A
Independent de meniuri, comenzile L TEX pot introduse cu ajutorul oricrui editor de texte prin simpla tastare a textului comenzilor.
24
Recomandarea aceasta este fcut i pentru c mediul integrat recomandat
aici este ntr-o versiune beta. N-am avut accidente majore cu editorul su intern.
Impresia mea este totui c nu manevreaz bine iere mari. Vim este mult mai
sigur i mai exibil.
25
Vezi aici 1.2.2.1.1.

75

2. Tehnoredactarea computerizat
2.1.3.1

schema
comenzilor
A
L TEX

Prima zi

A
Prima idee care ar trebui nvat este cea de comand L TEX ca
A
atare. Scheletul unei comenzi L TEX este urmtorul: \{}. ntre bara
oblic invers i prima acolad se pune numele comenzii. ntre acolade se pune argumentul comenzii. Argumentul nu este altceva dect
materialul pe care comanda l prelucreaz n conformitate cu algoritmul aat n spatele ei.

Unde sunt plasate comenzile? n textul eseului ca atare! Ele sunt


aidoma nsemnrilor pe care le face tehnoredactorul pe manuscris.
Aceste nsemnri le folosete apoi tipograful pentru a tipri textul.
Cum de nu se confund comenzile ca atare cu elemente similare ale textului? Exist o serie de semne rezervate exclusiv pentru
semne comenzi. Ai vzut deja trei dintre aceste semne mai sus. Lista comrezervate plet a semnelor rezervate este urmtoarea: $ & # % _ { } i,
la urm, dar nu ultima n ordinea importanei, bara oblic \. n
total 10 semne. Dac vrem s tiprim aceste semne ca atare, atunci
trebuie s dm nite comenzi prin care s cerem acest lucru.
A
Cineva s-ar putea s e nedumerit. Ce face L TEX dac ntlnete
semnul, s zicem, s (o liter uzual din alfabet)? ntr-un fel i semnul
A
aceasta este o parte a unei comenzi. L TEX este ca un tipograf. Aa
cum tipograful trebuie s tie la ce cutie cu litere din plumb s se
A
duc, tot aa L TEX trebuie s tie ce liter-ca-tip i ce tip de liter
trebuie s tipreasc pe ecran sau pe foaia de hrtie. Scepticul sar putea s clatine din cap i s mormie n sinea sa c este prea
complicat. Dar i-n cazul unui editor uzual de birou trebuie s alegei
tipul de liter!

meniu
Exemplul practic s-ar putea s v conving ns c este mai simVim plu dect credei. Creai un ier de tip vim i introducei urmtoapentru rele linii de cod Vim pentru a realiza un meniu:
scheletul
unui 1 :imenu ltx1.antet \documentclass[a4paper,11pt]{}<Left>
program 2 :imenu ltx1.corp \begin{document}<CR><CR>\end{document}<Up><Home>
A
L TEX
Cele dou puncte ne arat c este vorba despre comenzi n linie
pentru Vim. Din imenu reiese destul de uor c este vorba despre un
meniu activ n modul insert. Numele meniului care apare pe bara
principal cu meniuri este LaTeX. Punctul pus dup numele meniului
este urmat de numele elementului pe care vrem s-l introducem n
meniu.
Dac nu vrei sau nu putei lucra n mod grac cu Vim, experimentai urmtorul tip de comand ntr-un script Vim.

76

10

15

20

25

30

35

A
2.1 L TEX
1

normal i\documentclass[a4paper,11pt]{}

Ideea este aceeai ca i-n primul element al meniului de mai sus. De


data aceasta ns, cuvntul-cheie normal i spune lui Vim s treac
din modul comand n linie n modul comand normal. Urmeaz
apoi comanda i, pentru a insera text, i textul ca atare.
5

10

15

20

25

30

Putei da comanda de mai sus direct n modul comand n linie.


Aceasta ne arat ce editor formidabil este Vim. Ideile pe care le
folosim n construcia interfeei grace pot utilizate i-n absena
acesteia, ntr-un mod ct se poate de ecient.
Ce sens au elementele de meniu? n primul element de meniu,
ideea este de a scrie o comand care s spun despre ce tip de document este vorba. Cnd dm clic pe primul element de meniu, Vim
scrie n ier textul cerut i mut cursorul ntre acolade. Acolo trebuie s scriem despre ce tip de document este vorba. Scriei, pentru
nceput, article. Orice eseu de dimensiuni mai mici este de tipul
article. De asemenea, pentru a nu v complica viaa de la bun
nceput, considerai c orice eseu mai lung (lucrare de diplom, disertaie, tez de doctorat sau carte) este de tipul book. n realitate,
A
L TEX este mult mai sosticat i putei chiar deni propriile dumneavoastr tipuri de documente.26
Ce sunt parantezele drepte? Dup cum se vede mai sus, nu fac
A
parte dintre semnele rezervate. n comenzile L TEX se pun ntre paA X are nite opiuni standard i
ranteze drepte opiuni. Evident, L TE
ai putea omite cu totul acel element. Noi am vrut s artm care
este coninutul mai important al acestor opiuni: formatul foii de
hrtie i mrimea literelor. Unitile de msur ale literelor se numesc puncte27 . Ar inutil s facem teoria acestor uniti de msur
aici. Experimentnd vei vedea ce rezult pe ecran i pe hrtie.
Opiunea cea mai important pe care s-ar putea s vrei s o
controlai este cea a tipririi pe o singur fa a colii de hrtie
(oneside)28 sau pe ambele fee (twoside).
Comanda care specic tipul de document este elementul obli26
Denirea de tipuri de documente nu este ns o operaie pe care o pot
A
face nceptorii sau utilizatorii obinuii L TEX. De altfel, recomandarea ar s
A
respectai disciplina impus de L TEX chiar i atunci cnd tii destul de multe
elemente ale limbajului.
27
Scriei doar pt dup numrul care specic dimensiunea literelor.
28
n mod tradiional, de exemplu, lucrrile de licen sunt tiprite pe o singur
parte a foii de hrtie. Dac le construii folosind tipul de document book va
trebui s specicai explicit opiunea oneside. La articole lucrurile stau exact
invers.

77

2. Tehnoredactarea computerizat
A
gatoriu al antetului unui program L TEX. Programul trebuie s aib
ns i ceea ce se numete un corp.

n al doilea element de meniu, i se spune, de fapt, editorului


A
Vim cum s creeze corpul unui program L TEX. Observai c, de
data aceasta, este vorba despre o pereche de comenzi. Tratai-le ca
pe nite paranteze. Dac una lipsete, atunci programul conine o
eroare.
Aciunea perechii de comenzi se exercit numai asupra a ceea ce
se a ntre ele. Lucrul acesta d mari bti de cap novicilor. Creai
un ier cu extensia tex. S zicem c numele acestui ier este
prim.tex. Deschidei prim.tex cu Vim. Dac totul este n regul,
putei rula scriptul Vim creat i avei un meniu cu dou elemente n
A
program el. Folosii-le pentru a scrie un prim program L TEX, ceva n genul
A
L TEX a ceea ce vedei mai jos.
minimal \documentclass{article}
Salut cititoarele/cititorii!
\begin{document}
Salut cititoarele/cititorii!
\end{document}

10

15

n exemplul de mai sus vedei n partea stng un program minimal i-n partea dreapt rezultatul obinut dup compilare.
Ce este compilarea? Un program conine comenzile pe care
vrem s le execute computerul. n cazul compilrii, programul este
prelucrat, ca s spunem aa, n ntregimea sa. Nu obinem rezultatul
dorit pe buci, comand cu comand.
A
Adevrul este c L TEX este sucient de exibil pentru a lucra i
bucat cu bucat. Scriei n prim.tex doar antetul. ntr-o fereastr
ms-dos, cu promptul chiar n dosarul unde este prim.tex, putem
duce un dialog cu TEX de genul celui care urmeaz:

E:\test\zi1>latex prim.tex
This is e-TeX, Version 3.141592-2.1 (MiKTeX 2.4)
entering extended mode
(prim.tex
LaTeX2e <2001/06/01>
Babel <v3.7m> and hyphenation patterns for english loaded.
)
*\begin{document}
(D:\ed\ltx\texmf\tex\latex\base\article.cls
Document Class: article 2001/04/21 v1.4e Standard LaTeX
document class
(D:\ed\ltx\texmf\tex\latex\base\size11.clo)) (prim.aux)
*Salut lume!
*\end{document}
[1] (prim.aux)

78

20

25

A
2.1 L TEX

Output written on prim.dvi (1 page, 228 bytes).


Transcript written on prim.log.

Promptul > este cel al sistemului de operare, care ateapt o comand n linie. Stelua este promptul sistemului TEX, care ateapt
comenzi. Mesajele indic faptul c totul s-a terminat cu bine.
5

10

15

20

25

30

35

Pentru a compila ierul prim.tex v trebuie un document complet, dup modelul indicat mai sus. Cnd dai acum comanda n
linie latex prim nu mai trebuie s ducei nici un dialog cu TEX.
Putei vedea rezultatul dnd un dublu clic pe prim.dvi.
Atenie, nu scriei textul care vrei s apar pe ecran n afara
corpului programului! n antet, ar o eroare. Dup \end{} n-ar
avea nici un efect. Aceasta din urm este eroarea tipic a novicilor. Este semnul c n-ai neles rolul perechii de comenzi. Nu este
nici o problem! Exersnd v dai seama care este funcia corpului
programului.

unde
scriem
textul
eseului?

Folosii mediul integrat pentru compilare. Dai dublu clic pe ierul prim.tex i acesta va deschis n TEXnicCenter. Cutai
pictograma Build current le (Ctrl+F7). Dai un clic. n fereastra
de jos a mediului integrat vei vedea o serie de mesaje. Dac sunt
0 Error(s), pentru o prim ncercare, totul este n ordine. Pentru a
vedea rezultatul, dai un clic pe pictograma View output.
Este recomandabil s meninei caseta Output prole pe opiu- impornea LaTeX=>DVI ct timp lucrai la primele versiuni ale eseului tana
dumneavoastr. Acestea sunt fazele n care, nainte de era compu- dvi
terelor, ai scris cu mna. Abia cnd pregtii versiunea pentru
printer sau pentru ecran are sens s compilai un ier PostScript
sau pdf. Deocamdat vericai doar dac totul este n ordine pentru
toate cele trei tipuri de rezultat (dvi, ps i pdf).
Vizualizatorul ierelor dvi este setat n aa fel la instalarea mediului integrat nct putei da dublu clic ntr-un punct al textului
i vei reveni n editorul de texte din mediul integrat n punctul
corespunztor din surs.29 n acest fel putei parcurge lesne ciclul
compilarevizualizarecorectare pn obinei rezultatul dorit.
Citii deci sursa pentru a vedea dac n-avei erori din perspecA
tiva limbajului L TEX. Citii rezultatul n programul de vizualizare
pentru a vedea dac el corespunde cu inteniile dumneavoastr. Corectai sursa i recompilai pentru a vedea noul rezultat.

29

Pentru deschiderea Vim din Yap v. 2.1.2.3.1.1

79

2. Tehnoredactarea computerizat
A
2.1.3.1.1 Proiectul L TEX Dac elaborai un document de dimensiuni mai mari i punei tot ce este legat de documentul respectiv ntr-un singur ier, acesta devine extrem de greu de inspectat.
Principiul sursei deschise ar putea funciona i la nivelul unui ier
foarte amplu, dar caracterul deschis al sursei nu ne-ar de mare
folos. n plus, ctigm n planul structurrii logice a documentului
dac-l secionm.

Ce facem ns cu sumedenia de iere care ar putea rezulta? Le


punem ntr-un singur dosar. n dosarul respectiv nu punem nimic
care s nu e legat de proiectul la care lucrm.
TEXnicCenter este de mare ajutor cnd este vorba despre lucrul
cu proiecte. Deschidei TEXnicCenter i mergei la meniul File. De
aici deschidei fereastra de dialog New Project. . . . Alegei o cale
(Project path) n care va sta dosarul cu proiectul dumneavoastr.
Dai un nume proiectului (de pild, eseu) i TEXnicCenter va crea
automat un dosar cu numele proiectului (n cazul nostru, dosarul
eseu). n versiunea 1 Beta 6.01 a TEXnicCenter nu este posibil dect
s creai un proiect vid (empty project).
Deocamdat nu tii nimic despre BibTEX i MakeIndex, aa c
putei lsa nebifate rubricile lor.

10

15

20

Dac explorai dosarul eseu, vei vedea c TEXnicCenter a creat


trei iere: eseu.tcp, eseu.tps i eseu.tex. Primele dou iere le
modic doar TEXnicCenter. Pot ns lesne vizualizate cu Vim.
S vedem ce se gsete n eseu.tcp:
1
2
3

[FormatInfo]
Type=TeXnicCenterProjectInformation
Version=2

4
5
6
7
8

[ProjectInfo]
MainFile=eseu.tex
UseBibTeX=0
UseMakeIndex=0

Pe rndurile 7 i 8 se gsesc dou opiuni evidente. Dac la crearea


proiectului n-ai bifat Uses BibTeX i Uses MakeIndex, valoarea acestor opiuni este 0. Cnd vei vrea s folosii programele respective,
nu este dicil s punei 1 n loc de 0. Nu facei ns alte modicri.
Pe rndul 6 din ierul eseu.tcp ni se spune c eseu.tex este ierul principal al proiectului. Aceasta este o informaie important.
Acest ier poate modicat i dinafara mediului integrat, cu ajutorul editorului Vim. Fie n mediul integrat, e cu ajutorul Vim,
A
punei n ierul principal urmtoarele rnduri de program L TEX:

80

25

30

A
2.1 L TEX
1
2
3
4
5
6
7
8

\documentclass[a4paper,12pt]{article}
\author{Prenume Nume}
\title{Primul meu eseu}
\begin{document}
\maketitle
\tableofcontents
\include{text}
\end{document}

Atenie n special la rndul 7 din ierul principal. Acest rnd cuprinde o comand care cere includerea unui ier de tip tex, numit text.tex n proiect. Nu punei extensia ierului n comanda
\include. Fiierul trebuie creat de ctre dumneavoastr. O putei
face att n mediul integrat, ct i-n afara acestuia. Trebuie ns
neaprat s punei acest ier n dosarul proiectului.
Ce cuprinde ierul text.tex? Deocamdat o singur linie de
text pur. Este sucient att pentru prima zi. n perspectiv, n acest
ier poate sta un ntreg eseu.

10

15

20

Atenie! Nu punei antet sau corp de document n ierul acesta


sau n alt parte dect n ierul principal.
Dac cercetai ierul principal, vedei c-n antet (n preambulul programului) se a o comand care indic sistemului numele
autoarei sau autorului. De asemenea, o alt comand arat care
este titlul. Aceste comenzi sunt necesare desigur pentru comanda
\maketitle din corpul documentului.
De ce lipsesc acoladele dup \maketitle i \tableofcontents?
Putei s le punei. Nu se ntmpl nimic ru. Aceste comenzi i culeg ns singure materialul. Ne vom mai ntlni, de altfel, cu comenzi
cu argumentul vid.
Versiunea 1 Beta 6.20 a mediului integrat are n meniul Project
rubrica Create with active le as main le. Cu ajutorul ei procesul
descris mai sus se simplic. Putei crea direct ierul principal i,
pe baza lui, ntregul proiect.

25

30

Cum compilai proiectul? Cutai pe bara cu instrumente pictograma Build Output(f7). Dai clic i compilai.

f7

Are rost s construim ns un proiect pentru un simplu articol,


pentru un eseu de dimensiuni mici? Are foarte mult sens s facem
acest lucru. Este un pas nainte n separarea procesului de elaborare
a textului ca atare i a procesului de compilare. Putei scrie ierul
text.ttt pe cu totul alt computer dect cel pe care compilai i
doar s-l integrai ca pe un modul n proiect. De asemenea, separai
comenzile privitoare structura de ansamblu a documentului de tot
ce este legat de coninutul diferitelor pri ale proiectului.

81

2. Tehnoredactarea computerizat
n cazul unei cri, este recomandabil ca ecare capitol s e
pus ntr-un ier aparte. Evident, n ierul principal al proiectului,
trebuie s schimbai tipul documentului din article n book.
S-ar putea ca unii s e ngrozii de sumedenia de iere dintr-un
proiect. Dup compilare rezult noi iere. Unele dintre ele, cnd
v satisface rezultatul nal, pot terse. n TEXnicCenter, putei
cura proiectul de ierele auxiliare folosind Build Clean Project.
Este recomandabil ns s avei undeva (pe dischet sau cd ar cel
mai bine) tot proiectul salvat, nainte de a face curenie.
Chiar i curat de ierele auxiliare, un proiect are numeroase
iere. Cum l distribuim pe Internet sau l trimitem prin pota electronic? S-ar putea ca destinatarii s aib probleme cu descrcarea
ierelor. Soluia cea mai bun este s arhivai tot proiectul. Selectai dosarul proiectului. Deschidei meniul contextual. Dac avei
7-zip sau alt program de arhivare instalat, chemai programul de
arhivare, selectai opiunile dorite i construii o arhiv a proiectului. Acum avei un singur ier, lesne de transportat.30
A
2.1.3.1.2 Vim i sintaxa limbajului L TEX Ca orice limbaj
A X are o sintax care trebuie strict respectat.
de programare, L TE
A
Dai un nume de comand pe care L TEX nu-l tie i vei primi la
compilare un mesaj de eroare. Nu se poate ns face ceva pentru a
depista erorile de sintax nainte de faza compilrii.

Dac folosii Vim cu interfa grac, atunci ai observat deja


faptul c Vim coloreaz ntr-un mod special expresiile din limbajul
A
L TEX. Comenzile sunt evideniate prin culori. Acest lucru v ajut
s identicai erorile de sintax.
De asemenea, folosii, n modul comand normal, tasta % pentru a testa nchiderea corect a parantezelor. Dac-ai integrat i
scriptul matchit, putei verica i corectitudinea perechilor de comenzi de genul \begin{document}-\end{document}.

10

15

20

25

30

Sistemul culorilor are limitele sale, dar n practic n-am simit


nevoia utilizrii unui program special de vericare a corectitudinii
sintaxei Vim. Dac n-avei interfa grac, un asemenea program
este ns util.
Editorul mediului integrat folosete aceeai metod a colorrii
A
textului pentru a evidenia sintaxa programului L TEX. Vim mi se
30

Nu v jucai cu toate posibilitile oferite de arhivare. Exist posibilitatea


de a transforma arhiva ntr-un executabil, care se deschide printr-un simplu clic
la destinaie. Unele rme care asigur serviciile de pot electronic sunt ns
suspicioase i returneaz toate scrisorile care au ataate programe executabile.

82

35

A
2.1 L TEX

pare ns mai exibil i de mai mare ajutor atunci cnd este vorba
despre depistarea unei erori subtile de sintax.
2.1.3.2

Ziua a doua

A
Orice program L TEX se traduce, pn la urm, n comenzi pe care
le execut procesorul TEX. Ar foarte util s ne amintim c TEX
nu este un editor de texte asemenea lui Vim. Este un sistem de
aranjare a textului n pagin n vederea tipririi.

TEX pune pe foaia de hrtie cutii (boxes) n care apoi pune litere.31
10

15

A
2.1.3.2.1 Modurile L TEX Oricine s-a jucat cu cutii tie ns
c le poi e pune unele lng altele, e unele peste altele. Pe foaia de
hrtie, care este bidimensional, cutiile au doar un sens metaforic.
Evident, sunt doar nite patrulatere care pot dispuse pe orizontal
sau pe vertical.

Dac sistemul dispune cutiile pe vertical, atunci spunem c el


se a n modul vertical. Dac sistemul aaz cutii pe orizontal (pe
rnduri), atunci este n modul orizontal.
Att modul vertical, ct i modul orizontal au dou variante:32

20

vertical obinuit n acest mod se pot pune una peste alta oricte
cutii, deoarece se trece de la o pagin la alta i aa mai departe;
vertical intern Cutiile sunt puse vertical ntr-o alt cutie i exist
o limit dat de dimensiunile cutiei n care se pun alte cutii;
orizontal obinuit n acest mod se pot nirui oricte cutii, deoarece se trece de la un rnd la altul;

25

orizontal strict Cutiile sunt niruite n alt cutie i limita este


dat de cutia respectiv, dar nu se produce o trecere de la un
rnd la altul.
Cnd ne referim la vertical sau orizontal fr alt precizare avem
n vedere variantele obinuite ale acestor moduri.

30

Distinciile din sistemul lui Knuth sunt foarte naturale, n ciuda


enunurilor abstracte de mai sus. Evident, resursele sistemului TEX
31

Aici doar am reamintit un principiu de baz pentru nelegerea modului n


care funcioneaz procesorul TEX. Vezi mai sus pagina 67, rndul 27.
32
Am folosit terminologia i explicaiile din Seroul[11, p.46].

83

2. Tehnoredactarea computerizat
pun o limit n calea niruirii de oricte cutii; aici era vorba ns
de nite distincii de principiu.
Cel de al treilea mod este cel matematic. ntr-un eseul losoc
este perfect posibil s ntlnii formule logice. Acestea trebuie scrise
n modul matematic. Acest mod de lucru al TEX nu poate nvat
ns n dou zile.33
Dac am neles felul n care lucreaz TEX, atunci am neles i
A
modurile de lucru ale L TEX. Putem, de asemenea, s facem i o distext vs. tincie simpl, binar, ntre un mod text i un mod non-textual.
non-text Textul ca atare este aranjat orizontal i vertical. Vei vedea i o serie
de comenzi pentru text. Cnd trebuie specicat explicit c aceste
A
comenzi sunt pentru text L TEX, ele sunt de forma \text...{}.
A
Cnd pornete, L TEX este n modul vertical. Cum se schimb
acest mod? Prin comenzi care implic modul orizontal ntr-una din
versiunile sale i la ntlnirea unuia dintre semnele care nu sunt rezervate.

10

15

Prin urmare, la ntlnirea unui semn care este reprodus ca atare


A
n textul tiprit, L TEX trece n modul orizontal.
Pentru a vedea modurile TEX putei duce urmtorul dialog ntr-o
fereastr ms-dos:34
1
2
3
4
5
6
7
8
9
10
11
12

>tex
This is TeX, Version 3.141592 (MiKTeX 2.4)
**\tracingcommands=1
*\vbox{}
*a
*\hbox{}
*$x$
*\end
[1]
(see the transcript file for additional information)
Output written on texput.dvi (1 page, 260 bytes).
Transcript written on texput.log.

Chiar dac nu tii comenzile, numele lor este sugestiv: vbox sugereaz o cutie legat de modul vertical; iar hbox este o cutie care are
legtur cu modul orizontal. Citirea ierului de tip log este oricum
instructiv:
1
2
3

This is TeX, Version 3.141592 (MiKTeX 2.4)


**\tracingcommands=1
*\vbox{}
33
34

84

A se vedea aici anexa 2.4.


Exerciiul este pentru ucenicii vrjitori i este sugerat de Seroul[11, p.47].

20

A
2.1 L TEX
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

10

15

20

25

{vertical mode: \vbox}


{internal vertical mode: end-group character }}
{vertical mode: blank space }
*a
{the letter a}
{horizontal mode: the letter a}
{blank space }
*\hbox{}
{\hbox}
{restricted horizontal mode: end-group character }}
{horizontal mode: blank space }
*$x$
{math shift character $}
{math mode: the letter x}
{math shift character $}
{horizontal mode: blank space }

Fiierele log conin mesajele sistemului pe parcursul interpretrii


sau compilrii unui program. Este bine s ne obinuim s le citim.
Din nou, TEXnicCenter ofer un mare avantaj: toate mesajele sistemului apar ntr-o fereastr i putem naviga de la un mesaj la altul
cu ajutorul unor pictograme. Putei, de asemenea, da un clic pe
programul care v intereseaz i vei naviga automat ctre linia (n
sens logic) din program care a pricinuit apariia mesajului.
2.1.3.2.2 Alineatele Dac ai fcut tentativa de a scrie din
A
prima zi un text cu mai multe alineate n sistemul L TEX, ai avut
probabil o mare surpriz. Fr s tii ai intrat n modul orizontal
i, dac n-ai avut noroc, n-ai putut iei din el. Apsarea (o singur
dat!) pe tasta Enter nu v scoate din modul orizontal.
Dac nu ieim din modul orizontal, nu putem construi alineate
distincte. Ieim din modul orizontal dac apsm de dou ori tasta apsai de
dou ori
Enter. Altfel spus, un rnd alb ne readuce n modul vertical.
Exist i o comand special pentru crearea de alineate: \par{}. Enter
N-are rost s creez aici meniuri pentru comenzi att de simple. Este pentru a
A
sucient s avei un meniu pentru scheletul unei comenzi L TEX.35 ncepe un
alineat
Punei textul la locul potrivit i ai scris comanda.
Unde punem textul alineatului? Putem s-l punem ntre acoladele comenzii \par{}? Se poate, dar n-are sens din perspectiva
modurilor TEX. Comanda \par{} trebuie pus la sfritul alineatului. Ea spune sistemului c trebuie s treac n modul vertical.
Putem omite acoladele.
A
Din perspectiva claritii sursei programului L TEX, recursul la
35

A se vedea aici 1.2.2.1.1.3.

85

2. Tehnoredactarea computerizat
rndul alb pentru a crea alineate mi se pare preferabil. Marele avantaj al faptului c apsarea pe tasta Enter nu este echivalent cu
trecerea la un nou alineat36 este ns altul. Putem pune ecare idee
pe un rnd logic distinct.
Un alineat este crmida de baz a unui text. Fiecare alineat
cuprinde un mnunchi de idei care graviteaz n jurul unei idei-cheie.
Este extrem de avantajos s putem pune ecare idee pe un rnd
distinct.
n acest punct se vede cel mai bine de ce soluia aleas curent
n editoarele de birou este inadecvat pentru munca intelectual.
Editoarele de birou37 ne foreaz s scriem ideile, ca s zic aa, n
modul orizontal, punndu-le unele dup altele. Aceast modalitate
de scriere este avantajoas dac vrem s vedem imediat cum va
arta rezultatul nal. Ce-ai zice ns dac-ar cere cineva ca o cldire
s e construit fr a se recurge la schele, pe motiv c acestea nu
ne permit s vedem pe parcurs apropierea de rezultatul nal? Dac
respectm aceast cerin, rezultatul nal va semna mai mult cu
o colib dect cu o cldire frumoas.
2.1.3.2.3 Textul invizibil Un alineat are o idee-cheie. Putem
A
face ceva, n sursa programului L TEX, pentru a evidenia cumva
ideile-cheie? Da. Editoarele de birou recurg la colorare. Aceast meA
tod este ns rezervat n sursele L TEX pentru marcarea sintaxei
limbajului. Exist ns i o alt posibilitate: textul invizibil (n documentul tiprit n nal).
comentan surse este bine s e puse comentarii. Comentariile pot curii prinde, de pild, ideea-cheie a alineatului. Comanda pentru comenA
L TEX tarii este realizat cu ajutorului semnului rezervat %. Tot ce se a
ntre simbolul procent i primul sfrit de rnd logic devine comentariu i este ignorat de ctre compilator. De asemenea, putem pune
comentariile pe un rnd separat.
Dac examinm nceputurile de rnd din sursa alineneatului de
la pagina 86, rndul 9 vedem un comentariu (pe rndul al doilea n
extrasul de mai jos) care nu apare n text dup compilare (rolul lui
este de a-mi permite s sesizez rapid esenialul alineatului):
1
2

n acest punct se vede cel mai bine de ce soluia aleas (...)


%editoarele de birou fac obscur logica alineatului
36

Ideea de a nu apsa de dou ori Enter, preluat de pild de Funeriu[3,


p.282] din Parker, este una dintre dintre absurditile pe care le induce n mintea
oamenilor utilizarea editoarelor de birou.
37
Cel puin cele pe care le tiu eu.

86

10

15

20

25

30

A
2.1 L TEX
3
4
5
6

Editoarele de birou ne foreaz s scriem ideile (...)


Aceast modalitate de scriere este avantajoas dac (...)
Ce-ai zice ns dac-ar cere cineva ca (...)
Dac respectm aceast cerin, rezultatul final (...)

Pn la urm, din punctul de vedere al textului invizibil, difeA


rena ntre editoarele de birou i L TEX este una mai mult de abordare dect de substan. Editoarele de birou au posibilitatea de a
insera text invizibil la tiprire. Vim sau alte editoare adaptate ceA
rinelor L TEX coloreaz ntr-un mod aparte comentariile.

2.1.3.2.4 Seciunile Este bine s folosim ct mai mult comentariile. n cele ce urmeaz vom explica felul n care pot create
A
seciunile unui eseu ntr-un document L TEX. Titlul lor nu ne spune
ns, dup o vreme, chiar totul despre ce am vrut s punem n seciunea respectiv. Un comentariu ne ajut enorm din acest punct
de vedere.

10

A
n L TEX, articolele sunt divizate n seciuni, subseciuni, subsubseciuni, paragrafe i subparagrafe. Nu exist capitole n cazul unui
articol.

Care sunt comenzile pentru a crea aceste cinci tipuri de seciuni?


Comenzile pot desprinse din urmtoarele linii de cod pentru meniuri Vim:

15

1
2
3
4
5
6

imenu ltx2.section \subsection{}<CR>\label{}<Up><Right>


imenu ltx2.subsection \subsubsection{}<CR>\label{}<Up><End><Left>
imenu ltx2.subsubsection \paragraph{}<CR>\label{}<Up>
<End><Left>
imenu ltx2.paragraph \subparagraph{}<CR>\label{}<Up><End><Left>
imenu ltx2.subparagraph \subparagraph{}<CR>\label{}<Up><End><Left>

Punei titlul seciunii ntre acoladele primei comenzi din perechea


de comenzi. Sensul celei de a doua comenzi l vom explica mai jos.
20

25

Termenii din limba englez pentru ultimele dou tipuri de seciuni sunt susceptibili s genereze confuzii. n limba englez, un paragraph este mai degrab un alineat. Numele comenzilor sunt mai
puin importante ns. Semnicativ este c acestea sunt toate seciuni ale unui text. Cea mai mic seciune grupeaz un numr de
alineate, centrate n jurul unei idei-cheie.
Comenzile de secionare pot date i-n mediul integrat TEXnicCenter. Recomandarea noastr este s NU facei acest lucru. Me- creai
diul integrat construiete automat argumentul comenzii \label{} seciunile
i pune o secven sec: la nceputul oricrui argument. Acest obicei cu Vim

87

2. Tehnoredactarea computerizat
mai mult ncurc ns lucrurile. Cel mai bine ar ca argumentul din
comanda \label{} s e un unic cuvnt. Dac punei dou puncte
n argument, atunci nu se mai respect aceast cerin.
La ce slujete comanda \label{}? Scriei comenzi de secionare
n ierul text.tex al proiectul eseu. Nu le scriei n ierul principal. Scriei comenzi pentru toate cele cinci tipuri de seciuni, cu
titluri i ceva text n ecare seciune. Transformai ns n comentarii rndurile unde se a comenzile \label{}. Dup ce compilai,
studiai efectul obinut. n textul generat astfel sunt vizibile seciunile. Primele trei tipuri au i numere puse automat. Eliminarea
comenzilor \label{} n-a stricat ns nimic.
label

n limba englez, label nseamn etichet. Secionarea textului


nu depinde de etichete. Etichetele au cu totul alt rol dect acela de a
seciona textul. De fapt nu au, n sine, nici o legtur cu seciunile ca
atare. Ele sunt marcaje, sunt punctele pe care le caut alte comenzi
din program. Dac vrem s trimitem la o seciune din text, avem
nevoie de aceste marcaje speciale.

10

15

Cum ar bine s arate aceste etichete? Voi folosi un exemplu


chiar din textul de fa:
\subsubsection{nvarea Vim ntr-o zi}
\label{InvatareaVimIntroZi}

Cred c acum suntei convinse i convini c este o doz de ironie


n spatele titlului luat drept exemplu. Vim nu se nva ntr-o zi
A
i, cu att mai puin, L TEX. Lucrul acesta este ns aici mai puin
semnicativ. Ce se vede ns foarte bine este felul n care n etichet
au fost eliminate spaiile, diacriticile i, de fapt, orice alt element
care ar putea genera confuzii la cutarea prin text.
De ce pledez att de mult pentru etichetele simple, compacte?
Practic, gndii-v c-ai construi un ablon, o expresie regulat penA
tru a cuta etichete ntr-un program L TEX. Nu este prea greu s
izolezi coninutul aat ntre acoladele comenzii \label{}. Este ns
mult mai simplu s lucrezi dup aceea cu el dac este un simplu
cuvnt.
TEXnicCenter dispune de o fereastr pentru vizualizarea structurii proiectului. De altfel, face acest lucru foarte bine, cu sau fr
etichete. Mediul integrat nu se bazeaz pe ele pentru a explora structura proiectului.
n TEXnicCenter, numai dac avem un proiect putem explora
structura documentului, indiferent de numrul de iere. Este un
alt argument n favoarea crerii unui proiect chiar i-n cazul unui
simplu articol.

88

20

25

30

35

A
2.1 L TEX

n cazul unei cri exist dou tipuri suplimentare de seciuni.


Le vom prezenta tot sub forma codului pentru meniuri Vim:
1
2

imenu ltx2.part \part{}<CR>\label{}<Up><Right>


imenu ltx2.chapter \section{}<CR>\label{}<Up><Right>

Pentru a nu primi mesaje de eroare, trebuie s modicai n antetul


ierului principal al proiectului tipul de document. Acesta trebuie
s e book.

O carte poate avea pri i capitole. Acesta este sensul acestor


tipuri de seciuni ale unui document.
Aici preferm s ne referim la toate aceste diviziuni ale unui document folosind un numr precedat de simbolul . Pentru a produce
acest semn este nevoie de o comand special: \textsection.

10

2.1.3.3

1
2
3
4
5
6
7
8

25

Ziua a treia

Atunci cnd lucrm cu un editor de birou executm o serie ntreag


de operaii uzuale de prelucrare a unui text. Acestor operaii propun
A
s le consacrai ziua a treia de nvare a L TEX.
Pentru nceput studiai cteva meniuri simple:

15

20

imenu
imenu
imenu
imenu
imenu
imenu
imenu
imenu

ltx3.emph \emph{}<Left>
ltx3.textit \textit{}<Left>
ltx3.underline \underline{}<Left>
ltx3.textbf \textbf{}<Left>
ltx3.texttt \texttt{}<Left>
ltx3.textsc \textsc{}<Left>
ltx3.textsf \textsf{}<Left>
ltx3.textsl \textsl{}<Left>

Prima dintre comenzile de mai sus este probabil cea mai imporA
tant. n ciuda aparenelor, L TEX face mult mai multe lucruri n
mod automat dect un procesor de cuvinte. Prima comand i spune
A
sistemului L TEX s evidenieze poriunea de text cuprins n acolaA
dele comenzii (argumentul comenzii), n funcie de context. L TEX
alege metoda potrivit, nu utilizatoarea. Este metoda recomandabil de evideniere a textului. n anumite puncte ale textului, alte
metode nu funcioneaz sau nu funcioneaz cum v ateptai.
Pentru a vedea cum funcioneaz comenzile de mai sus cel mai
potrivit este s dm un exemplu:

89

2. Tehnoredactarea computerizat
\emph{Eseul filosofic}\\
\textit{Eseul \emph{filosofic}}\\
\underline{Eseul \emph{filosofic}}\\
\textbf{Eseul \emph{filosofic}}\\
stilurile \texttt{Eseul \emph{filosofic}}\\
literelor \textsc{Eseul \emph{filosofic}}\\
\textsf{Eseul \emph{filosofic}}\\
\textsl{Eseul \emph{filosofic}}\\
\textrm{Eseul \emph{filosofic}}

Eseul losoc
Eseul losoc
Eseul losoc
Eseul losoc
Eseul filosofic
Eseul losoc
Eseul losoc
Eseul losoc
Eseul losoc

V ntrebai acum, de bun seam, ce rol au cele dou bare oblice


inverse. Ele i spun sistemului c trebuie s foreze trecerea pe alt
rnd.
Ce facem dac vrem, din contr, s evitm ruperea rndului.
Dac este vorba despre un spaiu alb, atunci punem n locul spaiului alb o tild, semnul .
Este momentul acum s artm i cum se obin semnele rezervate. La urma urmei, ele sunt semne uzuale pentru un editor de
birou. Dac studiai exemplul urmtor, vedei c nu sunt greu de
A
obinut nici n L TEX:
100$
100\${}\\
XYZ&co.
XYZ\&{}co.\\
semne \#{}\\
#
rezervate 100\%{}\\
100%
meniu_vim
meniu\_{}vim
Tehnica folosit este cea a transformrii simbolurilor rezervate n
A
nume de comenzi L TEX. Chiar dac argumentele acestor comenzi
rmn vide, are sens s pstrm acoladele. n acest fel comunicm
A
sistemului L TEX unde se termin numele comenzii.

10

15

Terminarea numelui unei comenzi poate indicat i printr-un


A
spaiu alb. Sursa programului L TEX devine ns mai lizibil prin
folosirea acoladelor.
n cele ce urmeaz vom vedea i o excepie de la regula transformrii semnelor rezervate n nume de comenzi.
{de aici
\{{}de aici\\
pn aici}
pn aici\}{}\\
Z
semne \^{}Z\\

rezervate \texttt{\~{}}\\
\label{}
(conti- \textbackslash{}label\{\}
nuare)
Bara oblic invers este obinut, n modul text, cu comanda
\textbackslash{}.

90

20

A
2.1 L TEX

10

15

A
L TEX este sensibil la diferena de stil ntre semnele folosite n modul matematic i-n modul orizontal, obinuit sau strict. Acest lucru
se vede din prezena unor comenzi specice textului. Unele le-am
menionat deja. Altele pot studiate n exemplele care urmeaz.
>
\textgreater{}\\
<
\textless{}\\

\textsection{}\\
semne

\textparagraph{}\\
speciale
c
\textcopyright{}
Pentru a uura comparaiile am inclus n cazul ghilimelelor i
versiunile scurte ca s zicem aa.38

\textquotedblleft{}\\

\\

\textquotedblright{}\\

\\
ghilimele

\textquoteleft{}\\

\\

\textquoteright{}\\

A X pe care s-ar putea


Mai exist i alte comenzi importante n L TE
s le folosim relativ frecvent:
...
\ldots{}\\
-\\

--\\

--Din exemplul de mai sus rezult implicit cum putem spune sistemului s nu rup punctele de suspensie. Ce facem ns n cazul
ortogramelor romneti? La trecerea de pe un rnd pe altul s-ar putea s ne ciocnim de ruperea ortogramei ntr-un punct nedorit. Felul
n care putem proceda ne este sugerat de exemplele urmtoare:
ntr-o ntr-o ntr-o ntr-o ntr-o
ntr-o parte ntr-o zi zi
ntr-o ntr-o
ntr-o
ntr-o

ntr-o ntr-o ntr-o ntr-o ntro ntr-o parte ntr-o zi zi ntr-o


ntr-o ntr-o ntr-o

ortograme

ntr-o ntr-o ntr-o ntr-o ntr-o


ntr-o parte ntr-o zi zi ntr-o
ntr-o ntr-o ntr-o
Exist o subtilitate n utilizarea \hbox{}. Coninutul cutiei este
n mod orizontal strict, dar comanda nu face trecerea la modul orintr-o ntr-o ntr-o ntr-o \hbox{ntr-o}
ntr-o parte ntr-o zi zi
\hbox{ntr-o} \hbox{ntr-o}
\hbox{ntr-o}
\hbox{ntr-o}

20

38
Atenie! Acestea sunt ghilimele standard n limba englez. Ghilimelele romneti trebuie construite, dup cum vom arta mai jos.

91

2. Tehnoredactarea computerizat
zontal obinuit n locul n care este plasat. Putem compara alte
dou exemple:
\hbox{ntr-o}
\hbox{ntr-o}
\hbox{ntr-o}

ntr-o
ntr-o
ntr-o

\mbox{ntr-o}
\mbox{ntr-o}
\mbox{ntr-o}

ntr-o ntr-o ntr-o

A
n manualul su[4], creatorul L TEX, Leslie Lamport, recomand
folosirea comenzii \mbox{} pentru evitarea ruperii textului.39

2.1.3.3.1 Blocurile Exist, dup cum am vzut, comenzi fr


acolade puse dup ele. Sunt comenzi care e nu au nevoie de nici
un material (argumentul lor este efectiv vid), e i iau singure materialul pe care-l prelucreaz.

10

O comand precum \today aeaz data curent. Putem s ne


dispensm de acoladele puse dup aceast comand.
A
Este oare posibil s folosim, n limbajul L TEX, acolade care nu
sunt precedate de bara oblic invers i numele comenzii? Rspunsul
A
este armativ. Acoladele separ un bloc din programul L TEX.

15

Care este rostul blocurilor? Ideea de baz este cea a localizrii


anumitor proprieti ale textului. Cea mai simpl ilustrare este legat de evidenierea unei poriuni de text. S examinm un exemplu
foarte simplu:
Eseullosoc
Eseul{\em filosofic}

20

Rolul acoladelor este s delimiteze o poriune de text. Imediat


dup prima acolad urmeaz o declaraie. Declaraia este de fapt
tot o comand. Ai putea pune chiar i acolade dup ea, dar cred c
aici acest stil de a scrie programul nu-i are rostul. Spaiul alb este
preferabil.

25

Declaraiile au efect numai n limitele unui bloc de program


A
L TEX.40
Este extrem de uor s construim un meniu Vim pentru a insera
blocuri i declaraii. Dm aici doar rndul de cod pentru evidenierea textului:
1

imenu ltx3.em {\em }<Left>


39

A se vedea chiar listele volante cu comenzi uzuale, pe care le gsim n carte.


Termenul declaraie este cel folosit chiar de Leslie Lamport. A se vedea
Lamport[4, p.27].
40

92

30

A
2.1 L TEX

A se observa poziia la care se ntoarce cursorul Vim. Rmne un


spaiu alb ntre declaraie i ce punem n blocul respectiv.
Ce am mai putea declara? Putem specica forma (stilul) tipurilor de litere.41 Dac facei exerciii cu exemplul care urmeaz, vei
descoperi lesne rostul urmtoarei serii de declaraii:

Eseul losoc
Eseul filosofic
Eseul losoc
Eseul losoc
declaraii
Eseul losoc
Eseul losoc
Eseul filosofic
Eseul losoc
Eseul losoc
Se observ c exist o coresponden ntre comenzile prin care se
d o anumit form literelor din text42 i declaraii.43

{\itshape Eseul filosofic}\\


{\scshape Eseul filosofic}\\
{\slshape Eseul filosofic}\\
{\upshape Eseul filosofic}\\
{\bfseries Eseul filosofic}\\
{\mdseries Eseul filosofic}\\
{\ttfamily Eseul filosofic}\\
{\sffamily Eseul filosofic}\\
{\rmfamily Eseul filosofic}

A
2.1.3.3.2 Revizia textului programelor L TEX Se-ntmpl
de multe ori s lucrez i s uit s subliniez o liter sau s scriu cursiv
un cuvnt. Cnd fac revizia textului descopr aceste probleme. Ce-i
de fcut? Mi-am construit meniurile care urmeaz tocmai pentru a
rezolva genul acesta de probleme.

10

1
2
3
4
5
6
7
8

15

20

imenu
imenu
imenu
imenu
imenu
imenu
imenu
imenu

ltx3.cuvantInAcolade {<Esc>ea}
ltx3.cuvantInComanda \{<Esc>ea}
ltx3.cuvantTextsc \textsc{<Esc>ea}
ltx3.cuvantTexttt \texttt{<Esc>ea}
ltx3.cuvantTextit \textit{<Esc>ea}
ltx3.cuvantSubliniat \underline{<Esc>ea}
ltx3.litSubliniata \underline{<Esc>la}
ltx3.litInAcolade {<Esc>la}

Felul n care funcioneaz meniurile este destul de evident. Trecei


Vim n modul insert. Punei cursorul n faa cuvntului sau a
literei. Dai comanda i asta este tot. Restul este doar exerciiu.
Comenzile de mai sus au ns un rol destul de limitat. S-ar putea
s am cu Vim divergene n privina ideii de cuvnt. S modic ceea
ce nelege Vim prin cuvnt? Uneori ar absurd s fac aa ceva.
Pentru mine, text.tex reprezint un singur cuvnt. Din pcate,
eu folosesc nelesul termenului respectiv. Vim se orienteaz dup
41

Acelai font poate normal sau cursiv, aldin i aa mai departe.


Vezi mai sus pagina 90, rndul 1.
43
Observaia aceasta am preluat-o de la Lamport[4, p.37].
42

93

2. Tehnoredactarea computerizat
punctul pus n numele ierului. N-am ns nici un interes s schimb
felul n care Vim nelege rolul punctului.
Toat lumea tie c editoarele de birou au o soluie simpl la
problema de mai sus: selectezi textul i apei pe un buton virtual;
poriunea selectat i schimb forma pe ecran. Nu este chiar aa de
greu s construim meniuri Vim care ne permit s lucrm cu poriuni
de text selectate.
1
2
3
4
5

menu
menu
menu
menu
menu

ltx3n.selInAcolade xi{<Esc>pa}
ltx3n.selInComanda xi\{<Esc>pa}
ltx3n.selTextsc xi\textsc{<Esc>pa}
ltx3n.selTexttt xi\texttt{<Esc>pa}
ltx3n.selTextit xi\textit{<Esc>pa}

Aceste meniuri trebuie studiate ceva mai atent dect cele de mai
sus. Ele nu sunt active n modul insert i este resc s e aa.
Atunci cnd selectai text, Vim i schimb modul. Cnd exersai,
acordai atenie i deosebirilor dintre efectul comenzilor n modul
(insert)select i modul vizual, precum i rolului punctului din
care ncepei selecia.
A
Cred c acum vestea proast i vestea bun n legtur cu L TEX
(i Vim!) au prins deja contur. Vestea proast este c-ar trebui s
dobndii un minimum de deprinderi de programatoare sau programator. Vestea bun este legat de exibilitatea sistemului i de
posibilitatea de a face (n principiu) orice cu textul tiprit.

Felul n care sunt percepute cele dou veti depinde n cea mai
mare parte de ct programare tii deja. Dac tii programare,
s-ar putea s i uimit sau uimit s vedei cte lucruri se pot face
fr structuri condiionale, funcii, obiecte i altele. Dac nu tii,
s-ar putea s nu apreciai corect ct de multe lucruri face sistemul
pentru dumneavoastr i ct de puin investii, de fapt, n raport
cu ceea ce primii.
2.1.3.4

10

15

20

25

Ziua a patra

Prin ce ai deosebi dintr-o privire un eseu academic (losoc sau nu)


de o lucrare de factur neacademic (un articol de ziar, de exemplu)? Notele de subsol, uneori foarte abundente, disting imediat
eseul academic de lucrrile neacademice.
notele de
Producerea impecabil de note de subsol este unul dintre atuurile
A X. Comanda prin care sunt realizate notele de subsol este foarte
subsol L TE
simpl. Iat codul pentru un meniu Vim n modul insert:

94

30

A
2.1 L TEX
1
2

10

15

20

imenu ltx4.Nota\ de\ subsol \footnote{}<Left>


imenu ltx4.Nota\ marginala \marginpar{}<Left>

Dup cum se vede din a doua linie de cod de mai sus, comanda
pentru nota care apare pe margine este asemntoare cu aceea pentru nota de subsol. Dac este vorba despre un document tiprit pe
A
ambele fee ale foii (o carte), atunci L TEX plaseaz automat nota
pe marginea exterioar. O subtilitate a notei marginale o reprezint
posibilitatea de a folosi dou valori pentru argumentul comenzii: una
pentru marginea din stnga, alta pentru cea din dreapta. Putei studia diferena plasnd comanda \marginpar[stnga]{dreapta} n
diverse puncte ale textului, n aa fel nct s-apar cnd pe pagini
pare, cnd pe pagini impare. Nu lsai una dintre paranteze fr
coninut; sistemul va interpreta paranteza goal ca pe o comand i
nu va aa nimic.
2.1.3.4.1 Acolo unde scriau tipograi nchipuii-v c suntei ntr-o tipograe veche. Btrnul meter tipograf culege textul
liter cu liter. Caut prin cutiile din faa sa litere i formeaz rnduri. La capt de rnd desparte-n silabe, dac este cazul, i trece pe
rndul urmtor. i tot aa pn termin un alineat i apoi ntreaga
pagin de carte. Apare ns o problem. Textul rndurilor nu se
termin exact n marginea din dreapta. Arat mai mult ca textul
dactilograat dect ca un text tiprit.
ntr-o alt form, problema aprea i-n cazul articolelor de ziar.
Articolului i se rezerva un anumit spaiu n pagina de ziar. Se ntmpla ns ca articolul s e un pic prea scurt i s nu umple bine
locul rezervat. Nu-i nimic, spuneau tipograi. Aici scriem noi!

25

30

35

Tipograi scriau, cu spaii albe. Se punea albitur. n zilele noastre un program de aezare n pagin a textului, cum este
A
L TEX,scrie i el precum vechii tipogra.
A
n mod normal, L TEX produce o aliniere a textului att la marginea din stnga, ct i la cea din dreapta. Uneori nu reuete s
ncadreze exact textul ntre margini sau n spaiul vertical alocat
i compilatorul se plnge de existena unor bad boxes. Acesta este
este cel de al treilea tip de mesaje pe care le primim de la compiA
lator. Putem primi mesaje cu privire la erori (de sintax L TEX),
avertismente (de exemplu, ni se atrage atenia c trebuie s recompilm sursa) sau aceste mesaje cu privire la textul care nu ncape
bine n cutii.
A
Dac are prea mult text pe un rnd, L TEX spune c a aprut
A
o overfull \hbox.. Dac are prea puin text pe un rnd, L TEX

95

2. Tehnoredactarea computerizat
spune c a aprut o underfull \hbox.. S studiem puin exemplul
care urmeaz.
magice
pentru
Cuvinte magice pentru ucenicii Cuvinte
ucenicii vrjitori cnd nu
vrjitori cnd
reuesc s compileze probad nu reuesc s compileze
gramul:ab:rasintaxadabra
box(es) programul:ab:rasintaxadabra
ab:racompiladabra
ab:racompiladabra
Iniial sistemul s-a plns c-au aprut cutii orizontale prea puin
umplute. El nu tie unde vreau s folosesc dou puncte pentru a
introduce o enumerare i unde cele dou puncte fac parte din expresia magic. Am pus un spaiu alb dup dou puncte, acolo unde
introduc enumerarea. Rezultatul nu a fost total reuit. Sistemul nu
tia cum s despart-n silabe cuvinte magice. Comanda \- i spune
unde poate separa silabele. Acum situaia s-ar ndrepta automat
dac sistemul ar ti c textul este n romn. n prima sptmn,
este mai bine s lsai sistemul setat doar pentru limba englez.
Dac facei exerciii cu un exemplu similar, forai despririle n
silabe dup regulile limbii romne. Avei mai jos exemplul cuvntului uceni\-cii.
Cuvinte magice pentru
uceni\-cii
vrjitori cnd
nu reuesc s compileze
programul: ab:rasin\-taxadabra
ab:racompiladabra

10

15

Cuvinte magice pentru ucenicii vrjitori cnd nu reuesc s


compileze programul: ab:rasintaxadabra ab:racompiladabra

Cele dou casete arat total diferit. Prima este dezastruoas.


Cuvintele sunt dispuse cu vdit stngcie. A doua este mult mai
echilibrat.
Putem scrie, precum tipograi, cu spaii albe pe orizontal sau pe
A
vertical? Desigur c da. La urma urmei, n L TEX, putem programa
orice aciune pe care ar executa-o un tipograf de mod veche.
Comenzile folosite sunt \hspace{} i \vspace{}. ntre acolade
trebuie indicat o valoare numeric, e n uniti de msur uzuale,
e n uniti de msur tipograce.
Dac studiai puin vizualizatorul Yap al mediului integrat, vedei c este capabil s aeze att date cu privire la surs, ct i
cu privire la paginile pregtite pentru tipar. Micai cursorul i, de
asemenea, schimbai pagina la care v aai pentru a sesiza felul n
care se schimb aceste date. Poziia cursorului pe pagin este indicat pe coordonatele carteziene. Unitile de msur folosite sunt
numite puncte. Yap folosete prescurtarea pt.
Acum putem ilustra pe un exemplu introducerea de spaiu alb

96

20

25

30

A
2.1 L TEX

pe orizontal sau pe vertical. Practic, scriu un text, compilez, vizualizez, msor cu ajutorul Yap i introduc comenzile pentru a scrie
precum tipograi.
Eseul filosofic Eseul filosofic\\
Eseul\hspace{68pt} filosofic\par
\vspace{10pt}
Eseul filosofic
5

10

15

20

Eseul losoc Eseul losoc


Eseul
losoc

spaii albe

Eseul losoc
Modul de lucru descris mai sus NU este ns recomandabil. El
folosete partea cea mai discutabil din wysiwyg: ideea de a ne
plimba cu cursorul pe ecran i de a aprecia din ochi poziia n care
plasm textul.
A
L TEX ofer posibilitatea unor calcule precise. Ar trebui s ne facem un proiect de aranjare n pagin. S-ar putea ns ca ziua a patra
s aib o valoare simbolic: suntem nc ntre lucrul aproximativ (i
A
comod) i acribia L TEX.

A
2.1.3.4.2 Mediile L TEX Ce facem ns dac vrem ca textul s
e aliniat doar la marginea din stnga? Sau dac dorim s-l aliniem
doar la dreapta? Sau s-l centrm. Trebuie s-i spunem tipografului
cum s aranjeze textul.

Pentru a rezolva problema de mai sus putem folosi mediile


A
L TEX. Mediile nu sunt altceva dect o pereche de comenzi \begin{}
\end{}. Perechea aceasta de comenzi se comport exact ca o pereche
de paranteze. Numele mediului este trecut ntre acolade i trebuie
s e acelai dup begin i dup end.
La ce slujete un mediu? S zicem c vrem s avem un alineat
sau mai multe cu text centrat. Atunci mparantezm textul pe care
vrem s-l centrm ntre comenzile unui mediu.

25

Primul exemplu de medii va cel pentru centrarea textului, respectiv alinierea la stnga sau la dreapta.
\begin{center}Eseul\end{center}
\begin{flushleft}
filosofic
\end{flushleft}
losoc
\begin{flushright}
filosofic
\end{flushright}

30

Eseul

losoc

Dac studiai atent exemplele de mai sus, vedei c toate cele trei
medii, cnd se ncheie efectul lor, fac trecerea la modul vertical. Nu
trebuie ns s tragei de aici concluzia c orice mediu face trecerea
la un nou alineat atunci cnd se termin.

97

2. Tehnoredactarea computerizat
Cum am putea construi meniuri Vim pentru a scrie mai uor
comenzile pentru medii? Mai jos sunt oferite dou genuri de soluii.

1
2
3
4
5
6

imenu ltx4.mediuOriz \begin{}\end{}<Esc>3ba


imenu ltx4.mediuVer \begin{}<CR><CR>\end{}<Esc>2<Up><Right>a
imenu ltx4.mediu <Esc>:let nume=inputdialog("Mediul?\n itemize
\n enumerate\n description\n flushleft\n center\n quote
\n quotation\n verse\n verbatim ")<CR>:let mediu="\\begin{".nume."}
\n\n\\end{".nume."}"<CR>:put=mediu<CR><Down><Home>i

Prima soluie are dou versiuni. Mai nti este creat un meniu care
ne ajut s inserm un mediu ntr-o linie de program. A doua versiune a primului gen de meniu ne permite s scriem ns ntr-un
mod mult mai lizibil codul aferent unui mediu.
Problema primului gen de meniuri este aceea c trebuie s scriem
de dou ori numele mediului. Aceasta este adesea o surs de erori.
Uneori uii s scrii numele mediului n acoladele lui end. Alteori
greeti ceva ntr-una dintre instanele numelui.
Al doilea gen de meniuri ncearc s rezolve problema de mai
sus. Preul pltit este un cod Vim ceva mai complicat. Am redat
meniuri doar varianta de scriere pe vertical a mediului n a doua versiune.
cu caset Acest meniu face s apar o caset de dialog. Exist chiar i o list
de dialog cu nume de medii. Ea are doar un caracter orientativ. Putei s
scriei ce nume vrei n caseta de dialog. Trebuie dat apoi un clic
pe butonul ok al casetei i mediul va aprea n ier. Nu rmne
dect s punei ceva ntre nceputul i sfritul mediului.
Nu uitai c rndurile 3-6 reprezint un singur rnd logic Vim.
Mrimea paginii de hrtie, ca i ecranul, ne oblig s fragmentm
acest rnd n mai mute rnduri vizuale.44
Cu ajutorul mediilor pot create diverse tipuri de liste. Sintaxa
comenzilor este lesne de-neles dac studiai exemplul care urmeaz.

44
Cred c este mai comod s folosii situl crii, de unde putei prelua codul
ca atare, fr s i nevoite sau nevoii s retastai totul.

98

10

15

20

A
2.1 L TEX

\begin{itemize}
\item Primul pe list
\item Al doilea pe list
\item Al treilea pe list
\end{itemize}
\begin{enumerate}
\item Primul pe list
\item Al doilea pe list
\item Al treilea pe list
\end{enumerate}
\begin{description}
\item [Primul] pe list
\item [Al doilea] pe list
\item [Al treilea] pe list
\end{description}

Primul pe list
Al doilea pe list
Al treilea pe list
1. Primul pe list
2. Al doilea pe list
3. Al treilea pe list
Primul pe list
Al doilea pe list
Al treilea pe list

10

15

20

Alte medii ne permit introducerea de citate n text sau a versurilor. Pentru citate scurte este potrivit mediul quote. Pentru citatele
mai lungi mediul quotation este mai adecvat; el formateaz citatul
ca pe un text de sine stttor.
A
L TEX, care este standardul de facto cnd este vorba despre tiprirea de cri de informatic, are desigur i posibiliti de reproducere a progamelor sau fragmentelor de program. Liniile de program
pe care le vedei n aceast carte sunt realizate cu mediul verbatim.
Mediul acesta poate folosit ns ori de cte ori vrem s dm unei
poriuni de text aerul de pagin dactilograat.

A
2.1.3.4.3 Modul matematic L TEX este vestit mai ales pentru capacitile sale de a produce formule matematice. Orict de
A
repede am trece n revist sintaxa limbajului L TEX,nu se poate s
nu spunem cteva cuvinte despre modul matematic.

Chiar i-n texte care nu sunt de factur matematic, vrem adesea


A
s folosim indici. Pentru a face acest lucru n L TEX trebuie s trecem sistemul n modul matematic. Dac folosim mediul math putem
insera fragmentul de text matematic ntr-un alineat uzual. Mediul
math face mai nti trecerea de la modul vertical sau orizontal la
modul matematic i, la ieire, revine n modul orizontal.
S vedem practic cum putem scrie indici:
Indice suprascris
\begin{math}x^i\end{math}\\
Indice subscris
\begin{math}x_j\end{math}\\
Doi indici

Indice suprascris xi
Indice subscris xj
Doi indici xij

99

2. Tehnoredactarea computerizat
Arsenalul de simboluri care pot folosite n modul matematic
este impresionant. Sgeile, de pild, la care am recurs i noi pe
parcurs sunt inserate cu ajutorul modului matematic.
A\rightarrow{}B\hspace{50pt}
A\Rightarrow{}B\\
B\leftarrow{}A\hspace{50pt}
B\Leftarrow{}A

AB
BA

AB
BA

Exist i un mod prescurtat de a nota modul matematic care


servete la inserarea de formule n rndurile obinuite de text. Este
important s menionm aceast notaie prescurtat pentru c ea
dezleag misterul nc unuia dintre cele zece simboluri speciale din
A
L TEX. n loc de \begin{math}\end{math} putem scrie doar $$.
Modul matematic ne va dezvlui secretele nc unuia dintre semnele rezervate. Semnul & servete la realizarea de tabele. Iar fr
tabele nu putem, de fapt, scrie un text matematic ceva mai complicat. O matrice, de exemplu, trebuie construit ca un tabel. Exemplul
unei matrici foarte simple ncheie, de altfel, incursiunea aceasta n
zona scrierii matematice.
\begin{displaymath}
\begin{array}{ccc}
1 & 0 & 1 \\
matrice 0 & 1 & 0 \\
1 & 0 & 1
\end{array}
\end{displaymath}

10

15

1 0 1
0 1 0
1 0 1

Exemplul necesit cteva comentarii. N-am primi de la compilator un mesaj de eroare dac-am folosi mediul math. Pentru aarea
de sine stttoare a unei formule trebuie s folosim ns mediul
displaymath. Textul matematic nu mai este ncastrat n alineat,
lucru care nu prea ar avea, de altfel, sens n cazul matricii.

20

Mediul array nu poate invocat dect n modul matematic. Cele


sau cei care au nvat limbajul Pascal la informatic tiu desigur
c array are sensul tehnic de tabel.
n cazul mediului array trebuie s indicm nu doar numele mediului, ci i formatarea coloanelor. De aici prezena imediat atunci
cnd ncepe mediul a unei perechi de acolade. Litera c indic faptul
c textul de pe coloan trebuie centrat. Sunt trei litere pentru c
sunt trei coloane.
Separatorul coloanelor este semnul &. Folosirea celor dou bare
oblice inverse este aidoma celei din modul text. Ele comand trecerea la un nou rnd.

100

25

30

A
2.1 L TEX

2.1.3.5

Ziua a cincea

Ziua anterioar a fost ncrcat, aa c-am rezervat pentru astzi


elementul care ncoroneaz posibilitatea de a scrie eseuri n stil academic: sistemul trimiterilor. Trimiterile fac posibil lectura neliniar
a eseurilor mai ample.

A
2.1.3.5.1 Trimiterile n limbajul L TEX Comanda \label{}
am amintit-o deja, n contextul discuiei despre comenzile de secionare. Rolul ei nu a fost ns discutat.

10

15

20

25

30

35

n limba englez, label nseamn etichet. Comanda \label{}


nu este singurul mod de a construi etichete n lumea mai larg a
A
sistemului L TEX. V vei ntlni cu etichete i atunci cnd folosii
baze de date de tip BibTEX. Rolul unei etichete este de a marca un
loc n text. Locul respectiv se a ntr-o anumit seciune a textului,
pe o anumit pagin sau pe un anumit rnd. Ne putem folosi de el
pentru a trimite la seciunea, la pagina sau la rndul respectiv.
De ce nu folosim numrul seciunii? Motivul este foarte simplu.
Numrul seciunii se poate schimba, dac modicm structura textului. Folosim etichete unice. Chiar dac locul lor n text se schimb,
sistemul poate stabili unde se a n momentul compilrii. Atenie
doar la faptul c, n cazul etichetelor, este nevoie de cel puin dou
compilri. La o prim compilare sistemul stabilete locul etichetelor
n text. La a doua compilare sistemul face legturile ntre trimiteri
i locul ctre care se face trimiterea.
Care sunt comenzile pentru trimiteri? Pentru a trimite la o seciune din text se folosete comanda \ref{}. Argumentul comenzii
este o etichet. Comanda returneaz numrul seciunii (unde este
plasat eticheta). n faa numrului trebuie s punei expresia dorit. Putei folosi, de pild, pe \textsection{}, care va produce
simbolul .

\ref{}

Pentru a ne referi la o pagin trebuie s folosim o alt comand,


\pageref{}. Argumentul comenzii este tot o etichet. Spre deose- \pageref{}
bire de \ref{}, rezultatul lui \pageref{} este un numr de pagin.
Sistemul descris mai sus are un caracter general. Pe msur ce
nvai mai multe despre bibliograe, guri, tabele, vei vedea c
acelai mecanism este folosit pentru a ne referi la intrri din bibliograe, guri sau tabele.
Cu tot zgomotul n jurul hipertextului i a paginilor de web,
acestea nu fac dect s exploateze pe larg ideea trimiterilor. Ceea
ce era folosit doar n lucrrile academice a ajuns s e utilizat de

101

2. Tehnoredactarea computerizat
ctre toat lumea. Senzaia produs de aceste trimiteri pe Internet
este una mai ciudat, pentru c, n vreme ce o trimitere de factur
tradiional la un text presupunea eforturi de deplasare i cutare
prin biblioteci, acum textul la care se face trimitere sau imaginea
apar cu mare repeziciune pe ecran.
2.1.3.5.1.1 Vim i navigarea prin intermediul tag-urilor
Dac-ai lucrat cu Vim sau cu alte editoare pentru programare ai
observat n meniuri sau la explicaiile pictogramelor c exist posibilitatea de a construi tag-uri. Pe bara cu instrumente din Vim
vedei o pictogram cu un ciocan pus peste o etichet de forma celor care se leag de valize la aeroporturi. Le voi zice tag-uri, pentru
a nu le confunda cu etichetele (labels).
Vim n-are inclus n kit-ul de instalare programul ctags care creeaz tag-uri. Acest program trebuie descrcat separat de la adresa
de Internet <http://ctags.sourceforge.net>. Programul ctags
este scris de ctre Darren Hiebert. Acest program poate crea tag-uri
pentru o sumedenie de limbaje de programare. Versiunea lui Hiebert
A
nu include ns i L TEX.
Programul lui Hiebert poate extins pentru a include i tagA
tag -uri uri pentru L TEX. Mergei la adresa <http://www.unb.ca/chem/
pentru ajit/vim.htm> i vei gsi o versiune pentru Windows a ctags
A
A
L TEX care produce i tag-uri pentru L TEX. Sursele suplimentare necesare
A
pentru a recompila programul lui Hiebert cu sprijin pentru L TEX
sunt scrise de ctre Ajit J. Thakkar.
Ce facei cu ctags? l punei ntr-un dosar aat pe un path, o
cale pe care caut sistemul Windows. Asta este tot. Vim are deja
pregtite comenzile pentru crearea de tag-uri.
Dup ce ai creat tag-urile putei s examinai ierul tags, aat
n dosarul proiectului dumneavoastr. n proiectul crii de fa
ierul respectiv are, de pild, urmtorul rnd:
1

ComenzileNoi anexe05tex.tex /^\\label{ComenzileNoi}$/;"

10

15

20

25

30

Pe acest rnd putem deslui mai nti numele unei etichete, apoi
cel al unui ier i o expresie regulat. Litera l din nalul rndului
ne spune c este vorba despre o etichet (label). Expresia regulat
permite Vim s caute eticheta cu numele respectiv.
Acum putem explica raiunea pentru care am recomandat ca
numele etichetelor s nu conin dou puncte. Dac le conine, comanda de cutare generat de ctags nu va funciona n Vim.45
45

102

Atenie, de asemenea, la respectarea diferenei dintre majuscule i minus-

35

A
2.1 L TEX

Dac dai, n Vim, un clic pe pictograma cu tag-ul galben, atunci


cnd cursorul Vim este plasat pe numele unui tag, cursorul se va
deplasa la rndul unde este declarat eticheta respectiv sau alt
element cruia ctags i-a ataat un tag. n meniul Tools din Vim
gsii comanda necesar pentru a reveni la punctul de plecare.

Tag-urile sunt att de utile nct am considerat necesar s modic


bara de instrumente Vim n aa fel nct (n locul pictogramei pentru
compilarea de surse) am pus o pictogram pe care dac dau un clic
cursorul revine la punctul de plecare. Micrile acestea sunt extrem
de utile pentru a verica dac argumentul unei comenzi gen \ref{}
este corect ales. Dac greesc numele etichetei, compilatorul emite
un mesaj de eroare. Reparaiile n faza compilrii sunt ns mult
mai complicate.

10

A
Cu ajutorul tag-urilor putei i naviga prin sursele L TEX. Putei
pune trimiteri i-n textul invizibil (la compilare) al sursei. De pild,
dac punei numele unei etichete ntr-un comentariu, putei naviga
de la acel punct la locul unde este declarat eticheta. Punei doar
numele, nu redeclarai eticheta. Putei pune numele etichetei i imediat dup comanda % prin care sunt introduse n surs comentariile.

15

Programul ctags este foarte util i s-ar putea s vrei s-l extindei. Eu, de exemplu, am adugat n ierul latex.c scris de Ajit
J. Thakkar urmtoarele rnduri de cod:

20

1
2
3

25

30

35

vericarea
argumentelor
comenzii
\ref{}

addTagRegex (language,
"\\linelabel\{[ \t]*([^} \t]+)[ \t]*\}",
"\\1", "l,linelabel",
NULL);

Modicarea sursei programului este banal, dar folositoare. Doream


s pot gsi i etichetele care sunt puse pentru a aa numrul rnA
dului de pe pagina generat de ctre L TEX.
Compilarea sub Windows s-a dovedit a ns mai dicil dect
credeam. Nu tiu exact cum au reuit Darren Hiebert i Anjit J.
Thakkar s compileze sursele i s obin un program dos. Cert
este c eu n-am reuit dect compilarea sub Cygwin. Dac avei
emulatorul de Unix instalat, dai obinuitele comenzi ./configure
i, apoi, make. Partea delicat este c executabilul ctags compilat
sub Cygwin depinde tot timpul de ierul cygwin1.dll.
Versiunea ctags compilat cu cygwin apeleaz programul sort ctags i
de tip Unix! Trebuie s tergei cu totul programul sort.exe din sort
\Windows\command sau s modicai cile pe care caut Windows
A
cule. L TEX i Vim i au rdcinile n lumea Unix, iar Unix nu-i ca Windows.
Unix este sensibil la diferena dintre eseu i Eseu.

103

2. Tehnoredactarea computerizat
n aa fel nct s gseasc mai nti pe sort.exe de tip Unix. Programul Unix which v poate spune pe ce cale se a un executabil
i, implicit, ce executabil va apelat cu prioritate.46
Versiunea compilat cu Cygwin apeleaz i programul de tip
Unix sh.exe. Eu folosesc versiunea instalat de Msys pentru sh.exe
i pe cea din GnuWin32 pentru sort.exe47 .

sh.exe

Pentru nceput versiunea programului ctags creat de ctre Anjit J. Thakkar este absolut recomandabil. Explicaiile de mai sus
au fost doar pentru ucenicii vrjitori.48 Experiena descris arat,
de altfel, limitele lucrului cu unelte Unix sub Windows. Dac vrei
s compilai programe C/C++ cu surs deschis, se pare c Linux
este incomparabil mai bun. Atta vreme ct n-avei aceste interese
de ucenic vrjitor experimentat, Windows cred c rmne o alegere
mult mai rezonabil.
2.1.3.5.2 Comenzile noi Ca la orice limbaj de programare, seA
cretul producerii la nesfrit de noi expresii rezid i-n L TEX n posibilitatea de a combina elementele deja introduse pentru a realiza
noi construcii.
A
Ai remarcat desigur faptul c unele comenzi L TEX au nume
foarte lungi. Se spune, de exemplu, \textbackslash{}. Numele
acesta lung nu este fr sens. El ne ofer deja o explicaie a rostului comenzii; ne atrage, de asemenea, atenia asupra faptului c
este o comand pentru modul text. Dezavantajul este c e dicil de
tastat. Nu este greu s denim o nou comand, cu un nume mai
scurt.

Unii folosesc comenzile noi pentru a abrevia denumiri de organizaii sau orice fragment de text ceva mai lung i a economisi timp
la tastare. Comenzile noi se introduc dup modelul urmtor:
1
2

\newcommand{\bs}{\textbackslash}
\newcommand{\ub}{Universitatea din Bucureti}

Comanda pentru construirea unei comenzi noi are dou argumente:


46

Ordinea n care sunt listate cile n comanda path conteaz!


Programele GnuWin32 au prioritate n path fa de cele Msys, iar Cygwin
este instalat autonom, fr posibilitatea de apelare din linia de comand msdos. Doar ierul cygwin1.dll este evident pus pe o cale unde poate gsit de
ctre Windows.
48
S-ar putea ca unul dintre ucenici s descopere lesne cum se compileaz sursele ctags fr Cygwin. Eu am ncercat cu Mingw i cu compilatorul C/C++
oferit gratuit, pe Internet, de ctre rma Borland, dar n-am reuit. Fr discuie, nu se pune problema ca ucenicii s pirateze unul dintre compilatoarele
comerciale. Acest lucru ar trebui exclus din principiu.
47

104

10

15

20

25

A
2.1 L TEX
A
unul pentru numele noii comenzi; altul pentru descrierea, n L TEX,
a aciunii care este ntreprins de ctre sistem n momentul n care
este dat comanda respectiv. Efectul comenzilor noi de mai sus
este lesne de ilustrat:
\NumeleComenzii
\bs{}NumeleComenzii\\
\ub
Universitatea din Bucureti

A
Comenzile noi (cel puin pentru versiunea limbajului L TEX inclus n distribuia MikTEX 2.4) pot denite oriunde n document.
Recomandarea noastr ar s nu le plasai dect n antetul documentului principal sau ntr-un ier special49 .

O alt recomandare ar aceea de a nu abuza de prescurtri gen


bs sau ub. Ele scad gradul de lizibilitate al sursei. Putem foarte
lesne folosi meniuri Vim pentru a insera n text cu un singur clic
texte lungi care se repet frecvent.

10

2.1.3.5.2.1 Comenzi noi cu argumente Cum procedm


ns atunci cnd vrem ca noua comand s aib i ea o parte sau
mai multe pri variabile, unul sau mai multe argumente? S ziA
cem c vrem o comand pentru a tipri comenzile L TEX sub forma
unui text. n orice caz ne trebuie o parte variabil pentru numele
comenzii.

15

S-ar putea ca mult lume s tie din logic ideea de a compara


A
o variabi cu o lacun ntr-un text. n L TEX asemenea lacune sunt
notate cu simbolul #. n mod obligatoriu acest simbol trebuie s e
urmat de un numr. Aici numrul este ca i un nume pentru lacuna
respectiv.

20

Acum s-a dezlegat i misterul ultimului simbol rezervat. Simbolul


# servete deci la marcarea, n deniia unei noi comenzi, a locului
argumentelor.

25

S vedem cum ar arta practic comanda noastr pentru transA


formarea comenzilor L TEX n text:

30

\newcommand{\cmd}[1]{\texttt{\bs{#1}\{\}}}

Se observ c, dup numele comenzii noi, urmeaz o parantez


dreapt n care este specicat numrul de argumente. Noi avem
nevoie de un singur argument, pentru numele comenzii. Exemplul
care urmeaz ilustreaz folosirea noii comenzi.

105

2. Tehnoredactarea computerizat
\cmd{section}\\
\cmd{label}\\
\cmd{ref}

\section{}
\label{}
\ref{}

2.1.3.5.3 Mediile noi Putem extinde nu numai mulimea coA


A
menzilor L TEX, ci i pe aceea a mediilor L TEX. Exemplul nostru
este, din nou, foarte simplu. El ilustreaz ns principiul general
folosit pentru a construi medii noi.
n unele cri exist pasaje scrise cu litere mai mici. Aceste pasaje discut uneori detalii ale unei probleme. Alteori sunt aprofundate aspecte mai dicile ale chestiunii discutate. Pentru a realiza
un mediu n care scriem asemenea pasaje putem folosi urmtoarea
deniie:

10

\newenvironment{caNotaDeSubsol}{\footnotesize }{\normalsize}

Comanda prin care denim un mediu nou are trei argumente: numele mediului, o specicare a ceea ce se ntmpl cnd ncepe mediul
i o specicare a ceea ce se petrece cnd mediul se ncheie.50
S folosim acum mediul nostru:
Text normal.\\
\begin{caNotaDeSubsol}
Text care poate fi omis
la o prim lectur.
\end{caNotaDeSubsol}\\
Din nou text normal.

Text normal.
Text care poate omis la o prim lectur.

Din nou text normal.

15

Se observ c mediul face exact ce i-am spus s fac. De pild, la


ieire, nu rupe rndul, nu creeaz nici aliniat; doar trece la o liter
cu corpul normal n textul respectiv.
Ca i comenzile, mediile pot denite n orice punct al textului.
Lucrul acesta poate s aib sens n cazul exemplului de mai sus,
pentru c nu folosesc acest mediu dect n aceast seciune. Nu
sens s procedm aa cnd vrem s folosim sistematic un mediu.51
49

Pentru ierul special, care are extensia sty a se vedea 2.1.3.6.2


Termenii begin i end indic tocmai ceea ce arat i sensul lor n englez:
un nceput i un sfrit.
51
Programul ctags (vezi aici 2.1.3.5.1.1) este de mare ajutor n reperarea
deniiilor comenzilor i mediilor. Cu tot sprijinul pe care l-am primi din partea
tag-urilor n regsirea deniiilor, cred c este absolut recomandabil s construim
A
n mod disciplinat sursa L TEX.
50

106

20

A
2.1 L TEX

2.1.3.6

Ziua a asea

A
L TEX ne ofer toate avantajele unui limbaj de programare. Desigur,
el este prea specializat pe tiprirea de texte pentru a-l folosi comod
n alte scopuri.52 Cnd este vorba despre tiprirea de texte avantajul
A
TEX i L TEX este acela de a ne permite s punem textul n pagin
aa cum dorim.

A
2.1.3.6.1 Pachetele L TEX S-ar putea ca multe dintre problemele care ne frmnt pe noi s fost rezolvate de mult vreme de
A
ctre alii. Comunitatea persoanelor care folosesc L TEX este puternic i aproape sigur vei gsi pe cineva care a dat deja o soluie.

10

Putem desigur mbunti rezolvrile date de ctre alii. Le putem mula dup dorinele noastre. n-are ns rost s reinventm
roata.
Rezultatele obinute deja sunt mpachetate i doar trebuie inA
stalate, integrate n sistemul L TEX pe care-l folosii. MikTEX instaleaz o mulime de astfel de pachete.

15

Sistemul trebuie anunat cnd vrei s folosii un anumit pachet. Persoanele care tiu un limbaj de programare gen Pascal sau
C/C++ sunt probabil intrigate de faptul c-am tot insistat asupra
A
calitilor ce limbaj de programare ale TEX/L TEX. Unde sunt struc53 comanda urmtoare:
turile condiionale? Punei n antet

20

\usepackage{ifthen}

Comanda cere sistemului s utilizeze pachetul ifthen.

25

Sistemul are o serie de contoare n care ine date importante contoare


pentru aezarea n pagin. Aa este, de pild, contorul page, unde
este inut numrul paginii curente.
52
A
Leslie Lamport vorbete tot timpul despre L TEX ca despre un sistem de
macro-uri TEX. Este o doz de modestie exagerat n acest fel de a vorbi. Pe
de alt parte, dac inem cont c macro-urile ne permit denirea altor macrouri, vedem c este vorba de un limbaj. n sens strict, un macro este o serie de
instruciuni care pot apelate apsnd o tast sau folosind un cuvnt-cheie.
Procesoare de cuvinte din complexele de programe pentru birou dau posibilitatea utilizatorilor de a crea macro-uri. Termenul macro sugereaz ideea c ne
am la un nivel superior celui micro, unde opereaz limbajul de programare
A
propriu-zis. Dac tratm L TEX n acelai fel, atunci limbajul propriu-zis este
A
TEX. Noi preferm s tratm L TEX ca pe un limbaj de nivel nalt i TEX ca
limbajul procesorului de texte.
53
Dac punei aceast comand n corpul documentului, vei primi un mesaj
de eroare de la compilator.

107

2. Tehnoredactarea computerizat
Putem chiar aa numrul paginii scriind \thepage{} n text.
Prexul the se pune n faa oricrui contor, atunci cnd vrem s-i
am valoarea. Putem aa valoarea din contor cu ajutorului lui
\value{page}, dar aceast comand o putem folosi doar n argumentul unei alte comenzi, cum ar \isodd{}, care ne spune dac
un numr este impar sau nu.

Acum putei scrie o comand al crei rezultat ne va spune dac


suntem pe o pagin par sau pe una impar:
\ifthenelse{\isodd{\thepage}}
{Pagina este impar!}
{Pagina este par!}

Pagina este par!

Comanda aceasta, cu unele mbuntiri,54 v poate de real


folos dac vrei ca aspectul unei pagini pare s difere de cel al unei
pagini impare. De exemplu, s-ar putea s vrem s plasm diferit o
imagine. Nu trebuie s-mi fac griji dac modic documentul. Structura condiional va asigura modicarea aspectului paginii.
Comanda \ifthenelse{}{}{} are trei argumente: o condiie, un
argument care este executat atunci cnd condiia este adevrat i
unul care este executat cnd ea este fals.
Unde se a, de fapt, ifthen? Cum l-am putea gsi? Cutai
n dosarul unde este instalat distribuia MikTEX un ier denumit
ifthen.sty. l gsii pe o cale tex\latex\base. Face parte din
A
nucleul sistemului L TEX. Acest nucleu, n ntregimea sa, este tratat,
la instalare, ca un pachet unic, denumit ltxbase. Nu putei ns
apela direct acest pachet. Trebuie s apelai componentele sale.
Cum putem aa ce pachete suplimentare a instalat sau poate
instala MikTEX? n versiunile 2.3 i 2.4 folosii MikTEX Package
Manager. Cu ajutorul acestui program putei gsi informaii despre
pachete.
Trebuie s treac ns ceva timp pn putei folosi pachete ceva
mai complicate. n orice caz trebuie citit documentaia aferent
i testat totul pe iere destinate exerciiilor, nainte de a trece la
utilizarea propriu-zis.
Nu modicai n nici un caz ierul ifthen. Dac simii nevoia

54

Rezultatul comenzii \thepage depinde de generarea numrului paginii; n


partea de sus a paginii vei gsi n page nc numrul paginii anterioare (a
se vedea explicaia n Lamport[4, p.135]). Soluia sugerat de ctre Lamport[4,
p.196] este s declarm o etichet de genul aceastaPagina i apoi s dm condiiei forma \isodd{\pageref{aceastaPagina}}. Atenie i la necesitatea de a da
mai multe compilri pentru a obine rezultatul dorit. Citii atent avertismentele
din mesajele compilatorului!

108

10

15

20

25

30

A
2.1 L TEX

s experimentai, facei o copie a ierului, redenumii-o i punei-o


n dosarul localtexmf55 .
Nu a sftui totui pe nimeni s experimenteze cu ifthen. Un
exemplu mai practic este dat n seciunea care urmeaz.
2.1.3.6.1.1 Letrinele Unora le place s nceap seciunile
mai importante, cum ar capitolele unei cri, cu o liter supradimensionat, care are nlimea a dou-trei rnduri. Aceast liter
se numete letrin.

Am putea meteri, urmnd indicaiile din literatur,56 o comand


pentru letrine:

10

1
2
3

\newcommand{\letrina}[3]{\noindent\hangindent=#1
\hangafter=-#2\hskip-#1\smash{\hbox to #1
{#3\hfill}}\ignorespaces}

\letrina{15pt}{2}
{\Huge E}seul filosofic

Eseul losoc

Exemplul acesta este dat special pentru a arta ce util ar un


pachet special dedicat rezolvrii problemei cu care ne confruntm.
Pentru exerciiul real ncrcai pachetul lettrine.
15

20

25

\lettrine[lines=1]{E}seul
filosofic

seul losoc
Soluia lui Daniel Flipo, autorul pachetului lettrine, este evident mai uor de folosit. Dac studiai documentaia aferent pachetului, vei descoperi o mulime de posibiliti de a crea letrine.
2.1.3.6.2 Fiierul de tip sty Comenzile de utilizare a pachetelor, deniiile de noi comenzi i de noi medii sunt reutilizabile.
Dac le-am pune ntr-un ier, am putea muta lesne ierul respectiv dintr-un proiect ntr-altul. n plus, ierul respectiv ar face ca
antetul documentului principal s e mult mai concis.
Extensia ierului n care punem pachetele pe care le utilizm i
deniiile comenzilor i mediilor este sty.
Sintaxa ierelor de tip sty difer de cea a din ierele de tip
tex. Diferenele fa de ceea ce am vzut pn acum sunt uor de
sesizat, dac cercetai cu atenie exemplul de mai jos. Am extras
chiar o parte din ierul sty folosit pentru aceast carte.
55
Acesta este, de regul, numele dosarului unde stau ierele create local sau
pachetele instalate suplimentar de ctre dumneavoastr. Nu uitai s folosii
programul MikTEX Options pentru a remprospta baza de date a sistemului
TEX.
56
Aici folosim ideile lui Seroul[11, p.83]

109

2. Tehnoredactarea computerizat
1
2
3
4
5
6
7
8

\ProvidesPackage{eseu}
\RequirePackage{ifthen}
\RequirePackage{lettrine}
\RequirePackage{url}
%==========================
\setcounter{secnumdepth}{5}
%==========================
\newcommand{\bs}{\textbackslash}

A
Pe primul rnd se arat modul n care se comunic L TEX care este
pachetul furnizat. Apoi se vede cum, n loc de \usepackage{} trebuie folosit comanda \RequirePackage{}

n ierul sty putem deni comenzi sau medii noi. Putem, de


asemenea, modica elemente ale sistemului: valori ale unor variabile,
deniii ale unor comenzi i medii. Pe rndul 6 din exemplul de
A
mai sus este modicat valoarea pn la care L TEX d numere
seciunilor unei cri.
Dac redenii o comand trebuie s facei acest lucru n mod
explicit: folosii \renewcommand{}. Dac redenii un mediu, folosii
\renewenvironment{}.
Utilizarea ierului sty creat este foarte simpl. n cazul ierului
eseu.sty, n ierul principal al proiectului introducem o comand
\usepackage{eseu}. Acest mod de a proceda este foarte logic; la
urma urmei, ierul sty creat constituie pachetul cu soluiile specice proiectului respectiv.
2.1.3.7

Oricine utilizeaz un procesor de cuvinte obinuit, la nivelul cerut


de un eseu losoc curent (fr tabele, formule, imagini), poate s
A
obin acum cu L TEX tot ce ar obine i cu editorul de birou. Cu
unele excepii! Ce facem dac vrem s schimbm structura paginii,
de pild? Acest lucru este uor de fcut cu editorul de birou.
Seroul[11, p.288] explic utilitatea deosebit a acestei comenzi. Fr a intra
n detalii, putem spune c ea servete la eliminarea unor ambiguiti care ar
putea generate prin combinarea comenzilor TEX i a textului documentului.
A
Sistemul trebuie s tie unde s se opreasc. n documentele scrise n L TEX
nu vei vedea aceast comand. Dac v uitai prin iere sty sosticate avei
destul de repede ansa s v ntlnii cu ea.

110

10

15

A aptea zi

Dac-ai ajuns pn aici, nu doar cu lectura, ci i cu exerciiile, este


foarte bine. Aproape c-am putea da comanda TEX \relax. Aceast
comand este dat atunci cnd argumentul trebuie s e o aciune,
dar n fapt sistemul n-are nimic de ntreprins.57

57

20

25

A
2.1 L TEX

Rspunsul la ntrebarea de mai sus l vom da n continuare. Ar


trebui precizat ns c, mai important, n acest moment, este s
A
trecei n revist ntreg complexul de resurse oferit de ctre L TEX.
2.1.3.7.1 Structura paginii Dac scriei o lucrare de seminar
sau o lucrare de diplom, recomandarea noastr ferm este s nu
A
modicai dimensiunile standard furnizate automat de ctre L TEX.
Sistemul este special conceput pentru a ne bate ct mai puin capul
A
cu forma textului. Autoarea sau autorul rspund de coninut, L TEX
se ngrijete de form.

Ce ne facem ns dac intr n joc alte constrngeri? O carte are,


de exemplu, un format cu particularitile sale. n acest caz, este
acceptabil modicarea structurii paginii.

10

A
L TEX n-ar deloc un limbaj comod dac am vrea s scriem programe care s rezolve ecuaii. Nu aceasta este menirea sa. Formatul
comenzilor, numele lor ample i explicite sunt ns extrem de utile
pentru tehnoredactare. Rndurile de mai jos sunt extrase din ierul
sty al crii de fa. Ele aproape nu necesit comentarii.

15

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

20

\oddsidemargin=2.2mm
\evensidemargin=10mm
\topmargin=0mm
%\headwidth %vezi mai jos
\headheight=5.5mm
\headsep=4mm
\textheight=200mm
\textwidth=112mm
\marginparsep=3mm
\marginparwidth=20mm
\footskip=5.5mm
\marginparpush=3mm
\hoffset=17.5mm
\voffset=12mm
\paperwidth=210mm
\paperheight=295mm
%========================================
\addtolength{\headwidth}{\marginparsep}
\addtolength{\headwidth}{\marginparwidth}

Ultimele dou comenzi mresc limea antetului paginii, pentru a


acoperi i coloana destinat notelor marginale. Altfel, headwidth
coincide cu limea textului.
A
A
2.1.3.7.2 Ce mai tie L TEX? L TEX lucreaz cu cutii (boxes)
pe care le aeaz pe orizontal i vertical. Dac umplem o cutie cu

111

2. Tehnoredactarea computerizat
cerneal i aezm lng ea alte cutii i aa mai departe ar iei un
A
desen. L TEX poate executa desene n acest mod.
A
Recomandarea noastr ar s folosii L TEX doar pentru a trasa
A
linii i forme geometrice elementare. Partea forte a L TEX o constituie aranjarea textului n pagin, nu desenarea de guri. Figurile
pot create cu alte programe i apoi pot integrate n text.

Mari probleme creeaz desigur tipurile de litere, tabelele, imaA


ginile. L TEX are soluii, pe care le prezentm pe scurt n anexe
separate.
A
A
Pe lng compilatorul de L TEX ca atare, orice distribuie L TEX
include dou programe absolut formidabile: un program pentru lucrul cu bibliograa i unul pentru crearea de indici. mpreun cu
A
aceste programe L TEX v permite s creai lucrri care au cu adevrat forma unor lucrri academice. i aceste programe sunt prezentate aici n anexe separate.

10

15

Pe lng programe, exist n distribuia MikTEX i un alt element


preios: documentaia. Pentru nceput, identicai modul n care
putei accesa documentaia i rsfoii cteva titluri.
documenCutai n dosarul MikTEX calea texmf\doc\guides. Vei gsi
taia acolo un dosar lshort-english. n el se a o carte scris de Tobias
MikTEX Oetiker, Hubert Partl, Irene Hyna i Elisabeth Schlegl The Not So
A
Short Introduction to L TEX2e. Este o introducere foarte bine fcut
i putei s o folosii cu mare succes pentru a consolida cunotinele
A
de baz n materie de L TEX. Documentaia include versiuni ale
acestei cri n mai multe limbi.
Sursele crii lui Oetiker et al. se a n dosarul \texmf\source
\lshort-english. Dezarhivai-le i creai, cu ajutorul TEXnicCenter un proiect avnd ierul lshort.tex ca ier principal. Dac
avei o instalaie complet, dup dou-trei compilri, obinei un
ier de tip dvi acceptabil. Cartea este conceput pentru a transformat n pdf. Prefer dvi-ul n combinaie cu TEXnicCenter pentru
c astfel pot studiate n condiii optime sursele. Vizualiza-i dviul; dai un dublu clic n punctul care v intereseaz i studiai sursa.
Sunt o mulime de elemente interesante n documentaie. Ne limitm aici doar la dou recomandri suplimentare. Restul putei
descoperi i singure sau singuri.
A
Citii articolul lui Guido Gonzato L TEX for Word Processor
Users din dosarul latex4wp. Vei nelege cum putei produce cu
A
ajutorul L TEX tot ceea ce putei realiza cu ajutorul unui procesor
de cuvinte. Cu alte cuvinte, aai de ce n-avei nici un motiv s
A
regretai trecerea de la editorul de birou la L TEX.

112

20

25

30

35

40

A
2.1 L TEX

Un articol scurt, dar extrem de interesant, este cel al lui Piet van
A
Ostrum, Page Layout in L TEX. l gsii, n dosarul fancyhdr, pe
calea \texmf\doc\latex . Articolul ofer explicaii pertinente cu
privire la structura paginii.

10

15

20

25

30

35

2.1.3.7.3 Fora cooperrii dintre Vim, TEXnicCenter i


Yap S zicem c-ai compilat cartea scris de Oetiker et al. Ai
gsit ns o comand ciudat n surse. Deschidei ierul respectiv
n Vim. Creai ierul tags. Cutai acum comanda respectiv.
Dac vrei s aai, de exemplu, cum a fost denit mediul code,
putei face acest lucru cu ajutorul tag-urilor. Deniia este, de altfel, uimitor de simpl: este vorba de folosirea unui mediu standard
pentru citate.
Dar dac vrei s aai ce sens are comanda \verb. n-are tag!
A
Semn c este un element standard din L TEX. Revenii n TEXnicCenter. Punei cursorul pe cuvntul respectiv i apsai tasta f1.
n cteva clipe v este aat ntr-o fereastr special explicaia
comenzii.

f1

Vim i cu TEXnicCenter constituie o combinaie foarte puternic.


Avei att acces direct la surse, ct i deplasarea ntre surs i programul de vizualizare (n ambele direcii). n Vim putei crea pentru
ecare document sau gen de document la care lucrai meniuri adaptate cerinelor dumneavoastr. Putei naviga prin surse cu ajutorul
tag-urilor. Putei ajunge n Vim i din programul de vizualizare.58
De ce n-am folosi totui un program de tip wysiwyg? Exist
att programe gratuite, ct i programe comerciale pentru lucrul n
A
L TEX n acest mod (cel al editoarelor uzuale de birou).
Lyx este un program utilizat, de regul, sub Linux pentru a edita
A
n maniera wysiwyg documente L TEX. Lyx poate funciona i
sub Windows, cu ajutorul Cygwin. Trebuie s avei instalat ns
i emulatorul de X Window. X este interfaa grac tipic pentru
sistemele Unix.
Fora combinaiei dintre un editor precum Vim i un mediu integrat pentru compilare aa cum este TEXnicCenter ni se pare ns net
superioar. Posibilitile de lucru sunt mai bune. Separarea dintre
coninutul i forma textului este clar. n plus, prelucrarea ierelor
n Vim este extrem de sigur. Orice sistem integrat are fragilitatea
sa i, la lucrul cu ierele mari, s-ar putea s v produc surprize
neplcute.
58

Vedei explicaiile din 2.1.2.3.1.1.

113

2. Tehnoredactarea computerizat

2.2

BibTEX

Dac o persoan scrie un program de calculator, primul lucru la care


se gndete este cum ar proceda manual. Dac tii s rezolvi cu
mna problema, atunci poi trece la faza n care extragi algoritmul,
ideea din spatele soluiei, i o transferi ctre programul de calculator.
Principiul care st la baza nelegerii elaborrii i tehnoredactrii
computerizate a textelor este acelai.

2.2.1

Primii pai n lumea bazelor de date

Modul tradiional de alctuire a unei bibliograi presupunea o colecie de e bibliograce i o list alctuit la nalul lucrrii pe
baza acestor e. Elaborarea unei bibliograi computerizate merge
pe aceeai idee.

10

Din punctul de vedere al programrii lucrurile se complic ns.


Pn acum am avut de a face cu o surs care poate ori s e interpretat, n care caz se execut pas cu pas comenzile din surs, ori
s e compilat, n care caz sursa este transformat ntr-un ier de
alt tip.

15

biblioBibliograile ne pun n faa unei situaii diferite. Chiar din persgraile pectiva tradiional, ele bibliograce erau o baz de date. n baza
de date, pe e, cmpurile cu informaii pot dispuse n cu totul
alt mod dect n lista bibliograc. De asemenea, n list putem
prezenta doar o parte din informaiile din baza de date.

20

Prin urmare, n computer, ne vom confrunta cu o diversicare


a ierelor i a programelor care lucreaz cu ele. Unele iere vor
stoca baza de date ca atare. Altele vor surse (programe) pe baza
crora vor extrase i prezentate date.
Din punctul de vedere al programelor care lucreaz cu bazele de
date, principiul tare al surselor deschise simplic lucrurile. Fiierele
care conin datele sunt iere de tip text. Noi le vom prelucra cu
ajutorul Vim.

25

30

O bibliograc tradiional are ns cmpuri! ntr-un ier


de tip text nu putem ns trage linii pentru a separa cmpurile. Se
folosesc, n schimb, separatorii. Separatorul este un semn cu ajutorul
cruia distingem cmpurile.
Un exemplu ne va lmuri lesne despre ce este vorba. Iau trei cri
dintre cele care sunt n bibliograa crii de fa i construiesc un
ier csv ier cu urmtoarele cmpuri: o prescurtare fcut din numele autoarei sau autorului, numrul total de pagini, numrul de pagini din

114

35

2.2 BibTEX
partea introductiv a crii59 , numrul de pagini din partea principal a crii, numrul de pagini alocate indicelui. Ca-n orice niruire
aceste date sunt separate prin virgul. Fiecare rnd corespunde unei
e tradiionale:
1
2
3

Bazerman 1989,527,14,501,12
Fischel 1984,299,10,280,9
Hairston 1974,364,13,344,7

Un asemenea ier se numete ier de tip csv60 .


n funcie de interesele noastre, separatorul ar putea i altceva dect virgula: un spaiu alb, un semn mai deosebit. Extensia
ierului este ns ntotdeauna csv.

10

15

20

Exist o serie ntreag de operaii care pot fcute cu un ier


csv. Fiierul de mai sus poate , de pild, sortat n funcie de numrul total de pagini. Operaia este absolut similar sortrii elor
tradiionale de hrtie.
Tot aa cum din baza tradiional de date putem extrage anumite
informaii, din ierul de mai sus am putea construi liste cu numrul
de pagini al prii introductive sau liste cu numrul de pagini al
indicilor.
Bazele de date pot punctul de plecare pentru calcule. Pornind
de la informaiile de mai sus am putea, de exemplu, calcula procentul din total al numrului de pagini al indicelui. Folosind iere
similare am putea face, pornind de la datele lor, calcule statistice
mai complicate sau le-am putea folosi pentru a testa ipoteze statistice.
Un program simplu de operare cu iere csv este CSVdb, scris de
Sam Francke.61 Programul este cardware 62 .

25

Este recomandabil s folosii acest program sau un program similar pentru a v face practic o idee despre ierele csv. Cu programul
lui Sam Francke putei sorta, schimba ordinea coloanelor, elimina ele63 care se repet. Este posibil, de asemenea, utilizarea a diveri
separatori.
59

Ceea ce n englez se numete frontmatter.


De la sintagma englezeasc comma separated values.
61
Pagina de web a programului este http://home.hccnet.nl/s.j.francke/
software/software.htm
62
Dac folosii programul i v place, atunci avei obligaia (moral) de a-i
trimite autorului o vedere la adresa indicat n documentaia programului.
63
n jargonul computerelor elor tradiionale li se spune nregistrri, de la
englezescul records.
60

115

2. Tehnoredactarea computerizat

2.2.2

Sistemul BibTEX

Un ier csv are ns o structur foarte incomod din punctul de


vedere al elor bibliograce. Fiele bibliograce sunt de diverse
tipuri. Fiecare tip are cmpurile sale specice. Cmpul pentru titlul
revistei n-are sens la o carte, de exemplu.

Am putea lsa necompletate cmpurile care nu au sens. Soluia


nu este nici elegant, nici logic. Logic ar s distingem explicit
tipurile de e n formatul electronic.
Probabil c atunci cnd ai instalat TEXnicCenter ai observat c
acesta integreaz i un compilator botezat BibTEX. Acesta este capabil, pe baza unor programe, s produc iere care pot utilizate
A
de L TEX pentru a genera liste bibliograce.
Pentru nceput, trebuie studiate ierele care alctuiesc baza de
ier bib date propriu-zis. Aceste iere au extensia bib. Vim are capacitatea
de a le colora ntr-un mod care ne ajut s ne dm seama dac iere
sunt construite corect sau nu.

10

15

n formatul bib tradiionala bibliograc a unei cri are un


aspect de genul urmtor:
1
2
3
4
5
6
7

@BOOK{latex,
author={Leslie Lamport},
title={\LaTeX{}: a document preparation system},
address={Reading, Massachusetts},
publisher={Addison Wesley Longman,Inc.},
year={1994}
}

Structura de mai sus are forma @TIP{eticheta, cmpuri}. Cmpurile sunt separate prin virgule. Fiecare cmp are un nume, urmat
de semnul egal, dup care este pus coninutul propriu-zis al cmpului.
Rolul etichetelor este exact acelai ca i-n cazul unui argument
A
al comenzii \label{} din L TEX sau al unui tag. Eticheta unei nregistrri ne permite s regsim nregistrarea respectiv ntr-un ier.

20

25

Numele cmpurilor sunt sucient de sugestive pentru a nu necesita explicaii. n cazul crii date drept exemplu aceste cmpuri
asigur informaia bibliograc minim n sensul specicat aici.
Pentru a facilita crearea de iere bib putem extinde meniurile
Vim. Iat un exemplu pentru o intrare de tip book:
1
2
3

116

:imenu Bib.&Book @BOOK{,<CR>author={},<CR>title={},


<CR>address={},<CR>publisher={},<CR>year={},
<CR><Home>}<Esc>6<Up><End>i

30

2.2 BibTEX
Articolele sunt adesea prezente n bibliograile eseurilor losoce.
Prin urmare, este important s oferim i aici un exemplu de
bibliograc electronic pentru un articol. Aceast ia forma unei
nregistrri ntr-un ier bib, ca-n exemplul care urmeaz:
1
2
3
4
5
6
7
8
9
10

Cum este i normal, n cazul unui articol, trebuie menionat publicaia periodic cu datele aferente.

Spaiul nu ne-ar permite s descriem pe larg diverse tipuri de


intrri ntr-un ier bib. Din fericire, principiul sursei deschise ofer
o excelent posibilitate de documentare. Dac mergei la dosarul
unde este instalat sistemul MikTEX, vei gsi n \texmf\bibtex\bib
o mulime de exemple de iere bib.

10

n cazul n care nu exist o descriere standard, trebuie s scriem


una. Pentru documentele de pe Internet am construit structura de
mai jos. Ea nu poate utilizat dect mpreun cu simplu.bst, o
versiune pentru limba romn a lui plain.bst. Fiierul simplu.bst
este creat special pentru aceast carte.64

15

1
2
3
4
5
6
7
8
9
10

20

@ARTICLE{FlewTCE,
author={Antony Flew},
title={Issues in Teaching Contemporary Ethics},
journal={Teaching Philosophy},
month={Summer},
year={1975},
volume={1},
number={1},
pages={55--60},
}

@WEBBED{,
author={},
title={},
notatxt={},
url={},
year={},
download={},
note={},
annote={},
}

Cmpurile clasice sunt primele dou. Ca orice document, un text


aat pe Internet a fost scris de ctre cineva sau o organizaie i-a
asumat rspunderea pentru el. De asemenea, are un titlu. Dac
aceste elemente lipsesc, nu cred c are sens s gureze n bibliograa
64

Pentru simplu.bst v. situl crii.

117

2. Tehnoredactarea computerizat
unui eseu losoc. Ar putea cel mult menionat n note, cu titlu
de surs a unui exemplu sau de surs a unei opinii sau armaii.
n cmpul notatxt punem o not despre situl pe care se a textul sau despre caracterul textului.65 Coninutul acestui cmp ind
mai exibil putem s-l reglm n aa fel nct s scpm de cutiile
cu litere care depesc zona alocat textului bibliograei(bad boxes).
n cmpul url trebuie pus adresa de Internet. Acesta este un
cmp absolut necesar, dar nu sucient pentru o astfel de . Menionarea anului n care documentul a fost publicat pe Internet ar
o completare util.
Documentele de pe Internet au o natur dinamic. Se schimb
des. De multe ori este greu s e identicat versiunea. Nu de puine ori ns, dup ce au fost disponibile o vreme, dispar. De aici
necesitatea cmpului download, n care trebuie trecut data la care
a fost descrcat66 documentul. Recomandarea noastr ar s e
A
folosit un format al datei acceptabil pentru L TEX i care nu recurge
la numele de luni, pentru a nu crea confuzii cu formatul folosit n bibliograe pentru data publicrii documentului. Un astfel de format
ar , de pild, implicit n: 14/09/2003.
n sfrit, structura de mai sus este prevzut cu un cmp pentru
o not i unul pentru adnotare. Nota poate s e folosit pentru un
supliment de informaii privind documentul. Adnotarea are rolul
uzual, acela de a oferi o scurt descriere a documentului.

2.2.2.1

Chiar i o bibliograe cu peste 16000 de nregistrri, cum este


cea creat de ctre Richmond Thomason pentru lucrrile de loso-

Aceste informaii le-am reinut pe descrierea din a bibliograc). Pentru


folosirea n citri de sine stttoare a acestei note a se vedea reguli ale citrii
tradiionale.
66
Nu uitai c i atunci cnd avei sentimentul c doar vedei documentul, el
tot este descrcat temporar.
67
<http://www.tcisoft.com/tcisoft/bibdb.html> este pagina de web a
programului BibDB. BibDB este un program cu surse deschise. Limbajul surselor este Pascal.

118

10

15

20

Utilizarea de sine stttoare a BibTEX

A
Un ier bib poate utilizat i independent de sistemul L TEX. Soluia care mi se pare cea mai bun, sub Windows, este cea a utilizrii
programului BibDB, creat de ctre Eyal Doron.67

65

25

2.2 BibTEX
a limbajului, semantic, inteligen articial i domenii conexe,68
este manevrat cu mare uurin de ctre BibDB.69

Folosirea interfeei grace a BibDB este relativ facil. Dac v-ai


nsuit i utilizarea expresiilor regulate, atunci cutarea n baza de
date va decurge foarte uor.

2.2.3

10

15

20

Stilurile bibliograce

Datele dintr-un ier bib pot extrase i prezentate n diverse moduri, indiferent de felul sau ordinea n care apar ele n ierul respectiv. Modurile acestea de prezentare a datelor bibliograce se numesc
stiluri bibliograce.
Descrierile stilurilor bibliograce sunt plasate n iere care au
extensia bst. Ele sunt scrise ntr-un limbaj special, inventat de ctre creatorul programului BibTEX, Oren Patashnik. Dac nu tii
ceva mai mult programare sunt puine anse s nelegei limbajul
ierelor bst. n orice caz, nu modicai coninutul ierelor bst
standard! Dac vrei s operai modicri, facei o copie ntr-un
dosar din localtexmf i redenumii copia, n aa fel nct s nu se
produc nici un fel de confuzii n sistem.
Pentru nceput putei investiga ierele bst cele mai obinuite ierele
din dosarul base plasat pe calea \texmf\bibtex\bst. Repet, nu bst
modicai nimic aici! Facei doar copia n modul indicat mai sus i
examinai copia.

25

Fiierul cu care este bine s ncepei este plain.bst. Cutai, de


pild, secvena function {book} i cercetai deniia modului de
aare a datelor bibliograce pentru o carte.

30

A
Limbajul bst are o sintax aparte. Dac n L TEX ai vzut o
structur condiional de forma comand, condiie, aciune, aciune, n bst structura condiional are forma condiie, aciune,
aciune, if$. Este ca i cum ai scrie 2 2 +. Exist motive temeinice pentru a proceda aa, dar explicarea lor nu-i are rostul aici.70

Fiecare stil bibliograc are drept efect moduri diferite de sepa68

Cutai ierul rht.bib la adresa de <http://www.csse.monash.edu.au/


mirrors/bibliography/Ai/rht.html>. Dac nu gsii acolo ierul rht.bib,
ncercai o cutare cu ajutorul cuvintelor-cheie.
69
Am reuit s ncarc chiar bibliograi mai ample de 43193 intrri i de 64307
intrri, n mai puin de un minut, respectiv n jur de un minut. Testul l-am
fcut cu un ier obinut prin concatenarea unei colecii de iere bib. n orice
caz, nu a folosi pentru biblioteca de acas altceva dect iere bib. Putem,
de asemenea, medita i la ideea c o bibliotec obinuit, precum cea a unei
faculti, are cam 50000 de volume.
70
Putei citi explicaiile lui Oren Patashnik n btxhak din documentaia

119

2. Tehnoredactarea computerizat
rare a elementelor intrrii bibliograce, precum i unele diferene n
modul de evideniere a lor. Ordinea faptelor privitoare la publicare
difer i ea. Dac v familiarizai cu funciile din plain.bst, vei
descoperi desigur c acesta pune mai nti editura i apoi localitatea i anul. Majoritatea stilurilor bibliograce prefer s indice nti
localitatea i apoi editura.
Stilurile bibliograce denite n ierele bst sunt replici electronice ale stilurilor tradiionale. Un element important de difereniere
l reprezint modul n care se realizeaz conexiunea dintre text i
intrrile din bibliograe. Multe stiluri folosesc un cuplu autor-an.
Plain folosete un numr, numrul intrrii bibliograce.
Oren Patashnik argumenteaz n favoarea stilului plain contra
sistemului editurii Universitii din Chicago.71 Stilul acesta era diA
cil de folosit pe vremea tiparului tradiional. Cu BibTEX i L TEX
situaia se schimb. Nu trebuie s avem grija numerelor din bibliograe.

10

15

Pentru cartea de fa am adaptat plain.bst la cerinele limbii


romne. Am fcut i unele modicri, n funcie de practica editurilor din Romnia n domeniul bibliograilor.72
2.2.3.1

A
Listarea unei bibliograi n L TEX

20

A
Generarea bibliograei n L TEX este foarte simpl. n fereastra de
dialog cu proprietile proiectului TEXnicCenter bifai caseta Uses
BibTEX. n ierul principal punei n punctul n care trebuie s apar
A
bibliograa rnduri de program L TEX dup modelul urmtor:
1
2
3
4

\backmatter
\nocite{*}
\bibliography{eseu}
\bibliographystyle{plain}
A
Comanda de pe rndul 1 spune L TEX c este vorba despre partea
nal a crii. Comanda de pe rndul 2 cere aarea ntregului coninut al ierului bib, indiferent de citarea sau nu a intrrilor n
cuprinsul lucrrii. Argumentul comenzii de pe linia 3 este numele
ierului bib, fr extensie. BibTEX adaug automat extensia.73

MikTEX. inei ns cont c acesta este un text pentru ucenicii vrjitori, nu


pentru utilizatorii obinuii!
71
A se vedea documentul btxdoc din documentaia MikTEX.
72
Nu prezentm aici ierul plainro.bst. A se vedea pe situl crii o prezentare a acestui ier.
73
Dac a scrie eseu.bib, atunci BibTEX ar cuta un ier eseu.bib.bib.
Acest ier nu exist i bibliograa nu poate generat. Atenie i la faptul c,

120

25

2.3 Turnul Babel


Argumentul comenzii de pe rndul 4 este numele ierului de tip
bst care conine programul de prelucrare a bazei de date. Din nou,
extensia NU trebuie inclus n argument.
5

Recomandarea ct se poate de categoric pentru nceptori este


s foloseasc mediul integrat TEXnicCenter pentru a genera bibliograa. BibTEX este un compilator. Apelarea sa n linie de comand
cere o cunoatere destul de bun a funcionrii sale.
2.2.3.2

10

15

20

25

Dup cum am explicat deja,74 etichetele nregistrrilor din ierele


bib sunt folosite ca argumente pentru trimiteri. Comanda pentru
trimiteri este \cite{}. n argumentul ei este pus eticheta nregistrrii la care vrem s trimitem.
Comanda \cite{}, dac folosim stilul plain, genereaz un numr pus n paranteze drepte. Acesta este numrul intrrii din bibliograe la care vrem s trimitem.
Forma \cite[]{} a comenzii pentru trimiteri la bibliograe include i o opiune. Argumentul opional recomandat este un numr
de pagin, precedat de p., n cazul limbii romne. Am putea pune
i un alt argument opional, cum ar un numr de seciune. Cartea
sau articolul la care trimitem trebuie s aib ns seciunile numerotate. n cazul documentelor de pe Internet, putem indica un ier.
Comanda \cite{} are diverse versiuni, n funcie de stilul bibliograc folosit. Aceste versiuni sunt descrise n documentaia aferent
stilului bibliograc respectiv. Folosirea versiunilor comenzii scade
ns portabilitatea documentului de la un stil bibliograc la altul.

2.3

30

A
Trimiterile la bibliograe n L TEX

Turnul Babel

Din punctul de vedere al calitilor tipograce ale textului, departe


de a o binecuvntare, calculatorul este adesea un adevrat blestem.
Cea mai vie ilustrare o constituie modul n care sunt tratate literele
romneti. Nenumrate eseuri studeneti sunt scrise fr diacritice.
Ghilimelele tradiionale romneti tind s dispar. ntr-un cuvnt,
calculatorul pare a ne ntoarce ntr-o epoc de slbticie intelectual.
Motivele acestei stri de lucruri cred c se reduc, pn la urm,
A
n L TEX, fr a folosi pachete speciale, numrul de nregistrri din ierul bib
nu poate trece de 3000. Nu vd ns de ce un eseu losoc ar avea nevoie de un
ier att de mare.
74
A se vedea mai sus pagina 116, rndul 23.

121

2. Tehnoredactarea computerizat
la ignorarea importanei programrii unui calculator. Consumatorii
tind s achiziioneze maini puternice. Programele sunt ns adesea piratate sau instalate fr o reglare atent. Efectul este, fr
ndoial, dezastruos.

2.3.1

Literele romneti

Ignorarea importanei programrii ncepe probabil de la felul n care


este perceput tastatura. Simbolurile scrise pe taste au o valoare
pur orientativ. Totul poate schimbat prin programare. Evident,
nu trebuie neaprat s scriei programele respective. Ajunge s-i
spunei sistemului de operare ce program vrei s utilizai.

litere
romneti
n
Windows

S zicem c folosii Windows98, sistemul de operare la care ne referim n mod preponderent n aceast carte. Dai un clic pe butonul
Start. Urmai ruta Settings Control Panel Keyboard. Fereastra
care se deschide v permite s controlai proprietile tastaturii.
Alegei panoul Language i dai un clic pe butonul Add. . . . Selectai
din lista derulant Romanian. Dai un clic pe ok. Apoi dai un clic
pe Apply.
Dup ce-ai fcut operaiile de mai sus sistemul v va cere, probabil, cd-ul de pe care ai instalat Windows98. Lucrurile se vor petrece ceva mai lin dac sistemul este preinstalat. De cele mai multe
ori ns, oricum nu este nevoie de cd. Fiierul de care avei realmente nevoie este kbdro.kbd i se gsete poate deja n dosarul
c:\windows\system.
Vericai, dup aceea, dac pe taskbar va apare indicatorul ce
ne spune care este tastatura pe care o folosim. De asemenea, vedei
care este combinaia de taste care v convine cel mai mult atunci
cnd comutai de la o tastatur la alta.
Acum avei o tastatur care include literele romneti. Fiierul
kbdro.kbd de pe cd-ul de instalare produce o tastatur pe care
eu unul nu o gsesc comod. Evident, este mai bun dect una
fr litere romneti. Din pcate, tastele y i z i inverseaz n
mod inutil rolul. Semnele de punctuaie sunt greu de gsit. Dac
dai peste un suet caritabil n stare s modice n mod competent
ierul kbdro.kbd, ar bine s aducei tastatura la o form mai
comod.

La urm, dar nu n cele din urm n ordinea importanei, nu uitai


Vim i c trebuie s alegei un tip de liter care conine litere romneti. Ca
literele exerciiu, mergei n Vim la meniul Edit. De acolo la Select Font. . . i
romneti testai existena la rubrica Script a opiunii Central European; dac

122

10

15

20

25

30

35

2.3 Turnul Babel


aceast opiune nu exist, atunci n-avei litere romneti n cazul
tipului respectiv de liter.
Ideea de mai sus este foarte simpl. Este ca i cum i-am spune
unui tipograf c vrem literele romneti din cutare tip de liter. Nu
ajunge s-i spunem acest lucru. El trebuie s i gseasc literele
respective prin cutiile sale.

Se mai poate ntmpla ceva neplcut. Chiar dac literele exist,


programul cu care lucrm s nu interpreteze corect input-urile primite. Din pcate, acesta este cazul n mediul integrat TEXnicCenter
cnd este vorba despre fereastra cu mesaje de eroare. Literele romneti nu sunt aate corect.75

10

2.3.1.1

A
L TEX poate pregti pentru tipar n condiii foarte bune texte cu
litere romneti. Voi prezenta mai nti soluia pe care o folosesc
efectiv n aceast carte i care mi se pare deosebit de comod. Apoi
voi descrie soluia clasic, tipic pentru spiritul TEX, soluie care
A
poate folosit pentru a pregti surse L TEX pe computere care nu
au posibilitatea de a instala tastaturi cu litere romneti.

15

A
2.3.1.1.1 Pachetele L TEX i limba romn Soluia folosit
la pregtirea pentru tipar a crii de fa poate lesne neleas examinnd cele trei-patru rnduri din ierul sty care-i spun sistemului
A
L TEX s foloseasc limba romn:

20

1
2
3
4
5
6

25

A
Soluii L TEX pentru limba romn

\RequirePackage{type1ec}
\RequirePackage[T1]{fontenc}
\RequirePackage[cp1250]{inputenc}
\RequirePackage[english,romanian]{babel}
%===============================================
\newcommand{\texteng}[1]{\foreignlanguage{english}{#1}}

Primul rnd cere sistemului s ncarce pachetul cm-super. Acest


pachet de peste 68mb conine o versiune a complet scalabil a tipurilor de litere computer modern. Computer modern sunt literele
clasice ale TEX, proiectate de ctre nsui Donald Knuth. Ele nu
sunt disponibile dect pentru un numr limitat de dimensiuni i rezist mai prost la mrire. Pachetul cm-super este disponibil graie
lui Vladimir Volovich.
75

N-am reuit s localizez problema, dar bnuiesc c totul pleac de la problemele generate de ideea de integrare ca atare. Programul trebuie s captureze
uxul mesajelor compilatorului, care este apelat ns n linia de comand.

123

2. Tehnoredactarea computerizat
Nu este absolut necesar s ncrcai cm-super. Putei folosi liA
terele standard n L TEX sau putei ncrca pachetul times pentru
tipul de litere Times New Roman.
Al doilea rnd este ns necesar pentru a avea acces la literele
romneti.76 Comanda pe care o conine ar putea asemuit cu
indicarea pe vremuri a cutiilor cu litere de plumb. Necesar pentru
limba romn este doar opiunea T1.
Rndul al treilea conine o comand care-i spune sistemului n
ce limb i dm ordinele privitoare la litere. n esen, opiunea
cp1250 i spune sistemului c noi folosim codicarea literelor din
Windows.
A
Rndul al patrulea cere L TEX s ncarce pachetul babel. Acest
A
pachet, creat de Johannes L. Braams, permite L TEX s despart
corect n silabe n limba romn, s scrie o serie de cuvinte n limba
romn. Cutai ierul romanian.ldf; citii i modicai (dup ce
v-ai fcut o copie de siguran) unele elemente din acest ier: eu
unul prefer termenul indice (pentru englezescul index); tabelul
i nu tabela i glosar pentru englezescul glossary.77

Dac nu funcioneaz ceva cum trebuie, citii documentaia. Nu


facei ns mai multe schimbri deodat. Facei o singur schimbare i studiai efectele, pentru a detecta cauza fenomenului care v
deranjeaz.
Ultimul rnd de cod listat mai sus din ierul sty nu face dect s deneasc o comand pentru delimitarea poriunii de text
care este n englez. Atunci cnd ncrcm pachetul babel ultima
opiune este cea care se aplic automat.78 Dac vrem s folosim,
ntr-o poriune de text (un citat, de pild), o alt limb, trebuie
s anunm n mod explicit acest lucru. Altfel, s-ar putea s avem
diverse surprize neplcute (la desprirea n silabe, de exemplu).

A
A
2.3.1.1.2 Comenzi L TEX pentru diacritice L TEX are pro79 Exist o serie de
priul su mod de a construi litere cu diacritice.
comenzi care ne permit s plasm diacritice pe litere. Ca deobicei
76

Programul de vizualizare a ierului dvi n-ar aa literele romneti. Astfel


se rupe ciclul editare-compilare-vizualizare.
77
Nu uitai s spunei sistemului MikTEX c folosii limba romn. A se vedea
indicaiile de instalare a MikTEX la pagina 70, rndul 5.
78
Acelai lucru este valabil i-n cazul pachetului fontenc!
79
Pentru a folosi aceste comenzi n-avei nevoie de pachete speciale. Babel continu totui s e absolut recomandabil: fr acest pachet, ar trebui s indicai
manual despririle corecte n silabe.

124

10

15

20

25

30

2.3 Turnul Babel


este mai simplu s recurgem la exemple. n cazul limbii romne
comenzile sunt:
\u{a} \u{A}\\
\^{a} \^{A}\\
\^{\i} \^{I}\\
\c{s} \c{S}\\
\c{t} \c{T}

A
Ca i-n cazul altor comenzi din L TEX, numele comenzii, chiar
dac se rezum aici doar la un semn, este sugestiv.

2.3.2

Vim i adaptarea tastaturii

A
Dac vrei s folosii comenzile specice L TEX, crearea unui meniu
Vim pentru literele romneti cu diacritice nu este o soluie foarte
practic. Exist, din fericire, o alternativ. Schimbarea rolului unor
taste.

10

Dac ierul kbdro.kbd este criptic, ierul de tip vim care face
acelai lucru este relativ uor de construit. n orice caz, soluia pe
care o prezentm n continuare este lesne de realizat de ctre oricine:
1
2
3
4
5
6
7
8
9
10

15

20

:imap
:imap
:imap
:imap
:imap
:imap
:imap
:imap
:imap
:imap

<F2>
<S-F2>
<F3>
<S-F3>
<F4>
<S-F4>
<F7>
<S-F7>
<F8>
<S-F8>

\u{a}
\u{A}
\^{a}
\^{A}
\^{\i}
\^{I}
\c{s}
\c{S}
\c{t}
\c{T}

S zicem c-ai scris un ier taste.vim cu coninutul de mai sus. Experimentai o vreme ntr-un dosar special creat pentru teste. Creai
un ier. n modul normal dai comanda :so taste.vim.80 Acum
tastele funcionale au un rol!
Nu este nevoie de prea multe explicaii pentru ceea ce ai obinut. n scriptul vim, cele dou puncte sunt desigur un semn c
este vorba despre o comand care poate dat i-n linie. Putei s
le i eliminai. Cheia comenzilor este imap, care-i spune lui Vim s
schimbe rolul unei taste n modul insert. <f2> se refer la cea de-a
doua tast funcional.81 Dup numele tastei, este indicat noul ei
rol.
80
81

Alternativ, putei folosi Run a Vim Script de pe bara cu instrumente.


Nu schimbai rolul tastei f1; ea servete la apelarea help-ului din Vim.

125

2. Tehnoredactarea computerizat
Eu recomand schimbarea n felul artat mai sus a rolului tastelor funcionale. La urma urmei, pentru asta sunt disponibile pe
tastatur: pentru a putea reprograma rolul lor.
V scie ns inversarea rolului tastelor y i z din tastatura
romneasc a Windows? n-ai gsit pe nimeni care tie cum s modice kbdro.ro? n Vim, putei schimba rolul celor dou taste.
Studiai ns atent sau atent urmtoarele dou rnduri!
1
2

inoremap z
inoremap y

y
z

Dac folosii imap simplu, v nvrtii n cerc! Vim va semnala o


eroare. Comanda inoremap i spune s nu reschimbe rolul tastei.
Dac v convine ideea, putei continua experimentul cu modicarea rolului combinaiei Shift+y, respectiv Shift+z.
1
2

inoremap <S-z>
inoremap <S-y>

10

Y
Z

Dac vrei s permanentizai soluii de genul celei de mai sus,


nu uitai s plasai taste.vim n dosarul plugin din vimfiles.
Vericai dac nu se produc eventuale conicte cu alte scripturi.
2.3.2.1

A
De la codurile Windows la comenzile L TEX i napoi

Dac studiai codurile unui ier cu litere romneti cu diacritice,


vei vedea c literele minuscule cu diacritice au codurile hex urmtoare: e3 e2 ee ba fe. Traduse n baza 10, aceste coduri sunt: 227 226
238 186 254. Cum folosete Windows aceste coduri? Gndii-v c
este asemenea cuiva care ar avea un text criptat n fa i ar cuta
ntr-o carte n care pe ecare pagin sunt rubrici de la 0 la 255; la
ecare rubric gsete o dezlegare a codului care-l intereseaz.
2.3.2.1.1 Intermezzo pentru ucenicii vrjitori Ai vzut
probabil tot felul de programe care v ajut s explorai casetele
cu litere. Putei descifra secretele care stau n spatele casetelor cu
litere din Windows i folosind Vim.
Folosind posibilitatea de a trece de la vizualizarea textului la cea
a codurilor hex nu v va greu s construii cu mna un ier care
arat astfel n hex (n prile sale semnicative):

126

15

20

25

30

2.3 Turnul Babel


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

00:
10:
20:
30:
40:
50:
60:
70:
80:
90:
a0:
b0:
c0:
d0:
e0:
f0:
00:

0102
1011
2021
3031
4041
5051
6061
7071
8081
9091
a0a1
b0b1
c0c1
d0d1
e0e1
f0f1
0000

0304
1213
2223
3233
4243
5253
6263
7273
8283
9293
a2a3
b2b3
c2c3
d2d3
e2e3
f2f3
0d0a

0506
1415
2425
3435
4445
5455
6465
7475
8485
9495
a4a5
b4b5
c4c5
d4d5
e4e5
f4f5

0708
1617
2627
3637
4647
5657
6667
7677
8687
9697
a6a7
b6b7
c6c7
d6d7
e6e7
f6f7

090d
1819
2829
3839
4849
5859
6869
7879
8889
9899
a8a9
b8b9
c8c9
d8d9
e8e9
f8f9

0a0b
1a1b
2a2b
3a3b
4a4b
5a5b
6a6b
7a7b
8a8b
9a9b
aaab
babb
cacb
dadb
eaeb
fafb

0c0d
1c1d
2c2d
3c3d
4c4d
5c5d
6c6d
7c7d
8c8d
9c9d
acad
bcbd
cccd
dcdd
eced
fcfd

0e0f
1e1f
2e2f
3e3f
4e4f
5e5f
6e6f
7e7f
8e8f
9e9f
aeaf
bebf
cecf
dedf
eeef
feff

Revenii apoi la vizualizarea n mod text. Aranjai simbolurile


pe care le folosii n texte n aa fel nct s e uor de neles codul
hex din spatele lor. Eliminai din ier primele 32 de coduri (dac
vrei s cercetai simbolurile ca atare).
n mediul verbatim semnele din
surs pot fi reproduse ca atare.
Iat semnele de baz:

2
3
4
5
6
7

0 1
!
0 1
@ A
P Q
a
p q

2
"
2
B
R
b
r

\begin{verbatim}
3 4 5 6 7 8 9 a b
# $ % & ( ) * +
3 4 5 6 7 8 9 : ;
C D E F G H I J K
S T U V W X Y Z [
c d e f g h i j k
s t u v w x y z {
\end{verbatim}

c
,
<
L
\
l
|

d
=
M
]
m
}

e
.
>
N
^
n
~

f
/
?
O
_
o

Restul semnelor nu pot fi


reproduse n mediul verbatim.
Vedei n imaginea alturat ce
se ntmpl pe ecranul Vim.
5

Dac vei combina cifra de pe prima coloan a rndului pe care se


a litera cu cifra de primul rnd al coloanei pe care se a simbolul
care v intereseaz, obinei codul hex corespunztor.82
10

Exist ns o metod mai simpl de a obine codul literei. Trecei


editorul Vim n modul normal. Dai apoi comanda ga; pe ultima line
82

Atenie! n hex, adic n baza 16, a, b, c, d, e, f sunt cifre, care se traduc


n baza 10 prin 10, 11, 12, 13, 14, respectiv prin 15. Ceea ce vedei n gur pe
prima coloan i pe primul rnd sunt cifre, nu litere!

127

2. Tehnoredactarea computerizat
a ecranului Vim vor aprea numele literei, codul zecimal al literei,
codul n hex i-n octal.
Cu ierul astfel creat putei face investigaii. Modicai versiunea tipului de liter i vei vedea alte semne pe ecran. Punei, de
pild, versiunea pentru greac a tipului de liter i observai unde
apar literele greceti. Schimbai tipul de liter i studiai posibilitile pe care vi le ofer.
2.3.2.1.2 Schimbri de care s-ar putea s aib nevoie i
persoanele obinuite Dac suntei o utilizatoare sau un utilizator obinuit, v-ai mulumit doar s citii n diagonal seciunea 2.3.2.1.1. Dac ai srit peste ea, aruncai totui o privire. V
vei ntreba poate de ce am folosit o imagine i nu un text pentru a
ilustra felul n care Vim aeaz literele limbilor Europei Centrale.
A
Motivul rezid n modul n care L TEX prelucreaz input-ul pe care
l-am produs cu ajutorul Vim.

10

15

Semnele de baz de care se folosete TEX sunt ntre codurile 32


i 126, dup cum se vede din tabelul de la pagina 127, rndul 5.
Codul hex 20 corespunde codului zecimal 32. Este codul pentru un
spaiu alb. Codul 127 genereaz <~>.
A
Pachetul L TEX inputenc traduce, ca s spun aa, limbajul Windows n cel al TEX. Aruncai o privire n ierul cp1250.def i vei
vedea deniiile folosite n procesul de traducere. Observai modul
n care toate comenzile TEX sunt scrise numai cu semnele de baz.
Ca i-n Vim, drept nume pentru simboluri voi folosi simbolul
pus n paranteze unghiulare. Cu alte cuvinte, <~> este acelai lucru cu tild. Codurile 127, 128 i 129 nu au o deniie n cp1250.
Dac vrei semnul pentru euro, folosii comanda \EUR{} din pachetul marvosym. Exist i variante ale acestei comenzi. Codul 130 este
tradus prin \quotesinglbase{} i genereaz <>.

Codul 131 n-are o deniie n cp1250. Codul 132 este tradus prin
\quotedblbase{} i genereaz <>.
Dm n continuare restul listei codurilor care nu ridic probleme
deosebite:
133<. . . >
139<>
145<>
150<>
156<>
161<>
168<>

128

134<>
140<>
146<>
151<>
157<>
162<>
169< c >

135<>
141<>
147<>
153<TM >
158<>
163<>
170<>

137<% >
142<>
148<>
154<>
159<>
165<>
171<>

138<>
143<>
149<>
155<>
160< >
167<>
174< r >

20

25

30

2.3 Turnul Babel


175<>
182<>
187<>
192<>
197<>
202<>
207<>
212<>
218<>
223<>
228<>
233<>
238<>
243<>
249<>
254<>

176< >
183<>
188<>
193<>
198<>
203<>
208<>
213<>
219<>
224<>
229<>
234<>
239<>
244<>
250<>
255<>

178<>
184<>
189<>
194<>
199<>
204<>
209<>
214<>
220<>
225<>
230<>
235<>
240<>
245<>
251<>

179<>
185<>
190<>
195<>
200<>
205<>
210<>
216<>
221<>
226<>
231<>
236<>
241<>
246<>
252<>

180<>
186<>
191<>
196<>
201<>
206<>
211<>
217<>
222<>
227<>
232<>
237<>
242<>
248<>
253<>

Codul 160 este tradus de cp1250 prin \nobreakspace{}. Este


normal ca-n tabel s apar doar un simplu spaiu alb. Uzual, n
A
sursa L TEX, punem mai degrab o tild pentru a indica spaiul
insecabil.
5

10

Codul 173 este tradus prin \-{} care este comanda prin care i se
A
spune sistemului L TEX unde se poate face o desprire n silabe. Nu
l-am inclus n tabel pentru c efectul su este invizibil dac nu se
face efectiv o desprire n silabe n punctul n care apare. De altfel,
A
nici nu mi se pare o idee bun s folosim acest semn n sursa L TEX;
ar imposibil s-l deosebim de liniua de unire.
Codul 136 are efect n Vim, dar este nedenit n cp1250. n
schimb, codurile 127 i 144 nu au efect n Vim i sunt nedenite i-n
cp1250. Folosirea lor genereaz o eroare.

15

A
Codurile urmtoare au efect n L TEX, dar trebuie folosite n modul matematic, nu n mod text:

172<>

20

177<>

181<>

215<>

247<>

Cazurile cele mai interesante sunt cele ale codurilor 164 i 166.
A
Ele sunt denite n cp1250. L TEX nu genereaz un mesaj de eroare
din perspectiva tastaturii, a input-ului. Apare ns un mesaj de
eroare care ne spune c nu exist n T1 simbolurile corespunztoare.
Este ca i cum turntoria de litere de plumb ne-ar spune c n-are
mulajele necesare pentru a turna litere de forma cerut.
Nu v bucurai prea mult de listele cu coduri de mai sus. Ele
sunt bune n cazul Windows. n lumea larg, vei ntlni o jungl de

129

2. Tehnoredactarea computerizat
astfel de coduri. Cu adevrat important este nelegerea procesului
n mai multe trepte prin care o apsare pe o tast se transform
A
ntr-un cod numeric, apoi ntr-o comand L TEX i se termin prin
gsirea unui simbol care este pus pe foaia de hrtie.
N-am putea opera i noi asemenea transformri? Desigur c da.
A
n interiorul L TEX ele au o utilitate mai restrns, n msura n
care putem folosi pachete gata pregtite. Transformrile sunt cu
A
adevrat utile n afara L TEX.
Putem folosi Vim pentru a opera o trecere de la codicarea WinA
dows la cea a L TEX. Voi ilustra acest lucru n cazul literelor romneti. Generalizarea nu este dicil de realizat. Trebuie doar create
nite iere de tip vim care conin scripturile pentru realizarea substituiilor. Iat cum facem trecerea de la coduri Windows la comenzi
A
L TEX:
1
2
3
4
5
6
7
8
9
10

%s//\\u{a}/ge |
%s//\\u{A}/ge |
%s//\\^{a}/ge |
%s//\\^{A}/ge |
%s//\\^{\\i}/ge
%s//\\^{I}/ge |
%s//\\c{s}/ge |
%s//\\c{S}/ge |
%s//\\c{t}/ge |
%s//\\c{T}/ge |

2
3
4
5
6
7
8
9
10

%s/\\u{a}//ge |
%s/\\u{A}//ge |
%s/\\^{a}//ge |
%s/\\^{A}//ge |
%s/\\^{\\i}//ge
%s/\\^{I}//ge |
%s/\\c{s}//ge |
%s/\\c{S}//ge |
%s/\\c{t}//ge |
%s/\\c{T}//ge |

15

update
update
update
update
| update
update
update
update
update
update

Acestea sunt scripturi Vim care trebuie chemate cu comanda :so


urmat de numele scriptului n ierul pe care vrem s-l transformm. Alternativ, putem folosi Run Vim Script de pe bara cu instrumente. Este inutil, de asemenea, s adugm c trebuie s v
facei mna pe iere de prob.

130

10

update
update
update
update
| update
update
update
update
update
update

Trecerea invers este realizat n felul urmtor:


1

20

2.3 Turnul Babel


2.3.2.1.2.1 Vrjitorii cu tastatura Tasta q este, cel puin
din punctul meu de vedere, teribil de bine plasat pe tastatur i
mi se ntmpl, n romn, s o folosesc extrem de rar. n schimb,
trebuie uneori s tastez de multe ori &, care mi se pare incomod
plasat. Ca s rezolv situaia dau, n modul normal al Vim, comanda
:imap q & i tasta q i schimb ca prin minune rolul.

Cum scap ns de schimbarea de mai sus, fr s nchid ierul?


Dau comanda :iunmap q i tasta q revine la vechiul rol.
Putei proiecta un script pentru a vrji tastatura. Exemplul dat
aici ncearc s arate cum pot corijate unele neajunsuri din tastatura romneasc standard n Windows. Schimbrile sunt operabile
numai n Vim!

10

Ideea de baz este cea de a ataa o alt codicare tastei. Urmtoarele comenzi v permit s tastai pe n loc de { i pe n loc
de [.

15

1
2

:map! {
:map! [

<char-195>
<char-227>

Putei scrie i n loc de <char-227> sau putei folosi notaia n


hex <char-0xe3>. Cifrele n hex trebuie precedate de 0x.
Dac tim codurile pe care vrem s le introducem de la tastatur,
nu este greu s schimbm rolul tastelor.
Putem modica i rolul unei combinaii de taste:

20

:map! /a

Trebuie s batei ns sucient de repede tastele una dup alta pentru a obine efectul dorit.
Putem crea i scripturi cu astfel de modicri ale tastelor. Atenie
ns la asigurarea unui gen sau altul de mecanism de scpare. Punei,
de exemplu, n script ceva de genul:

25

:map! <F5> <Esc>:unmap! [<CR>

Vim are posibilitatea de a crea tastaturi cu ajutorul unor scripturi speciale. Doar cu titlu de exemplu, putem presupune c-am creat
un ier romana.vim i l-am plasat n dosarul keymap din vimfiles.
Coninutul su este urmtorul:
1
2

tastatur
romneasc
pentru
Vim

let encoding=cp1250
let b:keymap_name = "ro"

131

2. Tehnoredactarea computerizat
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

loadkeymap
" Taste modificate n jurul lui Enter:
[
{
]
}
\\
<Bar>
;
:

\"
" Recuperarea tastelor pierdute (folosind combinaii):
/. :
/, ;
/q {
/w }
/z \\

ncrcai tastatura cu comanda :set keymap=romana sau folosind


Keymap din meniul Edit. Putei comuta ntre tastatura romneasc
i cea standard cu Ctrl+.
Tastatura astfel denit este mult mai exibil dect cea din
Windows. Poziia literelor pe taste poate modicat uor. Semnele sacricate prin plasarea de litere romneti pot regsite prin
combinaii de taste. Aceste combinaii pot adaptate la gusturile
ecrei persoane care utilizeaz Vim.

2.3.3

Limbile europene care folosesc alfabetul latin

S vedem acum cteva exemple de nume, titluri i expresii care pot


ntlnite ntr-un text losoc. ncepem nume, titluri sau expresii
de sorginte francez sau german:
Brhier
Ltre et le nant
La science et lhypothse
Gdel
fr sich
Italiana, spaniola sau portugheza pun i ele probleme dac vrem
s reproducem corect un titlu, un nume sau o expresie:

10

Br\{e}hier\\
L\^{E}tre et le n\{e}ant\\
La science et lhypoth\{e}se\\
G\"{o}del\\
f\"{u}r sich

0,1 e 2 e cos via


0,1 e 2 e cos\{\i} via\\
Espaa inteligible
Espa\~{n}a inteligible\\
Inicia\c{c}\~{a}o ao filosofar Iniciao ao losofar
S-ar putea ca mai rar i mai puin lume s se ciocneasc de
problemele ridicate de limbile slave care folosesc alfabetul latin. Li-

132

15

2.3 Turnul Babel


teratura polonez de logic i de losoe este totui foarte cunoscut
i voi alege de acolo cteva exemple:
semiotyka j\k{e}zyk\{o}w
naturalnych\\
metaj\k{e}zyk\\
Tadeusz Cze\.{z}owski\\
Izydora D\k{a}mbska\\
mo\.{z}liwo\{s}\{c}
5

semiotyka jzykw naturalnych


metajzyk
Tadeusz Czeowski
Izydora Dmbska
moliwo
Maghiara ridic i ea probleme specice atunci. Fonemele i
au i variante lungi:

az igazhvk
mvelet
Unele limbi europene au simboluri speciale, pe lng cele din
alfabetul latin:
\L{}ukasiewicz\\
ukasiewicz
Bewu\ss{}tsein\\
Bewutsein
S\o{}ren Kierkegaard\\
Sren Kierkegaard
\AA{}kvist\\
kvist
filozof ta\c{s}\i{}\\
lozof ta
\textquestiondown{}
humanizacin o deshumanizahumanizaci\{o}n
cin?
o deshumanizaci\{o}n?\\
. . . !
\textexclamdown{}\ldots{}!
az igazh\{\i}v\H{o}k\\
m\H{u}velet

10

15

20

Spaniola mparantezeaz ntrebrile i propoziiile exclamative.


Dac ne gndim bine, procedura este ct se poate de raional; atta
doar c avem nevoie de dou simboluri speciale.
A
Comenzile L TEX ngropate, ca s spun aa, n cuvinte sunt notate
n versiunea pe care o prefer eu. Cred c sursa este mai lizibil dac
punem sistematic argumentele unei comenzi n acolade i, n cazul
n care nu exist un argument, punem doar acolade.83 Consultai
documentaia pentru a vedea i alte posibiliti de a nota comenzile
respective.84

Modul acesta de a cere prin comenzi speciale simboluri este util


n special atunci cnd scriem nume strine, expresii din alte limbi
sau texte foarte scurte. n-are rost atunci s punem n micare toat
mainria descris n 2.3.1.1.1 pentru a pune un accent pe o liter.

83

Atenie la rolul acoladelor chiar i atunci cnd nu conin nimic! Fr ele,


EX nu tie unde se termin comanda. Alternativa este un spaiu alb, dar
acest spaiu mi se pare derutant pentru ochiul uman. Am mai putea pune n
acolade ntreaga comand.
84
A
Vedei n special Scott Pakin The Comprehensive L TEX Symbol List n
dosarul texmf\doc\latex\comprehensive din documentaia MikTEX.
A
LT

133

2. Tehnoredactarea computerizat

2.3.4

Tehnica alegerii tipului de liter

Pn acum am pus un mare accent pe modul n care vedem ceea


ce introducem de la tastatur. Am descoperit c literele scrise pe
tastatura zic sunt de fapt nite nume pentru tastele zice. Ceea ce
introducem n realitate de la tastatur sunt nite coduri numerice.
Putem vizualiza n mod comod aceste coduri pe ecranul computerului.
Cum ideea fundamental aici este aceea de a separa diversele
procese pentru a le nelege i dirija mai bine, n-are rost s am
pe ecran rezultatul nal (output)-ul, ca-n sistemul wysiwyg. S
vedem ns cum putem controla aspectul nal al literelor.
2.3.4.1

10

Modicarea aspectului output-ului

Pentru unii, crile n limba german scrise cu caractere gotice


sunt ceva misterios, texte pe care nimeni nu pare a le putea citi.
A
Pentru alii, este vorba de un adevrat obiect de cult. L TEX poate
crea tiprituri pentru multe gusturi, dup cum se vede din exemplele
urmtoare:
{%start grup local
\fontfamily{yfrak}
\fontsize{19}{22}\selectfont
Eseul filosofic
\par}%ncheiere de grup cu \par
{
\fontfamily{phv}\fontseries{b}
\fontsize{14}{17}
\selectfont\scshape
Eseul filosofic
\par}
{
\fontfamily{ptm}
\fontsize{17}{21}\selectfont
Eseul filosofic
\par}
{
\fontfamily{pzc}
\fontsize{17}{20}\selectfont
Eseul filosofic
\par}
{
\fontfamily{pcr}
\fontsize{16}{19}\selectfont
Eseul filosofic
\par}

134

15

Eseul filosofic

E SEUL

FILOSOFIC

Eseul losoc
20

Eseul losoc

Eseul filosofic

2.3 Turnul Babel


{
\fontfamily{cmss}
\fontsize{17}{22}\selectfont
Eseul filosofic
\par}
{
\fontfamily{cmr}
\fontsize{17}{21}\selectfont
Eseul filosofic
\par}

Eseul losoc

Eseul losoc

Ar multe comentarii de fcut n legtur cu tipurile de litere


exemplicate mai sus. Numele lor n TEX reprezint o prescurtare.
Ultimul exemplu este cel al cmr, tipul de liter creat de ctre Donald
Knuth i destinat n mod special sistemului TEX. Numele propriuzis al acestui tip de liter este computer modern. Varianta sa fr
serife este ilustrat de penultimul exemplu.

Putei compara tipul de litere cmr cu clasicul tip times, ilustrat


de ctre cel de al treilea exemplu. Consultai documentaia MikTEX
pentru a aa mai multe despre diversele tipuri de litere.

10

Comanda \fontsize{}{} are dou argumente. Primul argument


este cel care indic dimensiunea literei. Al doilea regleaz poziia
literei n cutia TEX.
15

2.3.4.2

Alfabetul chirilic

20

Experimentul este cea mai bun metod de a nva. Cu condiia


s nu lucrai cu iere pe care n-ai vrea s le distrugei. Schimbai
opiunea deci opiunea pachetului fontenc n OT2. S vedem ce s-ar
ntmpla n acest caz cu semnele folosite n mod clasic de ctre TEX
(vezi pagina pagina 127, rndul 5):

! "
% & ' ( ) * , - . /
0 1 2 3 4 5 6 7 8 9 : ; < > ?
A B C D E F G H I J K L M N O
P Q R S T U V W X Y Z [ ]
` a b c d e f g h i j k l m n o
p q r s t u v w x y z |
S-ar prea c a avut loc un accident. Avei n surs aceleai coduri, dar rezultatul nal apare cu litere chirilice. Nu a avut loc nimic
neobinuit. Codicarea nal este cea care s-a schimbat.
Dac n ierul sty facem cteva modicri putem insera n textul cu litere latineti text cu litere chirile:

25

30

\RequirePackage[OT2,T1]{fontenc}

135

2. Tehnoredactarea computerizat
2
3
4
5
6
7
8
9

%...............................
\newcommand{\textrus}[1]{\foreignlanguage{russian}{#1}}
\newcommand{\dur}{\cyrhrdsn}
\newcommand{\Dur}{\CYRHRDSN}
\newcommand{\moale}{\cyrsftsn}
\newcommand{\Moale}{\CYRSFTSN}
\newcommand{\erus}{\cyrerev}
\newcommand{\Erus}{\CYREREV}

Sistemul este util, de exemplu, pentru a scrie titluri cu chirilice. Iat


codul pentru titlul crii lui Dubovik, Veize i Golovko:
\textrus{Referirovanie i
annotirovanie
{\erus}konomicheskih tekstov
na angli\u{i}skom yazyke}

Referirovanie i annotirovanie konomiqeskih tekstov na


angli@ skom zyke
i

Soluia aceasta este ideal atunci cnd textul nu este preponderent n limba rus sau nu dispunem de cunotinele necesare pentru
a modica tastatura. Secretul ei este c o comand precum:
1
2
3

\textrus{
abvgde\"{e}zhzi\U{i}klmnoprstufkhtschshshch
\dur{}y\moale{}\erus{}yuya}

are drept rezultat la ieire, pe foaia de hrtie (zic sau electronic) irul: abvgdeziklmnoprstufhcqxwy~  de semne
ale alfabetului rus.85
Dac majoritatea textului este cu chirilice pare mai raional s
modicai codicarea input-lui. n acest caz, putei folosi opiunea
cp1251 pentru inputenc i o opiune de genul T2A pentru fontenc.
Putei avea n continuare acces la literele romneti cu ajutorul
comenzilor TEX pure. De asemenea, trebuie s modicai tastatura
Vim n aa fel nct s putei introduce lesne literele chirilice.86

2.3.5

10

15

Limba greac veche

Ar inutil s explic aici importana limbii greceti vechi pentru


losoe. Nu puine sunt eseurile losoce n care apar termeni n
greaca veche sau citate n greaca veche.
Pot spune din proprie experien c transliterarea nu este o soluie fericit. n dicionarul termenilor losoci greceti,87 un cuvnt
85
Pentru detalii citii documentaia din dosarul \latex\cyrillic din documentaia MikTEX.
86
Detalii i alte exemple vor aate treptat pe situl crii.
87
Francis E. Peters, Termenii lozoei greceti (Bucureti: Humanitas, 1993),
p.92.

136

20

2.3 Turnul Babel


precum pisvtmh apare transliterat ca epistm. Spiritul textului
e
e
grecesc vechi este pierdut la propriu i la gurat. Mai ru, edoc
devine edos, ceea ce este de-a dreptul greit.88
5

10

Exist o transliterare precis a textelor greceti vechi. Ea se numete betacod. Transliterarea aceasta n-are un aspect estetic prea
A
plcut, dar este foarte ecient n rolul de input ntr-o surs L TEX.
Pentru a folosi betacodul trebuie s ncrcai pachetul betacode
punnd n locul cuvntului babel cuvntul betababel. Pachetul
betababel este o extensie a pachetului babel creat de ctre Felix
G. Berkemeier.
Voi explica principiile de baz ale betacodului cu ajutorul unor
termeni losoci foarte cunoscui:89
\bcode{A)DIA/FORON}\\
\bcode{AU)TA/RKEIA}\\
\bcode{AU)TARXEI/A}

15

20

25

diforon
atrkeia
atarqea

Betacodul nu deosebete ntre majuscule i minuscule. Exist


obiceiul de a folosi masiv majusculele englezeti. Transliterarea literelor ca atare este evident. De altfel, vom da exemple pentru ecare
liter din alfabetul clasic grecesc.
Spiritul lin este transliterat prin paranteza rotund nchis. Spiritul aspru este transliterat prin paranteza rotund deschis. Accentul ascuit este transliterat printr-o bar oblic. Accentul grav
este transliterat printr-o bar oblic invers. Comanda \bcode{}
insereaz textul n punctul n care este dat.
Fii atente i ateni la diferena dintre ultimele dou cuvinte de
mai sus. Primul nseamn independen absolut (autosucien),
iar al doilea putere absolut. Nu traducei al doilea termen de mai
sus printr-o transliterare aproximativ a celui de-al treilea termen.90
\bcode{BOU/LHSIS}\\
\bcode{GE/NESIS}\\
\bcode{DIA/NOIA}\\
\bcode{EI)=DOS}

bolhsvic
gnesvic
dinoia
edoc

Pachetul betababel deosebete automat ntre sigma intern i 88

n toat cartea se folosete doar un singur tip de accent, iar n glosarul


romn-elin de la sfrit diacriticele greceti dispar cu totul! Pentru forma corect
a lui edoc i explicarea poziiei spiritului a se vedea Ana Felicia tef, Manual
de greac veche(Bucureti: Humanitas, 1996), p.23.
89
Extrai tot din Peters, op.cit., dar transliterai n betacod i prelucrai n
A X.
L TE
90
Din pcate, ediia 1993 din Peters, op.cit. conine exact aceast greeal
(v.p.52).

137

2. Tehnoredactarea computerizat
nal. Dac avem nevoie, putem ns scrie \bcode{s1} pentru a obine
sv i \bcode{s2} pentru a obine c.
\bcode{ZW=|ON}

zon

Accentul circumex este notat prin semnul egalitii. Iota subscris este notat printr-o bar vertical.
\bcode{H(DONH/}\\
\bcode{QEWRI/A}\\
\bcode{I)SONOMI/A}\\
\bcode{KO/SMOS}\\
\bcode{LO/GOS}\\
\bcode{TA\ MAQHMATIKA/}

don
jewra
svonoma
ksvmoc
lgoc
t majhmatik

\bcode{NOU=S}\\
\bcode{CENO/S}\\
\bcode{O)/NOMA}\\
\bcode{PAQO/S}\\
\bcode{R(OH/}\\
\bcode{SWFROSU/NH}\\
\bcode{TE/LOS}\\
\bcode{U(PO/QESIS}\\
\bcode{FRO/NHSIS}\\
\bcode{XRO/NOS}\\
\bcode{YUXH/}\\
\bcode{W(/RA}

noc
xenc
noma
pajc
o
svwfrosvnh
tloc
pjesvic
frnhsvic
qrnoc
yuq
ra

Betacodul este, n general, transparent. Unele transliterri pot


mai dicil de descifrat. Cred c-ar mai greu, la prima vedere, s
v dai seama, vznd numai betacodul, c penultimul cuvnt este
familiarul termen grecesc pentru minte sau suet.
n cazul literelor majuscule, regula betacodului este ca semnele
diacritice s e puse naintea literei. Pachetul betababel este exibil i admite punerea diacriticelor i dup liter, cu condiia s
m consecveni. Voi testa posibilitile pachetului cu cteva nume
proprii.91 Voi devia, de asemenea, de la practica folosirii exclusiv a
majusculelor.
>Arisvtotlhc
Diognhc Lartioc
>Empedoklc
Pltwn
Pentru poriunile ample de text, pachetul betababel ofer un

\bcode{*)Aristote/lhs}\\
\bcode{*Dioge/nhs *Lae/rtios}\\
\bcode{*E)mpedoklh=s}\\
\bcode{*Pla/twn}

91

138

Numele sunt extrase din manualul Anei tef, op.cit.

10

15

2.3 Turnul Babel


A
mediu L TEX special. Voi ilustra utilizarea acestui mediu cu un citat
din Aristotel.92

svullogisvmc d svti lgoc n tejntwn tinn tern ti tn


keimnwn x ngkhc svumbanei t tata enai.
A
Sursa n L TEX a citatului este urmtoarea:

1
2
3
4

\begin{betacode}
sullogismo\s de/ e)sti lo/gos e)n w(=| teqe/ntwn tinw=n e(/tero/n
ti tw=n keime/nwn e)c a)na/gkhs sumbai/nei tw=| tau=ta ei)=nai.
\end{betacode}

2.3.5.1

Pachetul babel i limba greac

Betacodul este un mod comod i precis de a introduce text n limba


greac veche. Dup cum spuneam, el nu este ns dect un etaj
ridicat peste cldirea mai vast a pachetului babel.
Vom cobor pentru o clip sub etajul betababel-ului ca s vedem
ce se petrece n cadrul babel.

10

Pentru nceput facei experimente de genul urmtor:


\documentclass{article}
\usepackage[cp1250]{inputenc}
\usepackage[LGR]{fontenc}
\begin{document}
Swkrthc
\end{document}

Swkrathc

Observai cum, ca i-n cazul literelor chirilice, am modicat codicarea la ieire, nu pe cea de la intrare. Este normal s procedm
aa atta timp ct suntem interesate i interesai de inserarea unor
cuvinte sau mici fragmente de text n greac ntr-un text care altfel
este scris preponderent cu caractere latine.

15

Dac-ai sesizat c a cu accent ascuit are codul 225, atunci suntei pe drumul cel bun cu experimentele. Pasul urmtor const n
localizarea efectului obinut mai sus. Scriei un alt proiect, n care
preambulul arat astfel:

20

1
2
3
4
5

\documentclass{article}
\usepackage[cp1250]{inputenc}
\usepackage[LGR,T1]{fontenc}
\usepackage[polutonikogreek,romanian]{babel}
\newcommand{\textelin}[1]{\foreignlanguage{polutonikogreek}{#1}}
92

Aristotel, An.pr.A 1.24b 18-20. Citat dup textul grecesc editat de


W.D.Ross, Aristotelis analytica priora et posteriora(Oxford: Oxford University
Press, 1968).

139

2. Tehnoredactarea computerizat
Punei numele lui Socrate ntre acoladele comenzii \textelin{}.
Acum doar acest cuvnt va aprea cu litere greceti. Opiunea LGR
nu este acum neaprat necesar. De fapt, pachetul babel va face
oricum apel la ea.
Acum ar trebui s e i mai limpede ce rol joac babel i ce rol
joac betababel. Cnd ncrcm betababel acest pachet cheam
pachetul babel i introduce opiunea polutonikogreek. De aceea,
opiunea aceasta este nu doar superu, ci genereaz chiar erori n
cazul n care am ncrcat pachetul betababel.
2.3.5.2

Ibycus

O codicare similar cu betacodul este cea folosit de ctre pachetul


ibycus.93 Trebuie s instalai ns separat acest pachet. El nu este
inclus n distribuia MikTEX. Este absolut recomandabil s-l punei
n dosarul localtexmf, pentru a nu-l confunda cu pachetele standard MikTEX. Folosii pachetul ibycus separat de alte pachete, n
documente destinate cu preponderen producerii de texte tiprite
frumos n greaca veche.94

10

15

Iat un fragment, tot din Aristotel,95 dar n codicarea ibycus:


1
2
3
4

legw de oi(=on a)nagkh men e)sesqai naumaxian au)rion h)


mh e)sesqai, ou) mentoi genesqai au)rion naumaxian
a)nagkai=on ou)de mh genesqai; genesqai mentoi h) mh
genesqai a)nagkai=on.S

Asemnrile cu betacodul sunt limpezi. Exist doar cteva deosebiri


majore. Ibycus folosete distincia dintre minuscule i majuscule (nu
stelua pentru a marca majusculele). De asemenea, notarea accentelor ascuit i grav este diferit.
Folosirea semnului ; este, de asemenea, diferit. n betacod,
dup obiceiul grecesc, acesta este semnul ntrebrii. Ibycus l folosete pentru punctul ridicat. Aat cu litere greceti (folosind ns
betababel) textul arat astfel:
93
Pachetul a fost creat de ctre Pierre A. MacKay (University of Washington)
pe baza unui tip de liter produs de ctre Silvio Levy. Levy a ncercat s menin
tipul su de liter ct mai aproape de tipul de liter Didot, care-i are originea
la nceputul secolului al XIX-lea.
94
Ibycus poate folosit mpreun cu opiunea OT1 a pachetului fontenc,
dar nu cu T1. Practic, Ibycus este de folosit cnd vrei s producei text numai
n greac.
95
Este vorba de un fragment din celebrul pasaj despre btlia naval care va
avea loc mine. Vezi Aristotel, De Interpretatione 19a 29-32.

140

20

25

2.3 Turnul Babel


lgw d oon ngkh mn svesvjai naumaqan arion m svesvjai,
o mntoi gensvjai arion naumaqan nagkaon od m gensvjai;
gensvjai mntoi m gensvjai nagkaon.

S-ar putea s vrei s folosii ibycus din pricina unor probleme


ale pachetului betababel.96

2.3.6

10

15

20

25

30

A
L TEX i unicod

Dac scriei ntr-un ier de tip text, a apsa pe o tast la computer


nu este totuna cu a pune o tampil sau cu a imprima o liter cu
maina de scris. Ceea ce pune, de fapt, n ier computerul este un
cod numeric. Pn acum am vzut doar coduri formate din dou
cifre hex. n total exist 256 de astfel de coduri distincte.
Dac-ai studiat cumva tabelul de la pagina 127, rndul 5, ai
observat c nu toate cele 256 de coduri posibile sunt folosite pentru
semnele diverselor alfabete. Motivul este foarte simplu: ntr-un ier
text este nevoie, de pild, de coduri pentru sfritul de rnd, precum
i de alte coduri speciale. Chiar i aa rmn destule coduri pentru
limbile europene.
Toate limbile Europei folosesc un alfabet de un tip sau altul.
Nu este posibil s e puse toate semnele lor n coresponden un o
singur pagin cu coduri de genul celor descrise mai sus. Faptul c
folosim mai multe pagini cu coduri reprezint motivul pentru care
trebuie s specicm codicarea input-ului. Ce se ntmpl ns n
cazul unei scrieri ideograce? Ar greu s tot schimbm pagina cu
coduri la ecare pas.
Ideea unicodului (a unei codicri universale) este s folosim
patru cifre hex n loc de dou. n acest caz, codul ultim din tabel ar
, ceea ce corespunde n sistemul zecimal cu 65535. Dup cum
se vede, diferena este uria. Dar i jungla creat este imens; totul
trebuie parcurs pas cu pas.
2.3.6.1

Pachetul ucs

Dup cum se vede mai sus, n cazul scrierilor care folosesc un alfabet,
ne putem descurca excelent separnd poriunile n care folosim o
anume codicare de celelalte. Cadrul oferit de codurile de la 0 la ff
este totui strmt. Pentru a avea acces la lumea codicrii unicod,
96
Sigma majuscul pune probleme n betababel. Urmrii situl crii pentru
a detalii, exemple i eventuale soluii mbuntite.

141

2. Tehnoredactarea computerizat
trebuie recurs la pachetul ucs. ncrcarea sa se face dup modelul
urmtor:
1
2
3
4
5

\usepackage{ucs}
\usepackage[utf8,cp1250]{inputenc}
\usepackage[LGR,OT2,T1]{fontenc}
\usepackage[romanian]{betababel}
\newcommand{\textelin}[1]{\foreignlanguage{polutonikogreek}{#1}}

Foarte important este faptul c pachetul ucs este ncrcat naintea


pachetului inputenc. Observai, de asemenea, opiunea utf8 la pachetul inputenc. Aceast opiune cere sistemului s preia i coduri
unicod. Ordinea opiunilor este foarte important. Ultima opiune
este cea care are statut de default (este executat automat).

Putei folosi n continuare metodele descrise mai sus sau chiar le


putei combina precum n acest fragment din Platon:97
1
2
3
4

\begin{quote}
\textelin{S}\bcode{WKRA/THS SOFO\S A)NH/R,
TA/ TE METE/WRA FRONTISTH\S KAI\}\ldots
\end{quote}

Swkrthc svofc nr, t te metwra frontisvtc ka. . .


Codicarea ampl care este unicodul e imposibil de descris pe
larg aici.98 Principiul dup care este construit pachetul ucs este
A
acela al folosirii comenzilor L TEX disponibile n diverse pachete
99 Practic, un cod unicod este tradus printr-o comand L T X
A
A
L TEX.
E
care, la rndul ei, genereaz comenzile necesare pentru a produce
A
semnele (evident, dac sunt disponibile n L TEX).
Voi folosi tot exemple legate de limba greac veche pentru a
ilustra felul n care se aplic principiul de mai sus.
S spunem c-ai consultat tabelele unicod i ai vzut c litera
alfa are codul hex 03b1. Facei calculele100 pentru a trece n sistemul
zecimal i vei aa c alfa minuscul are codul 945. Aceste numere
de cod pot folosite ca-n exemplul care urmeaz.
97

Platon, Apologia 18b 7.


Putei consulta listele de coduri utilizabile cu pachetul ucs la adresa
de Internet http://www.unruh.de/DniQ/latex/unicode/tables/index.html.
Listele sunt alctuite chiar de ctre Dominique Unruh, care a realizat pachetul
ucs.
99
Atenie la ncrcarea lor atunci cnd este necesar!
100
Putei folosi calculatorul din accesoriile Windows sau un program special
de convertire de uniti de msur i numere, cum este Versaverter de la http:
//pawprint.net, care este un program gratuit.
98

142

10

15

20

2.3 Turnul Babel


\textelin{\unichar{945}\\
\unichar{946}\\
\unichar{947}}

Aa cum spuneam, sistemul unicod este, de fapt, transpus n


A
comenzi L TEX. De unele dintre ele s-ar putea s avei nevoie, mai
ales n cazuri speciale. Iat dou exemple:

\textelin{\textdigamma}\\
\textelin{\textsanpi}

Ultimul simbol are codul hex 03e1 (zecimal 993). Alte coduri
i comenzile aferente lor pot studiate cu ajutorul documentaiei
pachetului ucs sau citind chiar programele din pachet ca atare.

2.3.7
10

15

20

a
b
g

A
Alte pachete cu simboluri n L TEX

Unicod are ample posibiliti, dar cred c nu trebuie s exagerm cu


recursul la unicod. Dac scriem ntr-o limb european, s-ar putea
s folosim una-dou pagini cu coduri i n-are rost s ncrcm zeci
de mii de simboluri pentru a folosi cteva zeci.
Persoanele pasionate de gndirea oriental, de culturile vechi vor
desigur atrase de unicod i posibilitile acestuia. Dar chiar i
acestor persoane nu trebuie s le scape pachetele care s-ar putea s
se potriveasc mai bine cu obiectivele lor.
Favoritele mele sunt pachetele concepute de ctre Peter Wilson
pentru unele scrieri arhaice.101 Pachetele acestea sunt simple, se
compileaz uor i sunt bune pentru cineva care are cunotine extrem de limitate despre scrierile respective. Exemplul care urmeaz
provine din scrierea vechilor egipteni.

r
CV

25

30

este un cuvnt care se transcrie fonetic rh. nseamn a ti.


s
Hieroglife

Simbolul r este o gur stilizat. Simbolul C este o sit. Aceste


simboluri sunt folosite aici cu valoarea lor fonetic, dar Christian
Jacq arat c erau posibile asocieri cu transmiterea preponderent
verbal a cunoaterii i cu procesul de selecie, de cernere a idei-

lor.102 Semnul V este un determinativ pentru conceptele abstrate.


Christian Jacq sugereaz c prin inversarea sitei i a gurii obinem
un interesant joc de cuvinte. Termenul rezultat, care se transcrie
101

A se vedea documentaia creat pentru aceste pachete de ctre Peter Wilson


<peter.r.wilson@boeing.com> n dosarul \texmf\doc\doc\fonts\archaic.
102
Christian Jacq Sags mit Hieroglyphen: Lesen und Schreiben wie die alten
gypter (Hamburg: Rowohlt, 2003), p.169.

143

2. Tehnoredactarea computerizat
fonetic hr, nseamn a cdea. Determinativul este acum un om aat
a

n cdere, un om care, ignorant ind, este condamnat la decdere.103


A
Cu pachete L TEX putei scrie i-n armean, georgian, sanscrit,
chinez i multe alte limbi. Pachetele au sursele deschise i sunt chiar
mai uor de folosit dect un program cu surse ascunse.

Nu gsii literele sau simbolurile de care avei nevoie? Donald


Knuth a creat un limbaj special pentru generarea de tipuri de litere
METAFONT (fonturi). Limbajul se numete METAFONT.104 Pentru hieroglifele
egiptene din pachetul lui Peter Wilson vedei ierul pmhg.mf din
dosarul \texmf\fonts\source\public\archaic.

10

A
LT

n principiu, dac ai dobndit competena necesar, n


EX
putei include orice simbol. Desigur, la nevoie, trebuie s creai simboluri. Este ns foarte probabil c, n lumea larg a utilizatorilor
A
de L TEX, exist deja cineva care a conceput o soluie la problema
care v frmnt.

2.4

15

Tabele i formule

Multe dintre eseurile losoce nu au deloc tabele sau formule. Persoanele care folosesc intens ananaliza logic au ns nevoie cel puin
de cunotinele de baz privitoare la scrierea de formule. De asemenea, multe eseuri de losoe politic recurg la tabele statistice.

20

Voi ncepe cu tabelele pentru c nelegerea modului n care se


construiesc i se folosesc tabelele va ajuta mult la formarea deprinderilor necesare pentru a scrie formule complexe.

2.4.1

Principiile de baz ale construirii tabelelor

Tipul cel mai simplu de tabel conine doar text aranjat pe linii i
coloane. Voi descrie nti modul de a construi un mic tabel, pe care-l
voi folosi mai jos pentru a realiza un tabel ceva mai complicat.
Tabelul simplu are dou coloane i dou rnduri. Nu servete
dect la dispunerea a patru cuvinte n cele patru coluri ale unei
mici pagini.
\begin{tabular}{cc}
Liberal & Libertarian \\
Populist & Conservator \\
\end{tabular}

Liberal
Populist

Libertarian
Conservator

Tabelul este construit ntr-un mediu denumit tabular. Dup


103
104

144

Ibidem.
A se vedea aici 3.3.

25

30

2.4 Tabele i formule

10

15

20

25

30

35

\begin{tabular} trebuie adugat o pereche de acolade ntre care


este precizat alinierea coninutului coloanelor. Alinierea este indicat cu ajutorul literelor l, c, r (pentru aliniere stnga, centru, respectiv dreapta). n cazul nostru, ambele coloane au textul centrat.
Pe ecare rnd, coloanele sunt separate prin semnul &. Capetele de
rnd sunt indicate prin \\ i este important ca ecare rnd s aib
exact numrul de coloane specicat.
Pentru a crea tabele sau scheletul unor tabele ar bine ns,
la nceput cel puin, s folosii un program de creare a tabelelor
A
n L TEX. Putei folosi, de pild, LaTable. Acesta este un program
gratuit, creat de ctre Alex A. Denisov105 . Interfaa grac a programului permite crearea tabelului fr a recurge direct la comenzile
A
L TEX.
Un tabel este n fapt rodul unui mic proiect. Ca la orice proiect,
este necesar s precizai obiectivele. Cutai apoi mijloacele cele
mai potrivite pentru a atinge obiectivele xate. Desfacei totul pe
module i construii ecare modul separat, pentru a nu victime
ale complexitii tabelului.
Proiectul meu aici este s reproduc un tabel cu tipurile de ideologii, creat de ctre William S. Maddox i Stuart S. Lilie.106 Miezul
tabelului mai mare l constituie micul tabel de mai sus. Maddox i
Lilie disting ns ntre dou dimensiuni ale dezbaterii publice, ntre
dou seturi de probleme: chestiunile legate de extinderea libertilor
personale (accesul la informaii, dreptul la avort etc.) i chestiunile
legate de intervenia statului n economie. Fiecare tip de om politic
are o atitudine: pro sau contra libertilor personale extinse, pro sau
contra interveniei statului n economie. Introducerea celor dou seturi de probleme i a atitudinilor n problemele respective complic
desigur tabelul.
Procedez pas cu pas. Fac abstracie de termenii liberal, libertarian, populist, conservator; pun doar nite semne convenionale
n locul lor. Mai nti introduc un rnd i o coloan suplimentare.
Pun doar + i -, dup caz, n patru casete ale tabelului i las colul
din stnga sus liber.
Mai complicat este cu dimensiunile ca atare. Textul este lung i
a avea imediat probleme cu spaiul n pagin. Trag concluzia c,
ntr-o prim faz, este sucient s scriu un 1, respectiv 2. Dar unde?
Trebuie ca 1 s ocupe dou coloane, iar 2 dou rnduri! Asta i fac;
pun 1 n dou casete i 2 n dou casete.
105

Pagina de web a programului este http://g32.org.


William S. Maddox i Stuart A. Lilie, Beyond Liberal and Conservative:
Reassessing the political spectrum (Washington: Cato Institute, 1984), p.5.
106

145

2. Tehnoredactarea computerizat
\begin{tabular}{lccc}
&
& 1 & 1 \\
&
& + & - \\
2 & + & L1 & L2 \\
2 & - & P & C
\end{tabular}

2
2

+
-

1
+
L1
P

1
L2
C

Rezultatul este o schem a tabelului nal. Pe baza acestei scheme


vom dezvolta tabelul nal.
2.4.1.1

Tabelul complet i trimiterile la tabele

De multe ori este nevoie s ne referim la un tabel care nu se a


n imediata apropiere. n acest caz tabelului trebuie s-i dm un
nume i trebuie s declarm o etichet care s ne permit s folosim
A
mecanismul trimiterilor din L TEX.
Pn acum tabelele au fost moduri de a diviza convenabil spaiul
disponibil pe o pagin. Acum tabelul trebuie ncastrat ntr-un mediu
A
L TEX care-i permite s pluteasc n pagin.107
A
Poziia corpului plutitor o alege, n cele din urm, L TEX. Avantajul din punctul de vedere al autoarei sau autorului este c se poate
referi, precum n cazul nostru, la tipuri de ideologii adugnd i
vezi tabelul 2.1.
Cum am obinut tot acest efect? Planul a fost foarte simplu. Am
luat schema de tabel deja creat i am introdus-o ntr-un mediu
table. n mediul table se poate da o comand \caption{} pentru
titlul tabelului. Eticheta este ataat tot mediului table. Trimiterea
la tabel se face cu obinuita comand \ref{}.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

\newcommand{\mc}[3]{\multicolumn{#1}{#2}{#3}}
\begin{table}[ht]
\centering
\begin{tabular}[c]{lccc}
&
& \mc{2}{c}{Intervenia}\\
&
& \mc{2}{c}{statului}\\
&
& \mc{2}{c}{n economie}\\
&
&
pro
&
contra\\
\cline{3-4}
& \mc{1}{r|}{}
&
&\mc{1}{c|}{}\\
Extinderea
& \mc{1}{r|}{pro}
& L1
&\mc{1}{c|}{L2}\\
libertilor & \mc{1}{r|}{}
&
&\mc{1}{c|}{}\\
personale
& \mc{1}{r|}{contra}& P
&\mc{1}{c|}{C}\\
\cline{3-4}
\end{tabular}
\caption{Tipuri de ideologii dup Maddox i Lilie}
107
Termenul tehnic n englez este cel de oat. Nu doar imaginile plutesc n
pagini. Notele marginale sunt, de pild, i ele structuri plutitoare.

146

10

15

20

2.4 Tabele i formule


17
18

10

\label{TipuriDeIdeologii}
\end{table}

Comanda \multicolumn{}{}{} merit o atenie special. Pentru c numele ei este lung am redenumit-o mc (pe rndul 1 din fragA
mentul de surs L TEX de mai sus). Primul ei argument specic
numrul de coloane. Acest numr poate i 1! Al doilea argument
arat cum este aliniat textul. Al treilea argument este reprezentat
de text ca atare. n rezumat, este o comand care spune pe cte
coloane este scris un text n tabel i cum este aliniat.
Dac dup litera care specic alinierea punem o bar verical108 , atunci n tabel, la captul coloanei(coloanelor) respective
apare o linie vertical.
Liniile orizontale sunt trasate cu \cline{}; n argumentul acestei
comenzi trebuie specicat de la ce coloan pn la ce coloan se
trage linia. Comanda \hline trage o linie orizontal de-a lungul
ntregului tabel.
Intervenia
statului
n economie
pro
contra
Extinderea
libertilor
personale

pro

liberalism

libertarianism

contra

populism

conservatorism

Tabelul 2.1: Tipuri de ideologii dup Maddox i Lilie


15

Pentru a obine tabelul 2.1 nu a mai fost nevoie dect s refac


coninutul miezului iniial al tabelului.
Dac numerotarea tabelelor nu ncepe de la 1, dai comanda
\setcounter{table}{0} nainte de primul tabel.
2.4.1.2

20

Tabelele i aranjarea textului n pagin

Tabelele sunt folosite intens i pentru a crea aranjamente (uneori


destul de complicate) ale textului n pagin. De exemplu, pentru a
aranja lista de coduri i simboluri de la pagina 128 am folosit un
tabel. Redm aici doar comenzile pentru un rnd, fr a include
codurile sau simbolurile ca atare.
108

n limbajul Vim este vorba despre <char-124>.

147

2. Tehnoredactarea computerizat
1
2
3
4
5
6
7
8

\begin{longtable}[c]{lllll}
---\textless{}...\textgreater{}&
---\textless{}...\textgreater{}&
---\textless{}...\textgreater{}&
---\textless{}...\textgreater{}&
---\textless{}...\textgreater{}\\
................................
\end{longtable}

Scopul este dispunerea textului n aa fel nct s e ct mai lizibil.


A
Am folosit mediul longtable pentru ca L TEX s poat decupa tabelul n poriuni care sunt aate pe pagini diferite. Opiunea c din
primul rnd de comenzi cere sistemului s centreze ntregul tabel n
cadrul paginii.

2.4.2

Cteva idei simple despre formule

A
L TEX este ndeosebi faimos pentru capacitatea sa de a genera formule matematice. n seciunea 2.1.3.4.3, referitoare la modul matematic, am artat deja cum ne putem sluji de modul matematic n
rndurile de text. Multe eseuri losoce conin formule n limbajul
simbolic al logicii. Este, de aceea, util s trecem n revist modul
A
simbolistica de baz a logicii poate realizat n L TEX.

Negaia : $\neg{}p$\\
O notaie pentru conjuncie:\\
$p\&{}q$\\
Alt notaie pentru
conjuncie:\\
$p\wedge{}q$\\
Implicaia: $p\to{}q$\\
Echivalena: $p\equiv{}q$

10

Negaia : p
O notaie pentru conjuncie:
p&q
Alt notaie pentru conjuncie:
pq
Implicaia: p q
Echivalena: p q

Acestea sunt doar cteva dintre posibilele soluii n cazul logicii


propoziiilor. Trebuie consultate tabelele cu simboluri matematice
din documentaia MikTEX pentru a descoperi ntregul evantai de
simboluri.

15

n cazul logicii predicatelor putem folosi:


Cuantificare existenial:\\
$(\exists{}x)(Px\wedge{}Qx)$\\
Cuantificare universal:\\
$(\forall{}x)(Px\to{}Qx)$

Cuanticare existenial:
(x)(P x Qx)
Cuanticare universal:
(x)(P x Qx)

Operaiile cu mulimi i relaiile dintre mulimi sunt i ele uor


A
de reprezentat cu ajutorul L TEX.

148

20

2.4 Tabele i formule


$x$ aparine mulimii $X$:
$x\in{}X$\\
Negaia apartenenei:
$x\notin{}X$\\
Incluziunea: $Y\subset{}X$\\
Intersecia: $X\cap{}Z$\\
Reuniunea: $X\cup{}Z$\\
Complementara: $\sim{}X$

2.4.2.1

x aparine mulimii X: x X
Negaia apartenenei: x X
/
Incluziunea: Y X
Intersecia: X Z
Reuniunea: X Z
Complementara: X

Formulele din crile reale

Rezultatele matematice sunt exprimate ca formule n limbaj simbolic i, de regul, sunt scrise pe rnduri separate. Oricum, atunci
cnd citm formule din crile altora, trebuie s le punem pe un
rnd separat.

De exemplu, Adrian Miroiu, ntr-un studiu n care dezvolt ideea


sa a lumilor n interiorul lumilor, introduce un prim rezultat general
sub forma urmtorului enun:109
LK

ddac |=LK
a

A
Iat cum am codicat n L TEX enunul din cartea lui Adrian
Miroiu:
1
2
3
4

10

15

20

\begin{displaymath}
\mathrm{\vdash_{\scriptscriptstyle LK}\varphi\ ddac\breve{a}\
\models_{\scriptscriptstyle LK}\varphi}
\end{displaymath}
A
Codicarea L TEX este destul de transparent pentru cei care tiu
logic. S-ar putea spune chiar c ofer un plus de explicaii. Trebuie
totui fcute cteva comentarii.

Prima observaie este aceea c trebuie s tratm modul matematic ca un loc n care n-are sens s venim cu obiceiurile de a scrie
A
n mod text. n primul rnd, n mod automat, L TEX scrie cursiv
textul matematic. De aici necesitatea comenzii \mathrm{}, care-i
spune sistemului s scrie cu tipul de liter roman.
n al doilea rnd, folosirea literelor n modul matematic are particularitile sale.110 Literele greceti, de pild, se obin cu ajutorul litere
unor comenzi speciale. Am folosit \varphi i nu \phi pentru c greceti n
aceasta era varianta lui f folosit n textul lui Adrian Miroiu.
modul
n al treilea rnd, trebuie observat rolul spaierii i alegerii di- matemamensiunii literelor n modul matematic. Barele oblice inverse urmate tic
109
110

Adrian Miroiu, Constructe formale (Bucureti: Editura Trei, 2000), p.16.


Pentru literele romneti n modul matematic vezi 2.4.2.2.

149

2. Tehnoredactarea computerizat
de un spaiu sunt comenzi! Ele cer introducerea unui spaiu, menit
s elimine eventuale ambiguiti. De asemenea, o pereche de acolade
(fr nimica ntre ele) foreaz mrirea spaiului alb. De aici lipsa
lor dup \vdash sau \models. Cu acolade dup comenzi, rezultatul
ar LK sau |= LK .

Declaraia \scriptscriptstyle corecteaz dimensiunea indicelui, reducnd-o la dimensiunea unui indice la indice. Observai, n
acest sens, diferena dintre LK i LK .
Un alt exemplu, extras dintr-o carte a lui Mircea Dumitru, pune
i el probleme interesante de tehnoredactare.111 Fragmentul citat
mai jos este o parte din deniia noiunii de satisfacere n logica
modal a propoziiilor(LLMP). Iat fragmentul:

10

pentru ecare fbf n LLMP,


(M, w) |= ddac (u WM )(RM wu i (M, u) |= )
Prima problem a codicrii este scrierea pe mai multe rnduri.
Ar trebui s construim un tabel! A se vedea acest lucru, pentru
modul matematic, n 2.4.2.4. Formula n sine este uor de neles
pentru cei care au citit un curs elementar de semantic a logicilor
modale. Chiar dac nu o nelegei, problemele de tehnoredactare
sunt interesante n sine.
Exist o simetrie ntre cele dou rnduri citate. Primul este scris
n modul text, dar are o liter greceasc realizat n mod matematic.
Al doilea rnd este scris n modul matematic, dar are dou inserii
n mod text dup cum se vede din rndurile de cod de mai jos.
1
2
3
4
5
6

20

pentru fiecare fbf $\Phi$ n LLMP,


\begin{displaymath}
(\mathcal{M},w)\models{}\ \diamondsuit{}\Phi{}\ \text{ddac}\
(\exists{}u\in{}W_{\mathcal{M}}) (R_{\mathcal{M}}wu\ \text{i}\
(\mathcal{M},u)\models{}\Phi{})
\end{displaymath}

text n
modul Comanda \text{} cu ajutorul creia am inserat text n modul mamatema- tematic nu este accesibil dac ai ncrcat doar nucleul sistemului
A
tic L TEX. Trebuie s ncrcai pachetul amstext.112
111

Mircea Dumitru, Modalitate i incompletitudine (Bucureti: Paideia, 2001),


pp.22-23.
112
A
Pachetul amstext ar ncrcat automat dac a folosi AMS-L TEX. n-are
ns rost s ncarc artileria grea de la American Mathematical Society n aceast
carte. Pentru o explicaie mai detaliat a comenzii \text{} vezi cartea lui Paul
A. Blaga i Horia F. Pop[1, p.156].

150

15

25

2.4 Tabele i formule


Orict ar putea prea de curios problema cea mare este litera de
pe rndul 4 din codul de mai sus. Obinerea ei cu ajutorul comenzii
\text{} este mai uoar dect realizarea ei n modul matematic
pur.
5

Dei exemplele sunt simple n coninutul lor, tehnoredactarea lor


pune acelai tip de probleme pe care le-ar formulele cu un coninut
mai dicil din crile citate. Pentru listele de simboluri care pot
utilizate trebuie consultat documentaia.113

2.4.2.2
10

15

Modul matematic i literele romneti

Punerea de diacritice pe litere n modul matematic difer de operaia similar din modul text. Dac scriu un n mod matematic,
sistemul traduce acest lucru prin comanda \u{a}, care este inacceptabil n mod matematic. Trebuie scris \breve{a} n mod matematic.
Iat literele romneti n mod matematic pur (fr pachetul
amstext):
$\breve{a}$ $\breve{A}$\\
aA

$\hat{a}$
$\hat{A}$\\

$\hat{\imath}$
$\hat{I}$\\ a A
$\stackrel{\textstyle{}s}{,}$ I

$\stackrel{\textstyle{}S}{,}$\\ s S
, ,
$\stackrel{\textstyle{}t}{,}$ t T
, ,
$\stackrel{\textstyle{}T}{,}$

20

Comenzile pentru i n mod matematic sunt meterite cu


ajutorul comenzii \stackrel{}{}. Ea este larg folosit pentru a
df
produce simboluri precum = (cu comanda $\stackrel{df}{=}$).
Exemplele de mai sus nu au probabil mare valoare practic, dar
A
ele ilustreaz posibilitatea de a crea n L TEX simbolurile de care
avem nevoie.

2.4.2.3
25

Numerotarea formulelor

Putem pune pe rnduri separate formule, fr s le numerotm. Este


pcat ns s nu ne folosim de posibilitatea de a numerota formulele.
A
Putem apoi folosi mecanismul standard din L TEX pentru a ne referi
la o formul.
113

A
Eu am folosit n special Scott Pakin The Comprehensive L TEX Symbol List (v. ierul symbols.dvi n dosarul comprehensive din documentaia
MikTEX).

151

2. Tehnoredactarea computerizat
Dei pare complicat, axioma Nicodukasiewicz pentru logica
A
propoziiilor(2.1) nu este greu de scris n L TEX.
[p/(q/r)]/ [s/(s/s)]/{(s/q)/[(p/s)/(p/s)]}

(2.1)

Propoziia compus p/q este fals dac ambele variabile propoA


ziionale iau valoarea adevrat; altfel este adevrat. Codul L TEX
folosit la scrierea mediului n care este plasat axioma este urmtorul:
1
2
3
4

\begin{equation}
[p/(q/r)]/\bigg([s/(s/s)]/\{(s/q)/[(p/s)/(p/s)]\}\bigg)
\label{NicodLukasiewicz}
\end{equation}

Referirile la formulele numerotate se fac cu ajutorul comenzii


\ref{} care ia drept argument eticheta declarat n cadrul mediului
n care este scris formula.
2.4.2.4

Tabele care conin formule

10

Tabelele care conin text se construiesc n mediul tabular. Ar


posibil s introducem simboluri sau formule matematice i-n aceste
tabele, prin trecerea n poriunea respectiv n modul matematic.
Recomandabil este ns s folosim pentru tabelele cu formule mediul
array.

15

Voi ncepe cu un tip de tabel familiar oricui ncepe s nvee


logic: matricile conectorilor propoziionali.
\begin{displaymath}
\begin{array}{llc}
p & q & p \to{}q \\
\hline
1 & 1 & 1 \\
1 & 0 & 0 \\
0 & 1 & 1 \\
0 & 0 & 1
\end{array}
\end{displaymath}

p
1
1
0
0

q pq
1
1
0
0
1
1
0
1

Pentru un tabel asemenea celui de mai sus, scriei mai nti comenzile pentru mediul care aeaz formule nenumerotate. Procedai apoi ca i-n cazul mediului tabular, dar folosii mediul array,
n care putei introduce formule.
Tabelele cu formule sunt evident mult mai utile dac ne putem
referi la ele de la distan. De exemplu, vreau s v dau un exemplu

152

20

2.4 Tabele i formule


de demonstrare a unei tautologii din logica propoziiilor. Atunci voi
trimite la tabelul 2.2.
p
1
1
0
0

q p q p (p q) (p (p q)) q
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
Tabelul 2.2: Demonstrarea unei tautologii

A
Sursa L TEX a tabelului 2.2 sper c este sucient de clar pentru
a nelege modul n care este construit tabelul. Am evitat n mod
special utilizarea & drept conectiv pentru conjuncie pentru a nu
genera confuzii. Simbolul rezervat & este separatorul coloanelor, nu
i nume pentru o comand de generare a simbolului conectorului
conjunciei.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

10

15

\begin{table}[htb]
\centering
\begin{displaymath}
\begin{array}{llccc}
p & q & p\to{}q & p\wedge{}(p\to{}q) & (p\wedge{}(p\to{}q))\to{}q\\
\hline
1 & 1 &
1
&
1
&
1
\\
1 & 0 &
0
&
0
&
1
\\
0 & 1 &
1
&
0
&
1
\\
0 & 0 &
1
&
0
&
1
\end{array}
\end{displaymath}
\caption{Demonstrarea unei tautologii}
\label{DemonstrareaUneiTautologii}
\end{table}
A
Putei localiza poziia unui tabel n cadrul sursei L TEX cu ajutorul TEXnicCenter. Putei, de asemenea, produce o list a tabelelor n
documentul nal, plasnd comanda \listoftables dup comanda
\tableofcontents din ierul principal al proiectului.

Este necesar s comentm este necesar puin folosirea liniilor n


tabele. Recomandarea noastr este de a folosi linii doar pentru a face
tabelul clar. Liniile superue sau cu caracter pur decorativ nu-i au
locul ntr-o lucrare academic.
O linie sub capul de tabel este, de multe ori, sucient. Dac tabelul conine elemente de sintez n partea de jos a coloanelor, atunci

153

2. Tehnoredactarea computerizat
o linie simpl sau dubl este necesar deasupra ultimului rnd. Ea
face tabelul mai clar. Abuzul de linii este total nerecomandabil.
Crearea de tabele poate un lucru extrem de pretenios. Adesea
ele sunt prea late sau prea lungi i aa mai departe. Prezentarea
noastr a fost doar una sumar. Trebuie s citii o carte despre
A
L TEX care acord mai mult spaiu tabelelor.114 Foarte util este i
documentaia inclus n distribuia MikTEX.
2.4.2.5

Formulele ca tabele

Am pregtit recent un text n care voiam s citez o funcie pe care o


discut Kripke.115 Funcia, pe care Kripke o numete quus (simbolic ), genereaz dou tipuri de valori: suma valorilor argumentelor
sale i o valoare constant. Condiia pentru a genera primul tip de
rezultate este ca valoarea oricruia dintre cele dou argumente ale
funciei s e mai mic de 57. Altfel, este generat constanta.
Pentru a descrie simbolic funcia quus Kripke folosete o notaie
cu dou semne de egalitate i nici o acolad. Practica uzual este
ns diferit i o voi respecta aici.116
Chiar dac descrierea simbolic nu este complicat, trebuie s
gndim tot din perspectiva proiectului. Obiectivele noastre sunt s
prezentm:

10

15

20

unu numele funciei i argumentele sale;


doi valoarea generat cnd este adevrat prima condiie;
trei valoarea generat cnd este adevrat a doua condiie.
Pentru a atinge primul obiectiv este sucient s scriem un rnd de
text matematic. Al doilea i al treilea obiectiv presupun folosirea
unui tabel (cu dou coloane i dou rnduri).

25

Construim separat elementele formulei 2.2 ca-n exemplele care


urmeaz. Ca deobicei, este important s executm totul pas cu pas.
Scriem mai nti rndul de text matematic.
\begin{displaymath}
x \oplus y =
\end{displaymath}
114

xy =

A se vedea, n limba romn, cartea lui Paul A. Blaga i Horia F. Pop[1,


pp.50-55, 212-219].
115
n Saul A. Kripke, Wittgenstein on Rules and Private Language (Oxford:
Blackwell, 1982), p.9.
116
Pentru un model care respect standardele uzuale v. Lamport[4, p.47].

154

30

2.4 Tabele i formule


Elaborm apoi tabelul cu elementele generate de ctre funcie,
n cele dou condiii specicate mai sus.
\begin{displaymath}
\begin{array}{ll}
x+y, & \text{dac}\ x,y<57\\
5 & \text{altfel}
\end{array}
\end{displaymath}

x + y, dac x, y < 57
5
altfel

Testm posibilitatea de a pune tabelul ntre acolade.


\begin{displaymath}
\left\{
\begin{array}{ll}
x+y, & \text{dac}\ x,y<57\\
5 & \text{altfel}
\end{array}
\right\}
\end{displaymath}

x + y, dac x, y < 57
5
altfel

Acum nu este greu s obinem forma nal, corectnd eventuale


inexactiti, i eliminnd acolada din dreapta.

xy =

(2.2)

Perechea de comenzi \left \right permite crearea de perechi de


paranteze. Felul n care arat paranteza depinde de felul n care completm numele comenzii. Dac punem { apare acolada din stnga.
Putem pune i o parantez rotund, una ptrat sau o bar vertical (pentru matrici). Dac vrem ca paranteza s e invizibil,
atunci punem un punct dup numele comenzii. Iat acum i forma
A
nal a codului L TEX pentru descrierea funciei lui Kripke.

10

1
2
3
4
5
6
7
8
9

15

x + y, dac x, y < 57
5
altfel

\begin{equation}
x \oplus y = \left\{
\begin{array}{ll}
x+y,
&
\text{dac}\ x,y<57 \\
5
&
\text{altfel}
\end{array}
\right.
\label{quus}
\end{equation}

A
n ciuda aparentei simpliti a codului L TEX, dac ncercai s-l
construii fr nici un plan, s-ar putea s v trezii ntr-un noian de
erori. Orice tabel, orict de simplu, trebuie proiectat atent.

155

2. Tehnoredactarea computerizat

2.4.3

Tehnicile avansate de scriere matematic

A
Scrierea surselor L TEX pentru modul matematic este un lucru mult
mai pretenios dect pregtirea prii care este n mod text. Din
fericire, crile de logic sau de losoa tiinei, cele care folosesc
deobiecei cel mai intens limbajele simbolice, nu conin la tot pasul
sisteme de ecuaii complicate.

n cazul cnd vrei s scriei sisteme de ecuaii sau s grupai


grac rnduri cu formule, trebuie s folosii mediul eqnarray.
Dac dorii s obinei rezultate i mai sosticate, trebuie s
recurgei la amsmath i alte pachete dedicate special matematicii.

10

A
Marea majoritate a introducerilor n L TEX sunt scrise din perspectiva utilizrii sistemului pentru a tehnoredacta studii i cri de
matematic i informatic. Nu vei duce lips de surse de documentare dac v intereseaz tehnicile avansate de elaborare a textelor
care conin formule complicate.117

15

2.5

Indexarea electronic

A
L TEX folosete un program special pentru a genera indici. Folosirea
acestui compilator de indici este mai simpl dect n cazul BibTEX.

Ca i-n cazul BibTEX, mediul integrat TEXnicCenter are,la proprietile proiectului, o opiune pentru folosirea programului MakeIndex118 . Aceast opiune trebuie bifat, dac vrei s generai
un indice.
Studiai, de asemenea, Dene Output Proles. . . din meniul Build
al TEXnicCenter i vei vedea cum este apelat makeindex.exe n
mediul integrat.
n preambulul documentului principal al proiectului trebuie s
A
introducei dou comenzi L TEX:
1
2

\usepackage{makeidx}
\makeindex

La sfritul corpului documentului principal, dup comenzile pentru


bibliograe, introducei comanda \printindex.
117

n limba romn putei consulta cartea lui Paul A. Blaga i Horia F. Pop[1].
Autorul programul MakeIndex este Pehong Chen. Pentru detalii referitoare
la program i utilizarea lui, a se vedea Leslie Lamport, MakeIndex: An Index
A
Processor for L TEX, \texmf\doc\makeindex\makeindex.dvi n documentaia
MikTEX.
118

156

20

25

2.5 Indexarea electronic


A
Marele avantaj al indexrii n L TEX este posibilitatea de a indexa
din mers. N-a recomanda ns acest fel de a indexa. Pentru a aa
principiile indexrii studiai un manual de indexare.

Comanda de baz este \index{}. n argumentul ei se plaseaz


un descriptor. Comanda aceasta trebuie folosit precum comanda
\label{}; ea trebuie pus acolo unde vrem ca indicele de la sfrit
s ne trimit n text.

Creai un proiect test i indexai n felul indicat mai sus. Vedei


ce apare n ierul dvi. Examinai, de asemenea, ierul de tip ind,
care este generat automat de MakeIndex. Nu este greu s v dai
seama c-ai putea crea acest ier i manual. Atta timp ct utilizai
MakeIndex, nu operai schimbri n acest ier. Ele vor distruse
la orice recompilare. Modicai comenzile din surse.

10

Putei folosi subdescriptori dup modelul de mai jos:


1
2

\index{indici!generarea manual}
\index{indici!generarea lor cu MakeIndex}

Descriptorul este separat de subdescriptor cu ajutorul semnului exclamrii.

15

Pentru a realiza trimiteri de la un descriptor la altul n cadrul


listei de indici folosii modelul urmtor:
1

20

\index{editor de texte|see{Vim}}

Bara vertical precede trimiterea. Pachetul babel va traduce pe


see.
Folosii capacitile de cutare cu ajutorul expresiilor regulate
ale TEXnicCenter pentru a unica intrrile. De asemenea, trebuie
s compilai cel puin de dou ori documentul pentru ca s apar
modicrile operate n indice.119

25

Pentru a imita notarea tradiional a descriptorilor pe marginea


paginii folosii pachetul showidx. Pachetul are un rol pur auxiliar.
Nu eliminai bad box -urile generate de notele marginale introduse
de showidx. Oprii utilizarea acestui pachet dup ce ai terminat
indexarea.

119
Prima oar este modicat doar ierul de tip ind. Abia a doua oar se modic i documentul nal. Dac avei probleme, citii mesajele compilatorului.

157

2. Tehnoredactarea computerizat

158

Capitolul 3

Pensula electronic
Cuprins
3.1

3.2
3.3

10

Imaginile . . . . . . . . . . . . . . . . . .
3.1.1 Programul Gimp . . . . . . . . . .
3.1.2 Limbajul PostScript . . . . . . . .
A
Inserarea imaginilor n L TEX . . . . . . .
3.2.1 Inserarea de imagini n iere pdf
Inserarea literelor ca inserare de imagini .
3.3.1 Desenarea unei litere . . . . . . . .
3.3.2 Inserarea literei n text . . . . . . .

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

159
161
162
164
165
167
167
170

15

A
L TEX are propriile sale comenzi i medii pentru realizarea de
diagrame i desene cu caracter tehnic. Prezentarea lor ar depi cu
mult ambiiile foarte reduse ale acestei anexe.

20

Eseurile losoce nu abund n diagrame i nici n desene sau


imagini. Cteva noiuni elementare privitoare la imaginile compuA
terizate i integrarea lor n sursele L TEX sunt suciente pentru persoanele care scriu un eseu losoc.

3.1
25

30

Imaginile

n anexa 2 ne-am referit adesea, n mod metaforic, la literele de


plumb ale meterului tipograf. Computerul n-are litere de plumb.
Literele de pe ecran sunt desenate din nite puncte denumite pixeli 1 ; punctele acestea pot albe, negre sau colorate.
Dac imprimai pe un printer cu jet de cerneal, literele de pe
foaia de hrtie sunt compuse din picturi de cerneal extrem de
mici.
1

Denumirea vine de la picture element (element al unei imagini).

3. Pensula electronic
A
Atunci cnd tehnoredactm un text n L TEX nu ne intereseaz
punctele de pe ecran sau de pe foaia de hrtie. Gndim din perspectiva cutiilor cu litere plasate pe ecran sau pe foaie, nu gndim
la nivelul pixelilor. Dac vrem s nelegem ns secretele imaginilor
generate de ctre computer, trebuie s ne ndreptm atenia ctre
aceste puncte minuscule.

O prim strategie de realizare a imaginilor pe ecran este aceea


de a nota ntr-un ier informaiile despre pixeli, n aa fel nct
s m n stare s reconstituim imaginea pe ecran cu ajutorul unui
program de vizualizare.

10

Putei face, folosind Vim ca pe un editor de coduri hex, precum


i un program de vizualizare ca IrfanView,2 cteva experimente cu
un ier ce stocheaz imagini.
Deschidei IrfanView i mergei la rubrica Create New (empty)
image din meniul Image. Creai o imagine de 33 pixeli i cu 24bpp.3
Salvai ierul nou creat dndu-i o denumire urmat de extensia bmp.
Deschidei ierul nou creat cu Vim i trecei la editarea n hex.
Modicai ierul dup modelul de mai jos, schimbnd doar ultimele
trei rnduri, fr a altera ultimele patru cifre hex. Trecei din nou
n modul normal, salvai i nchidei.
424d
0000
0000
0000
0000
ff00

5a00
0300
2400
0000
0000
0000

0000
0000
0000
0000
00ff
ffff

0000
0300
9c0e
ffff
ffff
ff00

0000
0000
0000
ff00
0000
0000

3600
0100
9c0e
0000
0000
0d0a

0000
1800
0000
ffff
0000

Schimbai un grup ffffff n ff0000. Nu uitai s trecei din hex


n modul normal Vim i s salvai schimbarea. Pixelul a devenit

Programul IrfanView poate descrcat gratuit de la adresa de Internet


<http://www.irfanview.com> i este un program de vizualizare de imagini
foarte popular.
3
Practic, 24bpp nseamn c ecrui pixel i corespund patru perechi de dou
cifre hex. Primele trei perechi sunt folosite pentru informaii despre culorile
albastru, verde i rou.
4
Apsai tasta f.

160

20

2800
0000
0000
ff00
ffff

Atenie! Manipularea efectuat nu va scpa neobservat cuiva


competent (unele caracteristici ale imaginii, specicate pe rndul al
treilea, nu mai corespund), dar ierul poate vizualizat cu IrfanView. Imaginea, mrit sucient cu ajutorul IrfanView,4 arat ca
un fragment dintr-o tabl de ah, cu ptrate albe i ptrate negre.
Ptratele albe au culoarea specicat cu ajutorul irurilor ffffff.

15

25

3.1 Imaginile
albastru n programul de vizualizare, dup ce ai remprosptat5
imaginea. Schimbai pe ffffff n 00ff00 i pixelul devine verde.
Schimbai pe ffffff n 0000ff i pixelul devine rou.
5

Fiierele create n modul descris mai sus, conin o hart a pixelilor. Nu este de mirare c, atunci cnd mrim o astfel de imagine,
lucrurile arat precum n gura 3.1.

Figura 3.1: O imagine care folosete o hart a pixelilor mrit

10

Atunci cnd schimbm dimensiunile unei imagini bazate pe o


hart a pixelilor, n mod inevitabil programul de vizualizare n-are
informaii suciente dect pentru nite pete de culoare mai mari.
Imaginea capt un aer de pictur impresionist.

3.1.1

Programul Gimp

Vim este un excelent editor de iere de tip text, dar n-ar putea
folosit pentru editarea de imagini. ntr-un fel, exemplul cu care am
nceput seciunea 3.1 ne arat de ce acest lucru este adevrat.
15

20

Programul pe care l-a recomanda n mod deosebit pentru prelucrarea hrilor de pixeli este Gimp.6 Gimp poate deschide inclusiv mica imagine creat prin manipularea codurilor hex (vezi pagina 160, rndul 20).
Posibilitile Gimp sunt numeroase, dar descrierea lor nu constituie obiectivul anexei de fa. Multe dintre aciunile pe care le
putei ntreprinde cu Gimp sunt evidente din denumirea meniurilor
contextuale ale ferestrelor programului.
O singur observaie ar de fcut aici. Ar inutil s ncercai
s schimbai o imagine de 3 3 pixeli cu pensulele Gimp, orict
5

n cazul Vim i IrfanView trebuie s nchidei i s redeschidei ierele.


Vizitai <http://www.gimp.org> pentru a aa cum putei descrca versiunea Gimp pentru Windows. Sub Linux, Gimp este programul standard de
prelucrare a imaginilor i l conine orice distribuie de Linux. Gimp este o
prescurtare de la GNU image manipulation program. A fost creat de Spencer
Kimball i Peter Mattis. Ca orice program GNU, cu surs deschis, include contribuii a numeroi programatori. Chiar i versiunea sub Windows este uimitor
de stabil i de ecient.
6

161

3. Pensula electronic
de mici le-ai face. Selectai zona (practic pixelii) pe care vrei s o
modicai i umplei-o cu culoarea dorit.

3.1.2

Limbajul PostScript

PostScript este un limbaj creat de ctre rma Adobe. A fost iniial


proiectat ca limbaj special pentru printere. Variantele ulterioare au
adugat elementele necesare pentru lucrul i din perspectiva ecranului.
Sursele scrise n PostScript sunt iere de tip text. Vim este perfect capabil s creeze iere PostScript. Aceste iere au extensia ps.
Pentru interpretarea ierelor PostScript este nevoie de un program
precum Ghostscript.
Pentru a v da seama care este diferena dintre graca PostScript
i cea bazat pe hri ale pixelilor, cel mai simplu lucru este s
experimentai puin cu un ier PostScript. Creai un ier phi.ps
cu urmtorul coninut:7
1
2
3
4
5
6
7
8
9
10
11
12
13
14

%!PS
%%BoundingBox: 18 28 124 180
/cm { 28.35 mul } def % definiia centimetrului
%%EndProlog
1 cm 6 cm moveto
% punctul din care va fi desenat figura
1 cm 3.5 cm lineto
% marcarea unei ci
4 cm 3.5 cm lineto
% marcarea mijlocului lui phi
4 cm 6 cm lineto
% ncepem bucla lui phi
2.5 cm 6 cm lineto
% ne ntoarcem ctre mijloc
2.5 cm 1 cm lineto
% ultima cale marcat
0.7 cm setlinewidth
% grosimea liniei pe calea trasat
2 setlinejoin
% rotunjirea colurilor
stroke
% punerea de cerneal pe calea trasat
showpage
% afiarea paginii

Rezultatul, vizualizat cu Ghostscript este o versiune stilizat a


literei greceti phi.

162

Drept ghid pentru limbajul PostScript am folosit McGilton i Campione[5].

10

15

3.1 Imaginile
Persoanele familiarizate cu notaia polonez din logica simbolic
pot nelege mai uor sintaxa PostScript. Limbajul creat de ctre
rma Adobe folosete notaia polonez invers.8
5

10

15

Primul rnd din orice program PostScript ncepe cu %!PS. Sar


peste cel de al doilea rnd. Voi reveni la el mai trziu. Al treilea rnd
conine o deniie a centimetrului. Deniia este necesar pentru c
PostScript folosete ca unic unitate de msur punctele PostScript.
267 de puncte PostScript sunt egale cu aproximativ 268 de puncte
tipograce.
Rndurile 5-10 cuprind comenzile de trasare a unei ci. Ele nu
deseneaz nimic. Dac punei semnul comentariului % n faa penultimului rnd, vei vedea c nu se deseneaz absolut nimic. Ideea
de baz este c se traseaz o cale i apoi se aterne cerneala pe
calea respectiv. Restul se poate deduce din comentariile incluse n
program.
Mrii imaginea literei phi. Nu se produce nici un fel de spargere
n puncte a literei. Ea este perfect scalabil.

20

25

30

35

Explicaia de principiu a fenomenului de mai sus este simpl.


Dac imaginea se mrete, programul retraseaz calea, n funcie de
procentul cu care cresc dimensiunile imaginii. Cerneala este adugat abia ulterior. Interpretorul de PostScript nu depinde n acest
caz de datele privitoare la pixeli. Graca de acest tip se numete
grac vectorial i contrasteaz cu bitmap-purile (cu hrile de
pixeli).
Acum putem explica i cel de al doilea rnd din programul PostScript. Acest rnd declar o ram, o cutie n jurul imaginii. Este
aproape inutil s spun c aceast cutie din jurul imaginii joac un
A
rol deosebit de important n integrarea imaginii PostScript n L TEX.
Ghostview poate genera automat cutia. tergei rndul 2 din
phi.txt i deschidei ierul cu Ghostview. Creai un ier PostScript ncapsulat cu ajutorul dialogului ps to eps din meniul File.
Salvai-l cu numele phi.eps i citii-l ca text cu ajutorul Vim. Vei
gsi cutia creat n mod automat. O putei vizualiza n Ghostviev
cu ajutorul opiunii Show Bounding Box.

3.1.2.1

Prelucrarea ierelor PostScript n Gimp

Gimp este preponderent orientat ctre graca hrilor de pixeli. Este


ns perfect capabil s deschid un ier PostScript. Trebuie ns s
8

A se vedea i limbajul bst n seciunea 2.2.3.

163

3. Pensula electronic
avei instalat Ghostscript pe computer. Gimp folosete Ghostscript
pentru a lucra cu iere PostScript.
Gimp poate, de pild, deschide fr probleme ierul phi.ps, cu
sau fr cutia delimitatoare.
Fii atente i ateni la faptul c Gimp, dac modicai ierul
PostScript, se va folosi de posibilitatea de a construi hri de pixeli
n PostScript! Pe lng faptul c ierul va de needitat cu mna,
imaginea va avea probleme la scalare ca orice bitmap.

Dac avei deja creat un ier PostScript, lucrul cel mai bun pe
care-l poate face Gimp este s-l transforme ntr-un ier jpg.

10

Ciclul optim de lucru cu Gimp este n trei timpi. n primul timp,


creai un ier xcf (formatul nativ al Gimp) i prelucrai acest ier.
n al doilea timp, transformai ierul xcf ntr-un ier PostScript
cu BoundingBox. n al treilea timp, transformai acest ier ntr-un
ier jpg.9

15

n sfrit, nu uitai c trecerea de la ierul jpg la cel xcf nu


este, de fapt, posibil. Fiierul jpg comprim imaginea creat. Facei
toate prelucrrile n formatul nativ Gimp.

3.2

A
Inserarea imaginilor n L TEX

Cutiile imaginilor PostScript sunt inserate de ctre TEX printre cutiile proprii. Rezultatul este de o calitate deosebit de bun i este
foarte uor de obinut.
Voi descrie dou cazuri: inserarea simpl a unei imagini PostScript i transformarea ei ntr-un corp otant, la care ne putem
A
referi cu ajutorul mecanismului trimiterilor din L TEX.

20

25

Litera phi stilizat este inserat n textul de fa cu ajutorul


A
urmtoarelor rnduri din sursa L TEX:
1
2
3
4
5
6

...
\usepackage{graphicx}
...
\begin{center}
\includegraphics[scale=1]{./imagini/phi.ps}
\end{center}

Mediul center n-are dect funcia pe care o sugereaz numele su,


aceea de a centra imaginea n raport cu textul. Dac ai creat ieA
rul phi.ps l putei insera ntr-un document L TEX i putei experimenta schimbnd valoarea opiunii scale.
9

164

Pentru a nelege utilizarea ierelor jpg vedei 3.2.1.

30

A
3.2 Inserarea imaginilor n L TEX
A
Cealalt metod este ilustrat cu ajutorul codului L TEX folosit
pentru a insera gura 3.1:

1
2
3
4
5

\begin{figure}[ht]
\includegraphics[width=.98\textwidth]{./imagini/bitmap.ps}
\caption{O imagine care folosete o hart a pixelilor mrit}
\label{puncteBitmap}
\end{figure}

Mediul figure joac acelai rol pentru imagini ca i mediul table


pentru tabele. Observai succesiunea comenzilor din rndurile 2-4.
Am folosit opiunea care indic direct limea (ca procent din limea textului).

Trimiterile la guri se pot face folosind comanda \ref{} i eticheta denit n mediul figure.
10

Mediul figure creeaz un obiect care plutete prin text. OpiuA


nile sale h i t i spun L TEX s ncerce e o plasare chiar n punctul
respectiv din text, e n partea de sus a paginii.

15

n cazul eseurilor cu caracter academic a pleda pentru acest


mod sobru de inserare a gurilor n text. Mediul wrapfig permite
ngroparea imaginilor n text, dar orice rescriere a textului d peste
cap toat munca de potrivire a textului n jurul gurii. Este o soluie
pentru tehnoredactarea unui text care nu mai sufer schimbri. Se
ciocnete de ideea de baz a elaborrii textului academic: rescrierea
repetat a textului.

20

Dac vrei s avei text alturi de o imagine, fr prea multe


complicaii, putei folosi mediul minipage. Cu ajutorul lui secionai
pagina i plasai ntr-o parte text, n alta imaginea.10

3.2.1

Inserarea de imagini n iere pdf

Dac PostScript este un limbaj orientat n special ctre tiprirea


pe hrtie, ruda sa PDF este un limbaj orientat ctre prodecerea de
cri electronice. Un ier pdf este aidoma unui text tiprit, dar
este destinat lecturii pe un ecran de computer.

25

Limbajul PDF are propriile sale comenzi i, folosind compilatorul


pdflatex.exe, putei avea acces la ele. Exist, de asemenea, o serie
A
de pachete L TEX i opiuni orientate ctre producerea de iere pdf.
Pachetul graphics trebuie apelat astfel:

30

\usepackage[pdftex]{graphicx}
10

A se vedea aici efectul acestei soluii la pagina 127, rndul 5.

165

3. Pensula electronic
Un ier pdf are dou mari avantaje: este portabil (poate vzut
att sub Unix, ct i sub Windows); este compact i uor de trimis
sau de descrcat pe Internet. Cu alte cuvinte, este o superb carte
electronic.
Putei converti direct un ier ps ntr-unul pdf folosind Ghostscript. Recomandabil ar s folosii opiunea LaTeX => PS => PDF
la compilare, disponibil n versiunea 1 beta 6.20 a TEXnicCenter.
Dezavantajul convertirii descrise mai sus este acela c n-avei
acces la compilatorul pdflatex. Limbajul PDF are specicul su,
n raport cu PostScript, i este resc s e aa: o carte electronic
se citete altfel dect una tiprit.

10

Exist ns o problem cu compilatorul pdflatex: nu cunoate


limbajul PostScript. Dac avei imagini PostScript, vei primi la
compilare un mesaj de eroare: unknown graphics extension.
Exist dou soluii. Prima const n convertirea separat a ierelor PostScript n iere pdf i includerea lor ca pdf-uri. A doua
const n folosirea unui ier jpg.
Formatul jpg este de tipul bitmap (harta pixelilor).11 Nu rezist
iere jpg la scalare. Este, n schimb, un ier comprimat. Fiierele bitmap
pure tind s e foarte mari. Fiierele jpg sunt de mici dimensiuni.
Au i marele avantaj de a putea integrate n ierul dvi, dac
facei o manevr foarte simpl.
De exemplu, pentru a integra n dvi ierul phi.jpg, trebuie
creat un ier de tip text phi.bb (acelai nume, dar extensia bb).
Fiierul bb cuprinde un singur rnd, o copie exact a rndului din
ierul ps sau eps n care este declarat cutia, BoundingBox-ul.
Fiierul jpg poate integrat apoi i-n ierul pdf nal prin compilare cu pdflatex. Sfatul meu este s folosii iere jpg. Orict ar
putea prea de curios, aceste iere sunt mai uor de integrat n documentul nal n limbaj PDF dect ierele pdf. De asemenea, ele
permit lucrul cu ierul dvi. Este absolut nerecomandabil s lucrai
pe parcurs cu ierul pdf.
Realizarea ierului pdf este o operaiune similar cu cea de tiprire pe un printer. Diferena const doar n faptul c se folosete
o cerneal electronic aplicat pe o foaie de hrtie electronic.
Nu confundai sub nici o form un ier pdf cu unul de tip text sau
cu un ier dvi, care v permite s regsii exact rndul din sursa
A
L TEX care a generat un anumit efect pe ecran.

11

166

Putei crea iere jpg cu Gimp. A se vedea 3.2.1.

15

20

25

30

35

3.3 Inserarea literelor ca inserare de imagini

3.3

Inserarea literelor ca inserare de imagini

TEX este specializat n plasarea de cutii pe foaia de hrtie. Pentru


ca s poat pune ns litere i simboluri n cutii trebuie s colaboreze cu METAFONT. Din aceast colaborare rezult fora nebnuit
a sistemului TEX.

Ca i TEX, METAFONT lucreaz n fundal, ascuns n spatele perA


delei de macro-uri L TEX.

3.3.1

Desenarea unei litere

Limbajul METAFONT este orientat ctre descrierea la nivel meta a


tipurilor de litere. Probabil c prea puine cititoare sau cititori se
vor aventura prin hiurile METAFONT. Prezentarea noastr este, n
orice caz, pentru cei care vor s tie cteva chestiuni de principiu.

10

Ca deobicei, ideea noastr este c modul cel mai bun de a nva (chiar i principiile n materie de programare) este meterirea
unui program i experimentarea. Creai cu Vim un ier phi.mf cu
urmtorul coninut:

15

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

u#:=1/2pt#;
define_pixels(u);
beginchar(70,12u#,12u#,6u#);"Litera phi";
x1=x2=u; x3=x4=11u;
y1=y4=y5=7u; y2=y3=u;
x5=x6=6u;
bot y6=-5u;
pickup pencircle scaled 0.5pt;
draw z1..z2;
draw z2..z3;
draw z3..z4;
draw z4..z5;
draw z5..z6;
labels(range 1 thru 6);
endchar;
end

Ar destul de greu s ne dm seama ce semnicaie are programul phi.mf fr a genera o imagine. Deschidei cu 2xExplorer o
fereastr ms-dos pentru dosarul n care se a phi.mf i dai dou
comenzi:

20

1
2

mf phi
gftodvi phi.2602gf

Prima comand compileaz ierul. A doua comand creeaz un


ier dvi.

167

3. Pensula electronic

Figura 3.2: Imagine de control pentru programe scrise n METAFONT

168

3.3 Inserarea literelor ca inserare de imagini


Vizualizarea cu Yap a imaginii 3.2 nu este o chestiune de rutin.
Dac avei un computer cu sucient de mult memorie, cutai n
dosarul misc din \texmf\fonts\source\public ierul gray.mf i
aducei singurul su rnd la forma urmtoare:

10

15

20

input graylj % the standard gray font is for the CX

Deschidei Yap i dai un clic pe Options. . . din meniul View i-n


panoul Display alegei n caseta Mode un printer de tip LaserJet cu
600dpi.12 Acum ar trebui s vedei bine imaginea n Yap.
n orice caz, uitai-v la Document Properties. . . din meniul File
din Yap. Examinai tipurile de litere (fonts) ncrcate i vedei unde
se gsesc pe computer. Citii eventualele mesaje de eroare i soluiile
adoptate automat de ctre Yap.
Acum putem comenta, cu imaginea alturi, coninutul ierului phi.mf. Primul rnd permite mrirea sau micorarea desenului.
Rndurile 47 conin descrierea unor puncte din desenul literei. Numele punctelor sunt de forma z_, unde n locul spaiului subliniat
este pus o cifr. Rndurile 913 conin descrierea liniilor. Rndul
8 inidic grosimea liniilor.
Rndul 3 are o importan aparte. n paranteza rotund sunt
patru valori. Prima este codul literei. Urmtoarele dou valori indic
poziia colului din dreapta sus al cutiei literei (bounding box-ului).
Ultima valoare indic poziionarea liniei de baz a literei. Cutiile cu
litere sunt niruite de ctre TEX n aa fel nct liniile de baz se
continu, pe orizontal, una pe alta.

25

Limbajul METAFONT este unul declarativ, descriptiv. Sistemului


nu i se spune ce aciuni s ntreprind, ci cum arat litera.

30

Structura programului este extrem de simpl. Pentru a vedea


efectele schimbrii descrierii literei, modicai ceva din program i
vedei ce se ntmpl. S-ar putea s nu putei compila deloc. Tastai
x i-ncercai s scpai. Nu efectuai ns dect o singur modicare
o dat, pentru a localiza efectele.
Litera noastr este n mod intenionat construit din linii drepte.
Rotunjirile sunt posibile ns. Scriei, n locul draw z3..z4 i draw
z4..z5, o declaraie draw z3..z4..z5 i vei descoperi ce detept
este METAFONT.
12

600dpi este o msur a rezoluiei printerului (dots per inch). Cum minusculele pete (dots) de cerneal seamn cu pixelii, msura este bun i pentru
ecran.

169

3. Pensula electronic

3.3.2

Inserarea literei n text

Pentru a ne folosi efectiv de o liter desenat trebuie s pregtim


ierele de care se folosete TEX. Trebuie s ne ntoarcem n fereastra
ms-dos i s dm comenzile:
1
2

mf \mode=ljfour; mode_setup; input phi.mf


gftopk phi.600gf phi.pk

Fiierele phi.pk i phi.tfm sunt cele care reprezint descrierea


literei n formatul de care se folosete TEX. Acum pot scrie despre:

un F cu coluri.
Cum am procedat? Am pus ierele de tip mf pk i tfm n dosarul
proiectului crii13 i am spus sistemului s recunoasc un nou tip
de liter i s-l foloseasc:
1
2
3

10

\newfont{\literaPhi}{phi}
\newcommand{\filos}{{\literaPhi F}}
un \filos{} cu coluri.

Prezentarea de mai sus este una strict informativ. Litera construit n-are o valoare practic. n orice caz, valoarea ei este foarte
limitat. Pot rescrie formula preluat din cartea lui Adrian Miroiu:14
LK

F ddac |=LK F
a

Am folosit ns o cale ocolit. Pentru a insera, n modul matematic,


simbolul F l-am apelat n argumentul unei comenzi \text{}.
Dac-ai meterit ns variante ale ierului phi.mf v dai mult
mai bine seama care este sensul mesajelor pe care le primii la compilarea n TEXnicCenter. Acum este posibil s identicai mai uor
partea care vine de la METAFONT i cea care provine de la TEX.
Un lucru important pe care trebuie s-l tii este c METAFONT
creeaz bitmap-uri. Micile desene care sunt literele sunt inserate n
document ca imagini de tip hart de pixeli. Hrile acestea pot
ns modicate n funcie de dimensiunea literelor. Putei primi ns
mesaje de genul nu gsesc litera la dimensiunea cerut sau s avei
diculti cu documentele pdf (litere neclare pe ecran) dac folosii
A
doar nucleul L TEX.15
13
Yap compileaz automat sursele literelor; lipsa ierului de tip mf poate
duce la erori.
14
Vezi aici pagina 149.
15
Mai multe informaii i exemple pe tema literelor i simbolurilor folosite n
A
L TEX ne propunem s le plasm, cu timpul, pe situl crii.

170

15

20

Capitolul 4

Translatorii
Cuprins
5

4.1

10

4.2
4.3

15

20

Drumul ctre html . . . .


A
4.1.1 De la L TEX la html
A
4.1.2 De la L TEX la html
A
4.1.3 De la L TEX la html
Drumul ctre rtf . . . . . .
A
napoi ctre L TEX . . . . .

. . . . . . . . . . .
cu ajutorul HEVEA
cu ajutorul TEX4ht
A
cu L TEX2html . .
. . . . . . . . . . .
. . . . . . . . . . .

172
174
176
177
178
179

A
L TEX este un limbaj pentru cei care au nostalgia crilor frumos
tiprite. Este, de asemenea, limbajul ideal pentru elaborarea scrierilor cu caracter academic. n lumea de azi exist ns multe alte
limbaje pentru documentele electronice.

La nceputul celui de al treilea mileniu, Internetul gzduiete deja


o bibliotec planetar. Limbajul su de baz este html. Editoarele
de birou au propriile lor limbaje, cel mai adesea ascunse de privirea
persoanelor care le utilizeaz, dar fr de care n-ar posibil aarea
pe ecran i tiprirea textelor produse cu ajutorul lor.

25

A
Exist deci o problem a integrrii documentelor L TEX n acest
peisaj variat i, n funcie de necesiti, a traducerii lor n alte limbaje.

30

Trebuie distins ns ntre dou situaii: traducerea prii care


este n mod text i traducerea prii care este n mod matematic.
n ambele cazuri, traducerea este dicil. Deosebirea rezid ns n
faptul c, n primul caz, traducerea este n linii mari posibil.
n al doilea caz, traducerea este foarte greu de fcut.
Recomandarea noastr, pentru seminarii i examene, este aceea
A
de a tipri documentele L TEX. La urma urmei, pentru asta sunt
fcute.

4. Translatorii
Tiprirea poate pe hrtie sau electronic. n cazul tipririi
electronice, formatul pdf este cel la care trebuie ajuns, dac este
posibil. Utilizarea pachetului hyperref, creat de ctre Sebastian
Rahtz, este, de asemenea, absolut recomandabil n cazul tipririi
electronice.1
Date ind scopurile crii de fa, prezentarea n detalii a traduA
cerii din L TEX n alte limbaje n-are sens. Obiectivul nostru principal l reprezint producerea unor texte tiprite. Aceast anex
ofer doar cteva informaii cu privire la posibilitile i tehnicile
de traducere, fr nici un fel de indicaii cu caracter practic. Pentru instalarea, utilizarea i modicarea programelor la care ne vom
referi trebuie s consultai documentaia lor.
Nu uitai niciodat s efectuai ecare traducere ntr-un dosar
A
separat. Pentru a obine rezultate mai bune sursele L TEX trebuie
pregtite n mod special n vederea traducerii, conform indicaiilor
din documentaia relevant.

4.1

10

15

Drumul ctre html

A
Documentele L TEX, tiprite electronic n iere ps sau pdf sunt
uor de vehiculat pe Internet. Aa cum am artat mai sus, formatul
pdf este preferabil.

20

Limbajul html este ns limbajul de baz al Internet-ului. Dac


vrem s prezentm eseurile noastre pe Internet, trebuie s tim cte
ceva despre html.
Puin lume tie c html este o aplicaie, cu posibiliti limitate,
sgml a sgml. Acronimul sgml vine de la Standard Generalized Markup
Language.2 Raiunea existenei sgml poate mai lesne neleas
dac vom reaminti modul de lucru tradiional ntr-o editur.
Redactorii i tehnoredactorii unei edituri scriau pe dactilograma
textului care urma s e tiprit o serie ntreag de indicaii. Unele
dintre ele priveau tipul de liter ce urma s e folosit n tipograe.
Altele priveau poziia unei poriuni din text n raport cu restul
textului i aa mai departe. n limba englez, toate aceste operaii
sunt desemnate cu termenul mark up.
1

A
A se vedea explicaiile lui Sebastian Rahtz, n Hypertext marks in L TEX,
ierul hyperref.dvi din \texmf\doc\latex\hyperref, precum i restul documentaiei din dosarul respectiv. Nu ncercai s nelegei de la bun nceput
subtilitile tehnice ale pachetului; simpla lui includere n document i cteva
minime adaptri ale documentului vor produce efecte spectaculoase.
2
Bradley[2, p.4] arat c sgml a devenit un standard n 1986.

172

25

30

4.1 Drumul ctre html


Ideea de baz a sgml este simpl. Poriunile de text n care
urmeaz s se aplice o anumit indicaie sunt puse ntr-o parantez
construit n felul urmtor:
<tag>poriunea de text aat ntre etichete</tag>
Fiecare tag are un nume. Se observ mai sus cum nceputul poriunii etichetate este marcat de numele tag-ului pus ntre paranteze
ascuite, iar nalul ei este semnalat prin bara oblic pus naintea
tag-ului.

10

Numele tag-urilor, precum i indicaiile de prelucrare a poriunilor de text plasate sub cupola unui tag sunt date separat n Document Type Denition, pe scurt dtd.
dtd

15

Pentru ca perechea format dintr-un text n care sunt incluse


indicaii n sgml i un dtd s conduc i la efecte concrete pe ecranul unui computer este nevoie i de un analizor (parser ). Analizorul
detecteaz construciile sgml din text i le prelucreaz conform instruciunilor din dtd. Analizorul poate s e, de pild, un procesor
de cuvinte sau un program de vizualizare a textelor structurate conform sgml.
Spre deosebire de TEX, sgml nu este un limbaj de programare.
Este un limbaj destinat identicrii obiectelor dintr-un text. Printre
aceste obiecte se poate aa ns i o poriune de cod TEX3 sau o
secven scris n alt limbaj de programare.

20

Mecanismul trimiterilor electronice care pot denite n sgml


este cunoscut sub numele de hipertext. Hipertextul nu este altceva hiperdect o dezvoltare a ideii tradiionale de trimitere. n mod tradiio- textul
nal, dac o not coninea o referire la o carte, ca s vezi efectiv
pasajul din carte la care se fcea trimitere te deplasai la bibliotec,
cereai cartea i citeai fragmentul cu pricina. Prin contrast, trimiterea electronic nu indic doar locul unde se poate citi ceva, ci chiar
i aduce pe ecran textul la care se face trimitere.

25

30

html este o aplicaie a limbajului sgml. Deschidei cu Vim un


ier de tip html i vei remarca imediat tag-urile, scoase n eviden
cu ajutorul culorilor. Studiai, de asemenea, primul rnd al ierului
i ar trebui s vedei ceva de genul:
1

35

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

Observai precizarea privitoare la dtd. Chiar dac ea lipsete, vizualizatorul de html se descurc. Analizoarele de html nu sunt
3
Bradley[2, p.72] explic felul n care poate identicat poriunea scris n
TEX.

173

4. Translatorii
nici pe departe aa de pretenioase cu textul pe care-l au n fa ca
TEX.
Capacitile html sunt destul de limitate, dar n ultima vreme
exist un efort considerabil de a dezvolta xml, n ncercarea de a
redescoperi ntreaga putere a sgml.

A
Din descrierea sumar de mai sus se vede c L TEX i html au
i o serie de puncte comune. Sunt, n orice caz, perfect compatibile.

Soluia mea pentru un sit academic ar o serie de pagini html


interconectate cu ajutorul mecanismului hipertextului. n ele se gsesc trimiteri electronice la iere pdf sau ps.4 O parte dintre docuA
mentele L TEX sunt traduse n html; unele bibliograi sunt oferite
i mpreun cu ierul bib aferent.
De ce s nu scriem direct n html? n cazul eseurilor academice,
EX creeaz automat bibliograa, notele de subsol, indicii. html
n-are resursele unui limbaj de programare i tot aparatul auxiliar
academic ar trebui creat manual. Evident, este posibil s recurgem
la alt limbaj de programare care s completeze cumva capacitile
html (s in, de pild, socoteala numerelor notelor de subsol);
A
L TEX este ns soluia superioar la acest capitol.

10

A
LT

4.1.1

A
De la L TEX la html cu ajutorul HEVEA

15

20

HEVEA este un program creat de ctre Luc Maranget. Philip A. Viton


a realizat o versiune a HEVEA sub Windows.5
Instalarea HEVEA sub Windows se face fr nici o dicultate, dac
urmai instruciunile lui Philip A. Viton.
Integrarea n TEXnicCenter nu este nici ea dicil. Imitai prolul
folosit la crearea unui ier ps, dar cu hevea.exe ca postprocesor
i cu Internet Explorer ca vizualizator.
A
Rezultatele obinute cu HEVEA sunt bune i, la o surs L TEX
simpl, aproape c n-avei ce schimba n ierul html. La textele n
limba romn avei grij ca urmtorul tag din ierul html s aib
charset atributele corecte:
1
2

<META http-equiv="Content-Type" content="text/html;


charset=windows-1250">

Valoarea lui charset poate s e i ISO-8859-2; windows-1250 pare


4

Pentru strategia integrrii documentelor pdf n reeaua de informaii de pe


web v. McKinley[6].
5
Pentru a porni n cutarea HEVEA mergei la pagina de Internet a lui Philip
A.Viton la <http://www.arch.ohio-state.edu/crp/faculty/pviton/>.

174

25

30

4.1 Drumul ctre html


A
mai natural aici, dac documentul L TEX folosete cp1250; fr
aceste valori ale lui charset nu se vd literele romneti. Nu este
recomandabil s punei utf-8 ca valoare a charset. Pentru limbile
europene n-avei nevoie de ntreaga putere a unicod. Pagina dumneavoastr se va ncrca lent din pricina dimensiunilor ierului cu
simboluri unicod.

Dac dorii s folosii entiti html, putei ncerca transformarea


ierului de tip html cu ajutorul unui script Vim ca acesta:
1
2
3
4
5
6
7
8
9
10

:%sno//&atilde;/ge | update
:%sno//&Atilde;/ge | update
:%sno//&acirc;/ge | update
:%sno//&Acirc;/ge | update
:%sno//&icirc;/ge | update
:%sno//&Icirc;/ge | update
:%sno//&scedil;/ge | update
:%sno//&Scedil;/ge | update
:%sno//&tcedil;/ge | update
:%sno//&Tcedil;/ge | update

Putei pune i coduri numerice, dup moda xml, prin substituiri


ca acelea de mai jos:

10

1
2
3
4
5
6
7
8
9
10

:%sno/&atilde;/&#259;/ge | update
:%sno/&Atilde;/&#258;/ge | update
:%sno/&acirc;/&#226;/ge | update
:%sno/&Acirc;/&#194;/ge | update
:%sno/&icirc;/&#238;/ge | update
:%sno/&Icirc;/&#206;/ge | update
:%sno/&scedil;/&#351;/ge | update
:%sno/&Scedil;/&#350;/ge | update
:%sno/&tcedil;/&#355;/ge | update
:%sno/&Tcedil;/&#354;/ge | update

4.1.1.1

15

20

Pregtirea documentului pentru Internet folosind


HACHA

Documentele html, orict de lungi ar , sunt derulate sub forma


unei pagini unice pe ecranul computerului. Acest lucru are dou
dezavantaje: cnd conexiunea Internet este slab, ncrcarea paginii
se face anevoios; de asemenea, este dicil s urmreti o pagin care
se deruleaz foarte mult.
Ideal ar ca pagina s ocupe aproximativ un ecran. n orice
caz, plasarea seciunilor unui document n iere html diferite este
dezirabil.

175

4. Translatorii
Programul care v ajut s facei secionrile descrise mai sus
este HACHA. Acest program trebuie folosit dup ce ai prelucrat documentul cu ajutorul HEVEA.
4.1.1.2

HEVEA i imaginile din documentele html

Programul HEVEA a fost creat de ctre Luc Maranget pentru a


folosit sub Unix. Sub Unix el prelucreaz automat imaginile la care
A
face apel sursa L TEX.
Sub Windows, fr uneltele Unix, trebuie s pregtii manual
imaginile pentru Internet. Vei gsi totui, n ierul html, create
de ctre HEVEA, locurile n care se pot integra imaginile.

10

Dac ai instalat unelte Unix i avei la dispoziie shell-ul Unix,


atunci trebuie s rescriei scriptul imagen n aa fel nct s poat
rula sub Windows. n aceste condiii, putei include imagini n documente html i sub Windows.6

4.1.2

A
De la L TEX la html cu ajutorul TEX4ht

15

Distribuia MikTEX include un translator de html. Dac nu i-ai


sesizat deja prezena, mergei n dosarul \texmf\tex4ht. Acolo vei
gsi o parte din elementele pachetului creat de ctre Eitan Gurari
A
pentru a traduce din L TEX n html.
Dac citii descrierea pachetului TEX4ht, vei vedea c este congurabil. Luai n serios diferena dintre congurat i congurabil.
Ca peste tot n lumea TEX, i aici se aplic principiul Dumnezeu
d omului, dar n traist nu-i bag; aa c trebuie s congurai
TEX4ht. Philip A. Viton are o pagin de sprijin pentru persoanele
care instaleaz TEX4ht n cadrul MikTEX.7
Dac-ar s dau cteva indicaii bazate pe experiena proprie,
a spune, n primul rnd, c-am mutat ierele din dosarul base,
aat pe calea \texmf\tex4ht n dosarul home. Trebuie modicat
cu grij ierul tex4ht.env. Atenie trebuie acordat i ierului
tex4ht.fls; dac nu exist, trebuie creat unul de tip text cu acest
nume n dosarul unde sunt plasate texmf i localtexmf.
Pentru a vedea dac-ai reuit s congurai TEX4ht facei un
test cu un ier tex. Eu am folosit sursa manualului lui Stphane
6
Pentru descrierea modicrilor operate de ctre noi n scriptul imagen vizitai situl crii. n momentul de fa, versiunea noastr convertete, sub Windows, imaginile PostScript i le integreaz n documente html.
7
Adresa paginii cu explicaiile lui Philip A. Viton este <http://facweb.
arch.ohio-state.edu/pviton/support/tex4ht.html>.

176

20

25

30

4.1 Drumul ctre html

Bressan i Eitan Gurari pentru pachetul TEXProject.8 Am instalat elementele din pachetul respectiv. Am pus sursa manualului
ntr-un dosar n care nu era alt ier. Am adugat n surs comanda
\usepackage{tex4ht} i am dat ntr-o fereastr ms-dos comanda
ht latex manual. Fr a exagera, se poate spune c rezultatul a
fost de o calitate deosebit de bun.
TEX4ht poate produce i iere xml n formatul denit de ctre
dtd-uri ale OpenOce.

4.1.3
10

15

20

25

A
A
De la L TEX la html cu L TEX2html

A
L TEX2html a fost conceput iniial de ctre Nikos Drakos. Opera
sa a fost continuat de ctre Ross More i alii. Ideea lor de baz
este aceea de a realiza un translator care traduce n ntregime docuA
mentul L TEX: unele pri sunt traduse direct n limbajul html, iar
ceea ce nu se poate traduce este transformat n imagine i inserat
ca imagine n documentul html.

Recursul masiv la imagini are i unele dezavantaje. Dac descrA


A
cai un text convertit din L TEX n html cu L TEX2html trebuie s
9 Altfel, aproape sigur vei rmne cu fr unele
recurgei la wget.
imagini sau hipertextul va stricat. De asemenea, din pricina imaginilor cutarea unora dintre termeni este imposibil sau trebuie
fcut cumva indirect (folosind elemente din ierul html care, n
mod normal, nu se vd).
A
Instalarea L TEX2html sub Linux nu cred c mi-a luat mai mult
de cinci minute. Iar programul a funcionat fr cusur. n schimb,
sub Windows, ar trebui s i fericite sau fericii dac ducei la bun
sfrit instalarea.

n principiu, pentru instalare, avei nevoie de Perl i de NetA


PBM.10 Perl este un limbaj de programare. L TEX2html este un
script realizat n Perl. Din pricina aceasta nu intru aici n detalii.11
30

n rezumat, programul este dicil de instalat sub Windows, poate


s v lase fr resurse de memorie i nu este tocmai uor de folosit.
A
Este totui cel mai vestit dintre programele de traducere din L TEX
n html i simplul fapt de a-l putea folosi sub Windows va oferi
8

Pachetul respectiv poate descrcat de pe pagina de web a lui Eitan Gurari


<http://www.cis.ohio-state.edu/~gurari/index5.html>.
9
A se vedea aici 1.4.2.1.
10
A
A se vedea Luis Seidel Gmez de Quero, Installing L TEX2 html with
MikTEX <http://www.mayer.dial.pipex.com/l2h.htm>, 4 februarie 2000,
document accesat pe data de 20/08/2003.
11
A se vedea situl crii pentru detalii.

177

4. Translatorii
oricui o mare satisfacie. Este recomandabil folosirea lui n cazul
transformrilor mai dicile. Este singurul dintre translatori care s-a
descurcat cu anexele crii de fa chiar i fr s operat vreo
A
schimbare n sursa L TEX.

4.2

Drumul ctre rtf

Formatul rtf este proprietatea rmei Microsoft. A fost creat pentru


a facilita transferul de texte formatate ntre diverse aplicaii, sub
diverse sisteme de operare. ntre altele, el deschide drumul ctre
popularul format Word al rmei Microsoft.
Dac o editur sau o revist v solicit textul n format Word, iar
A
sursa dumneavoastr este n L TEX, avei la dispoziie dou soluii.
Putei folosi html ca pe o platform de pe care s trecei la formatul
Word. Putei folosi n acelai scop rtf. Pentru aceasta v trebuie
A
ns un translator din L TEX n rtf.
A
Cea mai bun alegere este programul L TEX2rtf disponibil pe
marele sit al programrii cu surs deschis, SourceForge.net.12 ncepnd cu 20 ianuarie 2004 exist i un program de instalare sub
Windows. Dac nu instalai n dosarul care vi se propune n mod
automat, trebuie s efectuai manual unele corecturi n ierele de
tip bat.

10

15

20

A
Pentru a benecia de toat puterea L TEX2rtf trebuie s avei
instalat Ghostscript i ImageMagick13 .

Sintaxa rtf seamn, sub anumite aspecte, cu sintaxa TEX.14


Iat un fragment de cod rtf:
1

Aceasta este {\b o carte} foarte grea. \par

Poriunea prins ntre acolade reprezint un grup. Ca i o instruciune TEX, secvena \b i spune programului care interpreteaz ierul rtf c grupul trebuie scris cu aldine. Alternativ, am putea
folosi comenzile \b i \b0 pentru a marca nceputul, respectiv sfritul poriunii de text care este scris ngroat.
Putei experimenta pe un ier rtf creat cu ajutorul translatorului folosind editorul Vim. Fiierele de tip rtf sunt iere text.
12

Adresa exact este <http://latex2rtf.sourceforge.net>.


ImageMagick este un program de convertire de imagini. Pentru mai multe
informaii vizitai situl <http://www.ImageMagick.org>. Identicai cu atenie
n programul instalat locul n care se a programul convert.exe.
14
Pentru detalii consultai pagina <http://latex2rtf.sourceforge.net/
rtfspec.html>.
13

178

25

30

A
4.3 napoi ctre L TEX

rtf are un mod de a trata cciula de pe i sedilele lui i


care n-arat prea estetic n programul de vizualizare.15 Eu ocolesc
traducerea automat n stil rtf substituind o parte dintre literele
romneti n felul urmtor:
1
2
3
4
5
6
7
8
9
10

10

:%s/\\u{a}/a227/ge | update
:%s/\\u{A}/A195/ge | update
:%s/\\^{a}//ge | update
:%s/\\^{A}//ge | update
:%s/\\^{\\i}//ge | update
:%s/\\^{I}//ge | update
:%s/\\c{s}/s186/ge | update
:%s/\\c{S}/S170/ge | update
:%s/\\c{t}/t254/ge | update
:%s/\\c{T}/T222/ge | update

n documentul nal, aceste substituiri sunt eliminate. Atenie ns


la acest subterfugiu dac avei ntr-un tabel pe A195 i nu vrei s
devin .
Fiierul rtf n-ar trebui predat ca atare redaciei care l-a solicitat. El necesit aproape ntotdeauna unele prelucrri suplimentare.
El este un ier destinat transferului ntre aplicaii. Redaciei ar
trebui s-i e predat un ier n formatul propriu aplicaiei pe care
o folosete.

4.3

A
napoi ctre L TEX

15

Ar trebui spuse cteva cuvinte i despre posibilitatea de a traduce n


A
L TEX formatrile din alte limbaje. Problema s-ar putea s se pun
practic cel mai frecvent n cazul documentelor Word.

20

Formatul Word al rmei Microsoft este foarte popular. Imensa


majoritate a persoanelor care utilizeaz computerele nu au motive
s investeasc timp i bani n nvarea programrii (chiar ntr-o
msur limitat). Editorul Word al rmei Microsoft a reprezentat o
reuit deosebit n efortul de a ascunde aspectele legate, direct sau
indirect, de programare. Au disprut comenzile cu punct din editoarele mai vechi. Utilizatorii sunt scutii de orice contact cu marcajele
15

Pentru a vedea un ier rtf putei folosi programul de vizualizare a documentelor Word pus la dispoziie gratuit de ctre Microsoft. Acest program poate
citi i iere rtf. Putei construi propriul lector de rtf folosind codul inclus de
ctre Microsoft n specicaia limbajului rtf. Ca i formatul rtf, programul
de vizualizare i codul pentru lector sunt proprietatea rmei Microsoft i pot
folosite numai n condiiile respectrii drepturilor rmei. Citii desigur licenele
aferente.

179

4. Translatorii
introduse n text. Aceasta este raiunea succesului produsului respectiv pe pia.
A
Trecerea de la Word la L TEX este departe de a chiar att
de simpl. Exist o serie de produse comerciale care ncearc s
fac fr prea mult succes acest lucru. Eu m voi referi aici
la un program cu surs deschis, MSWordView.16 MSWordView
a fost conceput iniial ca un program de traducere, sub Unix, a
documentelor Word n html. n stadiul actual este capabil s fac
A
o traducere, inclusiv sub Windows, n L TEX.
A
Partea bun a MSWordView atunci cnd traduce n L TEX este
A
capacitatea sa de a produce o surs L TEX curat. Redarea literelor
specice limbii romne este, de asemenea, impecabil.

Partea proast a lucrurilor ncepe atunci cnd este vorba despre


notele de subsol. MSWordView marcheaz locul lor n text i mut
tot textul notelor la sfrit. Este perfect posibil s nlocuieti marcajul $^{}$ introdus de translator cu comanda \footnote{} i s
mui apoi textul notelor, dar munca este anevoioas.

10

15

n rezumat, MSWordView este util dac avei un text masiv, cu


A
puine note de subsol, pe care vrei s-l tehnoredactai n L TEX.
A
Cocluzia este limpede. L TEX este un limbaj pentru elaborarea
unor surse organizate logic. Este un punct de plecare, nu o int de
atins plecnd de la alte moduri de a structura texte.
A
Faptul c sursa L TEX este practic extrem de greu de reconstituit are o consecin de care se pot folosi persoanele care se tem
c lucrrile lor ar putea plagiate cu uurin dac sunt plasate
pe Internet. Ele pot pot aa doar ierele care pot citite comod.
Sursele nu sunt fcute publice. Ar foarte greu pentru plagiatori s
pretind c sunt adevraii autori. Reconstituirea absolut exact a
surselor originare este practic imposibil. Dac inem cont de faptul
c sursele originare conin n mod normal i comentarii, reconstituirea este absolut imposibil.

16

Versiunea cea mai comod de instalat sub Windows este cea disponibil n
cadrul proiectului GnuWin32. A se vedea <http://gnuwin32.sourceforge.
net>.

180

20

25

30

Bibliograe
A
[1] Paul A. Blaga i Horia F. Pop. L TEX 2 . Bucureti: Editura
Tehnic, 1999. Citat la pp. 65, 150, 154 i 156.

[2] Neil Bradley. The concise <sgml> companion. Harlow, Anglia: Addison-Wesley, 1996. Citat la pp. 172 i 173.
[3] I. Funeriu. Principii i norme de tehnoredactare computerizat.
Timioara: amarcord, 1998. Citat la p. 86.
A
[4] Leslie Lamport. L TEX: a document preparation system. Reading, Massachusetts: Addison Wesley Longman,Inc., 1994. Citat la pp. 65, 92, 93, 108 i 154.

[5] Henry McGilton i Mary Campione. PostScript by Example. Reading, Massachusetts: Addison-Wesley, 1992. Citat
la p. 162.
[6] Tony McKinley. From Paper to Web. San Jose, California:
Adobe Press, 1997. Citat la p. 174.
[7] Bram Moolenaar. Vim User Manual. <http://vimdoc.sf.
net>, 2002, data accesrii: 2003/12/03. Citat la pp. 35, 36,
37, 38, 43, 45 i 46.
[8] Costic Moroanu. Elemente de baz ale sistemului TEX i
plain TEX. Iai: Editura Universitii Alexandru Ioan Cuza,
2001. Citat la pp. 64 i 65.
[9] Steve Oualline. Vi IMprovedVim. <http://www.truth.sk/
vim/vimbook-OPL.pdf>, 2001, data accesrii: 2003/12/30. Citat la p. 35.
A
[10] Artur Pusztai i Gheorghe Ardelean. L TEX: ghid de utilizare.
Bucureti: Editura Tehnic, 1994. Citat la p. 65.

[11] Raymond Seroul. Le petit Livre de TEX. Paris: InterEditions,


1989. Citat la pp. 83, 84, 109 i 110.

BIBLIOGRAFIE
[12] S. Tth. Litera de tipar. Bucureti: Editura tiinic, 1966.
Citat la p. 64.

182

Indice
, 89
Autoexec.bat, 19, 20
betacod, 137140
BibDB, 118
bibliograe
cu BibTEX, 119121
stil, 119, 120
stil simplu, 120
bitmap, vezi imagini(hri de
pixeli)
Bozinis, Nikos, 9
Braams, Johannes L., 124
cutare, vezi i expresii regulate
pe Internet, 5460
cale, 5
computerul i munca intelectual, 71
coninut vs. form, 113
concordan, 53, 54
corectura
computerizat, 6062
ctags, 102104
cuprins
A
cu L TEX, 80, 81, 153
Denisov, Alex, 145
descriptor, 157
Doron, Eyal, 118
Drakos, Nikos, 177
expresii regulate, 4652
e, 7

bibliograce, 114, 118


iere
analogia cu ele tradiionale, 7
bb, 166
bib, 116
bmp, 160
bst, 119
cutarea, 11
comprimate, 12
crearea, 10
csv, 114, 115
dvi, 75, 79
extensiile, 8
ltre, 10
html, 173
jpg, 166
log, 85
management cu 2xExplorer, 9
mf, 167
numrarea cuvintelor, 20
operaii, 10
pdf, 14, 165
proprieti, 10
ps, 13, 14, 162164
redenumire, 17
rtf, 178
sty, 109
tergere, 17
tex, 78
ti, 18
xcf, 164
formule, 99, 100, 148155

INDICE
gcc, 21
Ghostscript, 13
Gimp, 161163
GNU, 22
GnuWin32, 21
Gonzato, Guido, 112
grep, 51
Gurari, Eitan, 176
HACHA, 175
HEVEA, 174
hieroglife, 143
home, 20
Ibycus, 140, 141
imagini
hri de pixeli, 160, 161
vectoriale, 162, 163
indici
generarea lor cu MakeIndex, 157
Jacq, Christian, 143
Joy, William, 24
Knuth, Donald, 64, 6668, 83,
123, 135
Lamport, Leslie, 65
LaTable, 145
A
L TEX, 6567
#, 105
alineat, 85
antet, 76
bad box(es), 96
\bcode{}, 137
{\bfseries }, 93
blocurile, 92
\cite{}, 121
comentarii, 86
compilare, 78
contoare, 107
corpul programului, 79
cp1250, 127130

184

declaraiile, 92
diacritice, 124
documentaie, 112
{\em }, 93
\fontfamily{}, 134
\fontsize{}, 134
\footnote{}, 94
ghilimele, 91
\hspace{}, 96
hyperref, 172
ifthen, 108
\index{}, 157
{\itshape }, 93
\label{}, 88
\ldots{}, 91
letrine, 109
\marginpar{}, 94
\mbox{}, 92
{\mdseries }, 93
mediile, 97
modul matematic, 99
modurile, 83
\newcommand{}{}, 104
\newenvironment, 106
pachete, 107
pachete proprii, 109
\pageref{}, 101
\par{}, 85
\ref{}, 101
\relax, 110
revizia, 93
{\rmfamily }, 93
romna, 123
{\scshape }, 93
seciuni, 87
\selectfont{}, 134
semne rezervate, 76, 90
{\sffamily }, 93
{\slshape }, 93
structura paginii, 111
\textbf{}, 90
\textit{}, 90
\textrm{}, 90

INDICE
\textsc{}, 90
\textsf{}, 90
\textsl{}, 90
\today{}, 92
{\ttfamily }, 93
\underline{}, 90
unicod, 141
{\upshape }, 93
\vspace{}, 96
A
L TEX2html, 177, 178
A
L TEX2rtf, 178
Levy, Silvio, 140
litere
chirilice, 135, 136
greceti, 136141
limbile europene, 132, 133
romneti, 29, 122126, 151
MacKay, Pierre, 140
Maranget, Luc, 174
matchit, 82
meniu contextual, 4
METAFONT, 144, 167169
MikTEX, 69, 70
More, Ross, 177
ms-dos, 1517
MSWordView, 180
note
de subsol, 94, 95
marginale, 95
octet, 34
Oetiker, Tobias, 112, 113
OpenOce, 60, 177
folosirea bibliograei, 24
Ostrum, Piet van, 113
Pakin, Scott, 151
paragraf, 87
partiiile, 5
Patashnik, Oren, 119, 120
Pehong Chen, 156
pixel, 159

plagiatul, 180
proiect
A
L TEX, 80, 82
rnd
logic, 28
sfritul de rnd, 8, 35
vizual, 28
Rahtz, Sebastian, 172
seciune, 87
sgml, 172
sit, 57
splitle, 6
stil bibliograc
Chicago, 120
simplu, 24, 120, 121
subdescriptor, 157
substituie, 50
surse deschise, 22, 23
tabele, 100, 144148, 152, 154,
155
TEX4ht, 176, 177
TEXnicCenter, 51, 52, 57, 72,
73
TEXnicCenter
i Vim, 74
trimiteri
n comentarii, 103
n pagini web, 58, 173
de la un indice la altul,
157
la alt pagin, 101
la alt seciune, 101
la bibliograe, 121
la guri, 165
la tabele, 146
unicod, 141, 175
Unix, 6, 19, vezi i GnuWin32
unelte, 20
Unruh, Dominique, 142
utilizare vs. programare, 94

185

INDICE
Vim
cutare, 52, 53
comenzi n linie, 27
congurare, 29
corectura sintactic, 31
cursorul, 40, 41
dialog, 98
instalare, 25
meniuri, 36, 37, 39
modicarea textului, 42
45
modul insert, 25, 26
modul normal, 25, 26
modul vizual, 27
scripturi, 30
semne de carte, 32
tastaturi, 131
Viton, Philip, 174
Volovich, Vladimir, 123
wget, 58, 59
Wilson, Peter, 143
Windows
ascuns, 18, 19
comenzi, 15
ghidul, 3, 5
windows-1250, 174
WindowsXP
variabile de mediu, 20
Word, 179
Yap, 75, 79, 96, 97, 169, 170
i Vim, 75

186

Versiune pentru ecran: (2005-12-04)


Este permis printarea numai pentru uz personal!