0% au considerat acest document util (0 voturi)
207 vizualizări65 pagini

Tutorial Latex

Documentul prezintă o introducere asupra istoriei comunicării scrise și a evoluției tehnologiilor de tipar, de la inventarea hârtiei și a tiparului manual cu litere de plumb până la apariția mașinii de scris și calculatoarelor. De asemenea, este menționată apariția LaTeX ca o nouă eră în industria tipografică.

Încărcat de

Emanuel Florin
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
207 vizualizări65 pagini

Tutorial Latex

Documentul prezintă o introducere asupra istoriei comunicării scrise și a evoluției tehnologiilor de tipar, de la inventarea hârtiei și a tiparului manual cu litere de plumb până la apariția mașinii de scris și calculatoarelor. De asemenea, este menționată apariția LaTeX ca o nouă eră în industria tipografică.

Încărcat de

Emanuel Florin
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd

Tutorial LATEX

Andor Flavius Nicolae

Cuprins
1 Notiuni generale
1.1 Pro si contra . . . . . . . . . . .
1.2 Istoric . . . . . . . . . . . . . .
1.3 TEX . . . . . . . . . . . . . . .
1.3.1 Numele . . . . . . . . .
1.3.2 Cutiute . . . . . . . . .
1.3.3 Macro-uri . . . . . . . .
1.3.4 TeX: un limbaj imposibil
1.4 METAFONT . . . . . . . . . .
1.4.1 Leslie Lamport . . . . .
1.4.2 LATEX . . . . . . . . . .
1.5 LATEX2e si LATEX3 . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

2 METAFONT
2.1 Ce nsemna METAFONT? . . . . .
2.2 Cum lucreaza METAFONT? . . . .
2.3 De ce avem nevoie? . . . . . . . . .
2.3.1 UNIX si clone ale acestuia .
2.3.2 Windows . . . . . . . . . . .
2.3.3 Macintosh . . . . . . . . . .
2.3.4 Alte programe . . . . . . . .
2.4 Modul proof al lui METAFONT
2.5 Un exemplu . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

3 METAPOST
3.1 Introducere . . . . . . . . . . . . . . . . .
3.2 Compilarea METAPOST . . . . . . . . . .
3.3 Tipuri de date . . . . . . . . . . . . . . . .
3.4 Comenzi uzuale . . . . . . . . . . . . . . .
3.4.1 Comanda draw . . . . . . . . . . .
3.4.2 Comanda fill . . . . . . . . . . . . .
3.5 Includerea figurilor METAPOST n LATEX
3.6 Concluzii . . . . . . . . . . . . . . . . . . .
1

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

6
6
9
11
11
12
14
14
15
15
16
17

.
.
.
.
.
.
.
.
.

18
18
19
20
21
21
22
22
23
24

.
.
.
.
.
.
.
.

30
30
30
31
33
33
33
35
35

4 HTML
4.1 Introducere . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Liste . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.1 Liste neordonate . . . . . . . . . . . . . . . . . .
4.2.2 Liste imbricate . . . . . . . . . . . . . . . . . . .
4.2.3 Liste ordonate . . . . . . . . . . . . . . . . . . . .
4.2.4 Atributul start al unei liste ordonate . . . . . . .
4.2.5 Liste de definitii . . . . . . . . . . . . . . . . . . .
4.3 Tabele . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.1 Elemente de baza . . . . . . . . . . . . . . . . . .
4.3.2 Atributele cellpadding si cellspacing . . . . . . . .
4.3.3 Elementul <th> . . . . . . . . . . . . . . . . . .
4.3.4 Latimea si naltimea unui tabel . . . . . . . . . .
4.3.5 Culoare si imagine de fundal . . . . . . . . . . . .
4.3.6 Latimea si naltimea unei celule . . . . . . . . . .
4.3.7 Atributele colspan si rowspan . . . . . . . . . . .
4.3.8 Eticheta <caption> . . . . . . . . . . . . . . . . .
4.4 Legaturi . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.1 Tehnologia client-server . . . . . . . . . . . . . . .
4.4.2 Adresa URL . . . . . . . . . . . . . . . . . . . . .
4.4.3 Prima legatura . . . . . . . . . . . . . . . . . . .
4.4.4 Utilizarea unei imagini la definirea unei legaturi .
4.4.5 Legaturi la o pagina Web aflata pe sistemul local
4.4.6 Ancore . . . . . . . . . . . . . . . . . . . . . . . .
4.4.7 Legaturi la alte tipuri de fisiere . . . . . . . . . .
4.4.8 Legaturi la adrese e-mail . . . . . . . . . . . . . .
4.5 Cadre . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5.1 Retea de cadre . . . . . . . . . . . . . . . . . . .
4.5.2 Seturi de cadre imbricate . . . . . . . . . . . . . .
4.5.3 Atributele elementului <frameset> . . . . . . . .
4.5.4 Atributele elementului <frame> . . . . . . . . . .
4.5.5 Destinatii . . . . . . . . . . . . . . . . . . . . . .
4.6 Multimedia . . . . . . . . . . . . . . . . . . . . . . . . .
4.6.1 Fisiere de aplicatii . . . . . . . . . . . . . . . . .
4.6.2 Fisiere de date . . . . . . . . . . . . . . . . . . .
4.6.3 MIME . . . . . . . . . . . . . . . . . . . . . . . .
5 Prezentarea aplicatiei

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

37
37
37
38
38
39
40
40
41
41
42
42
43
43
43
44
45
45
45
46
46
47
47
47
48
49
49
49
50
51
52
53
54
54
54
55
56

Introducere
Lucrarea de fata trateaza un subiect ce a preocupat omenirea de mii de ani ntrucat
sta la baza oricarei comunitati umane: comunicarea, mai exact cea scrisa. Cum
ajungem de la acest lucru la LATEX vom vedea n randurile urmatoare. Daca naintea
erei noastre preocuparea era inventarea unui sistem de scriere mai apoi problema a
devenit transcrierea pe un suport a cuvintelor. Inventarea de catre chinezi a hartiei
a fost un pas urias n acest domeniu deoarece mesajele puteau fi mult mai usor
scrise, trimise n mai multe locuri fara ca cel ce la scris sa mearga acolo, de exemplu
poruncile regilor care se aduceau la cunostiinta populatiei.
Un alt pas important a fost aparitia tiparului, fapt ce a permis raspandirea mult
mai rapida a cunostiintelor acumulate de-a lungul [Link] mai multi oameni au
ajuns sa aiba acces la educatie iar acest lucru a determinat un si mai mare avant n
ridicarea nivelului tehnologic cat si a nivelului de cultura n randul oamenilor din
categoriile mai [Link] a tipari o carte fiecare pagina era compusa din randuri
de litere de plumb puse una cate una n niste cadre care la tineau [Link]
o munca migaloasa si periculoasa n acelasi timp deoarece plumbul este un metal
[Link] odata literele asezate se puteau face multe copii ale aceleiasi pagini si
astfel un numar nsemnat de carti e adevarat marea majoritate din domeniul religios
ajungeau n centrele culturale ale vremii.
Trecand la vremurile moderne se remarca aparitia tiparelor rotative puse n
miscare de motoare, cat si a masinii de scris. Acestea au mbunatatit in mod semnificativ viteza de redactare si calitatea cartilor si [Link] acum autorii
puteau scrie la masina de scriscare era un obiect de dimensiuni rezonabilesi
sa dea spre tiparire texte care erau mult mai usor de nteles de catre tipografi reducandu-se astfel numarul erorilor.
Dupa Al Doilea Razboi mondial, odata cu aparitia primelor calculatoare a nceput
o noua era n industria tipografica. Spun industrie deoarece n ultima suta de ani
productia de tiparituri a cunoscut o crestere extrem de puternica, presa s-a dezvoltat
enorm, au aparut mii de ziare populatia a crescut si de asemenea nevoia de cultura
si de informatie au crescut si ele.
Vechile obceiuri de a pune literele una cate una cu mana au disparut cantitatea
de publicatii n crestere dar si noile tehnologii impunand de la sine acest lucru. S-a
uitat si de batutul la masina de scris care totusi avea niste limitari cum sunt numarul
de caractere, posibilitatile de formatare a textului sau imposibilitatea de a corecta
cea mai mica greseala. Locul a fost luat de tehnoredactarea computerizat
a adica
redactarea cu ajutorul calculatorului.
Aceasta mbunatatire majora a revolutionat nca o data modul de realizare a
documentelor scrise. Orice text n acest moment poate fi trimis unei tipografii si
tiparit n cel mai scurt timp munca fizica reducandu-se foarte mult. Si greselile,
n cazul unei lucrari scoase n mai multe editii pot fi foarte repede corectate. Insa
cu tot progresul tehnologic unele sectoare de activitate necesitau cerinte dificil de
atins chiar si de catre tipografia moderna. Unul dintre acestea fiind matematica.
3

Multitudinea de caractere, semne, indici si pozitionarea acestora n cadrul formulelor


au reprezentat un test greu pentru vechile seturi de caractere utilizate pana atunci
n tipografii.

De ce LATEX
Problemele legate de imposibilitatea de a redacta la un nivel suficient de nalt carti
si articole din domeniul matematic l-au determinat pe un tanar matematician si
programator in acelasi timp pe nume Donald Knuth sa ia decizia de a rezolva el
nsusi acest lucru[2]. Doctor n matematica, Knuth a fost nemultumit de calitatea
la care i scotea lucrarile editura la care a apelat. Astfel n timp ce lucra la o
serie de carti despre programare (carti devenite celebre ulterior) el si-a ndreptat
atentia asupra modalitatilor de tiparire a cartilor si a conceput un program pentru
redactarea de texte n special matematice dupa toate standardele vremii (vorbim aici
de anii 0 70) si care sa includa toate semnele conoscute si utilizate n matematica.
Dupa cativa ani de munca a venit si rezultatul, unul care a uimit lumea prin calitatea tipariturilor. Programul a fost numit TeX autorul explicand alegerea facuta.
Si mai mult a uimit gestul domnului Knuth care a pus la dispozitia oamenilor rezultatele muncii sale facand publice codurile sursa ale programului TeX cat si a programelor auxiliare. Programul a castigat multi adepti n mediul academic unde era
folosit intensiv.
Unul dintre ei a devenit Leslie Lamport (vezi Figura 3) care foarte repede a
nvatat ba chiar a mbunatatit programul printr-o serie de macro-uri care si acestea
au devenit foarte populare printre utilizatorii TeX-ului. Leslie Lamport a si scris
o carte [9] despre TeX-ul astfel modificat, carte care a avut un succes imens si
care a fost republicata de nenumarate ori. Carte a fost numita The LATEX BookCartea de LATEX . Numele cartii vine evident de la cel ce a adus TeX-ul la un nivel
superior. LATEX este sensibil mai simplu decat TeX utilizatorii nvatandu-l mult mai
repede, pe langa acest lucru LATEX a fost n permanenta mbunatatit. A fost nevoie
de o initiativa a unui grup de oameni preocupati de pastrarea acestui program la
standarde mondiale, initiativa ce s-a nascut la nceputul anilor 0 90.
Acest grup nu numai ca a corectat o serie de mici buguri ale programului dar
a si pus bazele unei noi aplicatii pe baza celei existente, care sa perfectioneze acest
instrument extraordinar (atat ca si complexitate cat si ca utilitate). Fiind pus la
dispozitia oricui are nevoie de el pe gratis si fiind n acelasi timp o unealta care
producea rezultate extraordinare LATEX a capatat o raspandire globala. S-au realizat pachete pentru suportul mai tuturor limbilor vorbite n lume. LATEX a devenit
instrumentul principal de tiparire al oamenilor de stiinta. Oricine doreste sa faca o
teza de doctorat sau o carte apeleaza aproape inevitabil la LATEX .
In Romania[1] LATEX a patruns mai greu n parte datorita situatiei politice ce nu
permitea cu usurinta comunicarea cu lumea occidentala, n parte datorita situatiei
economice doearece putini si permiteau un calculator personal si nici institutiile de
nvatamant nu erau dotate corespunzator.
4

Partea buna este ca n ultimii ani lucrurile s-au schimbat simtitor n bine pe
ambele planuri. LATEX este din ce n ce mai utilizat n institutiile de nvatamant.

Rezultat practic
Cu toate ca atat cadrele didactice cat si studentii au nteles modul profesionist de
a redacta un document scris si au software-ul necesar pentru a duce la bun sfarsit
acest obiectiv ei ntampina unele dificultati n aprofundarea modului de utilizare al
acestuia. In lucrarea de fata mi propun sa dezvalui cel putin o parte a istoriei si
cadrului n care s-a dezvoltat LATEX .
Aplicatia realizata prezinta o serie de notiuni despre utilizarea LATEX si editarea
de texte. Cunostiintele necesare pentru parcurgerea acestui tutorial sunt minime,
este considerat pregatit pentru a-l studia cel ce:
detine cunostiinte generale de utilizare a calculatorului;
stie sa foloseasca un editor de text cum sunt Emacs sau wordpad;
cunoaste unde poate gasi cele 95 de caractere ASCII pe tastatura si ce nseamna
acestea;
stie sa creeze, copieze, mute, stearga, redenumeasca un fisier (director);
Daca aceste conditii minime sunt ndeplinite cititorul nu va avea probleme n
parcurgerea cu succes a tutorialului.

Notiuni generale

Multi oameni descopera LATEX dupa ani si ani de batai de cap cu procesoarele de text
obisnuite si nu le vine sa creada ca TeX exista de peste 25 ani desi ei nu auzisera de
el. Nu este o conspiratie ci doar un secret bine pastrat de cateva milioane de oameni.
Si timp de atatia ani a ramas popular probabil din cauza faptului ca utilizatorii nu
mai trebuie sa se preocupe de formatarea frecventa a documentelor.
Desigur pentru un nou-venit este atractiv sa se joace cu fonturile si cu culorile,
nsa pentru un om care vrea sa faca un lucru serios, amplu si de calitate este contraproductiv, el doreste mai degraba sa se poata concentra asupra continutului lucrarii.
A nvata utilizarea unui astfel de program poate fi relativ dificila nsa autorul nu
trebui sa-si faca treaba si mai grea folosind o aplicatie care distrage atentia la fiecare
cateva secunde pentru ca stie sa functioneze singura.
LATEX ramane singura aplicatie ce formateaza n mod automat textul matematic
n felul dorit de matematician. Donald Knuth a publicat si cartea Mathematical
Writing n care arata importanta faptului ca autorul unei carti sa se concentreze
asupra continutului ei.
Dar TeX este mai mult decat matematica: este o masina de scris programabila,
care poate ndeplini orice task de formatare si poate fi folosita de aproape oricine.
Prin trecerea TeX-ului n domeniul public, acestui program nu i s-a facut publicitate
n vreun fel si astfel el a ramas cunoscut n principal n domeniul academic. Cu
toate acestea exista n zilele noastre o multime de companii care vand implementari
LATEX , multe care accepta spre publicare documente editate n LATEX si sute de mii
de utilizatori care apeleaza n mod frecvent la acest program.

1.1

Pro si contra

Cand oameni ce utilizeaza programe de tip WYSIWYG se ntalnesc cu cei care prefera LATEX ei adesea discuta despre avantajele si dezavantajele LATEX . Ca utilizatori
de LATEX este bine sa cunoasteti partile tari ale acestui sistem de tehnoredactare.
Desi cel mai bine ar fi sa evitati o asemnea discute cata vreme nu cunoasteti subiectul asa cum trebuie deoarece deseori discutia ajunge la un punct care nu va convine.
Insa uneori nu puteti scapa. Asa ca iata principalele puncte forte ale LATEX asupra
editoarelor obisnuite de text:
sunt accesibile stiluri implicite care fac documentele LATEX sa arate ca tiparite;
suportul pentru editarea de formule matematice este excelent;
utilizatorii au nevoie doar de stapanirea unor comenzi care specifica structura
logica al documentului. Ei aproape ca nu trebuie sa se preocupe de cum arata
practic documentul;
chiar si structuri complexe cum sunt notele de subsol, referintele ncrucisate,
bibliografia sau cuprinsul sunt usor de generat. In cazul n care utilizatorul
6

modifica ceva LATEX va reordona totul;


LATEX ncurajeaza autorii sa scrie documente bine structurate, deoarece LATEX asa
lucreaza, prin specificarea structurii;
exista suport pentru o multime de lucruri cum ar fi realizarea de slide-show-uri,
tabele foarte lungi, bibliografii specializate etc;
TeX, motorul de formatare este abolut gratis si foarte portabil; Practic lucreaza pe orice sistem de operarare si orice configuratie hardware;
Formule: LATEX ramne cea mai eficienta metoda pentru a tehnoredacta texte
matematice. In primul rand, rezultatele grafice sunt extrem de placute, si nici
un alt program existent nu se ridica la naltimea calitatii sale. Editorul de
ecuatii din Microsoft Word este absolut jalnic n comparatie cu LATEX .
Standard: LATEX a fost conceput cu grija pentru a se comporta la fel pe
orice sistem. LATEX si TeX sunt lingua-franca pentru schimbul de documente
n multe domenii tehnice. De exemplu, majoritatea, daca nu toate articolele,
trimise spre publicare n conferinte si jurnale ale societatii americane de matematica, de fizica, sau de astronomie trebuie sa fie scrise folosind LATEX [9]. In
plus, LATEX este folosit foarte mult n comunitatea informaticienilor;
Nu e vizual: faptul ca LATEX nu e un sistem vizual de editare (WYSIWYG:
What You See is What You Get) este considerat de unii ca un avantaj: n
felul acesta autorul se concentreaza asupra formei logice a documentului, si nu
asupra nfatisarii. Mesajul textului este atunci mai bine transmis.
E extensibil: vom vedea imediat ca LATEX este un limbaj n care se pot defini
noi constructii. Din cauza asta o sumedenie de aditii au fost facute de-a lungul
timpului, care permit comenzi de formatare deosebit de sofisticate si puternice.
Manualul LATEX de baza descrie limbajul n anexa C n 70 de pagini, dar cartea
despre module suplimentare are 500 de pagini!
E configurabil: Din cauza ca este un limbaj bazat pe macro-uri (vom discuta
despre asta un pic mai ncolo), multe din comenzile de baza se pot redefini
sau configura. Din punct de vedere al ingineriei programarii acesta nu e un
lucru prea ntelept, si unele din erorile criptice de aici provin. Pe de alta parte,
capacitatea de a reconfigura foarte multe elemente face schimbarea stilului unei
prezentari extrem de simpla. Fisiere de stil contin configuratii complexe
predefinite (asemanator cu Cascaded Style Sheets din HTML); schimbnd un
cuvant ntr-un fisier LATEX putem schimba radical felul n care este nfatisat
textul.
Iata si unele dintre dezavantajele LATEX :

E un limbaj: LATEX este un limbaj, si nu un program. LATEX seamana cu


limbajul HTML sau cu RTF (Rich Text Format).Pentru a formata un text
folosim comenzi inserate ntre elementele textului pentru a descrie n ce fel
trebuie sa arate acest text.
Nu e vizual:nainte de a folosi LATEX trebuie sa ne familiarizam cu o multime
de comenzi noi. Pentru HTML exista editoare speciale, care ne permit sa
compunem paginile de web n mod vizual, fara sa stim ce fel de comenzi trebuie
inserate pentru a obtine nfatisarea dorita. In cazul LATEX nsa aceste scule
sunt mult mai primitive, si n general pentru a obtine rezultate satisfacatoare
si pentru a beneficia de ntreaga lui putere, limbajul trebuie cunoscut.
E complicat: din motive istorice, pe care le vom trece pe scurt n revista,
LATEX este un limbaj destul de obscur si greu de folosit. Chiar daca unele
elemente fundamentale sunt relativ usor de nvatat, efortul necesar pentru
stapanirea majoritatii comenzilor este substantial.
Specializat: pentru o multime de aplicatii LATEX este departe de a fi limbajul
ideal. De exemplu, desi exista translatoare automate din LATEX n HTML,
LATEX nu este limbajul cel mai potrivit pentru a descrie pagini de web.
Scule neprietenoase: In fine, desi LATEX este implementat pe o multime
de sisteme, incluzand Windows, modul preferat de folosire este in linie de
comanda. Textul de formatat, continand comenzile LATEX de aranjare n pagina, trebuie compus folosind un editor separat. Dupa aceea este invocata o
comanda pentru a procesa textul , dupa care un alt program trebuie folosit
pentru a vizualiza rezultatul; adesea alte programe trebuie folosite pentru a
genera indexuri, bibliografii, sau pentru a tipari produsul final. Programul
cu care procesez eu este [Link] care la fel ca si celelalte se gaseste aici
C:\Program Files\MiKTeX 2.5\miktex\bin si care are ca rezultat un fisier
n format .pdf. Acesta se poate vizuliza cu utilitarul Acrobat Reader care
se poate descarca gratuit de pe site-ul [Link] n ultima vreme au nceput sa apara scule mai prietenoase, care integreaza aceste
functionalitati sub o singura interfata vizuala).
Nu e curat: anumite constructii din limbaj, care functioneaza bine izolat, atunci cand sunt folosite ipreuna dau rezultate surprinzatoare, sau erori.
Acestea sunt probleme care rezulta din design-ul initial al limbajului si sunt
extrem de neplacute, chiar si pentru utilizatorii avansati.
Mesaje criptice: atunci cand un document contine erori n comenzile de
formatare, mesajele de eroare sunt adesea extrem de greu de interpretat, si
sursa erorii este foarte greu de gasit. Acesta este un obstacol substantial
pentru novici.

Descrierea complet
a a limbajului si a o sumedenie de pachete suplimentare
este cuprinsa n nu mai putin de trei carti! Ca atare textul de fata este o
introducere extrem de sumara n capabilitatile LATEX .
Uneori printre cei nou-veniti apar unele confuzii cu privire la TeX si LATEX .
Pentru a evita pe viitor asemenea situatii iata ce este una si ce este cealalta:
TeX este un program de tehnoredactare ce a fost scris de Profesorul Knuth
de la Universitatea Stanford n jurul anului 1978. Implementeaza un limbaj
de programare cu circa 300 de comenzi de baza si a format nucleul pentru
numeroase sisteme DTP (desktop publishing). Si desi se poate nca edita
texte n limbajul TeX este nevoie de studiu n profunzime trebuie sa stiti sa
scrieti macro-uri (subprograme) pentru a putea face si cea mai simpla actiune
repetata.
LATEX este o interfata pentru TeX realizata de Leslie Lamport Digital Equipment Corporation (DEC) n 1985 pentru a automatiza toate actiunile repetitive necesare pregatiri unui document. LATEX pune la dispozitia utilizatorilor
toata puterea TeX fara ca utilizatorul sa fie nevoit sa nvete limbajul de la
nivelul inferior. LATEX este sidtemul recomandat pentru toti utilizatorii cu
exceptia tipografilor profesionisti si a specialistilor n computere care sunt
interesati n conceptele de baza ale Tex.

1.2

Istoric

Evolutia acestui limbaj de tehnoredactare este extrem de interesanta n ea nsasi,


si ne va cauza ntalnirea cu niste giganti ai informaticii. Pe langa aceste aspecte
anecdotice, multe din intolerantele limbajului provin din deciziile facute de designerul initial, Donald Knuth.
Donald E. Knuth este una dintre figurile cele mai impresionante din istoria
informaticii. Desi pagina sa de web este foarte comprehensiva, [Link] knuth/, merita sa ne oprim pe scurt asupra personajului. Este
genul de individ care are nevoie de o pagina si jumatate pentru a face lista tuturor
premiilor, distinctiilor academice si doctoratelor onorifice pe care le-a primit (acestea din urma deocamdata 21 n numar). Excelenta sa academica n informatica este
dublata de o cultura enciclopedica, care se reflecta n stilul sau literar deosebit de
interesant. Chiar daca, din punct de vedere tehnic, multe din cartile sale sunt relativ
greu de citit, ele sunt ntotdeauna o combinatie foarte placuta de stiinta, literatura,
umor si ntelepciune.
Domnul Knuth este ncepand din 1968 profesor la Universitatea Stanford din
California. Doctoratul sau este nsa n matematica, obtinut n 1963 la Universitatea
Caltech. Articolele sale n general sunt la intersectia dintre matematica si calculatoare, dar are foarte multe publicatii de matematica pura; Don Knuth (cum este
cunoscut printre prieteni si admiratori) este responsabil de altfel pentru multe din
9

Figura 1: Donald Knuth, creatorul TeX.


metodele matematice de analiza a algoritmilor folosite astazi n mod curent. Multe
din aceste metode au fost expuse n volumele publicate din ampla lucrare Arta programarii calculatoarelor. Aceasta serie a fost nceputa n 1969, si trebuia sa contina
sapte volume masive. Primele trei au fost publicate n 1968, 1971 si respectiv 1973,
si au fost traduse si n romaneste, la Editura Tehnica, ntre 1974 si 1976; sunt cu
siguranta disponibile la o multime de biblioteci si anticari.
Aceste carti se doreau a fi o incursiune n toate tehnologiile majore din informatica la vremea respectiva, dar contin si o multime de rezultate originale ale lui
Don Knuth. Ca urmare, n 1974 i-a fost decernat cel mai prestigios premiu din
informatica, Nobel-ul din calculatoare, premiul Turing.
Frustrat de dificultatea de a produce documente tiparite de buna calitate, care
sa contina formule matematice, nainte de a ncepe volumul 4 din serie, Knuth s-a
apucat sa studieze problemele tipografiei digitale. Astfel a nceput o excursie de
un deceniu n acest domeniu, care a dus la crearea sistemelor TeX si METAFONT,
pentru tehnoredactare computerizata si pentru crearea automata de seturi de caractere (font-uri). Pentru a putea mpartasi ntregii lumi creatiile sale, Knuth a facut
codul-sursa al lui TeX disponibil n ntregime, gratuit dintru nceput. Pentru a
putea apoi explica codul sursa, Knuth a creat un sistem numit WEB (a nu se confunda cu World-Wide-Web), care permite compunerea simultana a unui program si
a documentatiei sale. Sistemul WEB este explicat de Knuth ntr-un articol celebru
numit Literate Programming, despre programarea ca o forma de literatura! Rezultatele acestui proiect n tipografia digitala au fost tiparite n 1986 sub forma a cinci
volume numite Computers and Typesetting (Calculatoarele si tehnoredactarea).
Doua dintre carti sunt manualele TeX si respectiv METAFONT, alte doua carti
contin codul sursa al programelor TeX si METAFONT, descrise n sistemul CWEB
(care este o implementare a sistemului WEB pentru limbajul C), iar ultimul volum
contine descrierile parametrilor si programelor METAFONT utilizate de Knuth pentru a genera setul de caractere Computer Modern.
10

Creatia lui Knuth nu se termina aici; este autorul a peste douazeci de carti si a
cateva sute de articole, de la matematica, analiza algoritmilor, tipografie digitala,
pana la analiza unor texte biblice!
Domnul Knuth are o pagina de web foarte comprehensiva, care reflecta propensiunile sale literare, dar a renuntat de mai bine de zece ani sa mai foloseasca posta
electronica, din cauza ca primea prea multe scrisori de la nenumaratii fani. In urma
cu cativa ani a iesit la pensie, dar asta nu nseamna ca s-a oprit din activitatea
didactica n ntregime; tine n continuare prelegeri la Universitatea Stanford si n
alte locuri unde este invitat, si afirma ca vrea sa-si dedice majoritatea timpului
ramas completarii celor sapte volume din Arta programarii, a caror serie a fost
ntrerupta temporar n urma cu 26 de ani. Afirma de asemenea ca nu mai primeste
studenti n calitate de ndrumator la doctorat, dar ca va semna teza de doctorat a
oricui rezolva n timp scurt (2-3 saptamani) una din problemele nerezolvate pe care
le propune din cand n cand n prelegerile sale (aviz amatorilor de un doctorat pe
fuga).
Aceasta este schita de portret a unuia dintre cele mai pitoresti personaje din
informatica. Chiar daca ne-am abatut de la subiectul acestui lucrari, am considerat
necesar sa vorbesc putin despre el.

1.3

TEX

Vom vedea mai departe ca LATEX nu e nimic altceva decat un pachet de definitii
(macro-uri) n limbajul TeX creat de Knuth. Ca atare vom arunca ntai o privire
rapida asupra acestui limbaj.
Versiunile succesive de TEX sunt numerotate cu zecimalele numarului la ora
actuala s-a ajuns la versiunea 3.14159.
1.3.1

Numele

Primul lucru care trebuie clarificat este pronuntia: TeX se citeste de fapt tech,
si nu tex. Iata explicatia lui Don Knuth pentru etimologie, extrasa din primul
capitol al cartii de TEX: English words like technology stem from a Greek root
beginning with the letters  . . . and this same Greek word means art as well as
technology. Hence the name TeX, which is an uppercase form of .
Insiders pronounce the of TEX as a Greek chi, not as an x, so that TeX
rhymes with the word blecchhh. Its the ch sound in Scottish words like loch or
German words like ach; its a Spanish j and a Russian kh. When you say it
correctly to your computer, the terminal may become slightly moist. n traducere:
Cuvinte ca tehnologie sunt formate dintr-o radacina greceasca care ncepe cu
literele  (tau, epsilon, chi); acest cuvant grecesc nseamna el nsusi arta dar
si tehnologie. De aceea numele TeX, care este scrierea cu litere majuscule a
cuvantului .

11

Cunoscatorii pronunta litera din TeX ca pe grecescul chi, si nu ca pe un x,


astfel ncat TeX rimeaza cu cuvantul blecchhh. Este ca sunetul ch din cuvinte
scotiene ca loch sau ca ach din cuvinte germane; este j-ul spaniol si kh-ul
rusesc. Cand este pronuntat corect n fata calculatorului, va face ca terminalul
sa se umezeasca.
Tehnoredactat corect, litera E din TeX trebuie sa apara mai jos decat celelalte ,
tocmai pentru a indica faptul ca e vorba de un program de tehnoredactare. Cand
se foloseste un terminal ASCII cuvantul se scrie cu T si X mare si E mic: TeX.
Termenul TeX are cel putin trei semnificatii diferite. In primul rand, TeX este un
program scris de catre informaticianul si matematicianul Donald E. Knuth. Scopul
lui este de a facilita redactarea textelor si formulelor matematice. De fapt Knuth
a creat acest program pentru a gestiona celebrul sau tratat de programare a calculatoarelor. Programul pune la dispozitia utilizatorilor un set de comenzi de baza
pentru formarea textelor si a formulelor matematice. Acest set de comenzi, care
formeaza n sine, un fel de limbaj de programare, poarta de asemenea, numele de
TeX. Atunci cand spunem ca un anumit set de macro-uri este scris n TeX, avem n
vedere TeX virtual, deci aceasta a doua semnificatie. Comenzile de baza continute
n TeX virtual sunt prea putine pentru o utilizare eficienta. De aceea, Knuth a creat
un sistem de macro-uri, plecand de la TeX virtual, sistem pe care la numit plain
TeX. Astfel, daca cineva va spune ca a scris o lucrare n TeX, fiti siguri ca a vrut
sa spuna plain TeX (chiar daca acea persoana nu este constienta de acest fapt).
Modul de functionare al TeX-ului este urmatorul. Se creeaza mai ntai un sistem
coerent si complet de macro-uri care usureaza utilizarea TeX-ului virtual. Apoi se
ruleaza TeX cu o anumita optiune (initex) pe setul de macro-uri respective si se
obtine un asa-numit fisier format, care contine deci toata informatia necesara pentru
utilizarea sistemului de macro-uri. Acum tot ceea ce ramane de facut este sa se scrie
fisierul sursa, care este un fisier ASCII formatat cu ajutorul macro-urilor sistemului
si apoi sa se ruleze TeX (care ncarca, n prealabil fisierul format) cu acest fisier
sursa ca argument.
1.3.2

Cutiute

Conceptele fundamentale cu care TeX opereaza sunt cutiutele si lipiciul (boxes and
glue). Motorul care tehnoredacteaza nu stie mare lucru despre fiecare caracter; tot
ceea ce i trebuie este sa stie dimensiunile unei cutii care cuprinde caracterul, ca n
figura 2. TeX nu stie nimic despre care puncte din cutie vor fi pictate cu cerneala si
care nu; aceasta este treaba altor scule.
Textul este asamblat din astfel de cutiute puse una langa alta. TeX aranjeaza
cutiute una dupa alta pe orizontala formand randuri. Cand un rand se termina,
TeX face din el o cutiuta mai mare si pune cutiutele-randuri una peste alta. Fiecare
pagina este tot o cutie, asamblata din mai multe randuri puse unul peste altul.
Utilizatorul poate crea cutii cu dimensiuni negative; n felul acesta se pot obtine
efecte speciale, micsorand distanta dintre caractere sau scriind caractere suprapuse.
12

Figura 2: Trei litere si cutiile din care fac parte, puse una langa alta. TeX opereaza
tot timpul doar cu cutii, si nu stie nimic despre cum arata literele de fapt. Cu linie
punctata este indicata cutia obtinuta din alipirea celor 3 litere.
Comenzi speciale pot muta cutiile (de exemplu daca vrem sa facem un exponent
putem folosi semnul , care va ridica cutia care urmeaza si va micsora font-ul).
In TeX mai exista si un alt tip special de cutie, care se cheama clei. Ca
si cutiutele, clei-ul are o anumita dimensiune, dar n plus are capacitatea de a se
ntinde si comprima ca un elastic. Intre cuvintele de pe o linie TeX pune automat
lipici; asta permite spatiilor dintre cuvinte sa se ntinda sau sa se comprime pentru
a ajusta frumos marginea din dreapta a liniei. Cu cat se ntinde mai mult lipiciul,
cu atat mai dureros este rezultatul, pentru ca asezarea n pagina se departeaza de
la cea ideala.
TeX foloseste conceptul de lipici pentru a calcula despartirea n randuri optima
a unui text. TeX foloseste pentru asta o formula matematica, care n functie de cat
de ntins este lipiciul din fiecare rand calculeaza frumusetea unui paragraf. Cand
programul desparte n randuri un paragraf, foloseste un algoritm destept inventat
de Knuth (folosind programare dinamica) pentru a calcula taieturile care ofera cel
mai placut efect estetic, dintre toate cele posibile.
Folosind tipuri speciale de lipici, care se ntinde la infinit fara dureri, se pot
obtine efecte speciale: de exemplu punnd lipici la marginea din dreapta a fiecarui
rand se pot obtine pagini la care randurile nu sunt egale, ci sunt aliniate la stanga.
Punand lipici la ambele parti se obtin randuri centrate.
Asta e tot! Folosind cutiute si lipici mpreuna cu algoritmi inteligenti de aranjare
n pagina TeX obtine tipografie de calitate extraordinara.
Trebuie mentionate aici formulele matematice: modul n care TeX formateaza
matematica este nca neantrecut, desi sistemul este vechi de peste douazeci de ani.
Cand are de tehnoredactat o formula, TeX foloseste un algoritm sofisticat care recalculeaza dimensiunile si plasamentele tuturor cutiutelor n functie de tipurile de
simboluri care apar: fiecare simbol este catalogat ca fiind ntr-una din 13 categorii:
operator binar, operator relational, accent, un semn de punctuatie, un tip de paranteza nchisa sau deschisa, semn de fractie, radical, etc. Fiecare din aceste categorii
de simbol se comporta ntr-un anume fel n raport cu vecinii sai; unele simboluri
cresc cat este necesar pentru a se adapta la cutiile cu care sunt vecine (de exemplu
linia de fractie sau parantezele).
13

1.3.3

Macro-uri

TeX este un limbaj foarte original. Principalul concept din acest limbaj este macroinstructiunea, numita familiar si macro. Cei care programeaza n C sunt familiarizati
cu macro-urile, care sunt acolo definite cu comanda #define. Un macro este practic
o instructiune care arata cum un anumit text este substituit cu un altul.
Limbajul TeX este n ntregime bazat pe macro-uri. Fiecare variabila este de fapt
un macro care este substituit n text cu valoarea sa. Limbajul are un set restrans de
operatii primitive (cea mai primitiva operatie fiind cea de a desena un caracter),
si toate celelalte operatii sunt definite din acestea folosind macro-uri. Unele macrouri se pot expanda la randul lor ntr-un text care contine macro-uri, care trebuie
expandate la randul lor, etc. In felul acesta, folosind macro-uri recursive, limbajul
foloseste un concept rudimentar de bucla.
Limbajele bazate pe macro-uri sunt extrem de puternice; de fapt sunt la fel
de puternice ca orice alt limbaj; pentru demonstratie Andrew Marc Greene de la
universitatea MIT a scris n 1992, n 470 de linii de TeX (inclusiv comentarii) un
interpretor complet de BASIC! (Un alt limbaj bazat pe macro-uri foarte folosit este
m4.) Dar anumite complicatii cu macro-urile fac de fapt folosirea lor extrem de
dificila. Cele mai multe probleme apar din ordinea de evaluare: cand avem un
macro aplicat altui macro, care dintre ele trebuie expandat ntai? In functie de
ordine putem avea rezultate diferite.
In TeX problemele sunt exacerbate din cauza ca nu exist
a cuvinte rezervate, ca
n toate limbajele cu care suntem obisnuiti. Fiecare cuvant sau chiar fiecare caracter
poate fi transformat ntr-un macro, care se expandeaza n altceva! Expansiunea unui
macro poate genera o definitie care schimba semnificatia macroului nsusi!
1.3.4

TeX: un limbaj imposibil

Cu tot respectul pentru dl. Knuth, care a jucat un rol foarte important n 1968
n construirea primului compilator de Algol, si care a contribuit la crearea unor
importante concepte n teoria compilatoarelor, limbajul TeX este o varza completa.
Utilizatorul trebuie sa consume un efort de imaginatie substantial pentru a face
programele sa functioneze, fiind foarte atent la ordinea de evaluare si la efectele
laterale ale fiecarui macro.
Pentru ca unele macro-uri le redefinesc pe altele, avem o neplacuta problema de
dependenta: efectul unui program TeX depinde de mediul n care este invocat.
Pentru ca efectele prin variabile globale si definitii de macro-uri nu sunt ntotdeauna
controlate clar, programele TeX sunt foarte greu de scris si de depanat. Mai mult,
unele concepte care functioneaza foarte frumos n izolare, au mari probleme cand
sunt folosite laolalta (de exemplu, n LATEX e foarte complicat sa faci note de subsol
n tabele).
Utilizatori sofisticati pot folosi TeX pentru a tehnoredacta texte relativ simple,
dar doar o mana de oameni poate exploata TeX cu usurinta. Eu cred ca design-ul
mizerabil al limbajului este unul dintre motivele fundamentale pentru care TeX nu
14

este folosit pe scara mai larga. De fapt TeX ar fi trebuit de mult sa fie scos din
circulatie de produse mai usor de folosit; singura explicatie pentru longevitatea sa
este faptul ca piata pentru un program de tehnoredactare de matematica este extrem
de ngusta, iar dificultatea implementarii unui program de tehnoredactare atat de
sofisticat (cu toata publicarea algoritmilor si a codului sursa) este enorma (Knuth
este un programator colosal, cu o atentie nemarginita pentru detaliu).

1.4

METAFONT

Simultan cu TeX, Knuth a construit un alt program foarte interesant, numit METAFONT, care poate genera familii ntregi de font-uri dintr-o singura specificatie. Astfel, programatorul descrie forma generala a fiecarui caracter; fisiere de configuratie
pot apoi genera toate familiile de font-uri dintr-o singura descriere: caracterele
si
oblice, grase, egale, CAPITALIZATE, italice si variatele
si fara serife sunt toate generate apoi automat din aceeasi descriere.
marimi, cu

dimensiuni

1.4.1

Leslie Lamport

Inainte de a afla mai multe detalii despre LATEX , ne ntalnim din nou cu o figura
colosala a informaticii, Leslie Lamport. Desi mai putin faimos decat Donald Knuth,
Leslie Lamport este unul dintre cercetatorii cei mai renumiti din domeniul calculatoarelor. Domeniul sau de specialitate este teoria sistemelor distribuite si verificarea
formala. Dupa ce a obtinut un doctorat n matematica n 1972 de la universitatea
Brandeis, a lucrat pentru o vreme la compania Stanford Research Institute (initial
formata prin colaborare cu universitatea Stanford; SRI este unul din cele mai mari
centre de cercetare din ntreaga lume, care lucreaza pe baza contracte). In timp
ce lucra aici Lamport a creat sistemul LATEX . Dupa un scurt timp s-a mutat la
centrul de cercetari Systems Research Center (SRC) al companiei Digital (care a
fost ntre timp cumparata de Compaq). Lamport lucreaza n continuare la Compaq
SRC, unde puteti gasi si pagina sa de web:
[Link]/SRC/personal/lamport/[Link].
Inainte de a discuta despre cea mai cunoscuta creatie a lui Lamport, LATEX , se
cuvine sa mentionam unele dintre contributiile lui fundamentale n teoria sistemelor
concurente si distribuite:
Lamport a clarificat n 1978 notiunea de timp si sincronizare ntr-un sistem
distribuit, folosind notiunea de acum clasica de ceasuri Lamport
O problema celebra n sisteme distribuite pentru care Lamport a oferit o solutie
n 1982 este cea a generalilor bizantini, care discuta despre posibilitatea ca
un sistem distribuit sa tolereze defectiuni arbitrare n unele din componentele
sale
In 1990 Lamport a introdus notiunea de logica temporala a actiunilor, Temporal Logic of Actions, TLA, despre care se spune ca este n continuare cel
15

Figura 3: Leslie Lamport, creatorul LATEX .


mai bun formalism pentru a descrie si rationa despre sisteme distribuite. TLA
si extensii ale sale sunt folosite pentru a specifica, rationa si depana sisteme
distribuite reale, cum ar fi de exemplu protocoale de coerenta pentru multiprocesoare simetrice , sau protocoale de securitate.
1.4.2

LATEX

In 1983 Lamport nvatase TeX de relativ putina vreme, si si construise un set de


macro-uri foarte utile, care mutau operatiile pe un nivel ceva mai nalt, n care
descriai nu cum vrei sa arate un document, ci care este structura lui logica.
Sistemul acesta de macro-uri a capatat numele Lamport TeX, sau LATEX . Editura Addison-Wesley dorea sa tipareasca un manual despre un sistem de tehnoredactare
pentru matematicieni si ingineri, asa ca un redactor l-a contactat pe Lamport. Ca urmare, Lamport a scris cartea de LATEX , care a devenit un best-seller (s-au vandut
cateva sute de mii de exemplare si a fost retiparita de cel putin sapte ori). Cartea
a propulsat setul de macro-uri al lui Lamport n celebritate; ca si TeX, acestea sunt
disponibile n cod sursa pe Internet.
Ceea ce LATEX ncearca sa faca este sa ascunda ntreaga masinarie ncalcita a
TeX-ului sub o fatada neteda: redefinirea comenzilor este n mod implicit interzisa

16

(dar poate fi facuta, daca utilizatorul chiar doreste), un set de comenzi esentiale este
oferit, care organizeaza documentul ntr-o forma logica, si sunt introduse fisierele
de stil, care grupeaza declaratii care influenteaza arhitectura ntregului document;
schimbarea stilului se poate face separat de cea a continutului. LATEX introduce
de asemenea suport pentru referinte ncrucisate (genul vezi figura X, unde X
este numerotat automat de sistem), etichete, cuprins, index, bibliografie, unele cu
ajutorul unor programe suplimentare care proceseaza texte.

1.5

LATEX2e si LATEX3

LATEX face o treaba destul de buna; este un limbaj destul de rezonabil, n care se
pot produce relativ repede rezultate atractive; matematica este tehnoredactata la
ntreaga putere a TeX-ului. Dar implementarea LATEX era greu de mentinut si dezvoltat, asa ca ncepand din 1993 o serie de voluntari si programatori din ntreaga
lume au pornit un nou proiect numit LATEX3 (versiunea de LATEX la acea data era
2.09). LATEX3 este un proiect n evolutie, dar a fost deja lansata o versiune preliminara, numita LATEX2e.
LATEX a fost n ntregime re-implementat ntr-o maniera asemanatoare cu programarea orientata pe obiecte, ntr-o serie de module separate. Unele module se
pot nlocui unele pe altele, si felul n care utilizatorii pot contribui cu noi module este standardizat. Asta a dat nastere la o cantitate remarcabila de facilitati noi
aduse limbajului si sistemul de folosire a font-urilor a fost extins si perfectionat[3][4],
permitand LATEX sa foloseasca font-uri dezvoltate de terti (si nu numai Computer
Modern).
LATEX2e este compatibil cu 2.09, dar nu si invers. Limbajul de baza 2.09 este
complet inclus n 2e.

17

METAFONT

In aceasta sectiune voi face o introducere ntr-unul din programele auxiliare ce vine
odata cu fiecare implementare LATEX - METAFONT[8]. La fel ca si LATEX nici acesta
nu necesita cunostiinte deosebite n materie de calculatoare. Stapanirea utilizarii la
nivel general a calculatorului cat si a unui editor de text cum este Notepad sunt
suficiente.

2.1

Ce nsemn
a METAFONT?

Cred ca cea mai buna cale de a ntelege despre ce vorbim este sa ntelege m ce
nseamna numele sau.
Sa ncepem cu sfarsitul, acolo gasim cuvantul FONT. Ce nseamna font este o
ntrebare la care este mai greu de raspuns decat pare. Daca ne uitam pe Internet1
vom gasi o serie de definitii diferite. Insa deoarece suntem interesati de designul
fontului vom spune ca fontul este o colectie de caractere de acelasi fel sau model
n limbajul tipografului. Sau mai degraba o realizare a unui anume model (exemplu fizic lemn sau aliaj) sau n limbajul calculatorului un font mediu n acord cu
anumiti parametri cum ar fi marimea, latimea, naltimea(normal si aldin sunt doua
exemple de naltime) contrast(diferenta ntre partile subtiri si cele groase ale caracterului) stil(normal, italic, monospatiat, de imprimanta etc.) prezenta sau absenta
de serife( acele mici decoratiuni care apar unde se termina caracterele mari) si forma
lor. Dar nu trebuie sa ne limitam la aceasta lista, putem noi crea parametri nostri
Si acesta este locul unde apare Meta- . Meta este un prefix de origine greceasca a
carui simpla traducere nseamna dupa dar datorita ntorsaturii evenimentelor(de
vazut aici2 ) a devenit de ordin superior, dincolo n latina si apoi n toate limbile moderne (cu exceptia limbii grecesti unde si-a pastrat vechiul nteles). Deci
avem metalimbaje (limbaje folosite pentru a descrie limbaje) metaistorie (studiu
despre cum vad si studiaza oamenii istoria) metateoreme(teoreme despre teoreme)
metareguli (reguli despre reguli) etc. Practic se poate spune Meta- la orice facandu-l
mai tare, superior. Dar mai este unloc unde Meta- este folositor si anume la designul fonturilor. In mod obisnuit font design nsemna ca pentru fiecare valoare a
parametrilor amintiti mai devreme (si orice parametri ai fonturilor pe care le creati)
trebuie sa realizati un font ntreg (cateva sute de caractere) si asta doar pentru un
singur model (existenta de fonturi scalabile adicafonturi care pot fi folosite la orice
marime, ajuta un pic avand grija de parametrul size dar acesta este doar unul
dintr-o multime de parametri). Chiar si cu ajutorul unor instrumente moderne cum
ar fi programe de desenat fonturi, este o treaba lunga si plictisitoare. Ar fi mai
interesan sa facem meta-design adica sa desenam ce este independent de valorile
parametrilor. In loc sa desenati un font pentru fiecare combinatie de parametri mai
ati descrie modelul o data, si apoi introducand separat lista de parametri sa lasati
1
2

[Link] [Link]
[Link]

18

calculatorul sa creeze toate fonturile de care aveti nevoie cu toate combinatiile de


parametri si daca uitati o combinatie, n loc sa trebuiasca sa desenat tot fontul din
nou doar sa schimbati niste parametri si sa lasati calculatorul sa faca toata treaba
plictisitoare. In acest mod veti economisi mult efort si va veti asigura de unitatea
fonturilor proiectandu-le o singura data.
Si sigur, a-ti ghicit, METAFONT se ocupa de meta-design. METAFONT este
un sistem care va permite sa descrieti modelul o singura data si sa creati atatea
fonturi din acelasi model cate doriti schimband doar parametri separat. Cum se
ntampla asta vom vedea n sectiunea urmatoare.

2.2

Cum lucreaz
a METAFONT?

Deci METAFONT este un sistem care va permite sa creati sute de fonturi usor
si cu un minimum (care poate totusi sa nsemne deatul) de munca de la creatorul
uman. Cum merge asta? Ei bine s-ar putea sa va surprinda dar METAFONT este
o aplicatie cu o singura linie de comanda (numita mf pe majoritatea platformelor si
[Link] pe platformele Windows). Pe scurt nu are interfata grafica (nici o ferastra sau
asa ceva). Trebuie apelata prin linie de comanda sau un program ajutator. Si atunci
cum puteti crea fonturi cu un aemenea program cu care nu poti desena? Simplu:
acest program este un interpretor. Ia o serie de comenzi ca input si le executa cate
una o data pe cum le primeste. Cu alte cuvinte METAFONT este de asemenea un
limbaj de programare ca si C, BASIC, Pascal(n care sursa originala a fost scrisa),
Perl si binenteles TeX.
Si atunci cum introduceti programele pentru ca METAFONT sa le poata interpreta? Ei bine sunt mai multe cai, dar cea mai obisnuita este sa faceti un fisier
continand instructiunile, si sa comunicati numele fisierului lui mf. Fisierul propriuzis trebuie sa fie plain text si sa aiba extensia mf. mf va citi fisierul si va returna(daca
totul este bine) doua fisiere cu acelasi nume dar cu extensii diferite(proces numit
compilare). Unul dintre fisiere va avea extensia .tfm . Este numit font metrics
file. Contine informatie cum este marimea caracterelor. Al doilea fisier va avea
o extensie de forma .<numar>gf unde numar este o anumita valoare cu trei cifre.
Contine forma actuala a caracterelor. Ambele fisiere formeaza fontul si ambele sunt
necesare pentru a avea un font functional. Bun, si asta-i tot? Ei bine ar fi fost prea
simplu sa fie asa. Pentru nceput nu vom folosi fisierul cu extensia gf. El trebuie
mai ntai transformat ntr-un fisier mai mic care sa contina aceeasi informatie dar
sa fie mpachetat(arhivat). Veti face asta cu un al doilea program numit GFtoPK
([Link] pe platformele Windows) iar fisierul rezultat va avea acelasi nume cu
diferenta ca extensia lui a devenit .<numar>pk (cu acelasi numar ca fisierul gf3 ).
Fisierele pk si tfm formeaza n acest moment fontul iar ultimul lucru care trebuie
facut este sa le puneti ntr-un n care TeX si LATEX sa le gaseasca. Odata facut acest
3

Pe unele platforme, cum este Windows, extensia actuala a fisierelor pk trebuie sa fie .pk fara
numar. Trebuie s
a verificati fisierele pk instalate pentru a vedea n ce fel trebuie sa facet fisierele
dvs.

19

lucru puteti folosi fontul cu LATEX . Pare complicat? Ca multe lucruri este mai
complicat de explicat decat de facut practic. Si nu va faceti griji daca nu ntelegeti
nca, metoda va fi repetata din cand n cand si va veti lamuri. Deocamdata iata un
sumar al metodei:
1. Scrie unul(sau mai multe) fisiere plain text continand instructiuni METAFONT(adica un program METAFONT) si salveaza-l(le) cu extensia .mf
2. Executa fisierul cu programul mf . Rezultatul va fi doua fisiere cu extensia
.tfm si .<numar>gf.
3. Arhiveaza fisierul .tfm cu programul GFtoPK. Va rezulta u n alt fisier cu
extensia .<numar>pk (sau pk)
4. Muta fisierele pk si tfm ntr-un loc n care sa fie gasit de TeX si LATEX
5. Si gata! Enjoy!

2.3

De ce avem nevoie?

Ei si acum apare problema: de unde luam aceste programe? Raspunsurile sunt chiar
aici, nsa mai ntai nainte sa vedem de unde luam aceste programe sa vedem de ce
anume avem nevoie.
Un calculator cu un sistem de operare pe el. Bine bine dar asta suna atat de evident ca doare, dar partea buna aici este ca orice calculator este bun. LATEX si
METAFONT au fost adaptate pe probabil toate platformele folosite astazi
incluzandu-le pe cele care nu mai sunt suportate deloc(cum ar fi TOPS-20 un
var al sistemului de operare WAITS cel pe care TeX a fost initial dezvoltat).
Aceste adaptari sunt mai mult sau mai putin actualizate dar de vreme ce dezvoltarile pentru TeX si METAFONT au fost stopate(versiunile existente astazi
sunt finale, cu exceptia corectarii unor buguri noi aparuteun eveniment extrem de rar, aceste doua programe sunt aproape fara buguri) probabil nu veti
sesiza niciodata diferenta, iar fisierul sursa va fi compilat axect n acelasi fel
cu exact aceleasi rezultate pe orice platforma unde METAFONT este instalat.
Un editor de text. Este vorba de cel mai simplu editor de text si normal fiecare
platforma vine cu cel putin unul inclu s din start(cum este Notepad pentru
Windows si Vi pentru Unix). Dar nimic nu va mpiedica sa folositi un editor
diferit care sa scoata n evidenta sintaxa sau alte asemenea optiuni.
O implementare LATEX . De ce ar fi LATEX interesat de METAFONT? Ei bine
dupa cum am spus la nceput TeX(si implicit LATEX ) si METAFONT sunt
esentiale unul celuilalt. TeX nu poate lucra fara METAFONT si METAFONT este fara rost daca n-ar exista TeX. As ca METAFONT vine cu fiecare
implementare LATEX si instaland implementarea LATEX va instala automat si
20

METAFONT pe calculator. Alte programe necesare cum sunt GFtoPK si


GFtoDVI (necesare pentru a face corecturile fonturilor)
Dupa cum vedeti singurul lucru de care cu adevarat aveti nevoie pentru a avea
METAFONT si acesta sa mearga este o implementare LATEX . Sa vedem de unde
luam una potrivita pentru platforma folosita4 .
2.3.1

UNIX si clone ale acestuia

Daca aveti o platforma UNIX de orice fel (Linux, Sun Solaris, BSD etc.) exista
o mare probabilitate sa aveti deja o implementare LATEX n varianta completa iar
acea implemntare este foarte posibil sa fie teTeX. Intr-un asemenea caz nu aveti
ceva de facut si puteti sari de aceasta sectiune. Daca nu aveti destul noroc sa
aveti o implementare LATEX instala ta pe calculator dumneavoastra atunci va trebui
sa o instalati si desigur sfatul meu este sa instalati teTeX deoarece este cel mai
actualizat si cea mai usor de instalat implementare LATEX pentru sistemele UNIX.
O puteti descarca de pe pagina principala teTeX5 . Dar nainte sa ajungeti acolo v-as
sfatui sa controlati daca varianta de UNIX pe care o detineti are un sistem specific
sau o distributie LATEX adaptata la specificatiile sistemului. Acest lucru ar putea
sa va scuteasca de ceva munca (de exemplu n cazul Debian GNU/Linux si altele,
simpla comanda apt-get install tetex-base va face toata treaba de descarcare si
instalare a distributiei teTeX) iar cine doreste editor de text cu sintaxa scoasa n
evidenta nu este nici o problema, atat Vim 6 cat si Emacs 7 au un mod METAFONT
inclus ntre optiunile de editare a textului.
2.3.2

Windows

Windows nu vine cu nici o distributie LATEX asa ca va trebui sa descarcati si sa


instalati una. Cea mai buna este fara nici o indoiala MiKTeX disponibila gratuit la
[Link] si care este pentru toate versiunile mai putin Windows 3.1
si versiunile NT dinainte de 4.0 . Aceasta include un manager de pachete (Package
Manager) si un Update Wizard care va permit cu mare usurinta sa va organizati
si actualizati distributia de LATEX cu interfata grafica. Si, deoarece utilizatorii de
Windows sunt mai putin obisnuiti cu linia de comanda, eu v-as sfatui sa utilizati
doua alte programe ce va vor furniza o interfata grafica pentru LATEX si METAFONT. Primul este Winshell 8 , un editor de text specializat n LATEX care este facut
sa mearga automat cu MikTeX astfel ncat sa nu fiti nevoit decat sa descarcati si
sa instalati programul nainte de a ncepe sa lucrati cu el. Este un editor simplu de
4

Multe platforme lipsesc din aceast


a lista, nsa acest lucru nu nseamna ca pe ele TeX si METAFONT nu pot fi instalate si nu functioneaza.
5
[Link]
6
[Link]
7
[Link]
8
[Link]

21

text care va permite sa va scrieti cu usurinta sursele TeX (cu evidentierea sintaxei)
si sa-l compilati cu un singur click de maus astfel ncat sa nu mai fiti deloc nevoiti
sa folositi linia de comanda. Al doilea este Crimson Editor 9 un editor customizabil
al programatorului. Il recomand deoarece este usor de configurat ca sa mearga n
linie de comanda si are de asemenea optiunea de evidentiere a sintaxei.
2.3.3

Macintosh

Daca se ntampla ca sistemul ce l aveti dumneavoastra sa aiba Mac OS X atunci


este ziua dvs fericita. Deoarece Mac OS X se bazeaza pe o varianta BSD de UNIX.
Adaptarea softwareului UNIX este usoara si mult software gratuit este disponibil n
acest fel pentru Mac OS X. Aceasta include TeX, si distributia TeX este accesibila
pentru Mac OS X prin intermediul i-Installer 10 sau instrumentelor de gestionare a
pachetelor Fink 11 .
Daca pe de alta parte sistemul de operare de pe Macitosh este o versiune mai
veche decat Mac OS veti fi cam dezmagiti deoarece se pare ca nu exista implementare Mac a lui TeX pentru Macintosh-urile non-X. Implementari bune par a fi
CMacTEX 12 si OzTEX 13 , dar ele sunt ambele shareware (CMacTEX costa $35, OzTEX $30, ambele pentru o singura licenta). Totusi si asa aveti nevoie de un editor
de text. Mai multa informatie este disponibila la [Link] De retinut ca si aceste implementari au ciudateniile lor. De
exemplu n implementarea METAFONT pentru OzTeX numita OzMF comanda
pentru a realiza un font nu este numita mf ci MakeTEXPK.
2.3.4

Alte programe

Lista ce am dat-o aici este doar pentru instalarea de baza a TeX/LATEX si METAFONT. In functie de platforma ce o aveti este posibil sa aveti nevoie si de alte
programe (cum sunt vizualizator PostScript sau PDF). Dar din cauza ca acestea
privesc doar TeX si LATEX si nu METAFONT n loc sa explic totul aici simplu va
sfatuiesc sa vizitati paginile Web respective. Fiecare pagina furnizeaza informatii
despre cum sa optimizati distributia LATEX 14 astfel ncat sa va bucurati de puterea
lui maxima.
9

[Link]
[Link]
11
[Link]
12
[Link]
13
[Link]
14
De aici ncolo m
a voi referi mai mult la LATEX deoarece ultimul este cel mai des folosit de
utilizatori.
10

22

2.4

Modul proof al lui METAFONT

Roma n-a fost construita ntr-o singura zi.


Geniu nseamna unu la suta inspiratie si nouazecisinoua la suta transpiratie.
A-ti auzit probabil aceste citate cel putin o data n viata15 daca a-ti fost norocosi,
si de mii de ori daca nu. In ciuda suprautilizarii de care au avut parte, ele sunt
valabile aici. Chiar cand utilizati METAFONT care face totul cu ecuatii, tipografia
de calitate ramane o arta si este foarte improbabil ca primele ncercari sa fie exact
ceea ce doriti chiar daca stiti toate ncalcelile limbajului de programare METAFONT
si chiar daca sunteti un geniu n tipografie. Ca n orice arta veti fi nevoit sa va
antrenati mult, n asa fel ncat ntelegerea sa fie mai profunda, mana mai ferma,
si stilul mai implinit. Cu alte cuvinte va trebui sa parcurgeti o lunga perioada de
ncercari si erori (numita si proofing) pana sa va creati propriile fonturi.
Totusi cu ceea ce stiti acum, proofing-ul este lung cu METAFONT. Dupa cum
stau lucrurile, veti fi nevoit ca pentru fiecare modificare sau caracter nou ce l
adaugati la font sa:
compilezi ntregul font cu parametrii corecti pentru a obtine fisierele gf si tfm
transformi fisierul gf ntr-unul pk
muti fisierele pk si tfm ntr-un loc unde sa poata fi gasite de Tex/
scri un mic fisier TeX pentru a vedea rezultatul
Aceasta se datoreaza caracterului non-WYSIWYG 16 a lui METAFONT (care este
mai degraba WYGIWYW 17 ). Mai mult caracterele fonturilor sunt de regula mici
si deci dificil de verificat, si nu aveti alta cale de a verifica pozitia diferitelor puncte
si linii puse pentru a face caracterele. Si atunci ceea ce ar trebui aici este un fel de
modalitate de verificare care sa treaca peste modul uzual de creare a fonturilor si sa
ne puna la dispozitie mai multa informatie decat forma caracterelor.
Din fericire Knuth era la curent cu necesitatea unei verificari(proofing) si a
prevazut METAFONT cu o modalitate de a face acest lucru. Acum, modul standard de lucru la METAFONT este modul proofing asa ca pana nu specific altfel veti
lucra mereu n modul proofing. In acest mod, METAFONT nu produce un fisier
tfm, iar fisierul gf creat va avea extensia .2602gf . Nu trebuie sa stiti nimic despre
fisier cu exceptia faptului ca contine toata informatia pe care un font n mod normal
o contine si de asemenea este potrivita pentru a face proofsheets prin procesarea
cu aplicatia GFtoDVI ([Link] n Windows). Rezultatul va fi un fisier DVI
15

Pentru a ntelege, a doua este adesea atribuita lui Albert Einstein desi acum se pare ca i este
atribuita lui Thomas A. Edison
16
What You See Is What You Get.
17
What You Get Is What You Want.

23

(cu acelasi nume dar extensia DVI) pe care l puteti vedea cu vizualizatorul DVI
ce vine cu distributia LATEX dvs. In acest fisier fiecare pagina este un proofsheet
dedicat unui singur caracter, tiparit foarte mare(de 20-30 ori fata de dimensiunea
normala a caracterelor fontului) si nsotit de informatie importanta (cel putin daca
a-ti facut METAFONT sa afiseze aceasta informatie). Sectiunea urmatoare va arata
un exemplu de proofsheet si explicatiile necesare pentru informatia ce o puteti gasi
acolo.
Bun si asta-i tot? veti spune, ar fi prea usor. Din pacate modul standard
pentru METAFONT este proof-mode de regula nu veti putea sa o folositi imediat.
Aceasta din cauza ca proofsheets-urile folosesc un font numit gray pentru a arata
caracterele mari, iar acest font de obicei nu este accesibil pentru a fi folosit direct
n distributiile LATEX . Din fericire sursa pentru acest font este ntotdeauna inclusa,
asa ca este simplu sa o compilati pentru a obtine fontul care sa fie functional.

2.5

Un exemplu

Acum ar trebui sa aveti o distributie LATEX cu METAFONT functionala si un font


gray compilat pentru proofsheets. In acest caz putem trece mai departe. Pentru
a ntelege mai bine ce am spus pana acum va voi da o idee despre ce nseamna
METAFONT. Si cel mai bine se face acest lucru cu ajutorul unui exemplu practic.
De asemenea n acest fel va veti putea da seama daca instalarea METAFONT este
corecta.
Fiind un exemplu tot ceea ce trebuie sa faceti este sa urmati instructiunile
urmatoare si sa admirati rezultatele.
Deschideti editorul de text pe care l-ati ales pentru a scrie sursele METAFONT
cu el si scrieti urmatoarele 26 linii de cod:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

u#:=4/9pt#;
define_pixels(u);
beginchar(66,13u#,16u#,5u#);"Letter beta";
x1=2u; x2=x3=3u;
bot y1=-5u; y2=8u; y3=14u;
x4=6.5u; top y4=h;
z5=(10u,12u);
z6=(7.5u,7.5u); z8=z6;
z7=(4u,7.5u);
z9=(11.5u,2u);
z0=(5u,u);
penpos1(2u,20);
penpos2(.5u,0);
penpos3(u,-45);
penpos4(.8u,-90);
penpos5(1.5u,-180);
penpos6(.4u,150);
24

18
19
20
21
22
23
24
25
26
27

penpos7(.4u,0);
penpos8(.4u,210);
penpos9(1.5u,-180);
penpos0(.3u,20);
pickup pencircle;
penstroke z1e..z2e..z3e..z4e..z5e..z6e..{up}z7e..z8e..z9e..{up}z0e;
labels(range 1 thru 9);
endchar;
end

Salvati fisierul cu numele [Link]. Apoi deschideti o fereastra n linie de comanda18 mergeti la folderul unde a-ti salvat fisierul [Link] si scrieti urmatoarea
linie:
mf [Link]
Apasati tasta ENTER. Daca totul functioneaza corect (si daca n-ati facut vreo
greseala cand a-ti copiat programul) ar trebui sa vedeti un rezultat foarte asemanator
cu acesta:
This is METAFONT, Version 2.71828 (MiKTeX 2.3)(preloaded base=plain
2003.2.20)
**[Link]
([Link] Letter beta [66] )
Output written on
beta.2602gf (1 character, 2076 bytes).
si, posibil (pe o platforma UNIX sau asemanatoare) ceva forma grafica semanand
cu litera greceasca beta. Daca va uitati n director veti vedea n schimb ca a aparut
un fisier beta.2602gf la fel ca si un fisier [Link] care contine textul precedent.
Continuati si introduceti linia urmatoare:
gftodvi beta.2602gf
Rezultatul este neinteresant dar veti observa ca n directorul dvs. aveti si un fisier
[Link] . Deschideti-l cu un vizualizator DVI, veti vedea un rezultat asemanator
cu figura urmatoare(vezi figura 4):
Pentru a ntelege cum v-ati ales cu o asemenea figura, sa aruncam o privire mai
ndeaproape la codul programului:
18

Voi considera c
a rulati METAFONT n linie de comanda. Daca faceti altfel pe platforma dvs
(de exemplu dac
a sunteti pe un Mac sau utilizati Crimson Editor configurat cu METAFONT), pur
si simplu utilizati actiunile corespunz
atoare. N-ar trebui sa aveti probleme n a afla cum trebuie
facut.

25

Figura 4: Litera greceasca

26

Linia 1 defineste un parametru algebric cu care toate dimensiunile caracterului


vor fi definite. Facand asa va fi mult mai usor sa realizati variante ale fontului
schimband valorile catorva parametri mai degraba decat sa va uitati printr-o
sursa ntreaga, complicata, n care toate dimensiunile au fost specificate direct
si astfel prin multiplicare sa mariti sansele de a face erori sau sa uitati sa
schimbati vreun parametru. Lucrul cu parametri este componentul cheie n
meta-design.
Dupa cum vedeti, prima linie se ncheie cu #. Totusi n restul programului parametrul este numit simplu u. Ce se ntampla aici este ca lungimile adevarate(valori device-independent) n METAFONT ntotdeauna sunt
specificate cu parametri care se termina cu # (numiti variabile precise).
Totusi pentru a avea aceleasi valori pe orice masna(de exemplu: monitoare,
diferite tipuri de imprimanta) va trebui specificat pentru ce masina(dispozitiv)
creati fontul, si apoi sa transformati valoarea precisa ntr-una mai maleabila(soft),
o valoare de tip device-dependent. Acest lucru l face comanda define pixels
de pe linia a doua. Transforma parametrul precis n unul soft cu nume identic dar fara #. Acest procedeu se datoreaza si vremurilor cand a fost conceput
METAFONT, cand imprimantele erau mult mai putin flexibile decat acum.
Dar trebuie nvatat cum functioneaza, si este nca folositor n meta-design.
Linia a treia indica faptul ca ncepem sa cream un caracter al fontului. Defineste pozitia caracterului n font, la fel ca si dimensiunile(sau mai degraba
dimensiunile unei cutii n jurul caracterului, numita bounding box ) care este
lucrul pe care TeX l manevreaza atunci cand aseaza literele pe un rand de
text. De asemenea este definita o eticheta pentru acest caracter (pusa imediat
dupa comanda beginchar ntre ghilimele), care apare pe mostra pentru acest
caracter. Este o idee buna sa etichetati caracterele deoarece este mai usor sa
navigati prin programe.
Liniile de la 4 la 11 definesc pozitiile diferitelor puncte prin care va trece
pana cand va desena caracterul. Deocamdata sa observam doar cum pozitiile
punctelor sunt definite n functie de parametrul u sau alte puncte si nu de
valorile lungimii actuale. Acest lucru face caracterul usor de scalat modificand
valoarea u# .
Liniile de la 12 la 21 definesc pozitiile penei, de exemplu grosimea penei ntr-un
punct si nclinatia. Asta este ceea ce defineste aspectul unui caracter comparat
cu caractere similare care folosesc aceleasi pozitii.
Linia 22 spune METAFONT-ului sa foloasesca o anumita pana (aici cu un varf
rotunjit). Cu aceasta pana va desena METAFONT caracterul. Schimband
pana veti avea efecte diferite.

27

Linia 23 este actuala (si singura) instructiune pentru desenare. Simplitatea


ei arata puterea METAFONT-ului, care este capabil sa interpoleze pozitiile
penei care trebuie sa mearga prin doua puncte fara ajutorul utilizatorului.
Mai simplu, comanda cere METAFONT sa faca un desen prin toate punctele
n ordine, urmand pozitiile date de instructiunile penpos si sa creeze forma pe
care o puteti admira n figura 4
Linia 24 spune METAFONT sa arate, mpreuna cu numerele, punctele folosite
la constructia formei din mostra. Este un foarte bun obicei pe care sa-l faceti
cat mai des.
Linia 25 explica METAFONT ca desenarea caracterului sa terminat si ca trebuie sa fie pregatit pentru unul nou sau pentru oprire.
Linia 26 indica METAFONT-ului ca treaba lui s-a ncheiat si ca se poate duce
acasa. Nu uitati ca, fara ea, METAFONT va crede ca mai este lucru de facut
si va astepta cu rabdare sa i dati instructiuni noi(METAFONT este un ajutor
foarte ascultator).
Acum probabil va place forma proaspat creata si doriti sa faceti un font adevarat
din ea pentru a nfrumuseta documentele cu noul caracter. Pentru a face acest lucru
mergeti napoi la linia de comanda si introduceti urmatoarea secventa de cod:
mf \mode=ljfour; mode_setup; input [Link]
Unele comenzi dau o semnificatie speciala caracterului backslash si din aceasta
cauza linia precedenta va genera o eroare. Daca primiti aceasta eroare doar puneti
ghilimele n jurul argumentului comenzii mf n felul acesta:
mf \mode=ljfour; mode_setup; input [Link]
Retineti ca backslash indica METAFONT ca trebuie sa se astepte la instructiuni date
n linia de comanda mai repede decat un nume de fisier, primele doua instructiuni
pun METAFONT n modul fontmaking si ca ultima determina METAFONT sa
ncarce si sa compileze fisierul [Link]. Rezultatul va arata asemanator cu:
This is METAFONT, Version 2.71828 (MiKTeX 2.3) (preloaded base=plain
2003.2.20) **[Link] ([Link] [66] )
Font metrics written on
[Link].
Output written on beta.600gf (1 character, 600 bytes).
Este putin diferit fata de rezultatul de prima data, indica faptul ca dou
a fisiere
au fost create acum. Si, controland folderul veti observa ca fisierele [Link] si
beta.600gf (ori asemanatoare cu alte numere) au aparut. Acum trebuie sa arhivati
fisierul gf ntr-un format uzabil. Faceti aceasta cu comanda:
28

gftopk beta.600gf beta.600pk


sau asta:
gftopk beta.600gf [Link]
daca platforma dvs. necesita fisiere nenumerotate. Un fisier beta.600pk sau [Link]
ar trebui sa apara n folder. Si asta-i tot! Acum fontul este accesibil oricarui
document LATEX a carui sursa este n acelasi director cu fisierele fontului si l puteti
testa cu urmatorul program:

Doar procesati fisierul si observati rezultatul cu un program adecvat!. . .

29

3
3.1

METAPOST
Introducere

Alaturi de TeX, Knuth a creat METAFONT ca mod de a crea familii ntregi de


fonturi doar cu un singur set de parametri si descrierea unui model[5]. Aproximativ
10 ani mai tarziu, John Hobby a nceput lucrul la METAPOST-un puternic limbaj
de grafica bazat pe METAFONT-ul creat de Knuth, dar cu facilitati de a scoate n
format PostScript si incluzand editarea de text[6]. Desi cu unele pachete (cum ar
fi PiCTeX, Xy-pic si mediul standard LaTeX pentru imagini) se poate crea grafica
si n TeX documentele respective depind de limitarea TeX. Si ntrucat TeX a fost
proiectat sa redacteze text, este normal sa existe o utilitate externa pentru a genera
grafica. Mai departe, n cazul n care este nevoie de inserarea de text, acea utlitate
este normal sa faca acest lucru cu ajutorul TeX. Aceste premise sunt exact filosofia
METAPOST.
Deoarece METAPOST este un limbaj de programare, include structuri de date
si controlul fluxurilor, iar o compilare a sursei METAPOST va genera un figura
grafica EPS. Aceste optiuni ofera o metoda eleganta de a genera grafica. Figura 5
demonstreaza cum putem folosi METAPOST programand.

Figura 5: Cercuri

Figura este obtinuta rotind un cerc de cate ori este nevoie pana la obtinerea rezultatului dorit. Limbajul de programare al METAPOST pune la dispozitie de asemenea
un mecanism placut de creare a animatiilor fara a trebui sa cream manual fiecare
cadru al ei. Avantajul principal al EPS este ca se poate scala la orice rezolutie fara
pierderi de calitate. De asemenea poate fi usor convertit n PNG (Portable Network
Graphics) si Joint Photographic Experts Group (JPEG) sau alte formate vectoriale
incluzand Portable Document Format (PDF) si Scalable Vector Graphics (SVG).

3.2

Compilarea METAPOST

O sursa METAPOST tipica consta n una sau mai multe figuri. Compilarea sursei
ne da una sau mai multe figuri EPS. Daca [Link] este un fisier tipic METAPOST,
atunci continutul are forma urmatoare: Executandu-l
30

mpost [Link]
va genera urmatorul rezultat:
Pentru cei ce doresc sa inceapa rapid un vizualizator METAPOST poate fi gasit

la [Link] Acesta este pur si simplu o interfata


grafica la METAPOST . Grafica ce o genereaza poate fi salvata n formatele EPS
si PDF.

3.3

Tipuri de date

In METAPOST exista noua tipuri de date:numeric, pair, path, transform, color,


string, boolean, picture, si pen. Aceste tipuri de date permit utilizatorilor sa stocheze
parti de cod pentru un uz ulterior. Voi discuta pe scurt despre aceste tipuri de date
si vom vedea de asemenea cum pot fi ele utilizate ntr-un program METAPOST .
numeric-numere
pair-perechi ordonate de numere
path-curbe Beziers (si linii)
31

pictures-imagini
transform-transformari cum sunt rotatiile, rasucirile
color-triplete RGB
string-siruri pentru etichetat
boolean-valori true sau false
pen-proprietati de penita
Practic toate limbajele de programare ofera un mod de stocare si returnare a datelor.
Acesta este n METAPOST rolul tipului da data numeric. Iar deoarece grafica
desenata n METAPOST este imagine bidimensionala, este evident ca o pereche
de valori este necesara pentru a identifica fiecare punct din imagine iar tipul pair
furnizeaza acest lucru. Fiecare punct din plan are un x (abscisa) si un y (ordonata).
METAPOST foloseste sintaxa standard pentru a defini punctele n plan unde ambele
(x si y) sunt variabile numerice.
Pentru a pastra calea dintre puncte, tipul path este folosit. Toate aceste cai
sunt n METAPOST reprezentate de curbe Bezier. Curbele Bezier sunt niste simple
curbe parametrice de forma (x(t), y(t)) unde ambele (x(t) si y(t)) sunt parti ale
unui parametru t. Curbele Bezier cubice sunt suficient de variate ncat sa ofere o
cale lina ntre toate punctele cu care interpoleaza. METAPOST pune la dispozitie
mai multe metode de a afecta curbele Bezier dintre o lista de puncte.
Tipul de data picture este folosit pentru stocarea unei ntregi imagini. De exemplu pentru a crea animatii, de multe ori sunt imagini care raman la fel pe durata
mai multor cadre a animatiei. Asa ca pentru ca acele imagini sa nu mai fie desenate
manual din nou, este o metoda convenabila ca ele sa fie redesenate automat si deci
pastrate ntr-o variabila.
Cand construim perechi, cai sau imagini n METAPOST este adesea de preferat
sa aplicam tranzitii usoare acestor obiecte. Dupa cum am mentionat mai sus, figura 5
poate fi construita prin rotirea aceluiasi cerc nainte de al desena. METAPOST furnizeaza
tranzitii fine cum este building blocks din care alte tranzitii pot fi realizate. Acestea includ rasuciri, rotiri, scalari si inclinari.
Sunt cinci culori standard n METAPOST :black, white, red, green, si blue.
Totusi pot fi realizate propriile culori folosind tipul color. Culorile sunt niste triplete
RGB unde r este continutul de rosu, g cel de verde iar b de albastru. Prin urmare
culoarea rosie se va scrie (1,0,0) iar negru (0,0,0). De asemenea daca o culoare este
mai des utilizata ea poate fi stocata ntr-o variabila de tipul color.
Cea mai obisnuita folosire a tipului string este un sir denumit. Tipul boolean se
foloseste exect ca n celelalte limbaje de programare ca element conditional. In fine
tipul pen este folosit la trasarea liniilor. Unitatea de masura n METAPOST este 1
bp = 1/72 in, iar grosimea standard este 0.5 bp. Un desen poate include mai multe
linii, iar acestea pot fi trasate cu pen care poate lua diferite valori ce pot fi stocate
pentru uz ulterior.
32

3.4

Comenzi uzuale

Manualul METAPOST [6] enumera 26 comenzi construite implicit laolalta cu 23


macro-uri dupa modelul carora imaginile pot fi desenate si manipulate cu METAPOST .
Nu vom discuta fiecare comanda aici totusi ne vom concentra pe cateva dintre ele
mpreuna cu exemple.
3.4.1

Comanda draw

Comanda draw[7] este cea mai folosita n METAPOST .Cu ea se pot desena linii
sau imagini. Pentru a desena o linie de la z1:=(0,0) la z2:=(54,18) si z3:=(72,72) va
trebui sa hotaram cum vrem ca aceasta sa arate. De exemplu daca dorim doar sa
unim punctele vom face comanda
draw z1--z2--z3;
Dar daca vrem o linie mai fina vom scrie
draw z1..z2..z3;
Pentru a specifica directia n fiecare punct vom utiliza operatorul dir. In figura 6
vedem ca linia este orizontala in z1, face unghi de 45o in z2 si verticala in z3. Aceste
constrangeri sunt impuse de
draw z1{right}..z2{dir 45}..{up}z3;

Figura 6: exemplu de curba

3.4.2

Comanda fill

Alta comanda comuna n METAPOST este comanda fill. Este folosita pentru umple
liniile nchise(ciclurile). Pentru a construi un ciclu,cycle poate sa faca parte din
declaratia caii. De exemplu:
path p;
p:=z1{right}..z2{dir 45}..{up}z3--cycle;
fill p withcolor red; draw p;
33

Figura 7: exemplu fill


produce figura 7. p este n mare aceeasi curba ca n exemplul 6 cu o bucata n plus
ce conecteaza z3 de z1 folosind cycle.
La fel cum este uneori nevoie sa umplem un ciclu, alteori trebuie sa golim(unfill )
o linie nchisa. De exemplu inelul din figura 8 poate fi construit de
color bbblue;
bbblue:=(3/5,4/5,1); path p,q; p:=fullcircle scaled (2*54);
q:=fullcircle scaled (2*27); fill p withcolor bbblue; unfill q; draw
p; draw q;

Figura 8: exemplu de unfill


Linia nchisa fullcircle aproximeaza un cerc cu diametrul n METAPOST de 1 bp,
parcurs n sens contrar ceasului. Aceasta linie nu este exact un cerc devreme ce este
parametrizata de o curba Bezier si nu de o functie trigonometrica, vizual nsa este
greu de deosebit de un cerc real. p este fullcircle cu o raza de 54 bp (3/4 in) iar q
este fullcircle de 27 bp (3/8 in). Inelul este construit umpland cercul p si golindu-l
pe q. Comanda unfill precedenta este echivalenta cu
fill q withcolor background;
unde background este o culoare implicita care acum este culoarea alba.
Deseori comanda unfill pare a fi cea naturala pentru a face desene ca cel din
figura 8. Totusi putem nlocui comenzile fill si unfill din figura 8 cu
fill p--reverse q--cycle withcolor bbblue;
34

Linia p--reverse q--cycle merge n jurul lui p n sens invers ceasului, apoi traverseaza la q de unde o ia n sensul acelor de ceasornic(folosind un operator reverse)
iar n final ajunge n punctul de plecare cu ajutorul -cycle. Aceasta linie este ilustrata n figura 9

Figura 9: Evitarea unfill

3.5

Includerea figurilor METAPOST n LATEX

Pentru a include figuri METAPOST n LATEX este recomandat pachetul graphicx.


Iata n continoare un exemplu de includere a unei figuri METAPOST (cu numele
foo.1) ntr-un document LATEX :
\documentclass{article}
\usepackage{graphicx}
\usepackage{ifpdf}
\ifpdf \DeclareGraphicsRule{*}{mps}{*}{} \fi
\begin{document}
...
\includegraphics{foo.1}
...
\end{document}
Daca este folosit pachetul ifpdf, poate fi folosita comanda \ifpdf. . . \fi pentru a avertiza PDFLaTeX sa converteasca grafica METAPOST on the fly folosind mptopdf
al lui Hans Hagen. Aceasta conversie este necesara pentru ca PDFLaTeX nu face
procesari PostScript.

3.6

Concluzii

METAPOST este un limbaj elegant de programare ce poate genera figuri grafice


frumoase. Aceste figuri sunt vectoriale si prin urmare pot fi scalate oricat de mult
fara a pierde din calitate. Sunt multe notiuni care nu sunt explicate aici (cum
sunt loops, flow control, subpaths, intersections,etc.), iar manualul METAPOST [6]
este excelent pentru a nvata aceste notiuni. Totusi manualul METAPOST poate
35

descuraja ncepatorii, dar pe Internet sunt o multime de exemple METAPOST unele


dintre ele pot fi gasite la [Link] In sfarsit sa amintesc ca
Knuth foloseste numai METAPOST pentru diagramele sale.

36

HTML

4.1

Introducere

HTML[11] nseamna limbaj de marcare a textului si consta ntr-un set de elemente


numite tag-uri care determina cum sa fie afisat textul n cadrul browser-elor de web.
In paralel cu HTML se folosesc fisiere sau instructiuni de stilare (Cascading Style
Sheets[12]) care definesc diversi parametrii de stilare a continutului (fonturi, culori,
spatieri etc). Desi acesti parametri pot fi setati din HTML, este preferabila specificarea lor prin CSS pentru a separa continutul de modul de afisare. CSS a fost
introdus ulterior HTML si se constituie ntr-o unealta deosebit de utila webmasterilor permitand schimbarea facila a unui numar mare de pagini deoarece n general
toate paginile unui site folosesc un singur fisier CSS.
Conceptul de baza n HTML[10] este tag-ul. Un tag afecteaza textul care
urmeaza dupa el pana la ntalnirea unui alt tag pereche sau tag de nchidere. Sintactic, tagurile sunt cuvinte alcatuite dintr-un numar redus de litere, nconjurate de
doua caractere speciale: < si >. Numarul de litere este de obicei redus acestea
fiind prescurtarea unuia sau mai multor cuvinte din limba engleza cu o semnificatie
relevanta pentru functionalitatea tagului respectiv. Exemple de taguri:
<li>- este prescurtarea de la list item si determina un element n cadrul unei
liste
<b>- este prescurtarea de la bold si produce ngrosarea textului
Uneori un tag poate avea unul sau mai multe atribute care sa afecteze ntrun anumit mod functionalitatea sa. Un atribut este o pereche nume=valoare
unde nume este un element dintr-o multime de atribute specifice fiecarui tag (unele
atribute sunt valabile pentru mai multe taguri) iar valoarea este fie un numar, fie
un element dintr-un set de valori caracteristice atributului respectiv.

4.2

Liste

Listele sunt un mod simplu de organizare a informatiei si pot fi neordonate, ordonate


si de definitii. Intr-o pagina Web pot fi inserate mai multe tipuri de liste:
liste neordonate(fara o ordine specificata)
liste ordonate
liste de definitii
liste de meniuri
liste de directoare
In continuare sa analizam fiecare tip de lista.

37

4.2.1

Liste neordonate

Aceste liste sunt delimitate de etichetele <ul>si </ul>iar elementele de <li>si


</li>. <ul>. . . </ul>este un element de nivel bloc si va fi afisat cu ncepere pe rand
nou. Lista accepta un antet(textul introdus imediat dupa eticheta <ul>si nainte
de primul element <li>). Browserele insereaza un spatiu suplimentar naintea unei
liste si o indenteaza la dreapta cu cateva spatii.
Exemple de fructe:
<ul><li>mere</li>
<li>pere</li>
<li>struguri</li>
</ul>

Elementele listei pot fi particularizate folosind atributul type care poate lua valorile
square, circle si disc.
Exemple de legume:
<ul>
<li type="square">rosii</li>
<li type="circle">cartofi</li>
<li type="disc">morcovi</li></ul>

4.2.2

Liste imbricate

Listele pot fi imbricate una n interiorul alteia. Pentru a realiza acest lucru, utilizati
a doua lista (imbricata) ca un articol n prima lista(exterioara). Exemplu:
38

<html><head></head><body> Text normal. <ul>Produse existente in


stoc: <li>Produse agricole <ul>legume:
<li>morcovi
<li>cartofi
</ul>
<li>Alimente
<ul>
<li>ulei
<li>zahar
</ul></ul></body></html>

4.2.3

Liste ordonate

Aceste liste sunt delimitate de etichetele <ol>si </ol>iar elementele de <li>si


</li>.
Exemple de combustibili:
<ol><li>benzina</li>
<li>motorina</li>
<li>gaz lichefiat</li></ol>

Elementele listei pot fi particularizate folosind atributul type care poate lua valorile A (litere mari), a (litere mici), I (cifre romane mari), i (cifre romane mici), 1
(optiunea default):
39

Medii de stocare:
<ol> <li type="I">HDD-ul</li>
<li type="I">discheta</li>
<li type="I">CD-ROM-ul</li> </ol>

4.2.4

Atributul start al unei liste ordonate

Prin definitie primul simbol dintr-o serie este 1, a, A, i sau I. Puteti modifica
acest parametru prestabilit, atribuind o valoare atributului start al elementului
<ol>.Valorile posibile sunt numere ntregi pozitive(valoarea prestabilita este 1)
<html><head></head><body>
Text normal<ol type="A" start="5">
Pasii finali in dezvoltarea unei aplicatii software sunt:
<li>testare
<li>dezvoltare
<li>instructaj
<li>mentenanta
</ol> </body></html>

4.2.5

Liste de definitii

Aceste liste sunt delimitate de etichetele <dl>si </dl>. Termenii listei sunt delimitati
de etichetele <dt>si </dt>iar definitiile termenilor de <dd>si </dd>.
Legenda: <dl> <dt>HTML</dt>
<dd>Hyper Text Mark-ul Language</dd>
<dt>IP</dt> <dd>Internet Protocol</dd> </dl>
40

4.3
4.3.1

Tabele
Elemente de baz
a

In limbajul HTML, elementul <table>...</table>este unul dintre elementele cu


cea mai mare complexitate. El este utilizat atat pentru pozitionarea altor elemente
(macheta), cat si pentru organizarea informatiei pe linii si pe coloane. Un tabel
poate de asemenea sa includa alte tabele.
Elementele obligatorii pentru un tabel simplu sunt <tr>...</tr>pentru definirea
randurilor (table row) si <td>pentru celulele tabelului. Implicit tabelele sunt fara
bordura, nsa aceasta se poate pune adaugand argumentul border la elementul <table>. Grosimea ei poate fi specificata. Iata un tabel simplu:
<html><head></head> <table border="4"> <tr><td>c11<td>c12</tr>
<tr><td>c21<td>c22</tr> </html>

Bordura poate fi colorata folosind atributul bordercolor. Valoarea acestui atribut


poate fi data fie specificand o culoare standard (red, green, blue etc.), fie cu o tripleta
RGB, de exemplu #ca780f.
<table border="4" bordercolor="#ca780f"><head></head>
<tr><td>c11<td>c12<td>c13</tr> <tr><td>c21<td>c22<td>c23</tr>
</table>

41

4.3.2

Atributele cellpadding si cellspacing

Atributul cellpadding al elemntului <table>defineste spatiul alb dintre marginile


celulei si continutul acesteia. Valoarea prestabilita este 0.
Atributul cellspacing al elementului <table>defineste spatiul alb dintre marginile
cellulelor adiacente. Valoarea prestabilita este 0 (pentru tabele fara borduri) sau 2
(pentru tabele cu borduri).
Valorile pentru aceste atribute pot fi:
Numere ntregi pozitive, inclusiv 0 (reprezentand dimensiunea n pixeli)
Procentaje (reprezentand un procentaj din dimensiunea blocului parinte)
<html><head></head><body> <table border cellpadding="30"
cellspacing="0"> <tr><td>c11<td>c12<td>c13</tr>
<tr><td>c21<td>c22<td>c23</tr> </table></body></html>

4.3.3

Elementul <th>

Daca dorim sa evidentiem continutul primului rand (capul de tabel) putem folosi
perechea de etichete <th>si </th>n locul etichetelor <td>si </td>. Astfel continutul
celulei va fi afisat ngrosat si aliniat pe mijloc.
<table border="1"> <tr> <th width="120">Titlul 1</th> <th
width="120">Titlul 2lt;/th> </tr> <tr> <td>1</td> <td>2</td> </tr>
<tr> <td>3</td> <td>4</td> </tr> </table>

42

4.3.4

L
atimea si n
altimea unui tabel

Prin definitie, browserul calculeaza latimea si naltimea unui tabel astfel ncat continutul
fiecarei celule sa fie afisat corect. Proiectantul poate defini dimensiunile unui tabel
utilizand atributele width si height. Valori posibile pentru aceste atribute sunt:
Numere ntregi pozitive, inclusiv 0 (reprezentand dimensiunea n pixeli)
Procentaje (reprezentand un procentaj din dimensiunea blocului parinte)
<table border width="40%" height="120">
<tr><td>c11<td>c12<td>c13</tr>
<tr><td>c21<td>c22<td>c23</tr>
</table>

4.3.5

Culoare si imagine de fundal

Culoarea de fundal poate fi stabilita prin definirea atributului bgcolor. Acest atribut
poate fi aplicat ntregului tabel utilizand elementul <table>, unei linii utilizand
elementul <tr>sau unei singure celule utilizand elementul <td>.
Imaginea de fundal poate fi stabilita prin definirea atributului background. Acest
atribut poate fi aplicat ntregului tabel utilizand elementul <table>, unei linii utilizand elementul <tr>sau unei singure celule utilizand elementul <td>.
In ambele situatii, daca exista mai multe atribute(bgcolor respectiv background)
prioritatea este urmatoarea: mai ntai elementul <td>, apoi elementul <tr>si n
final elementul <table>. Valoarea atributului background este o referinta la un
fisier imagine.
<table border width="40%" height="120" bgcolor="lightgreen">
<tr bgcolor="ltblue"><td bgcolor="yellow">c11<td>c12<td>c13</tr> <tr
bgcolor="red"><td>c21<td background="[Link]">c22<td>c23</tr>
</table>
4.3.6

L
atimea si n
altimea unei celule

Prin definitie, browserul calculeaza latimea si naltimea unui tabel astfel ncat continutul
fiecarei celule sa fie afisat corect. Proiectantul poate defini dimensiunile celulei utilizand atributele width si height ale elementului <td>. Valori posibile pentru aceste
atribute sunt:
43

Numere ntregi pozitive, inclusiv 0 (reprezentand dimensiunea n pixeli)


Procentaje din latimea sau naltimea tabelului.
<table border><tr><td width="50" height="100">c11
<td "75%">c12<td width="30">c13</tr>
<tr><td height="50">c21<td>c22<td>c23</tr> </table>

Retineti ca schimbarea naltimii unei celule modifica automat naltimea tuturor


celortlalte celule din linie. In mod similar, schimbarea latimii unei celule modifica
automat latimea tuturor celorlalte celule din coloana.
4.3.7

Atributele colspan si rowspan

Un tabel este o grila dreptunghiulara cu linii si coloane. Continutul unei celule


poate fi extins peste continutul celulelor adiacente utilizand atributele colspan si
rowspan ale elementelor <td>sau <th>. Valorile posibile pentru atributele colspan
si rowspan sunt numere ntregi pozitive, care reprezinta numarul de linii ocupate de
celula extinsa.
<table border> <tr><td rowspan="3">c11<br>c21<br>c31 <td>c12<td
colspan="2" rowspan="3"> c13 c14<br>c23 c24<br>c33 c34 <tr><td>c22
<tr><td>c32 <tr><td>c41 <td colspan="3">c42 c43 c44
</table>

44

4.3.8

Eticheta <caption>

Eticheta <caption>va adauga o linie text deasupra tabelului, centrata pe mijloc, de


obicei folosita ca fiind un titlu al tabelului. caption se plaseaza obligatoriu imediat
dupa tag-ul <table>dar nainte de prima eticheta <tr>. Exemplu: un tabel cu 4
randuri si 2 coloane folosind eticheta <caption>
<table border="1"> <caption>Necesar alimente</caption> <tr> <th
width="120">Produse</th> <th width="120">Cantitate</th> </tr> <tr>
<td>Fructe</td> <td>1 kg</td> </tr> <tr> <td>Legume</td> <td>5
kg</td> </tr> <tr> <td>Carne</td> <td>1,5 kg</td> </tr>
</table>

4.4

Leg
aturi

WWW este un acronim pentru World Wide Web. World Wide Web a fost proiectat
ca un set de resurse globale partajate, stocate pe diferite servere si conectate la
Internet (cea mai mare retea de calculatoare publice din lume). Un utilizator poate
accesa oricare dintre aceste resurse si poate naviga foarte usor de la una la alta
folosind comenzi de baza generate prin intermediul mausului si/sau tastaturii.
Legaturile sunt elementele dintr-o pagina Web care fac posibila navigarea ntre
resursele Internet. O legatura este o proprietate atasata unui bloc de text sau unei
imagini care le permite sa accepte comenzi de la maus si/sau tastatura.
4.4.1

Tehnologia client-server

Cand se executa clic cu butonul din stanga al mausului pe o legatura (sau cand
legatura este activa si utilizatorul apasa tasta <ENTER>), au loc urmatoarele
evenimente:
45

1. Browserul identifica adresa URL a resursei Internet apelate.


2. Browserul trimite o cerere catre serverul Web care gazduieste resursa solicitata.
3. Serverul Web citeste cererea si identifica locatia resursei solicitate.
4. Serverul Web trimite napoi un raspuns browserului client, raspuns care include
resursa solicitata.
5. Browserul preia resursa si o ncarca n fereastra sa.
4.4.2

Adresa URL

URL este un acronim pentru Uniform Resource Locator (Localizator Uniform de


Resurse). URL reprezinta o modalitate standard de identificare a resurselor (de
exemplu, fisiere) n Internet. O adresa poate fi absoluta sau relativa. Un exemplu
de adresa URL absoluta este:
[Link]
O adresa absoluta contine:
Protocolul Internet, de exemplu, http://
Numele calculatorului, de exemplu, [Link]
Calea, de exemplu, images/thumbs/
Numele fisierului, de exemplu, [Link]
In cazul adreselor URL relative este important de retinut urmatoarele doua lucruri:
../ nseamna directorul parinte
/ nseamna directorul radacina
4.4.3

Prima legatur
a

Pentru a crea o legatura, utilizati elementul <a>...</a>(elementul ancora). Elementul <a>trebuie sa aiba un atribut src care identifica adresa URL (absoluta sau
relativa) a resursei. Continutul elementului <a>...</a>este afisat de browser sub
forma de legatura si poate accepta comenzi de la maus si/sau tastatura.
Pentru a naviga printre legaturile dintr-o pagina Web, se poate utiliza tasta
<TAB>. La un moment dat, nu poate fi evidentiata(activa) decat o singura legatura.
In jurul legaturii active este afisat un chenar dreptunghiular. In acest moment, utilizatorul poate apasa tasta <ENTER>pentru a deschide respectiva legatura, fara a
folosi mausul.
<html><head></head><body> Puteti afla totul despre HTML vizitand
site-ul <a href="[Link]
</body></html>

46

4.4.4

Utilizarea unei imagini la definirea unei leg


aturi

Dupa cum am mentionat anterior, continutul elementului <a>...</a>poate fi un


bloc de text sau o imagine. In exemplul urmator vom utiliza o imagine pentru a
defini o legatura la o pagina Web.
<html><head></head><body> Puteti afla totul despre HTML vizitand
site-ul <a href="[Link] <img src="[Link]"> </a>
</body></html>

Prin definitie , browserele afiseaza cu un chenar colorat fiecare imagine utilizata


la definirea unei legaturi. Pentru a elimina acest chenar, atribuiti valoarea 0
atributului border al elementului <img>:
Puteti afla totul despre HTML vizitand site-ul <a
href="[Link] <img src="[Link]" border="0"> </a>
</body></html>

4.4.5

Leg
aturi la o pagin
a Web aflat
a pe sistemul local

In cazul unei aplicatii care ruleaza pe sistemul local (adica nu n Internet), se poate
defini o legatura la un fisier HTML local. In acest scop, utilizati atributul href ca
in exemplul urmator:
href=[Link] Documents/[Link]
unde:
[Link] -este protocolul pentru accesarea sistemului local
c:/My Documents/ -este calea catre directorul n care este localizata resursa
[Link] -este numele resursei
4.4.6

Ancore

Ancorele pot fi utilizate pentru navigarea la diferite sectiuni ale unei pagini care
este prea lunga pentru a fi afisata pe un singur ecran sau pentru navigarea la o
anumita sectiune a unei alte pagini Web. Ancora este un identificator al inceputului
unui element care apartine unei pagini Web. Dupa ce definti o ancora, puteti crea
legaturi catre ea. Exista doua cai de definire a unei ancore:
47

Utilizand elementul <a>...</a>mpreuna cu atributul name. Elementul <a>poate


avea sau nu continut. Exemplu: <a name=valoare nume>orice text</a>.
Utilizand orice element HTML mpreuna cu atributul universal id. Exemplu:<p id=valoare id>
Pentru a crea o legatura la o ancora definita pe o pagina Web, utilizati elementul
<a>...</a>mpreuna cu atributul href, caruia i se atribuie ca valoare o referinta de
ancora ntr-unul din urmatoarele moduri:
#valoare nume
#valoare id
Exemplu:
<html><head></head><body> <a href="#p1" id="p0">legatura spre primul
paragraf<br>
<a href="#p2">al doilea</a><br> <a href="#p3">al
treilea</a><br>
<p id="p1">Primul paragraf,linia 1<br> Primul paragraf,linia 2<br>
Primul paragraf,linia 3<br> Primul paragraf,linia 4<br>

<p><a name="p2">Al doilea paragraf,</a>linia 1<br> Al doilea


paragraf,linia 2<br> Al doilea paragraf,linia 3<br> Al doilea
paragraf,linia 4<br>

<p id="p3">Al treilea paragraf,linia 1<br> Al treilea paragraf,linia


2<br> Al treilea paragraf,linia 3<br> Al treilea paragraf,linia
4<br> <a href="#p0">sus</a> </body></html>

4.4.7

Leg
aturi la alte tipuri de fisiere

Puteti defini legaturi catre orice tip de fisier, nu doar catre fisiere HTML. Ce se
ntampla dupa ce utilizatorul executa clic pe legatura (sau apasa <ENTER>, daca
legatura este activa) depinde de capacitatile browserului. Exista doua posibilitati:
Cazul1:Daca browserul cunoaste si poate lucra cu respectivul tip de fisier (utilizand
o aplicatie ajutatoare sau un program de completare), el va afisa corect fisierul n
fereastra sa (acest lucru se ntampla, de exemplu, cu imagini, text, fisiere PDF si
alte fisiere similare).
Cazul2:Daca browserul nu cunoaste si nu poate lucra cu noul tip de fisier, el va
ncerca sa descarce fisierul pe sistemul client (va aparea o fereastra File Download)

48

4.4.8

Leg
aturi la adrese e-mail

Pentru a crea o legatura la o adresa e-mail, utilizati un element <a>cu un atribut


href caruia i atribuiti valoarea pentru protocol mailto (protocol de posta Internet) si
care indica o adresa e-mail valida (de exemplu, href=[Link]

4.5

Cadre

Cadrele permit browserului sa afiseze simultan mai multe pagini Web. Caracteristic
acestor pagini este ca perechea de etichete <body>. . . </body>este nlocuita de
<frameset></frameset>iar n interiorul lor cadrele sunt delimitate de <frame>si
</frame>. Pentru a realiza exemplele urmatoare este necesar sa facem n prealabil
paginile pe care le vom include.
4.5.1

Retea de cadre

Pentru a defini o retea de cadre, trebuie sa precizati valorile atributelor rows respectiv cols. De exemplu: rows=200,*,2* si cols=30%,* nseamna:
O retea de cadre cu 3 linii pe 2 coloane

49

Linia de sus are naltimea de 200 de pixeli, iar restul spatiului pe verticala este
mpartit n trei parti egale (1*+2*=3*), din care linia din mijloc acopera o
treime (* nseamna o parte), iar linia de jos acopera doua treimi (2* nseamna
doua parti).
Coloana din stanga va acoperi 30% din latimea ferestrei browserului, iar coloana
din dreapta va acoperi restul.
<html><head></head>
<frameset rows="200,*,2*" cols="30%,*">
<frame src="[Link]"> <frame src="[Link]"> <frame src="[Link]">
<frame src="[Link]"> <frame src="[Link]"> <frame src="[Link]">
</frameset></html>

Cadrele umplu reteaua de la stanga la dreapta si de sus n jos


4.5.2

Seturi de cadre imbricate

Seturile de cadre pot imbricate. Exista doua modalitati de a obtine seturi de cadre
imbricate. Prima optiune este introducerea unei pagini care contine descrierea unui
alt set de cadre, ca atribut al unui cadru.
<html><head></head>
<frameset cols="150,*,10%">
<frame src="[Link]"> <frame src="[Link]"> <frame src="[Link]">
</frameset></html>
A doua optiune este nlocuirea unui element cadru din interiorul unui set cu descrierea unui alt set de cadre. Folosind aceasta metoda, sa modificam exemplul
anterior pentru a obtine aceeasi functionalitate si acelasi aspect.
50

<html><head></head>
<frameset cols="150,*,10%">
<frame src="[Link]">
<frameset rows="100,*">
<frame src="[Link]">
<frame src="[Link]">
</frameset>
<frame src="[Link]"> </frameset></html>

4.5.3

Atributele elementului <frameset>

Elementul <frameset>accepta atribute care sa descrie continutul si aspectul unui


set de cadre. Aceste atribute sunt:

51

cols - descrie mpartirea pe verticala a setului de cadre. Valoarea acestui


atribut este o lista ntre ghilimele, delimitata prin virgule, cu orice combinatie
din urmatoarele: -Numere ntregi pozitive care definesc marimi absolute n pixeli. -Procentaje din dimensiunea cadrului parinte. -n*, unde n este un numar
ntreg pozitiv care defineste numarul de parti egale din restul spatiului(caracterul
* reprezinta tot spatiul ramas)
rows - descrie impartirea pe orizontala a setului de cadre. Valoarea acestui
atribut este o lista ntre ghilimele, delimitata prin virgule (valorile posibile
sunt aceleasi ca la atributul cols)
border - defineste grosimea n pixeli a bordurilor ntre cadre. Valorile posibile
sunt 0 si numere ntregi pozitive (daca se utilizeaza valoarea 0, bordurile dintre
cadre dispar).
bordercolor - defineste culoarea bordurilor. Valori posibile sunt nume de culori
sau descrieri de culori RGB.
frameborder - stabileste daca bordurile sunt sau nu vizibile. Valorile posibile
sunt yes (valoare prestabilita) si no.
framespacing - identic cu atributul frameborder, dar se aplica doar n Internet
Explorer.
Atributele elementului <frameset>
<html><head></head>
<frameset rows="150,*,10%,100" frameborder="no">
<frame src="[Link]">
<frameset cols="150,*,10%,100" border="15" bordercolor="#ff0000"
frameborder="yes">
<frame src="[Link]">
<frame src="[Link]">
<frame src="[Link]">
<frame src="[Link]">
</frameset>
<frame src="[Link]"> <frame src="[Link]"> </frameset></html>
4.5.4

Atributele elementului <frame>

Atributele elementului <frame>va permit sa precizati rolul si aspectul fiecarui


cadru. Aceste atribute sunt:
bordercolor - defineste culoarea bordurii. Valori posibile sunt nume de culori
sau descrieri de culori RGB. Valoarea acestui atribut (daca este precizata),
nlocuieste valoarea atributului bordercolor al elementului frameset
52

frameborder - stabileste daca bordurile sunt sau nu vizibile. Valorile posibile


sunt yes (valoare prestabilita) si no. Valoarea acestui atribut (daca este
precizata), nlocuieste valoarea atributului frameborder al elementului frameset
marginheight - defineste spatiul alb dintre continutul cadrului si marginile de
sus si de jos. Valori posibile sunt 0 si numere ntregi pozitive care definesc
marimea n pixeli.
marginwidth - defineste spatiul alb dintre continutul cadrului si marginile din
stanga si din dreapta. Valori posibile sunt 0 si numere ntregi pozitive care
definesc marimea n pixeli.
name - adauga un identificator unic pentru cadru (utilizat la definirea cadrelor
destinatie pentru legaturi).
noresize - cadrul nu mai poate fi redimensionat.
scrolling - stabileste aparitia barelor de derulare pe orizontala si pe verticala:
Valori posibile sunt: -auto (valoare prestabilita: barele de derulare apar
doar daca sunt necesare) -yes (barele de derulare sunt afisate permanent)
-no (barele de derulare nu apar deloc)
src - defineste adresa URL a resursei Internet care va fi ncarcata n cadru
4.5.5

Destinatii

Destinatia (tinta) unei legaturi este fereastra sau cadrul n care va fi ncarcata o
noua resursa Internet indicata de legatura. Prin definitie, destinatia unei legaturi
este fereastra sau cadrul n care este plasata legatura. Pentru a modifica acest
comportament predefinit, trebuie sa atribuiti o destinatie legaturii. Acest lucru

53

poate fi realizat precizand valoarea unui atribut target pentru o anumita legatura
(adica un element <a>).Valorile posibile pentru atributul target sunt:
Numele (valoarea atributului name) unei ferestre deschise de browser sau numele (valoarea atributului name) unui cadru ncarcat de catre browser.
Una din urmatoarele valori:
self (noua resursa este ncarcata n aceeasi fereastra/acelasi cadru)
blank (noua resursa este ncarcata ntr-o fereastra noua)
parent (noua resursa este ncarcata n fereastra/setul de cadre parinte)
top (noua resursa este ncarcata n fereastra browserului)

4.6

Multimedia

Unul dintre cele mai atragatoare concepte ale calculatoarelor moderne este multimedia. Multimedia defineste datele si aplicatiile n orice format sau din orice mediu.
Aceasta sectiune va va arata cum se ocupa browserul de fisierele multimedia.
4.6.1

Fisiere de aplicatii

Aplicatiile sunt stocate ca fisiere si sunt executate de sistemul de operare al calculatorului. In general, extensia pentru aceste fisiere este .exe si fiecare aplicatie a
fost proiectata ntr-un anumit scop. Unele aplicatii sunt profesionale (de exemplu,
programe de prelucrare a textului, programe de prelucrare a coloanelor sonore, programe de grafica), iar alte aplicatii sunt mai mici si dedicate unor sarcini specifice
(de exemplu, programe de citire, programe de afisare si programe de rulare). Unele aplicatii sunt independente, iar altele sunt utilizate ca elemente ajutatoare de
catre alte aplicatii (de exemplu, programe de completare - plug-in, controale ActivX,
DLL).
Pentru a vedea daca un fisier este o aplicatie (n sistemul de operare Windows),
executati clic dreapta pe pictograma fisierului si selectati comanda Properties din
meniul rapid. Daca respectivul fisier este o aplicatie, n caseta Type of file va aparea
Application.
4.6.2

Fisiere de date

Datele sunt stocate n fisiere. Pentru a citi, salva, previzualiza sau tipari aceste
date, aveti nevoie de aplicatia corespunzatoare deoarece fisierele de date sunt legate
de aplicatiile specifice si depind de acestea. In general, extensia fisierului de date va
oferi un indiciu n privinta tipului de date stocate n fisier si a aplicatiilor pe care le
puteti utiliza pentru a citi, salva, previzualiza sau tipari datele.
Sistemul de operare va permite sa atasati o legatura prestabilita ntre o extensie
de nume de fisier si o aplicatie. Pentru a vedea ce aplicatii puteti utiliza pentru a
54

deschide un fisier de date (n sistemul de operare Windows), executati clic dreapta


pe pictograma fisierului si alegeti comanda Properties din meniul rapid. Eticheta
Open with: indica aplicatia prestabilita. Folosind butonul Change. . . ,utilizatorul
poate schimba acest comportament prestabilit.
4.6.3

MIME

MIME este un acronim pentru Multipart Internet Mail Extension. MIME organizeaza extensiile de fisiere de date n tipuri si subtipuri de fisier. Tabelul urmator
prezinta cateva exemple utile (pentru o lista completa, vizitati adresa
[Link]
Descriere
Extensie de nume de fisier Tip/subtip MIME
text HTML
html, htm
text/html
Text obisnuit
txt
text/plain
fisier CSS
css
text/css
imagini GIF
gif
image/gif
fisiere jpg
jpg, jpeg, jpe
image/jpeg
PNG
png
image/x-png
fisiere TIFF
tiff, tif
image/tiff
fisiere Microsoft Bitmap bmp
image/x-ms-bmp
fisiere audio de baza
au, snd
audio/basic
fisiere video Microsoft
avi
video/x-msvideo
format audio Macintosh aif, aiff, aifc
audio/x-aiff
format audio Microsoft wav
audio/x-wav
audio MPEG
mpa, mpega
audio/x-mpeg
audio MPEG-1
mp2a, mpa2
audio/x-mpeg-2
audio Real
ra, ram
application/x-pn-realaudio
MIDI
mmid
x-music/x-midi
video MPEG
mpeg, mpg, mpe
video/mpeg
video MPEG2
mpv2, mp2v
video/mpeg-2
Macintosh QuickTime
qt, mov
video/quicktime
Microsoft Rich Text
rtf
application/rtf
Adobe Acrobat PDF
pdf
application/pdf
fisiere Microsoft
doc
application/msword
fisiere Microsoft
xls
application/ms-excel
fisiere Microsoft
ppz
application/ms-powerpoint
fisiere VRML
wrl, vrml
x-world/x-vrml

55

Prezentarea aplicatiei

Tutorialul de fata este structurat pe 7 capitole fiecare ocupandu-se de un domeniu


aparte. De asemenea am facut o scurta introducere care prezinta aspecte legate
de organizarea materiei tutorialului si pregatirea aplicatiei pentru a putea ncepe
redactarea primelor documente si compilarea acestora. Peste aceasta introducere
se poate sari n cazul n care utilizatorul are o implementare LATEX instalata corespunzator pe calculator.
Prezentarea capitolelor
1. Capitolul 1 este esential n nvatarea notunilor elementare necesare pentru ca
utilizatorul sa poata parcurge celelalte capitole, aici fiind prezentate lucrul cu
fisierul sursa si comenzile ce privesc structura generala a documentelor.
2. Capitolul 2 contine pe langa o serie de comenzi pentru controlul si personalizarea editarii textului si comenzi necesare pentru redactarea textului n
limba romana, despartirea n silabe sau - chiar scrierea de text colorat.
3. Capitolul 3 - desi LATEX vine cu setari implicite adecvate fiecarui tip de document, n acest capitol se dezvaluie cum pot fi controlate total dimensiunile
hartiei si ale textului scris pe aceasta.
4. Capitolul 4 trateaza notiunea de mediu, si sunt prezentate cateva medii
foarte des utilizate cum sunt tabelele sau listele.
5. Capitolul 5 deschide un subiect vast n cadrul LATEX si anume formulele matematice. In acesta sunt exemplificate realizarea fractiilor incluisiv a celor suprapuse, a radicalilor etc.
6. Capitolul 6 se ocupa de structuri matematice mai complexe cum sunt matricile.
7. Capitolul 7 prezinta un alt punct forte al LATEX si anume referintele ncrucisate,
n speta bibliografii index, si altele.
Aplicatia, scrisa n codul HTML(Hyper Text Mark-up Language), se bazeaza
pe elementul(tagul) frame. Prin urmare aplicatia de pornire constituie scheletul pe
care este adaugat fiecare element.
Lansarea aplicatiei se face prin intermediul fisierului [Link] a carui interfata
poate fi observata n figura de mai jos: Pentru a realiza aceasta interfata am scris
codul HTML urmator:
<html>
<link rel="stylesheet" href="[Link]"type="text/css"> <head>
</head>
<frameset border=1 bordercolor="blue" rows="30%,70%">
<frameset bordercolor="blue" cols="90%,10%">
56

Figura 10: Fisierul [Link] - punctul de plecare al acestui tutorial.

57

<frame valign="top" align="center" scrolling="no" src="[Link]">


</frameset>
<frameset bordercolor="blue" cols="32%,68%">
<frame valign="top" marginheight="0" scrolling="auto"
src="[Link]">
<frame src="[Link]"> </frameset>
</frameset>
</html>
In partea de sus a ferestrei se afla un frame ce contine logo-ul TeX si titlul lucrarii.
Partea inferioara a ferestrei este mpartita asimetric n doua parti. Partea din
stanga, n care se ncarca fisierul [Link], contine o lista cu partile principale
ale tutorialului (Introducere, Capitol 1,. . . ,Index). Aceasta este facuta cu ajutorul
unui tabel al carui cod sursa este prezentat n continoare:
<html><body bgcolor="#FFF0F5"><div align="left"> <table border="1px"
bordercolor="red" bgcolor="#FFFDD0">
<tr><td><b><a href="[Link]"
target="_top">Introducere</tr><br>
<tr><td><b><a href="[Link]" target="_top">Capitolul
1-Notiuni introductive</tr><br>
<tr><td><b><a href="[Link]" target="_top">Capitolul
2-Formatarea textului</tr><br>
<tr><td><b><a href="[Link]" target="_top">Capitolul
3-Formatarea documentului</tr><br>
<tr><td><b><a href="[Link]" target="_top">Capitolul
4-Medii</tr><br>
<tr><td><b><a href="[Link]" target="_top">Capitolul
5-Formule matematice</tr><br>
<tr><td><b><a href="[Link]" target="_top">Capitolul 6-Medii
pentru formule matematice</tr><br>
<tr><td><b><a href="[Link]" target="_top">Capitolul
7-Referinte incrucisate</tr><br>
<tr><td><b><a href="[Link]"
target="_top">Bibliografie<br> <tr><td><b><a href="[Link]"
58

target="_top">Index<br> </table></div></b></body> </html>


Pentru a obtine aspectul dorit, n fiecare rand al tabelului am pus o singura celula
n care exista o legatura pe care daca se face dublu clic sau - n cazul n care este
activa - daca se apasa tasta <ENTER>determina ncarcarea n fereastra browserului
a resursei (capitolului) respectiv.
Partea din dreapta este locul n care se ncarca fisierul ce contine materia capitolului curent.
Astfel, pagina browserului este mpartita dupa cum arata tabelul urmator:

Capitol

Antet
Continutul capitolului

Intregul tutorial foloseste o serie de stiluri de formatare a textului definite ntr-un


fisier extern de tip .css . Acestea sunt n numar de 6:
H1{ font-family=comic sans ms;
margin-left:5px;
color:0fffff;
font-size=16pt;
font-weight:light;
border-style:outset;
border-color:black;
background-color:green;}
H2{font-family:lucida
console;
padding-top:0px;
border-length:;
border-style:solid;
border-width:2px;
border-color:red;
background-color:#FFFDD0;
color:red;
font-size:16px;
width:260;
text-align:left;}
H3{font-family:tahoma;
margin-left:4px;
color:red;
background-color:white;
font-size:24px;
font-weight:bold;
59

font-style:normal;
border-style:double;
border-color:green;
padding-right:10;
Border-right-width:thick;
width:120; float:none;
text-align:center;}
H4{font-family=times new roman;
color:000000;
font-size=14pt;
font-weight:bold;
text-align:left;}
h5{font-family=comic sans ms;
margin-left:5px;
color:0fffff;
font-size=18pt;
border-style:outset;
border-color:black;
background-color:blue;
width:250;}
H6{font-family:tahoma;
margin-left:1px;
margin-right:1px;
color:#007cff;
font-size:16pt;
font-weight:bold;
font-style:normal;
text-align:left;}
Capitolele
Sunt realizate si ele cu ajutorul cadrelor. Cadrele sunt ca niste sabloane ce contin
elementele ce vor fi afisate. Cand se doreste vizulizarea unuia dintre acestea legatura
spre ele determina practic ncarcarea altui cadru ce va ncarca la randul lui continutul
capitolului. Acest sablon arata n felul urmator:
<html>
<head></head>
<frameset border=0 rows="30%,*">
<frameset cols="90%,10%">
<frame valign="middle" align="center" scrolling="no"
src="[Link]"> </frameset>
<frameset cols="32%,68%">
<frame valign="top" marginheight="0" scrolling="auto"
src="[Link]">
60

<frame src="cap2/[Link]">
</frameset>
</frameset>
</html>
Elementul frame este un mod recent si modern de a realiza pagini Web scrise
n cod HTML. El nlocuieste blocul <body>. . . </body>si permite ncarcarea mai
multor pagini Web n aceeasi fereastra. Acestea la randul lor pot fi realizate cu
cadre sau cu un bloc <body>. . . </body>obisnuit.
Continutul capitolelor este si el afisat cu ajutorul combinatiei de HTML si CSS.
Astfel, n afara de titluri si subtitluri care sunt formatate cu ajutorul stilurilor
definite ntr-un fisier extern, am definit n cadrul fiecarui text de capitol bara de
derulare cu un stil CSS, codul sursa fiind urmatorul:
<STYLE type="text/css">
BODY{scrollbar-3dlight-color:black;
scrollbar-arrow-color:none;
scrollbar-base-color:none;
scrollbar-track-color:black;
scrollbar-darkshadow-color:none;
scrollbar-face-color:#CCCCCC;
scrollbar-highlight-color:none;
scrollbar-shadow-color:black}
</STYLE>

\%border-ul barei
\%sageata de pe partile fixe
\%culoarea de sub scroll bar
\%scroll bar-ul
\%umbra de jos si dreapta

Legaturile sunt un alt element important care ajuta la navigarea cu usurinta n


cadrul acestui tutorial. O legatura arata n felul acesta:
<a href="#sus"><b>Inceputul capitolului</b></a>
si puncteaza spre o ancora definita n felul acesta:
<a name="sus"></a>
In momentul n care se face clic (sau daca este selectata se tasteaza <ENTER>) pe
legatura (aici Inceputul capitolului) browserul va arata automat acel loc.

61

Concluzii
Tutorialul LATEX realizat de mine reprezinta un punct de plecare pentru cine este
interesat de redactarea unor documente de foarte buna calitate si de LATEX . Este
prezentat pas cu pas tot ceea ce este necesar pentru a ajunge de la 0 cunostiinte
despre LATEX la redactarea efectiva a documentelor.
In aceasta idee cititorul afla ce implementari exista, platformele suportate, cum
sa si procure o copie a unei distributii LATEX , iar apoi sa o instaleze pe sistemul sau
(doar cazul Microsoft Windows este explicat pas cu pas) cat si termenii si conditiile
legale.
In aceasta privinta, noii elevi afla ca este un software gratuit n totalitate.
Acesta poate fi distribuit sau modificat. De asemenea n cazul n care cel ce
nvata stapaneste suficient de bine programul, el poate chiar propune mbunatatiri
trimitand ideile sale voluntarilor ce se ocupa de mentenanta implementarii respective.
In ce priveste sintaxa prezentata, este vorba de un prim contact cu LATEX cititorul
fiind ndrumat catre surse complete de documentatie accesbile pe Internet.
Un lucru esential este si acela ca LATEX este n plina dezvoltare iar viitorul poate
aduce foarte multe surprize placute deoarece LATEX este nca un performer n domeniul tipografiei, greu de ntrecut de alte programe. Si asta cu atat mai mult cu cat
consta dintr-o suita de programe axate n jurul motorului TeX, unele dintre programe aparute recent altele (METAFONT) dezvoltate chiar de parintele TeX Donald Knuth la scurt timp dupa realizarea TeX. Programele dezvoltate n completarea
TeX-LATEX aduc un plus de functionalitate facand din LATEX o unealta capabila sa
redacteze orice fel de documente.
De asemenea pe langa aceste programe s-au facut si o serie de pachete specializate
pe diverse domenii. Mai mult LATEX poate realiza lucruri la acelasi nivel nalt de
calitate n aproape toate limbile vorbite pe glob.
De multi ani popularitatea si nivelul de utilizare al acestuia sunt n crestere
continua, iar lipsa unei alternative la fel de bune si gratuite n acelasi timp va
mentine acest sistem n folosinta multi ani de acum nainte.
Binenteles au fost si sunt n continoare si voci critice la adresa LATEX care incrimineaza faptul ca este greu de nvatat sau ca este prea mare si complex. De asemenea nu toata lumea agreeaza un editor de text care nu este WYSIWYG. LATEX se
adreseaza n primul rand oamenilor pentru care calitatea documentelor primeaza n
fata grabei sau a comoditatii. Acesta nu este destinat scrierii unui e-mail sau a unui
mesaj offline.
In ciuda criticilor utilizarea LATEX se raspandeste si castiga tot mai multi fani
calitatea rezultatului fiind cel care este elementul hotarator in alegerea editorului de
text potrivit . Nenumaratele plusuri bat de departe micile neajunsuri inevitabile la
un lucru atat de complex, iar eu cred ca si n tara noastra LATEX va fi din ce n ce
mai folosit.

62

Bibliografie
[1] Paul A. Blaga & Horia F. Pop,LATEX 2e, Editura Tehnica, Bucuresti, 1999
[2] The TeX book de Donald E. Knuth; Addison-Wesley, 1986, ISBN 0-20113447-0 / 0-201-13448-9.
[3] The LaTeX Companion, de Michel Goossens, Frank Mittelbach, Alexander
Samarin; Addison-Wesley, 1994, ISBN 0-201-54199-8.
[4] The LaTeX Graphics Companion; Illustrating Documents with TeX and
PostScript, de Michel Goossens, Sebastian Rahtz, Frank Mittelbach;
Addison-Wesley, 1994, ISBN 0-201-85469-4.
[5] N. H. F. Beebe. Metafont. [Link] beebe/fonts/ [Link], 2006.
[6] J. D. Hobby. A users manual for MetaPost. Technical Report 162, AT&T
Bell Laboratories, Murray Hill, New Jersey, 1992. Accesibil si la [Link]
[Link]/docs/metapost/[Link].
[7] [Link]
[8] Donald Ervin Knuth, The METAFONT book. American Mathematical Society and Addison Wesley Publishing Company, First edition, 1986
[9] LaTeX: A document Preparation System, User s guide and Reference manual, de Leslie Lamport; Addison-Wesley, editia a doua, 1994, ISBN 0-20152983-1
[10] Teodoru Gugoiu, HTML, XHTML, CSS si XML prin Exemple - Ghid Practic, Editura Teora,2005
[11] HTML 4.01 Specification ([Link]
[12] Cascading
Style
Sheets,
Level
([Link] )

63

2,CSS2

Specification

Glosar
.tfm, 19
LATEX , 4, 6, 16
LATEX 2.09, 17
LATEX 2e, 17
LATEX 3, 17
METAPOST n LATEX , 35
A document Preparation System, 4
Acrobat Reader, 8
adresa URL, 46
Arta Programarii Calculatoarelor, 10
atu-uri LATEX , 6
beginchar, 27
boolean, 31
cadre HTML, 49
cerc, 30
client-server, 45
color, 31
comanda draw, 33
comanda fill, 33
comanda unfill, 34
comenzi METAPOST , 33
Computer Modern, 10
Crimson Editor, 22
CSS, 37
culori METAPOST , 32
curbe Bezier, 32
Cutiute, 12
CWEB, 10
define pixels, 27
dezavantaje LATEX , 7
Donald Knuth, 4, 9
EPS, 30
exemplu METAFONT, 24
formule, 7
GFtoDVI, 21

GFtoPK, 19
HTML, 37
John Hobby, 30
JPEG, 30
legaturi HTML, 45
Leslie Lamport, 4, 9, 15
Linux, 21
liste HTML, 37
Literate Programming, 10
Macintosh, 22
Macro-uri, 14
Mathematical Writing, 6
META, 18
METAFONT, 10, 15, 18
METAPOST, 30
mf, 19
MiKTeX, 21
MIME, 55
modul fontmaking, 28
Modul Proof, 23
Multimedia, 54
Notepad, 20
numeric, 31
OzTeX, 22
pair, 31
parametri, 18
path, 31
PDF, 30
pen, 31
penpos, 28
picture, 31
PNG, 30
PostScript, 22
pronuntie, 11
proofing, 23
64

semnificatie TeX, 12
string, 31
subiectul lucrarii, 3
SVG, 30
tabele, 41
teTeX, 21
TeX, 4, 11
tipuri de date, 31
TLA, 15
TOPS-20, 20
transform, 31
UNIX, 21
Vi, 20
Windows, 19, 21
Winshell, 21
WYGIWYW, 23
WYSIWYG, 7, 23

65

S-ar putea să vă placă și