Sunteți pe pagina 1din 114

Capitolul 2 INTRODUCERE N LIMBAJUL LaTeX

2.1 INTRODUCERE
O lucrare este predat editorului care, dup verificarea semantic de ctre un grup de recenzori, va accepta lucrarea. O lucrare acceptat pentru publicare va trebui aranjat n pagin, operaie fcut de ctre tehnoredactor, care hotrte dimensiunile paginii, fonturile, aspectul general etc. Aceste informaii formeaz layout-ul lucrrii ce va trebui publicat. Zearul culege textul, urmnd acest model i scoate o prim copie, ce va fi supus corecturilor gramaticale. Dup corectur, lucrarea se tiprete n numrul dorit de exemplare. Dac recenzia este fcut de oameni, celelalte operaii pot fi efectuate cu ajutorul calculatorului, pe baza unor reguli simple i fixe. Pentru aceasta, este necesar utilizarea unui procesor de texte, iar din motive legate de rspndire i disponibilitate, am ales LaTeX. n scenariul de mai sus, LaTeX este tehnoredactorul i TeX este zearul. TeX este un program elaborat de Donald E. Knuth [Knuth 1984], care se folosete la culegerea i tiprirea de texte i formule matematice. LaTeX (se pronunt la-tehi) este construit de Leslie Lamport [Lamport 1994], are la baz TeX i permite definirea de layout-uri pentru cri, articole, rapoarte i scrisori. LaTeX este un pachet de macrodefiniii pentru TeX, iar TeX este un sistem de prelucrare a textelor. Nici LaTeX i nici TeX nu sunt editoare de texte. n general, layout-ul paginilor realizate n MS Word (i.e. poziia figurilor, a tabelelor, etc.) poate s varieze dramatic, atunci cnd textul este portat la un calculator ce are instalat alt driver de imprimant. Dependena de

12

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

imprimant este neplcut i este necesar un procesor independent. Acest fenomen nu apare n cazul procesrii textelor n LaTeX i constituie, printre altele, unul din principalele motive ale utilizrii sale, pe scar din ce n ce mai larg, de ctre editorii i autorii de texte. Pe de alt parte, existena LaTeX, pe diferite platforme, face din el un procesor de texte cu larg utilizare n mediile tiinifice.

2.1.1 Un exemplu simplu


Cnd tehnoredactorul lucreaz la layout, el recunoate, n text, inteniile autorului privind titlul de capitol, titlul de paragraf, citat, list etc. Pentru ca LaTeX s recunoasc aceste detalii, este necesar ca autorul s-i furnizeze informaii suplimentare despre textul scris i forma de prezentare a acestuia. Un program surs n LaTeX se poate edita cu orice editor ASCII, de exemplu n Notepad. Comenzile LaTeX ncep cu caracterul \ i nu vor aprea n documentul final. De la caracterul % pn la finalul unei linii LaTeX, toat informaia este ignorat, fiind similar cu un comentariu n scrierea unui program. Structura standard a unui document este, pe scurt, urmtoarea: Preambulul - ncepe cu o comand \documentclass; el poate conine comenzi \usepackage, declaraii globale i definiii de cadre i comenzi; \begin{document} textul documentului \end{document} LaTeX nu este un sistem What You See Is What You Get, adic autorul nu vede pe monitor efectul comenzilor asupra documentului. n mod normal, autorul poate ntrerupe editarea n orice moment, pentru a vizualiza fiierul rezultat dup procesarea n LaTeX. O caracteristic a LaTeX este aceea c autorul este lsat s se concentreze, n primul rnd, asupra organizrii logice a lucrrii, fr a consuma efort pentru formatarea textului. n organizarea materialului unei cri este necesar respectarea ctorva principii, pentru a asigura o bun lizibilitate a textului, comoditate la citirea unei pagini precum i organizarea logic a documentului. De multe ori, se dorete ca anumite pri ale textului s ias n eviden, dei nu este indiferent modul n care acest lucru este realizat. LaTeX permite specificarea acelor pri

2.1. INTRODUCERE

13

____________________________________________________________________________

i el va alege forma portrivit pentru tiprire. Muli autori utilizeaz fonturi multiple, fapt ce duce la o ngreunare a citirii textului. Aceste aspecte sunt importante atunci cnd se proiecteaz un layout. n general, LaTeX permite modificarea unui layout de o manier destul de greoaie, ns integreaz o serie de concepte ce au rezultat n urma experienei privind tehnoredactarea. Aceste concepte respect conveniile, valabile n S.U.A., de realizare a crilor, articolelor i revistelor. Adaptarea la conveniile europene de tehnoredactare se poate realiza relativ uor, prin comenzi speciale. Trebuie subliniat faptul c orice text (sub form de carte, articol, raport etc.) este scris pentru a fi citit i pentru ca impactul coninutului asupra cititorului s fie maxim. Din acest motiv, pe baza unei analize riguroase a situaiilor specifice privind coninutul unui text, n LaTeX documentele sunt mprite n clase sau categorii, iar lizibilitatea este obiectivul principal. n fig. 2.1 este descris un exemplu simplu de fiier LaTeX minimal, n care se evideniaz principalele seciuni i cteva dintre comenzile LaTeX de baz. Exemplul 2.1
\documentclass{article} % clasa articol %Titlul cuprinsului este implicit "Contents" dar %poate fi schimbat dupa dorinta \renewcommand{\contentsname}{Cuprins} %Se specifica titlul, autorul si data \title{Gestiunea documentelor} \author{Ion Popescu} \date{17.03.2000} \begin{document} %inceputul documentului \maketitle %tiparire titlu, autor, data \tableofcontents %tiparire cuprins \section{Introducere} %sectiune paragraf Paragraf specificand necesitatea procesorului LaTeX. Textul este formatat automat. Trecerea la un nou alineat se face prin inserarea unei linii goale. \section{Titlul capitolului 1} %inceputul altui paragraf Acesta este alt paragraf. Toate paragrafele se numeroteaza automat. \end{document} %sfarsitul articolului Fig. 2.1 Un exemplu simplu de articol scris n LaTeX. Rezultatul procesrii este redat n fig. 2.2.

14

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

Fig. 2.2 Rezultatul procesrii fiierului surs din fig. 2.1 (setup-ul paginii n LaTeX este diferit).

2.1. INTRODUCERE

15

____________________________________________________________________________

2.1.2 Realizarea documentelor n LaTeX


TeX i LaTeX sunt produse shareware, adic au preuri sczute sau sunt gratuite, dac nu se folosesc n scopuri comerciale. Ele au o larg rspndire i au implementri sub toate sistemele de operare (Unix, OS/2, Windows etc.), asigurnd portabilitatea documentelor realizate. Un produs de acest tip este nsoit de o bogat colecie de fonturi, utilitare i fiiere ce conin documentaia aferent. Folosind un editor de texte obinuit, de exemplu Norton Editor sub DOS sau Notepad sub Windows, se construiete un fiier cu extensia .tex. Aceast extensie nu este obligatorie, dar prezena sa permite un mod de lucru mai comod i organizat. De exemplu, fiierul din fig.2.1 este salvat cu numele ex1.tex. Pentru procesare se va lansa LaTeX, avnd ca parametru numele fiierului cu extensia .tex. Dac se folosete versiunea LaTeX pentru Win95 (a se vedea URL-ul www.stat.uiowa.edu/resources/help/win95/latex.html), atunci comanda este: >c:/texmf/miktex/bin/latex ex1<ENTER> Ca urmare, pe ecran apar mesajele:
This is TeX,Version 3.14159 (MiKTeX 1.20) (ex1.tex LaTeX2e <1998/12/01> patch level 1 Babel <v3.6x>loaded. (C:\texmf\tex\latex\base\article.cls Document Class: article 1999/01/07 v1.4a Standard LaTeX document class Output written on ex1.dvi (1 page, 944 bytes) Transcript written on ex1.log.

Zona marcat cu caracterele semnific informaii dependente de versiunea de instalare. n funcie de coninut, un fiier .tex parcurge mai multe etape. Dup procesarea fiierului ex1.tex, informaia se pstreaz n mai multe fiiere, care au urmtoarele denumiri i semnificaii: ex1.aux - conine informaii auxiliare despre entitile logice din fiierul surs i despre etichete (\label i \bibitem). Fiierul este utilizat de LaTeX la a doua procesare, pentru a rezolva referine ncruciate (\cite, \ref).

16

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

ex1.toc - conine informaii necesare alctuirii cuprinsului i este generat doar dac n fiierul surs apare comanda \tableofcontents. Cuprinsul apare doar la a doua procesare a fiierului. ex1.log - conine raportul despre procesarea fiierului cu extensia tex, eventualele erori de procesare i informaii statistice despre resursele hardware utilizate. ex1.dvi - fiier de ieire ce conine rezultatele procesrii ntr-un cod independent de perifericul de tiprire (DeVice Independent).
Observaie. n funcie de clasa sau categoria din care face parte documentul, mai apar i alte fiiere auxiliare: *.lof creat dac apare comanda \listoffigures (List of Figures), pentru generarea automat a listei figurilor; *.lot creat dac apare comanda \listoftable (List of Tables), pentru generarea automat a listei tabelelor; *.idx creat dac apare comanda \makeindex n combinaie cu \index i va conine comenzile \indexentry aferente; *.gb creat dac apare comanda \makeofglossary.

Imaginea documentului poate fi vizualizat sub DOS cu ajutorul comenzii v numefiier. Sub X WINDOWS, vizualizarea se poate realiza uitiliznd comanda xdvi numefiier. Tiprirea se va realiza cu ajutorul unui utilitar ce poate accesa imprimanta. Pentru DOS, tiprirea la o imprimant cu ace implic utilizarea utilitarului dvidot, cu o serie de parametri. De aceea, n general, pentru fiecare tip de imprimant exist o comand distinct. De exemplu pentru EPSON FX80 comanda este prtfx numefiier, iar pentru o imprimant HEWLETT PACKARD LJ comanda este dvihplj numefiier. Pentru Windows95, vizualizarea i tiprirea se realizeaz cu utilitarul Yap. Sub sistemul de operare Unix se utilizeaz o procedur asemntoare. Cnd se dispune de o imprimant PostScript, utilitarul dvi2ps transform fiierul *.dvi ntr-un fiier *.ps (i.e. PostScript).
Observaie. La referine ncruciate sau la generarea cuprinsului, a listei de figuri, a indexului, este necesar procesarea de mai multe ori a sursei *.tex, pentru c este nevoie de fiiere care la prima procesare nu au fost create nc.

2.2. NOIUNI FUNDAMENTALE PRIVIND LaTeX

17

___________________________________________________________________________

2.2 NOIUNI FUNDAMENTALE PRIVIND LaTeX


Putem privi LaTeX ca un limbaj de programare n care instruciunile au anumite efecte. O serie de caractere au semnificaie special:
$ & % # _ { } ~ ^ \ | < >

Cu unele excepii, aceste caractere nu pot fi folosite n textul surs. Unele dintre ele se pot utiliza n text cu ajutorul secvenelor de control listate mai jos, pe coloana din dreapta:
$ & % # _ { } |$ |& \% \# \_ \{ \}

De multe ori, caracterul blank (spaiu) are acelai efect dac apare o singur dat sau ca un ir de blank-uri. Caracterul newline (linie nou) este echivalent cu blank, atunci cnd apare o singur dat. Mai mult de dou astfel de caractere succesive semnific terminarea unui paragraf i nceputul unuia nou.

2.2.1 Preliminarii privind secvene de control i fonturi


Secvenele de control sunt iruri de caractere ce reprezint comenzi LaTeX. De exemplu, trecerea la un alt paragraf se face cu secvena de control \par. O secven de control, i.e. o comand n LaTeX, este compus fie dintr-un caracter backslash (adic \) urmat de o succesiune de litere, fie dintr-un caracter backslash urmat de un caracter diferit de liter. De exemplu, \today are ca efect scrierea datei mainii, iar \% produce caracterul %. Comenzile din prima categorie sunt valabile doar pentru primul ir pn la caracterul blank. Orice comand poate avea argumente obligatorii i/sau opionale. Un argument obligatoriu este cuprins ntre acolade { i }, iar unul opional ntre paranteze drepte [ i ]. O comand \LaTeX ignor spaiile ce o urmeaz.

18

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

Exemplul 2.2 Execuia fiierului surs urmtor


\documentclass{report} \begin{document} \LaTeX este un program de tehnoredactare \end{document}

are drept rezultat textul

Dup cum se observ, era necesar un blank dup cuvntul LaTeX, iar un caracter backslash plasat la sfritul comenzii rezolv problema. Exemplul 2.3
\LaTeX\ este un program de tehnoredactare

are ca rezultat textul

Observaie. n cele ce urmeaz, n cadrul exemplelor prezentate, dac acestea apar pe dou coloane, fiierul surs *.tex apare n dreapta, iar textul rezultat este inserat pe coloana din stnga. Dac ele sunt prezentate grupate orizontal, atunci fiierul *.tex apare primul. n primele exemple a fost folosit mai ales clasa report dar, dac nu se specific altfel, comenzile din fiierul *.tex respectiv sunt valabile pentru toate clasele de documente.

Caracterul rnd nou este echivalent cu spaiu i, ca urmare, paragrafele se vor separa printr-un rnd gol sau utiliznd comanda \par. Exemplul 2.4
\documentclass{report} \begin{document} Paragraf1. Tot el. Paragraf2. \par Paragraf3. \end{document}

LaTeX dispune de un set bogat de fonturi. Scrierea textului se face implicit cu un font numit Roman, ns se pot selecta alte fonturi cu o secven

2.2. NOIUNI FUNDAMENTALE PRIVIND LaTeX

19

___________________________________________________________________________

de control \tt pentru fontul typewriter sau \bf pentru bold face (subseciunea 2.6.1). Dac numai cteva cuvinte se tipresc cu alt font, atunci nu este necesar schimbarea fontului activ, ci se poate folosi comanda \bf. Exemplul 2.5 \documentclass{report} \begin{document} font curent oarecare {\bf doresc bold} revin la fontul curent. \end{document}

O pereche de paranteze acolade formeaz un grup, deci o comand are efect doar asupra acelui grup. Pentru transmiterea parametrilor la secvenele de control cu parametri, se vor utiliza tot paranteze acolade. Prin parametru se nelege orice ir de caractere ntre acolade sau un caracter, dac acoladele lipsesc. De exemplu, comanda \haspace {4cm} indic inserarea unui spaiu orizontal de 4 cm.
Observaie. Acoladele ce delimiteaz un parametru nu pot forma un grup. Ca urmare, dac se dorete refacerea valorii unei variabile LaTeX, dup modificarea sa prin executarea unei comenzi corespunztoare, atunci chiar comanda trebuie inclus n grup.

2.2.2 Faciliti matematice


Formulele matematice sunt culese diferit fa de textele obinuite. n LaTeX se pot identifica dou moduri de lucru: modul text n care se culege textul; modul matematic n care se culeg formulele.

Exist comenzi ce specific trecerea de la un mod la altul i comenzi ce sunt valabile doar ntr-un singur mod. Intrarea n modul matematic se poate realiza n mai multe variante. n cadrul paragrafului, formulele se delimiteaz prin dou caractere $ .

20 Exemplul 2.6

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

\documentclass{report} \begin{document} Pentru $x=y$ rezulta ... \end(document)

n mod matematic, caracterele _ i ^ indic indici inferiori, respectiv superiori, iar o formul pus pe rnduri separate se delimiteaz cu cte o pereche de secvene de caractere $$. Exemplul 2.7
\documentclass{report} \begin{document} Pentru $x_1,x_2,...,x_{n+1}$ rezulta ca $$x_i=x_{i-1}+x_{i-2}$$. \end(document)

Pentru caractere speciale se vor utiliza secvenele de control \alpha, \beta sau \frac cu parametrii afereni. Exemplul 2.8
\documentclass{report} \begin{document} Scriem:$$\frac12+\alpha=\frac{ 2\alpha+1}2$$ \end(document)

n formule pot s apar operatori, cum ar fi: \sum pentru , \prod pentru sau \int pentru . Indicii operaiilor sunt poziionai diferit la formulele plasate n text, fa de cele separate. Exemplul 2.9
\documentclass{report} \begin{document} ...$\sum_{i=1}^ny_i=0$ $$\sum_{i=1}^ny_i=0$$... \end(document)

2.2. NOIUNI FUNDAMENTALE PRIVIND LaTeX Exist operatori la care nu se face aceast difereniere (de exemplu

21

___________________________________________________________________________

ns limitele pot s apar sau nu, prin plasarea comenzilor \limits, respectiv \nolimits. Secvenele de control \left i \right se pot aplica asupra parantezelor, pentru ajustarea automat a dimensiunii acestora n funcie de coninut. Ele apar n perechi. Exemplul 2.10
\documentclass{report} \begin{document} $x+2\left(\frac{ \sinx}x+ \cos\left(x+1\right)\right)=0$ \end(document)

),

2.2.3 Adaptarea la diacritice i desprirea n silabe


Diacriticele se pot obine, n LaTeX, prin folosirea accentelor, ca opiune oferit de o serie de secvene de control ce accept orice tip de caracter, avnd la baz alfabetul latin. Exemplul 2.11
\documentclass{report} \begin{document} \^A, \^a, \u A, \u a, \^I, \^\i, \c S, \c s, \c T, \c t. \par Aten\c tie: NU \^i. Accentul se aplic\u a semnului\par \i (i f\u ar\u a punct). \end(document)

O alt variant ce uureaz editarea este cea de creare a unui fiier cu extensia .sty, cu rolul de a defini diacriticele [Pusztai 1994]. Acest fiier va fi creat n funcie de limba n care se editeaz i va fi nglobat n sursa LaTeX. Pentru desprirea n silabe, se poate utiliza un set de abloane ce sunt alese la iniializarea LaTeX. Pentru a specifica o anumit limb, se va utiliza comanda \language cu un parametru numeric. Noi reguli pot fi introduse

22

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

prin comenzile \- , care are efect local, sau \hyphenation, cu efect global. De exemplu, comanda \hyphenation{ma-ma}are ca efect desprirea n silabe a cuvntului mama, oriunde este ntlnit n text. Scrierea cuvntului concesie n forma con\-ce\-si\-e are ca efect desprirea n silabe a sa doar n locul indicat. Detalii suplimentare privind comenzile de generare a accentelor sunt prezentate n subseciunea 2.6.2.

2.2.4 Titluri redactate n diverse limbi


Anumite comenzi LaTeX produc un text predefinit, reprezentnd, n general, titlul unei uniti secionale. De exemplu, comanda \chaptername are ca efect scrierea titlului capitolului, precedat de Chapter. Aceast scriere trebuie modificat, dac textul este redactat n alte limbi. Pentru aceasta, n preambulul fiierului surs *.tex se va folosi comanda \renewcommand{\chaptername}{nume_capitol} unde nume_capitol este numele capitolului n limba respectiv (a se vedea i seciunea 2.5). n mod obinuit, secvena de control \chaptername este o comand LaTeX care este apelat de \chapter i are ca efect implicit tiprirea irului de caractere Chapter. Comenzile ale cror definiii trebuie modificate pentru adaptarea la limba n care este redactat textul lucrrii sunt urmtoarele (cu precizarea, n paranteze i ntre apostroafe, a textului generat implicit): \partname numele dat unei pri, n clasele de documente book i report; \chaptername - numele dat capitolului, n clasele de documente book i report (Chapter); \bibname - numele dat bibliografiei, n clasele de documente book i report (Bibliography); \refname numele dat bibliografiei n clasa de documente article (References); \appendixname - numele dat anexelor (Appendix); \abstractname numele dat rezumatului (Abstract); \indexname numele dat indexului (Index); \contentsname - numele dat cuprinsului (Contents);

2.2. NOIUNI FUNDAMENTALE PRIVIND LaTeX \figurename - numele dat figurilor (Figure); \listfigurename numele dat listei figurilor (List of Figures); \tablename numele dat tabelelor (Table); \listtablename numele dat listei tabelelor (List of Tables).

23

___________________________________________________________________________

n continuare se prezint sintaxa ctorva comenzi \renewcommand, utile pentru redactarea unui text n limba romn. \renewcommand{\contentsname}{Cuprins} \renewcommand{\listfigurename}{Lista figurilor} \renewcommand{\listtablename}{Lista tabelelor} \renewcommand{\figurename}{Figura} \renewcommand{\tablename}{Tabelul} \renewcommand{\chaptername}{Capitolul} \renewcommand{\bibname}{Bibliografie} \renewcommand{\refname}{Bibliografie} \renewcommand{\appendixname}{Anexa}

2.2.5 Organizarea fiierului de intrare


2.2.5.1 Categorii de documente Un fiier LaTeX ncepe cu o comand \documentclass, avnd sintaxa: \documentclass[options]{class} n care options este lista de una sau mai multe opiuni, separate prin virgul i fr spaii suplimentare, iar class este categoria sau clasa documentului. Printre categoriile de documente valabile n LaTeX se numr: book report article letter slides.

Clasa book specific organizarea documentului sub form de carte, avnd urmtoarele caracteristici:

24 -

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX culegerea difereniat a textului pe pagini pare i impare; organizarea pe pri, seciuni i subseciuni; dac nu se specific prin comanda \pagestyle, antetul (header-ul) paginii pare conine titlul capitolului curent, iar cel al paginii impare conine titlul seciunii curente i fiecare capitol ncepe pe o pagin impar;

____________________________________________________________________________

Clasa report permite editarea documentului sub form de raport, asemntoare cu book, dar culegerea se face nedifereniat pentru pagini pare i impare, iar capitolele pot ncepe pe pagini att pare ct i impare. Clasa article nseamn forma de articol, fr pri i capitole. Antetele sunt implicit goale i culegerea este nedifereniat de paritatea paginii. Clasa letter permite redactarea unei scrisori oficiale. Clasa slides este recomandat pentru pregtirea documentelor ce vor fi prezentate pe folii expuse la retroproiector. Toate clasele standard de documente, cu excepia slides, accept urmtoarele opiuni pentru selectarea mrimii literei tiprite (10 pt implicit): 10pt, 11pt, 12pt. Toate clasele de documente accept urmtoarele opiuni pentru setarea mrimii paginii (implicit letter): a4paper, a5paper, b5paper, letterpaper, legalpaper, executivepaper. Alte opiuni mixte sunt: landscape selecteaz formatul lanscape, dar implicit este portrait; titlepage, notitlepage specific dac trebuie s apar o pagin separat de titlu; leqno numrul ecuaiei este plasat la stnga, dar implicit el este la dreapta; fleqn nseamn FlushLeft EquatioN i determin alinierea la stnga a ecuaiei, care implicit este centrat; german pune la dispoziie comenzi utile pentru realizarea textelor n limba german; makeidx este util la documentele n care se dorete obinerea (semi)automat a unui index. Urmtoarele opiuni nu sunt valabile pentru clasa slides:

2.2. NOIUNI FUNDAMENTALE PRIVIND LaTeX -

25

___________________________________________________________________________

oneside, twoside selecteaz afiarea pe o fa sau pe ambele ale unei coli. Valoarea implicit este oneside, cu excepia clasei book. openright, openany determin dac un capitol ncepe pe pagina din dreapta. Valoarea implicit este openright, pentru clasa book. onecolumn, twocolumn permite tiprirea pe una sau, respectiv, dou coloane. Valoarea implicit este onecolumn. 2.2.5.2 Principalele comenzi utile la crearea unui document

n continuare, sunt descrise principalele comenzi utile la crearea unui document. \begin{document} este comanda de nceput de document. ntre \documentclass i \begin{document} nu se poate insera text, dar pot aprea alte comenzi LaTeX, care nu au ca efect generarea de text. Aceast zon se numete preambul (seciunea 2.1). Aici poate aprea comanda \title, ce stabilete titlul, dar nu i comanda \maketitle, ce pune titlul n pagin. \end{document} marcheaz sfritul documentului i tot ce urmeaz dup aceast comand este ignorat la procesare. \title specific titlul documentului. Dac acesta nu ncape ntr-un singur rnd, atunci LaTeX nu mparte automat titlul pe rnduri, lsnd aceasta la latitudinea autorului, prin comanda \\ acolo unde se trece la rnd nou. Acest lucru prentmpin desprirea unui titlu n rnduri, ceea ce ar putea s altereze semnificaia dat de autor. Sintaxa comenzii este \title{text} i, pentru a fi operaional, ea trebuie s apar nainte de comanda \maketitle. \author permite specificarea numelui autorului. Ca i la \title, trecerea pe mai multe rnduri trebuie marcat cu aceeai comand \\. Dac sunt mai muli autori, separarea numelor lor pe rnduri se face prin comanda \and. \date seteaz data producerii documentului, iar dac nu exist, atunci la \maketitle se va lua automat data sistemului.

26

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

\maketitle pune n pagin titlul, autorul i data realizrii documentului. Comanda apare prima dup \begin{document} i efectul su este diferit n funcie de clasa documentului: pentru book i report, titlul, autorul i data apar pe o pagin separat, numerotat cu 0; pentru article, informaiile apar la nceput de pagin, urmate de text (a se vedea i exemplul 2.1, subseciunea 2.1.1).

Notele de subsol se pot insera ntr-unul din urmtoarele moduri: 1) se folosete doar comanda \footnote ; 2) se utilizeaz comenzile \footnotemark i \footnotetext. Comanda \footnote avnd sintaxa: \footnote[number]{text} plaseaz textul text, numerotat, la subsolul paginii. Argumentul opional number este necesar dac se dorete schimbarea numrului implicit al notei. Aceast comand poate fi folosit doar n afara modulului paragraph, i.e. nu poate fi folosit n secionarea unor comenzi precum \chapter, n figuri, n tabele sau ntr-un mediu tabular. Comanda \footnotemark pune numrul notei de subsol n text. Ea poate fi utilizat n interiorul modului paragraph, iar textul notei de subsol este specificat prin comanda \footnotetext, avnd sintaxa \footnotetext[number]{text} \footnotetext poate s apar, oriunde, dup comanda \footnotemark, n afara modului paragraph. Argumentul opional number este utilizat cnd se dorete schimbarea numrului implicit al notei. Se pot produce mai multe marcaje consecutive ale unei note prin comanda \footnotemark[\value{footnote}] dup prima comand \footnote. Comanda \thanks{text} are ca efect o not de subsol ataat titlului, cu un simbol distinct de cele generate prin comanda \footnote.

2.2. NOIUNI FUNDAMENTALE PRIVIND LaTeX Exemplul 2.12

27

___________________________________________________________________________

\documentclass[11pt]{article} \title{Un titlu\\lung} \author{Ionescu\footnote {adresa Ionescu}\\Popescu} \date{1.11.1999} \begin{document} \maketitle ..................... ........ Textul articolului... \end{document}

2.2.5.3 Secionarea unui document n uniti O lucrare se poate mpri n pri, capitole, seciuni, subseciuni i subsubseciuni, iar apoi n paragrafe i subparagrafe. Pentru manevrarea i aranjarea n pagin a acestora, LaTeX permite utilizarea unor comenzi de secionare, a cror list este prezentat n continuare: \part (doar pentru clasele report i book) \chapter (doar pentru clasele report i book) \section \subsection \subsubsection \paragraph \subparagraph

28

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

Toate comenzile de secionare au aceeai form general. De exemplu, pentru capitol, forma comenzii este: \chapter[titlu_scurt]{title} n afar de locul unde se secioneaz textul documentului, argumentul title al comenzii poate s apar n dou alte locuri, i anume: (1) n cuprins i (2) n antetul (header-ul) paginii curente. Dac nu se dorete ca title s apar n text la fel ca n poziiile specificate la (1) i (2), atunci se seteaz argumentul titlu_scurt. Ca urmare, parametrul title va fi afiat n text, iar parametrul titlu_scurt este utilizat pentru cuprins i antet, unde poate avea semnificaia unui titlu scurt. Comenzile de secionare suport i forma cu * la sfrit. De exemplu: \chapter*{title} care are ca rezultat tiprirea argumentului title, nenumerotat i neinclus n cuprins. La clasele book i report, seciunea se numeroteaz cu dou cifre i.e. capitol.seciune, iar la clasa article numerotarea conine doar o cifr. De exemplu, n clasa article, 4.7 nseamn a 7-a subseciune a Seciunii 4, iar n clasa report acceai subseciune se poate numerota 5.4.1, unde 5 este numrul capitolului. n felul acesta, un document article poate fi inclus, ca un capitol, ntr-un document report. Comanda \appendix permite schimbarea modului de numerotare a anexelor (de exemplu A.1, A.1.1) i folosete aceleai comenzi de secionare ca i documentul principal. Comanda \appendix nu genereaz text. n fiierul *.tex, o posibil secven de instruciuni este urmtoarea:
\chapter{titlul_primului_capitol} \appendix \chapter{titlul_primului_appendix}

2.2.5.4 Etichete i referiri LaTeX numeroteaz singur entitile din text, dei aceste numere nu se cunosc n momentul editrii fiierului *.tex. Cnd este necesar referirea unor capitole, seciuni, figuri, ecuaii sau tabele, se folosesc comenzile

2.2. NOIUNI FUNDAMENTALE PRIVIND LaTeX \label{key} \ref{key}

29

___________________________________________________________________________

unde key este un nume simbolic pentru entitatea respectiv, ce const dintr-o secven oarecare de litere, cifre sau semne de punctuaie. Literele mari i mici sunt interpretate distinct. Comanda \label, plasat n textul uzual, asigneaz numrul unitii curente prin parametrul key; dac ea apare n interiorul unui mediu numerotat, atunci acel numr este asignat argumentului key. Pentru a evita crearea accidental a dou etichete cu acelai nume, se utilizeaz etichete constnd dintr-un prefix i un sufix, separate prin caracterul :. Prefixele convenionale utilizate sunt: cha pentru chapters sec pentru sections fig pentru figures tab pentru tables eq pentru equations

Astfel, o etichet pentru o figur are forma fig:nume. Comanda \ref produce numrul unitii secionale, numrul ecuaiei etc., din comanda \label corespunztoare. Deosebit de util este i comanda \pageref{key} care permite referirea la pagina unde este plasat entitatea etichetat de \label, ca n exemplul urmtor.

Exemplul 2.13
\documentclass{report} \renewcommand{\chaptername}{Capitolul} \begin{document} \chapter{Introducere} \section{\^Inceputul}\label{inceput} text 1 \section{Dezvoltare} \^In sec\c tiunea \ref{inceput} \pageref{inceput}este vorba despre... \end{document}

de

la

pagina

30

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

Observaie. Reamintim c, dac se folosesc referiri etichetate, atunci fiierul *.tex trebuie procesat de dou ori, pentru rezolvarea referinelor ncruciate, deoarece la prima procesare se scriu, n fiierul *.aux, doar informaii despre entitile etichetate. Abia la a doua procesare aceste informaii sunt preluate pentru a fi folosite de comenzile \ref i \pageref.

2.2.5.5 Generarea cuprinsului, a listei figurilor i a listei tabelelor Generarea automat a cuprinsului, a listei figurilor i a listei tabelelor se realizeaz, respectiv, utiliznd comenzile:

2.2. NOIUNI FUNDAMENTALE PRIVIND LaTeX \tableofcontents \listoffigures \listoftables

31

___________________________________________________________________________

Fiecare din aceste comenzi se pune n locul n care se dorete s apar lista respectiv. Ca rezultat, este generat un fiier (header), dar nu se ncepe automat o nou pagin. Dac se dorete o pagin nou dup cuprins, respectiv dup lista de figuri sau de tabele, atunci se include comanda \newpage dup comanda \tableofcontents, respectiv dup \listoffigures sau dup \listoftables. Fiierul are acelai nume cu fiierul rdcin i, respectiv, extensia .toc pentru \ tableofcontents, .lof pentru \listoffigures sau .lot pentru \listoftables. Scrierea altor fiiere, n afar de cele cu extensia .dvi i respectiv .log, poate fi inhibat prin comanda \nofiles. Adugarea de noi linii, n oricare din cele trei fiiere, se poate realiza prin comenzile \addcontentsline{file}{sec_unit}{entry} \addtocontents{file}{text} unde: file este o extensie a fiierul n care trebuie scris informaia i poate fi toc, lof, sau lot; sec_unit poate fi: - nume de unitate de document (part, section, chapter, etc.), dac fiierul are extensia .toc, - figure, dac fiierul are extensia .lof sau - table, dac fiierul are extensia .lot; entry reprezint textul inserat.

32

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

2.3 CADRE
LaTeX pune la dispoziie mai multe tipuri de cadre (n englez environments), cu scopul delimitrii unor entiti, cum ar fi ecuaii, tabele, figuri, iruri, liste sau, n general, paragrafe cu diverse caracteristici distincte de ale textului ordinar. Orice cadru ncepe i se sfrete n acelai mod: \begin{environment_name} text \end{environment_name} unde environment_name este numele cadrului, iar text este coninutul cadrului. Numele cadrului poate fi unul din urmtoarele: array (iruri i tabele cu simboluri matematice) center (linii centrate) description (liste etichetate) enumerate (liste numerotate) eqnarray (secvene de ecuaii aliniate) equation (ecuaie) figure (figuri) flushleft (paragraf aliniat la stnga) flushright (paragraf aliniat la dreapta) itemize (list marcat cu bullets) letter (scrisoare) list (list generic) minipage (pagin miniatural) picture (figur cu text, sgei, linii i cercuri) quotation (paragraf indentat cu prima linie indentat) quote (paragraf indentat cu prima linie neindentat) tabbing (aliniere oarecare a textului) table (tabele flotante) tabular (alinierea textului n coloane) thebibliography (bibliografie) titlepage (pagin special de titlu, fr numerotare) verbatim (lucrul n regim main de scris)

2.3. CADRE verse (pentru versuri etc.)

33

____________________________________________________________________________

n plus fa de cadrele listate mai sus, se numr cadrele document i abstract. Cadrele sunt similare cu alte structuri de control din limbajele de programare, delimitate de deschideri i nchideri corespunztoare. Cadrul obligatoriu pentru orice fiier LaTeX este document. Cadrul abstract permite aezarea n pagin a rezumatului i este opional pentru clasele article i report i nedefinit pentru clasele book, letter i slides. Iat un exemplu simplu.

Exemplul 2.14
\documentclass{article} \title{A Title} \author{Ionescu} \date{1.11.1999} \begin{document} \maketitle \begin{abstract} ............ ........... ............... This is the abstract... \end{abstract} ....... ................. .................. ...... This is the text...... \end{document}

n continuare sunt prezentate succint, n ordine alfabetic, cadrele listate, cu accent pe acele faciliti ce permit crearea n LaTeX a textelor tiinifice.

34

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

2.3.1 Cadrul array


\begin{array}[pos]{cols} col1 & col2 & ... & coln \\ . . \end{array} irurile i tabelele matematice de tip matriceal se construiesc utiliznd cadrul array. Argumentul cols (similar cu cel al cadrului tabular, a se vedea subseciunea 2.3.19) descrie numrul de coloane i alinierea elementelor n interiorul lor i este compus, de regul, din secvene de caractere (cte unul pentru fiecare coloan), prin care se indic poziia elementelor n coloan: c (centred) centrat; l (left) - aliniat la stnga; r (right) - aliniat la dreapta.

pos este un argument opional, care specific poziionarea vertical n cadru; poziionarea implicit este centrat, iar opiunile sunt: t (top) - aliniere la marginea de sus a liniei; b (bottom) - aliniere la marginea de jos a liniei

Coninutul unei coloane este separat, de urmtoarea coloan, prin simbolul &. Acest coninut poate include alte comenzi LaTeX. Fiecare linie a tabelului matriceal trebuie terminat cu secvena de simboluri \\. Cadrul array poate fi utilizat doar n modul matematic (seciunea 2.7), astfel nct, n general, el este deschis i nchis n interiorul unui cadru equation sau apare ntre dou simboluri $ . Exemplul 2.15
\documentclass{report} \begin{document} $A(x)=\left( \begin{array}{ccc} x & 0 & 0\\ 1 & 0 & x \end{array}\right)$ \end{document}

2.3. CADRE

35

____________________________________________________________________________

2.3.2 Cadrul center i comanda \centering


\begin{center} Text linia 1 \\ Text linia 2 \\ . . . \end{center} Cadrul center permite crearea unui paragraf, care const din linii centrate ntre marginea din stnga i marginea din dreapta, pe pagina curent. Fiecare linie trebuie terminat cu irul \\, ce delimiteaz coninutul unui rnd. Comanda \centering corespunde cadrului center i poate fi utilizat n interiorul unor cadre precum quote sau ntr-un parbox. Figurile sau tabelele pot fi centrate n pagin, dac se d comanda \centering la nceputul cadrelor ce definesc entitile respective. Spre deosebire de cadrul center, comanda \centering nu ncepe un nou paragraf, ci schimb doar modul n care LaTeX formateaz unitatea de paragraf respectiv.

Exemplul 2.16
\documentclass{report} \begin{document} \begin{center} un paragraf centrat\\ se pune \^\i ntr-un cadru\\ center \end{center} \end{document}

36

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

2.3.3 Cadrul description


\begin{description} \item [label] Primul element \item [label] Al doilea element . . . \end{description} Cadrul description este utilizat pentru crearea listelor etichetate. Eticheta este un ir de caractere i apare aliniat la dreapta i tiprit cu caractere bold. n descrierea de mai sus, comenzile \item definesc lista, iar argumentul label definete eticheta. Exemplul 2.17
\documentclass{report} \begin{document} \begin{description} \item[List 1] este lista 1 \item[List 2] este lista 2 \end{description} \end{document}

2.3.4 Cadrul enumerate


\begin{enumerate} \item Primul element \item Al doilea element . . . \end{enumerate} Cadrul enumerate genereaz o list numerotat. Numerotrile pot fi ncuibate, pn la o adncime de patru niveluri. De asemenea, ele pot fi ncuibate ntr-un alt cadru. Fiecare entitate a unei liste numerotate ncepe de la comanda \item.

2.3. CADRE

37

____________________________________________________________________________

n interiorul cadrului trebuie s existe cel puin o comand \item. Cadrul enumerate folosete contorii enumi pn la enumiv (subseciunea 2.4.1), iar tipul de numerotare se poate modifica, redefinind \theenumi. Exemplul 2.18
\documentclass{report} \begin{document} The steps are: \begin{enumerate} \item for i=1:n do \item i:=i+1 \begin{enumerate} \item j:=i \end{enumerate} \item end \end{enumerate} \end{document}

2.3.5 Cadrul eqnarray i cadrul eqnarray*


\begin{eqnarray} formula matematic 1 \\ formula matematic 2 \\ . . . \end{eqnarray} Cadrul eqnarray este folosit pentru a scrie o secven de ecuaii sau de inegaliti. Seamn, oarecum, cu un cadru array cu trei coloane, avnd coloanele consecutive separate prin irul \\, iar elementele consecutive dintr-o linie separate prin &. Formulele se pot alinia dup simbolul cuprins, pe fiecare linie, ntre semnele & (de exemplu dup semnul =, scriind &=&). Fiecare linie este numerotat, cu excepia cazului n care se ntlnete comanda \nonumber. Comanda \lefteqn este folosit pentru a scrie o formul lung pe mai multe linii. Argumentul su este tiprit aliniat la stnga fa de restul

38

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

liniilor ce cuprind formula. Cadrul eqnarray* acioneaz la fel ca eqnarray, cu excepia faptului c nu genereaz numerotarea liniilor. Exemplul 2.19
\documentclass{report} \begin{document} \begin{eqnarray} x_n&=&x_{n-1}+x_{n-2}\\ f(x)&=&x^2\\ \lefteqn{g(x)=x^2+y^2} \nonumber\\& &+z^2 \end{eqnarray} \end{document}

2.3.6 Cadrul equation


\begin{equation} formula matematica \end{equation} Cadrul equation centreaz ecuaia pe pagin i plaseaz numrul ecuaiei n marginea din dreapta. Clasa documentului determin modul cum sunt numerotate ecuaiile (subsubseciunile 2.2.5.3 i 2.2.5.4). Exemplul 2.20.
\documentclass{report} \begin{document} \begin{equation} \lim_{n\rightarrow \infty} \left(1+\frac{1}{n} \right)^{n}=e \end{equation} \begin{equation} F(s)=\int_{0}^{\infty} f(t) e^{-st}dt \end{equation} \end{document}

2.3. CADRE

39

____________________________________________________________________________

2.3.7 Cadrul figure


\begin{figure}[placement] corpul figurii \caption{titlul figurii} \end{figure} Figurile sunt obiecte care nu fac parte din textul propriu-zis i sunt deplasate, n mod normal, n locuri convenabile, de exemplu la nceputul sau la sfritul paginii. O figur nu este tiprit pe pagini separate. Argumentul opional placement determin locul n care LaTeX va ncerca s plaseze figura, i anume: h (here) n locul din text n care apare cadrul figure; t (top) la nceputul paginii; b (bottom) la sfritul paginii; p (page of floats) pe o pagin separat, care nu conine text, ci numai obiecte din figura plasat de LaTeX.

Clasele standard report i article utilizeaz, ca amplasament default, tbp, astfel nct figura poate fi aezat la nceputul paginii, la sfritul paginii sau pe o pagin separat. Corpul figurii este compus, n general, dintr-un cadru picture centrat (subseciunea 2.3.14). Comanda \caption permite scrierea legendei figurii. Un exemplu de creare a unui desen va fi dat dup discutarea cadrului picture.

2.3.8 Cadrul flushleft i comanda \raggedright


\begin{flushleft} Text linia 1 \\ Text linia 2 \\ . . \end{flushleft} Cadrul flushleft permite crearea de paragrafe aliniate la stnga. Fiecare linie trebuie s se termine cu secvena \\. Comanda

40

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX \raggedright

____________________________________________________________________________

corespunde cadrului flushleft i poate fi folosit n interiorul unui cadru cum ar fi quote sau ntr-un parbox. Spre deosebire de cadrul flushleft, comanda \raggedright nu ncepe un nou paragraf, ci doar schimb formatul paragrafului curent, cuprins ntre \begin{} i \end{}. Exemplu 2.21
\documentclass{report} \begin{document} \begin{flushleft} Ne aliniem la st\^anga, \^\i ntr-un \\cadru flushleft. Acesta este\\ cunoscut drept un\\ text "raggedright". \end{flushleft} Sf\^ar\c situl altui paragraf. \begin{quote} \raggedright Aici este un cadru quote,\\ ale c\u arui linii sunt\\ aliniate la st\^anga. \end{quote} \end{document}

2.3.9 Cadrul flushright i comanda \raggedleft


\begin{flushright} Text linia 1 \\ Text linia 2 \\ . . \end{flushright} Cadrul flushright permite crearea de paragrafe aliniate la dreapta. Fiecare linie trebuie s se termine cu secvena \\. Comanda \raggedleft

2.3. CADRE

41

____________________________________________________________________________

corespunde cadrului flushright i poate fi folosit n interiorul unui cadru cum ar fi quote sau parbox. Spre deosebire de cadrul flushleft, comanda \raggedright nu ncepe un nou paragraf, ci doar schimb formatul paragrafului curent, cuprins ntre \begin{} i \end{}.

2.3.10 Cadrul itemize


\begin{itemize} \item Primul element \item Al doilea element . . \end{itemize} Cadrul itemize genereaz o list cu bullets. Itemizarea poate fi ncuibat una ntr-alta, pn la patru niveluri n adncime. De asemenea, aceste liste pot fi incorporate ntr-un paragraf creat cu alt cadru. Fiecare element dintr-o list ncepe cu comanda \item. n cadrul itemize trebuie s existe cel puin o comand \item. Cadrul itemize poate utiliza cinci contori, de la itemii la itemv (subseciunea 2.4.1). Tipul de numerotare poate fi modificat redefinind \theitemi. Exemplul 2.22
Ex22 \documentclass{report} \begin{document} \begin{itemize} \item Fiecare item bullet. \item Listele \^\i ncuibate. \begin{enumerate} \item Etichetele sau litere. \item O list\u a 2item-uri. \end{enumerate} \LaTeX\ permite \^\i ncuibare. \item O linie goal\u a dup\u a \par un item nu are efect. \end{itemize} \end{document}

42

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

2.3.11 Cadrul letter


Acest cadru este folosit pentru documente de tip scrisori i este tratat n Anexa A.

2.3.12 Cadrul list


\begin{list}{label}{spacing} \item 1: Primul element \item 2: Al doilea element . . \end{list} Cadrul list este un cadru generic, utilizat pentru a defini alte cadre specifice. n general, nu este folosit dect arareori n documente, dar n mod frecvent apare n macrodefiniii (seciunea 2.5). Argumentul label specific modul cum sunt etichetate elementele listei (items). Argumentul este un text, inclus ntr-un box pentru a forma o etichet. Acest argument poate conine alte comenzi LaTeX. Argumentul spacing conine comenzi care seteaz parametrii de spaiere ai listei. Acest argument este, n general, nul, i.e. {}. n acest caz, sunt selectai parametrii de spaiere implicii (default), ceea ce este satisfctor pentru majoritatea aplicaiilor. n afara acestor dimensiuni, urmtoarele comenzi controleaz formatarea. \makelabel{label} este comanda care poziioneaz eticheta transmis ca parametru opional al comenzii \item. Poate fi redefinit de utilizator, cu ajutorul comenzii \renewcommand, n seciunea de declaraii. \usecounter{ctr} pune la dispoziie contorul ctr (care trebuie mai nti creat, conform subseciunii 2.4.1), pentru numerotarea intern a elementelor. Acest contor este automat iniializat la zero, iar la fiecare comand \item fr parametru el va fi incrementat cu \refstepcounter, valoarea lui devenind valoarea curent (subseciunea 2.4.1).

2.3. CADRE Exemplu 2.23

43

____________________________________________________________________________

\documentclass{report} \begin{document} \newcounter{bean} Textul ce precede lista. \begin{list} {B--\arabic{bean}} { \usecounter{bean} \setlength{\rightmargin}{20mm} \setlength{\leftmargin}{\rightmargin} } \item Acesta este primul element sunt egale cu 20mm. \item Acesta este al doilea element. \end{list} \^Incepe un nou paragraf doar \^\i n cazul \^\i n care cadrul list este urmat de o linie goal\u a. Un nou paragraf. \end{document}

44

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

Textul precedent

\topsep + \parskip [+ \partopsep] Label \labelwidth \leftmargin \itemindent Elementul 1 Paragraful 1 \rightmargin

\listparindent

\parsep Elementul 1 Paragraful 2

\itemsep + \parsep

Label

Elementul 2

\topsep + \parskip [+ \partopsep]

Text ce urmeaza listei

Fig. 2.3 - Semnificaia parameterilor din cadrul list (a se vedea i subseciunea 2.4.2).

2.3.13 Cadrul minipage i comanda \parbox


\begin{minipage}[pos]{width} text \end{minipage} Parbox este o cutie (box) al crei coninut este n modul paragraf, iar TeX genereaz o serie de linii ca n textul uzual. Cadrele figure i table creeaz parbox-uri. Exist dou modaliti de a crea un parbox ntr-un

2.3. CADRE

45

____________________________________________________________________________

anumit loc din text: 1) cu ajutorul cadrului minipage i, respectiv, 2) prin comanda \parbox. Ele pot fi folosite pentru a include unul sau mai multe paragrafe de tip text, n interiorul unei figuri sau al unui tabel. Cadrul minipage are un argument opional pos i un argument width ce specific limea box-ului. Argumentul opional pos poate fi: t (top) linia de sus a parbox-ului este aliniat la linia de text uzual sau b (bottom) linia de jos a parbox-ului este aliniat la linia de text uzual.

n interiorul unui cadru minipage, se pot utiliza alte comenzi de tip cadru, ce creeaz paragrafe. O comand \footnote sau \footnotetext creeaz o not de subsol n partea de jos a minipaginii i nu n subsolul paginii i utilizeaz contorul mpfootnote n locul contorului obinuit pentru notele de subsol (subseciunea 2.4.1).
Observaie. Dac se utilizeaz note de subsol, atunci nu se include o minipagin n alta deoarece ele pot ajunge n subsolul altei minipagini dect cea corect.

Exemplul 2.24
\documentclass{report} \begin{document} \begin{minipage}[t]{0.5in} {\em vrabia} este o pas\u are \end{minipage} \ IAR \ \begin{minipage}[t]{1in} {\em iepurele} este un roz\u ator\footnote{vezi mamifere}. \end{minipage} \end{document}

Comanda \parbox este similar cu cadrul minipage, are acelai argument opional pos i un argument width. Este utilizat, n general, pentru un parbox cu un volum redus de text, ce nu conine alte paragrafe create cu cadre.

46 Exemplul 2.25

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

\documentclass{report} \begin{document} \parbox[b]{0.5in}{Parbox cu linia de JOS aliniat\u a cu linia TEXT.} \ TEXT \ \parbox[t]{1in}{Parbox cu linia de SUS aliniat\u a cu linia TEXT.} \end{document}

Un control mai fin al poziionrii verticale se realizeaz cu comanda \raisebox (subseciunea 2.8).

2.3.14 Cadrul picture i folosirea sa n cadrul figure


\begin{picture}(width,height)(x_offset,y_offset) comenzi picture \end{picture} Cadrul picture permite crearea de desene ce conin text, linii, sgei i cercuri. n principiu, se comunic LaTeX locul unde se pun aceste obiecte prin specificarea coordonatelor lor. O coordonat este un numr care poate avea zecimale i semn de exemplu 5 sau 2.3. O coordonat specific lungimea, n multipli de unitatea \unitlength, astfel nct, dac \unitlength a fost setat la 1cm, atunci coordonta 2.5 specific o lungime de 2.5cm de la origine. Valoarea \unitlength poate fi modificat oricnd, cu ajutorul comenzii \setlength. Aceast schimbare nu trebuie fcut ns n interiorul cadrului picture, deoarece efectul este imprevizibil. O poziie este o pereche de coordonate de exemplu, (2.4,-5), care specific punctul cu coordonata 2.4 pe axa x i respectiv 5 pe axa y. Coordonatele sunt specificate, n mod uzual, n raport cu originea care este situat, de regul, n colul stnga-jos al desenului. Cnd o poziie apare ca argument, ea nu este inclus ntre paranteze, acestea servind doar la delimitare.

2.3. CADRE

47

____________________________________________________________________________ y

2 (-2.1,1) 1 originea

(2,2)

x -2.1
unitate de lungime

Fig.2.4 Puncte i coordonatele lor

Cadrul picture are un argument obligatoriu dimensional. Cadrul genereaz o cutie (box) dreptunghiular, cu lungimea width i limea height, reprezente, respectiv, de coordonatele x i y ale argumentului. Cadrul picture mai are i un argument opional, ce urmeaz argumentului dimensional i care poate modifica originea. Spre deosebire de argumentele opionale uzuale, acesta nu este inclus ntre paranteze drepte. Acest argument opional furnizeaz coordonatele noii origini, n raport cu colul din stnga-jos al figurii. De exemplu, dac \unitlength a fost setat la 1mm, comanda \begin{picture}(100,200)(10,20) genereaz o figur cu limea 100mm i lungimea 200mm, al crei col din stnga-jos este punctul (10,20) i al crei col dreapta-sus este, n consecin, (110,220). Cnd se deseneaz o figur, mai nti se omite acest argument opional, lsndu-se originea n colul stnga-jos. Dac apoi se dorete o deplasare a desenului, se adaug argumentul opional corespunztor. Argumentul obligatoriu al cadrului determin mrimea nominal a desenului, dar desenul propriu-zis poate s depeasc aceste dimensiuni. Grosimea liniei cu care se deseneaz se selecteaz prin comenzile: \thinlines selecteaz linia subire; \thicklines selecteaz linia groas;

48

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX \linethickness{gros} selecteaz penia argumentul gros specific grosimea liniei. groas, iar

____________________________________________________________________________

Desenul este alctuit cu comenzile: \put(coord_x,coord_y){obj} pune obiectul obj n punctul de coordonate coord_x, coord_y; \multiput(coord_x,coord_y)(dx,dy){nr}{obj} pune de nr ori obiectul obj, ncepnd cu punctul de coordonate coord_x, coord_y, iar la fiecare pas coordonatele sunt incrementate cu dx, respectiv dy. Ca urmare, la a treia repetare a obiectului specificat prin obj, coordonatele sale vor fi coord_x*3*dx, respectiv coord_y*3*dy. Comanda \put creeaz o cutie LR (seciunea 2.8). Obiectele reprezentate de argumentul obj pot fi text uzual sau desene create de comenzile descrise n continuare. \circle[*]{diam} genereaz un cerc cu un diametru ct mai apropiat posibil de cel specificat prin diam; dac este utilizat versiunea cu * a comenzii, atunci LaTeX genereaz un cerc plin (cu interiorul nnegrit). \dashbox{dash_length}(width,height)[pos]{text} genereaz un box dreptunghiular, cu conturul punctat, ce conine textul text; argumentul opional pos specific poziia n care apare textul (implicit centrat pe orizontal i vertical) i care poate fi selectat prin una sau dou din valorile: t (top) plasare n partea de sus a dreptunghiului; b (bottom) plasare n partea de jos a dreptunghiului; l (left) plasare la stnga; r (right) plasare la dreapta; c (center) centrat. Comanda are argumentul suplimentar dash_length, care specific lungimea unei liniue, iar aspectul desenului este optim cnd parametrii width i heigth sunt multipli de dash_length. \frame{obj}creeaz un contur dreptunghiular n jurul obiectului specificat de argumentul obj; punctul de referin este colul stnga-jos i nu se las spaiu suplimentar ntre contur i obiect.

2.3. CADRE

49

____________________________________________________________________________

\framebox(width,height)[pos]{text} este similar cu comanda \dashbox, cu excepia faptului c genereaz un contur cu linie continu, plasat n exterior, n jurul cutiei pe care o creeaz. \line(x_slope,y_slope){length} este comanda ce genereaz o linie cu lungimea length i panta (slope) x_slope/y_slope, unde x_slope i y_slope pot avea valori ntregi cuprinse ntre 6 i 6. \makebox(width,height)[pos]{text} este similar cu comanda \dashbox, cu excepia faptului c marginile box-ului sunt invizible. \oval(width,height)[portion] produce un oval (dreptunghi cu vrfurile rotunjite); argumentul opional portion permite selectarea, pentru tiprire, doar a unei zone a ovalului, specificat prin una din valorile: t (partea de sus), b (partea de jos), r (partea din dreapta) sau l (partea din stnga. Trebuie menionat c vrfurile ovalului sunt realizate cu cercuri cu raza maxim de 20 pt, astfel nct un oval mare va avea, mai degrab, aspectul unui box cu colurile rotunjite. \shortstack[pos]{obj1\\obj2\\...} genereaz o stiv de obiecte; ultimul obiect este la baza stivei iar valorile argumentului opional pos pot fi: r (right) plasarea obiectului la dreapta stivei l (left) plasarea obiectului la stnga stivei; c (center) plasarea obiectului n centrul stivei (implicit). \vector(x_slope,y_slope){length}deseneaz o linie cu o sgeat, de lungimea specificat prin length i cu panta x_slope/y_slope.

n continuare sunt date cteva exemplu de utilizare a cadrului picture.

50 Exemplu 2.26

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

\documentclass{report} \begin{document} \begin{figure} \begin{picture}(100,100) \setlength{\unitlength}{1pt} \put(120,20){\dashbox{.5} (50,50)[b]{TEXT}} \end{picture} \caption{Un prim exemplu} \end{figure} \end{document}

Exemplul 2.27
\documentclass{report} \begin{document} \begin{picture}(100,100) \setlength{\unitlength}{1pt} \put(1.4,5){\vector(1,2){20}} \put(1.4,2.6){\line(3,-1){50}} \end{picture} \end{document}

Exemplul 2.28
\documentclass{report} \begin{document} \begin{picture}(100,100) \setlength{\unitlength}{1pt} \put(20,0){\circle{20}} \put(20,0){\vector(0,1){10}} \put(50,0){\circle*{10}} \end{picture} \end{document}

2.3. CADRE Exemplul 2.29

51

____________________________________________________________________________

\documentclass{report} \begin{document} \begin{picture}(100,100)\setle ngth{\unitlength}{1pt} \put(10,70){\shortstack{Acesta \\ este \\ un obiect}} \put(10,50){\oval(50,30)} \end{picture} \end{document}

Exemplul 2.30
\documentclass{report} \begin{document} \begin{picture}(100,100) \setlength{\unitlength}{1pt} \multiput(3,3)(5,-3){3}{\oval(40,20)} \end{picture} \end{document}

Exemplul 2.31
\documentclass{report} \begin{document} \begin{picture}(100,100) \setlength{\unitlength}{0.2cm} \put(5,4){\line(0,-1){2}} \put(6,2){\oval(2,2)[bl]} \put(6,1){\vector(1,0){6}} \end{picture} \end{document}

Observaie. Pentru a realiza transformri geometrice i a include fiiere de tip .eps, care conin grafic realizat n alte medii, se folosete pachetul graphics. Includerea graficii se realizeaz cu comanda \includegraphics (care suport i forma cu *). Detalii privind pachetul graphics se gsesc n [Lamport 1994].

52

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

2.3.15 Cadrul quotation


\begin{quotation} text \end{quotation} Cadrul quotation se utilizeaz pentru evidenierea unui citat mai lung, compus din mai multe paragrafe. Marginile cadrului quotation sunt indentate la stnga i la dreapta. Textul este aliniat (justified) la aceste margini i paragrafele sunt indentate. O linie goal n text genereaz un nou paragraf. Exemplul 2.32
\documentclass{report} \begin{document} Iat\u a c\^ateva sfaturi. \begin{quotation} Cadrele pentru realizarea citatelor pot fi folosite \c si \^\i n alte scopuri. Este bine s\u a citi\c ti cu aten\c tie manualul. Multe probleme pot fi rezolvate prin folosirea cadrelor din \LaTeX. Pentru aceasta ave\c ti nevoie de experien\c t\u a. \end{quotation} Acestea au fost unele din sfaturile ce v-ar fi necesare. Restul le ve\c ti g\u asi \^\i n paginile acestei c\u ar\c ti sau \^\i n alte lucr\u ari. \end{document}

2.3. CADRE

53

____________________________________________________________________________

2.3.16 Cadrul quote


\begin{quote} text \end{quote} Cadrul quote este similar cadrului quotation, dar este destinat evidenierii unor citate mai scurte, ce cuprind doar un singur paragraf sau unor secvene de citate scurte, separate prin linii goale. Marginile din stnga i din dreapta sunt indentate, iar textul este aliniat la ambele margini.

Exemplul 2.33
\documentclass{report} \begin{document} Motto-ul \begin{quote} "\TeX\ este un sistem de culegere de texte, destinat cre\u arii unor c\u ar\c ti frumoase \c si, \^\i n special, a celor care con\c tin mult\u a matematic\u a." \emph{- D.E Knuth, The \TeX book (1983)-} \end{quote} este un adev\u ar recunoscut, din ce \^\i n ce mai mult, de editori din \^\i ntreaga lume. \end{document}

54

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

2.3.17 Cadrul tabbing


\begin{tabbing} text \= text \= text \= text \\ a doua linie \> \> ultimul text \\ . . \end{tabbing} Cadrul tabbing permite alinierea textului pe coloane i poate fi utilizat doar n modul paragraf (seciunea 2.6). El ofer un mecanism pentru setarea i folosirea tabulatorilor, similar cu cel de la o main de scris. Este adecvat situaiilor n care limea fiecrei coloane este constant i cunoscut dinainte. Spre deosebire de cadrul tabular, acest cadru poate trece de la pagin la alta. Opririle tab-ului sunt numerotate 0, 1, 2, etc. Oprirea cu numrul i a tab-ului este setat, dac i se asociaz o poziie pe orizontal n pagin. n interiorul unui cadru tabbing pot fi folosite urmtoarele comenzi: \= \> \< seteaz un tab n poziia curent; salt orizontal la urmtorul tab; decrementeaz valoarea numrului curent de opriri ale tab-ului, permind inserarea unui text la stnga marginii locale, fr a o modifica; poate fi folosit doar la nceput de linie, unde anuleaz (pe linia respectiv) efectul unei comenzi \+ precedente ; mut marginea din stnga a liniei urmtoare cu un tab, iar mai multe astfel de comenzi au efect cumulativ; iniial, tabulatorul marginii din stnga este setat la 0; decrementeaz cu 1 tabulatorul marginii din stnga a liniei urmtoare (care trebuie s fie pozitiv), anulnd efectul unei comeni \+; mai multe astfel de comenzi au efect cumulativ; mut textul din coloana curent, situat naintea comenzii, n coloana precedent i l aliniaz la dreapta; produce alinierea la dreapta tabelului a textului ce urmeaz dup comand; dup aceast comand, nu mai sunt acceptate comenzile \>, \=, \ sau \ ;

\+

\-

\ \

2.3. CADRE \kill nu tiprete rndul curent;

55

____________________________________________________________________________

\pushtabs salveaz poziia curent a tuturor tabulatorilor ce pot fi restaurai cu comanda \poptabs; \poptabs restaureaz poziiile tabulatorilor salvai la ultima comand \pushtab; \a, \a, \a produc accentele pe care le-ar genera, n mod normal, respectiv comenzile \=, \, \ (i care, aici, sunt redefinite).

Exemplul 2.34
\documentclass{report} \begin{document} \begin{tabbing} function \= fact(n : integer) : integer;\\ \> begin \= \+ \\ \> if \= n $>$ 1 then \+ \\ fact := n * fact(n-1) \- \\ else \+ \\ fact := 1; \-\- \\ end;\\ \end{tabbing} \end{document}

Exemplul 2.35
\documentclass{report} \begin{document} \begin{tabbing} O coloan\u a \=\^\i ngust\u a.\\ Acest r\^ and este prea lung. \>///////////////// \end{tabbing} \end{document}

56 Exemplul 2.36

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

\documentclass{report} \begin{document} \begin{tabbing} Coloana veche 1 \=Coloana veche 2\\ Col.1\>Col.2\\ Col. nou\u a 1 \=Col. nou\u a 2\\ Col.1\>Col.2 \end{tabbing} \end{document}

Exemplul 2.37
\documentclass{report} \begin{document} \begin{tabbing} Eminescu\=Creang\u a\=\kill Mihai \>Ion \>Ion Luca \\ Eminescu \>Creang\u a \>Caragiale \end{tabbing} \end{document}

2.3.18 Cadrul table


\begin{table}[placement] corpul tabelului \caption{titlul tabelului} \end{table} Tabelele, la fel ca i figurile, sunt obiecte al cror coninut trebuie s apar doar pe o singur pagin i ele pot fi deplasate (floated) n text, - de exemplu, la nceputul paginii urmtoare - astfel nct s nu existe pagini umplute parial. Argumentul opional placement determin locul n care LaTeX va ncerca s plaseze tabelul. Aceste poziii sunt specificate cu ajutorul unor caractere cu urmtoarea semnificaie :

2.3. CADRE

57

____________________________________________________________________________

h (here) n locul n care apare cadrul table n text; t (top) n captul de sus al unei pagini de text; b (bottom) la baza unei pagini de text; p (page of floats) pe o pagin separat ce nu conine text, ci doar obiecte deplasate.

Poziia default este tpb. Corpul tabelului este compus din text, comenzi LaTeX etc. Includerea comenzii \caption permite etichetarea i scrierea unei legende asociate tabelului. Un exemplu de utilizare a cadrului table va fi dat n seciunea ce trateaz cadrul tabular.

2.3.19 Cadrul tabular


\begin{tabular}[pos]{cols} linia 1 :col.1 & col.2 ... & col.n\\ . . linia m :col.1 & col.2 ... & col.n\\ \end{tabular} sau \begin{tabular*}{width}[pos]{cols} linia 1 :col.1 & col.2 ... & col.n\\ . . linia m :col.1 & col.2 ... & col.n\\ \end{tabular*} Aceste cadre produc un box, constnd dintr-o secven de linii de elemente, aliniate vertical n coloane. Argumentele obligatorii i respectiv opionale sunt descrise n continuare. width specific limea cadrului tabular*. pos specific poziia pe vertical, default nseamn alinierea centrat n cadru, iar valorile pot fi: t aliniere n captul de sus al liniei; b aliniere n captul de jos al liniei.

58

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX cols specific formatul coloanei i const dintr-o secven alctuit cu simbolurile de mai jos. l o coloan de elemente aliniate la stnga r o coloan de elemente aliniate la dreapta c o coloan de elemente centrate | separator de coloane, reprezentat de o linie vertical mrginit de spaii @{text} separator de coloane ce specific o @-expresie. Se insereaz textul text n fiecare linie, ntre coloanele ntre care apare @-expresie. O @-expresie suprim spaiul dintre coloane, inserat n mod normal i orice spaiu dorit ntre textul propriu-zis i celelalte elemente trebuie s fie inclus n text. O comand \extracolsep{wd}, ntr-o @-expresie, genereaz un spaiu suplimentar, de lime wd, la stnga tuturor coloanelor urmtoare, pn la urmtoarea comand \extracolsep. Spre deosebire de spaiul uzual dintre coloane, acest spaiu suplimentar nu poate fi suprimat printr-o @-expresie. O comand \extracolsep poate fi folosit doar n argumentul cols, ntr-o @-expresie. p{wd} genereaz o coloan, cu fiecare element plasat ntr-o cutie cu limea wd, ca i cum ar fi argumentul unei comenzi \parbox[t]{wd}. Cu toate acestea, secvena \\ nu este permis dect n urmtoarele situaii: - n interiorul unui cadru de tip array, minipage sau tabular, - n interiorul unui \parbox explicit sau - n sfera de aciune a unei comenzi \centering, \raggedright sau \raggedleft. Ultimele dou comenzi trebuie s apar ntre paranteze sau ntr-un cadru, atunci cnd sunt folosite ntr-un element coloan p . *{num}{cols} echivalent cu num cpii ale coloanelor, unde num este orice ntreg pozitiv iar cols este orice list de specificatori de coloan, care pot conine i o @-expresie.

____________________________________________________________________________

Fiecare linie este separat, de urmtoarea, prin comanda \\ i const dintr-o secven de elemente, separate prin caracterul &. O linie trebuie s conin acelai numr de elemente ca cel specificat de argumentul cols. Fiecare element este procesat ca i cum ar fi ntre paranteze, astfel nct cmpul de

2.3. CADRE

59

____________________________________________________________________________

aciune al fiecrei declaraii dintr-un element i.e. efectul declaraiei - se limiteaz la acel element. Urmtoarele comenzi pot fi folosite n specificarea unui element al unei linii: \multicolumn{n}{pos}{item} face elementul item s se extind pe n coloane, n poziia pos, care poate conine una din valorile: r (right), c (centred), l (left) i una sau mai multe @expresii i caractere |; aceast comand fie ncepe o linie a tabelului, fie urmeaz imediat dup caracterul &; \vline cnd este utilizat n interiorul unui element l, c sau r, produce o linie vertical, pe toat nlimea liniei respective de elemente ale tabelului; o comand \hfill poate fi utilizat pentru a muta linia la marginea coloanei; comanda poate fi utilizat ntr-o @-expresie.

Comenzile descrise n continuare pot genera linii orizontale, ntre dou linii succesive de elemente ale tabelului. Ele trebuie s apar fie naintea primei linii de elemente, fie imediat dup o comand \\. O linie orizontal, dup ultima linie de elemente, este produs de comanda \\, urmat de una din comenzile descrise mai jos. Comanda \cline{i-j} subliniaz elementele tabelului, ncepnd de la coloana i pn la coloana j. Comanda \hline plasat dup o secven \\ sau la nceputul cadrului, traseaz o linie orizontal sub toate coloanele. Dou comenzi \hline succesive las un spaiu ntre linii; delimitrile generate de caracterul |, din argumentul cols, nu apar n acest spaiu.

60 Exemplul 2.38

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

\documentclass{report} \begin{document} \begin{table}[htbp] \begin{center} \begin{tabular}{cc} \multicolumn{2}{c}{\emph{Some real values}}\\ \hline $x=0.1$&$y=2.2$\\ $r=10$&$z=100$\\ \end{tabular} \end{center} \caption{Exemple 38} \end{table} \end{document}

Exemplul 2.39
\documentclass{report} \begin{document} \begin{tabular}{|r||r@{--}l|p{1.25in}|}\hline \multicolumn{4}{|c|}{\emph{Firma Paradis}}\\ \hline\hline &\multicolumn{2}{c|}{Pre\c t}&\\ \cline{2-3} \multicolumn{1}{|c||} {An}&\multicolumn{1}{r@{\,\vline\,}}{min}&max &\multicolumn{1}{c|}{Observa\c tii} \\ \hline 1971&97&245&An slab.\\ \hline 72&245&245&Iarn\u a grea.\\ \hline 73&245&2001&Un an ciudat. Prognoz\u a bun\u a.\\\hline \end{tabular} \end{document}

2.3. CADRE Exemplul 2.40

61

____________________________________________________________________________

\documentclass{report} \begin{document} \begin{tabular*}{40mm}{@{}r@{.}l% @{\extracolsep{\fill}}cr% @{\extracolsep{0pt}::}l@{}} \multicolumn{5}{c}{\underline{Tabel }}\\ 1&22&obiect 1 &clasa&st\^ ang\u a\\ 50&7 &obiectul 2 &clasa&ro\c sie\\ 9&99&obiecte &clase&diverse \end{tabular*} \end{document}

2.3.19.1 Observaii importante privind cadrul tabular i cadrul array Urmtoarele proprieti ale cadrelor tabular i array (seciunea 2.3.1), dei au fost menionate, sunt adesea ignorate de utilizatorii nceptori. Aceste cadre creeaz o cutie (box) (a se vedea i seciunea 2.3.13). Cutia creat cu aceste comenzi poate avea un spaiu alb, nainte de prima coloan i respectiv dup ultima coloan, spaiu ce poate fi eliminat cu o @-expresie. Orice declaraie ntr-o linie a tabelului (vezi linia 1, , linia m) aparine unui element al tabelului, iar cmpul su de aciune este elementul respectiv (i.e. efectul se exercit doar asupra elementului). O @-expresie, n argumentul cols, suprim spaiul implicit dintre coloane.

62

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX 2.3.19.2 Parametrii de stil privind cadrul array i cadrul tabular

____________________________________________________________________________

Formatul cadrelor array i tabular poate fi respectiv controlat cu urmtoarele comenzi, reprezentnd parametrii de stil privind lungimile:

\arraycolsep reprezint jumtate din limea specificat, prin argumentul width, a spaiului orizontal implicit dintre coloane, ntr-un cadru array; \tabcolsep reprezint jumtate din limea specificat, prin argumentul width, a spaiului orizontal implicit dintre coloane, ntr-un cadru tabular sau tabular*; \arrayrulewidth reprezint limea unei linii create, cu ajutorul caracterului |, n argumentul cols sau cu una din comenzile \hline, \cline sau \vline; \doublerulesep reprezint limea spaiului dintre linii, creat cu dou caractere | succesive, n argumentul cols, sau cu dou comenzi \hline succesive; \arraystretch controleaz spaierea dintre liniile tabelului; spaiul normal este multiplicat cu numrul generat de \arraystretch, astfel nct modificarea sa, de la valoarea implicit 1 la 1.5, crete spaiul dintre linii de 1.5 ori, n parte; valoarea sa poate fi modificat, din nou, cu o comand \renewcommand (subseciunea 2.2.4 i seciunea 2.5)

Parametrii de stil de mai sus pot fi schimbai, oricnd, n afara unui cadru array, respectiv tabular. Ei pot fi, de asemenea, schimbai local, n interiorul unui element, dar cmpul de aciune al modificrii respective trebuie delimitat prin paranteze de grupare sau printr-un cadru.

2.3. CADRE

63

____________________________________________________________________________

2.3.20 Cadrul thebibliography i programul BibTeX


2.3.20.1 Cadrul thebibliography i generarea manual a bibliografiei \begin{thebibliography}{widest_label} \bibitem[label]{cite_key} . . \end{thebibliography} Cadrul thebibliography permite crearea manual a unei liste de referine bibliografice. n clasa article, lista de referine este intitulat References, iar n clasa report, Bibliography. Parametrul widest_label specific un text care, tiprit, este aproximativ tot att de lat ct elementul de lime maxim, generat de comenzile \bibitem. Comanda \bibitem[label]{cite_key} genereaz o nregistrare cu eticheta label. Dac argumentul label lipsete, se genereaz un numr cu rolul etichetei, utiliznd contorul enumi (subseciunea 2.4.1). Parametrul cite_key este orice secven de litere, numere sau semne de punctuaie diferite de virgul ,. Aceast comand scrie, n fiierul cu extensia .aux, o nregistrare coninnd cite_key i eticheta label a elementului. Cnd acest fiier *.aux este citit, la comanda \begin{document}, eticheta elementului este asociat cu cite_key, astfel nct, prin comanda \cite, referina respectiv genereaz eticheta label asociat. Comanda \cite[text]{key_list} genereaz citarea, n text, a referinelor asociate cu etichetele din lista key_list, prin nregistrri din fiierul *.aux, citit la comanda \begin{document}. Argumentul key_list este o list de etichete de citare. Argumentul opional text va aprea dup citare, i.e. comanda \cite[p. 2]{knuth} va genera [Knuth, p. 2]. Comanda

64

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX \nocite{key_list}

____________________________________________________________________________

nu genereaz nici un text, dar scrie key_list, care este o list de una sau mai multe citri, n fiierul *.aux. Exemplul 2.41
\documentclass{report} \begin{document} Leslie Lamport \cite{LL:LaT} shows that\par ..... \begin{thebibliography}{99} \bibitem{LL:LaT} Leslie Lamport. {\em (1994) }\LaTeX\ A Document Preparation System. User's Guide and Reference Manual. Addison-Wesley Publ. Co. \end{thebibliography} \end{document}

Observaie. De remarcat c, n clasa report, bibliografia este tiprit pe o pagin separat, dup textul documentului propriu-zis, pe cnd la documentele de tip article referinele apar la sfritul documentului, fr a se genera o nou pagin.

2.3. CADRE Exemplul 2.42


\documentclass{article} \begin{document} Leslie Lamport \cite{LL:LaT} shows that...\par..... \begin{thebibliography}{Alexander 95} \bibitem[Alexander 95]{Al:Mat}John Alexander. {\em (1995) } Mathematical Analysis. Ed. MIR, Moscow. \bibitem[Lamport 94]{LL:LaT} Leslie Lamport.{\em (1994) } \LaTeX\ A Document Preparation System. User's Guide and Reference Manual. Addison-Wesley Publ. Co. \end{thebibliography} \end{document}

65

____________________________________________________________________________

n acest exemplu, parametrul widest_label este Alexander 95.

Observaie. Atenie, pentru rezolvarea referinelor ncruciate, fiecare fiier *.tex, din exemplele 2.41 i respectiv 2.42, a fost procesat, n LaTeX, de dou ori; reamintim c, la prima trecere, se marcheaz referinele i abia la a doua trecere acestea sunt alocate.

Exemplul urmtor arat cum se poate redacta textul din exemplul 2.42 n limba romn, prin redefinirea numelor seciunilor (conform subseciunii 2.2.4).

66 Exemplul 2.43

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

\documentclass{article} \renewcommand{\refname}{Bibliografie} \begin{document} Leslie Lamport \cite{LL:LaT} arat\u a c\u a ...\par ..... \begin{thebibliography}{Alexander 95} \bibitem[Alexander 95]{Al:Mat} John Alexander. {\em (1995) } Mathematical Analysis. Ed. MIR, Moscow. \bibitem[Lamport 94]{LL:LaT} Leslie Lamport. {\em (1994) } \LaTeX\ A Document Preparation System. User's Guide and Reference Manual. Addison-Wesley. \end{thebibliography} \end{document}

2.3.20.2 Programul BibTeX i generarea automat a bibliografiei Dac, pentru ntreinerea listei bibliografice, utilizai programul BibTeX, creat de Oren Patashnik (recomandat, n special, n cazul unei bibliografii bogate, care conine mai mult de cteva titluri), atunci nu se folosete cadrul thebibliography. n schimb, se introduc urmtoarele linii: \bibliographystyle{style} \bibliography{bibfile}

2.3. CADRE

67

____________________________________________________________________________

unde style se refer la fiierul style.bst, care definete felul cum vor arta citatele. Stilurile standard, distribuite de BibTeX ,sunt urmtoarele: alpha sortare n ordine alfabetic, cu etichete constituite din numele autorului i anul apariiei publicaiei; plain sortare n ordine alfabetic, cu etichete numerice; unsrt similar cu plain, dar elementele apar n ordinea citrii, fr sortare; abbrv - similar cu plain, dar etichetele sunt mult mai compacte. n plus, pot fi activate numeroase alte fiiere style pentru BibTeX, conform cerinelor diverselor edituri i conform layout-urilor specifice pentru diverse reviste. Argumentul comenzii \bibliography se refer la fiierul bibfile.bib, care ar trebui s conin baza Dvs. de date, n format BibTeX. Detalii privind organizarea bazei de date se gsesc n [Lamport 1994] i n fiierul btxdoc.dvi, ce nsoete documentaia MiKTeX (disponibil la adresa www.stat.uiowa.edu/resources/help/win95/latex.html) care conine i lucrarea BibTeXing, scris de Oren Patashnik [Patashnik 1988]. Cteva elemente din aceast lucrare sunt prezentate, succint, n Anexa B.

2.3.21 Cadrul titlepage


\begin{titlepage} text \end{titlepage} Cadrul titlepage creeaz o pagin de titlu, i.e. o pagin nenumerotat i fr header, iar pagina imediat urmtoare devine prima pagin, din punctul de vedere al numerotrii. Formatarea paginii de titlu este lsat, n ntregime, la latitudinea autorului. Adesea, este folosit una din comenzile \today (pentru generarea datei curente) sau \date (pentru specificarea unei anumite date sau a celei curente). Pentru a produce o pagin de titlu standard, se folosete comanda \maketitle (subsubseciunea 2.2.5.2). Sunt utile, de asemenea, urmtoarele cadre i comenzi: cadrul center, descris n subseciunea 2.3.2, comenzile de schimbare de stil precum i cele de schimbare a dimensiunii fontului, descrise n seciunea 2.6.

68

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

2.3.22 Cadrul verbatim i comanda \verb


\begin{verbatim} text \end{verbatim} Cadrul verbatim genereaz un paragraf, n care LaTeX tiprete exact ceea ce se introduce de la tastatur. Cu alte cuvinte, LaTeX devine o main de scris, care proceseaz spaiile (blank-urile) i comenzile enter de la tastatur. Exemplul 2.44
\documentclass{report} \begin{document} Urmeaz\u a un un text scris \^\i n cadrul \texttt{verbatim}. \begin{verbatim} Text scris \^\i n cadrul \texttt{verbatim} \end{verbatim} \end{document}

Comanda \verb, cu sintaxa \verb char literal_text char , suport i forma cu *, avnd sintaxa \verb*char literal_text char . literal_text semnific textul tiprit, n stilul typewriter (\texttt, seciunea 2.6), exact cum este introdus de la tastatur, inclusiv caracterele speciale i spaiile. char este un caracter diferit de liter (de exemplu + sau |), ce delimiteaz, n cadrul paragrafului curent, textul literal_text. Se admite s nu fie nici un blank ntre char i \verb, respectiv \verb*. n forma cu *, spaiile sunt tiprite ca un caracter special.

2.3. CADRE Exemplul 2.45

69

____________________________________________________________________________

\documentclass{report} \begin{document} Se poate scrie:\\ \verb+$x=y$+ sau \verb?$x = y$?. \end{document}

Exemplul 2.46
\documentclass{report} \begin{document} Se poate scrie:\\\verb*+$x=y$+ sau \verb*?$x = y$?. \end{document}

2.3.23 Cadrul verse


\begin{verse} text \end{verse} Cadrul verse este destinat tipririi de versuri, dei se poate folosi i n alte scopuri. Marginile textului sunt indentate, la stnga i la dreapta. Versurile dintr-o strof sunt separate cu secvena \\, iar strofele sunt separate prin una sau mai multe linii goale. Exemplul 2.47
\documentclass{report} \begin{document} \^In 1876, Eminescu scria: \begin{verse} Cu g\^andiri \c si cu imagini\\ \^Innegrit-am multe pagini ... Nu urma\c ti g\^andirei mele,\\ C\u aci noianu-i de gre\c sele,...\\ \end{verse} \end{document}

70

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

2.4 VARIABILE INTERNE LaTeX

2.4.1 Contori
Pentru numerotare, n LaTeX se asociaz, n mod automat, un contor. Numele contorului este acelai cu numele cadrului sau al comenzii care genereaz numrul (cu excepia celor fr \). n continuare, este prezentat lista contorilor utilizai, pentru controlul numerotrii, n categoriile standard de documente LaTeX. part chapter section subsection subsubsection paragraf subparagraf page equation figure table footnote mpfootnote enumi enumii enumiii enumiv

Contorii enumi - enumiv sunt folosii n cadrul enumerate ncuibat: enumi pentru primul nivel (exterior), enumii pentru urmtorul, etc.(subseciunea 2.3.4). Contorul mpfootnote numr notele de subsol (footnotes), ntr-un cadru minipage (subseciunea 2.3.13). n plus fa de cele de mai sus, un cadru creat utiliznd comanda \newtheorem (seciunea 2.5) are un contor cu acelai nume, cu excepia situaiei n care un argument opional specific numerotarea, similar cu cea din alt cadru. Valoarea unui contor este un ntreg, n general nenegativ. Numerele multiple sunt generate cu contori diferii; de exemplu, cifrele 2 i 4 din Subseciunea 2.4 sunt generate de contorii section i respectiv subsection. Valoarea unui contor este iniializat la zero i este incrementat, de ctre comenzile sau cadrele corespunztoare. De exemplu, contorul subsection este incrementat, de comanda \subsection, nainte de generarea numrului subseciunii i este resetat, la zero, cnd contorul section este incrementat, astfel nct numrul subseciunii ncepe, ntr-o nou seciune, de la unu (a se vedea i exemplul 2.48). Contorul page este folosit pentru numerotarea paginilor ntr-un document. Acesta difer de ali contori, prin faptul c este incrementat dup

2.4. VARIABILE INTERNE LaTeX

71

____________________________________________________________________________

generarea numrului paginii; de exemplu, comanda \setcounter{page}{27} face ca pagina curent s capete numrul 27. Din acest motiv, contorul page este iniializat la unu n loc de zero. Stilul numerotrii este definit prin comanda \pagenumbering (seciunea 2.9). n continuare, se descriu comenzile ce opereaz asupra contorilor: \addtocounter{ctr}{num} Incrementeaz contorul ctr cu valoarea specificat de argumentul num. \newcounter{newctr}[within] Definete un nou contor, cu numele newctr, iniializat la zero, cu valoarea numeric (returant de \thenewctr) afiat n stilul definit prin \arabic{newctr}. Este o declaraie global i nu poate fi folosit ntr-un fiier inclus, declarat cu comanda \include. Se utilizeaz doar n preambul (a se vedea i subseciunea 2.3.12). newctr este o secven de caractere, diferit de numele unui contor deja existent. within specific numele unui contor deja definit. Dac acest argument este prezent, atunci newctr este resetat la zero, ori de cte ori contorul within este incrementat prin comenzile \stepcounter sau \refstepcounter. \refstepcounter{ctr} \stepcounter{ctr} Comenzile incrementeaz valoarea contorului ctr cu unu, resetnd valoarea oricrui contor numerotat n interiorul acestuia. De exemplu, contorul subsection este numerotat n interiorul contorului section care, pentru clasele de documente report sau book, este numerotat n interiorul contorului chapter. n plus, comanda \refstepcounter declar valoarea curent returnat de \ref ca fiind textul generat de comanda \thectr. \setcounter{ctr}{num} Seteaz valoarea contorului ctr la num. Este o declaraie global. \value{ctr} Genereaz valoarea contorului ctr, care poate fi astfel folosit ntr-o expresie. Este utilizat, cu precdere, n argumentul num al comenzilor

72

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX \setcounter sau \addcounter. De exemplu, comanda \setcounter{cont}{\value{page}} seteaz contorul cont la valoarea curent a contorului page.

____________________________________________________________________________

Comanda \usecounter{ctr} (subseciunea 2.3.12).

este folosit n cadrul

list

Observaie. Comenzile \setcounter i \addcounter afecteaz doar contorul specificat. De exemplu, schimbarea contorului section prin aceste comenzi nu afecteaz contorul subsection.

Exemplul 2.48
\documentclass{report} \begin{document} \setcounter{footnote}{17} Deoarece\footnote{...} \addtocounter{footnote}{-2} un contor\footnote{...} este\\ incrementat \^\i nainte de utilizare,\\ el trebuie setat la valoarea\\ cu unu mai mic\u a dec\^at num\u arul dorit. \end{document}

Urmtoarele comenzi tipresc valoarea contorului ctr, n formatul indicat: \alph{ctr} Litere latine mici (valoarea lui ctr trebuie s fie mai mic dect 27). \Alph{ctr} Litere latine mari (valoarea lui ctr trebuie s fie mai mic dect 27). \arabic{ctr} Cifre arabe. \roman{ctr} Cifre romane mici. \Roman{ctr} Cifre romane mari. \fnsymbol{ctr} Genereaz simboluri pentru not de subsol. Poate fi folosit doar n modul matematic. Valoarea argumentului ctr trebuie s fie mai mic dect 10.

2.4. VARIABILE INTERNE LaTeX \thectr Tiprete valoarea contorului ctr.

73

____________________________________________________________________________

Pentru a schimba numerotarea seciunilor i subseciunilor, se folosete comanda \renewcommand (seciunea 2.5). De exemplu, comenzile
\renewcommand{\thesection}{Roman{section}} \renewcommand{\thesubsection}{\thesection-{Alph{subsection}}

asigur tiprirea seciunii 2, cu cifra II i respectiv a subseciunii 2.4, sub forma II-D.

2.4.2 Lungimi i designul unei pagini


n aceast accepiune, prin lungime se nelege msura unei distane. n LaTeX, o lungime explicit este exprimat, ntr-un anumit sistem dimensional, printr-un numr zecimal cu semn (+ implicit sau explicit), adic <parte ntreag>.<parte zecimal><unitate_de_msur>, unde unitate_de_msur poate fi unul din simbolurile listate n continuare: cm em ex in pc pt mm Centimetri. Un em este egal cu limea literei M n fontul curent. Un ex este egal cu nlimea literei x n fontul curent. Inch. Picas (1pc = 12pt). Points (1in = 72.27pt). Milimetri.

O alt modalitate de specificare a distanelor este realizat prin comenzi de tip lungime, care au sau returneaz o valoare reprezentnd o lungime. De exemplu, valoarea comenzii \parindent specific limea indentrii, la nceputul fiecrui paragraf, i.e. distana, de la marginea din stnga a paragrafului, la care ncepe prima linie a acestuia. Lungimile pot fi rigide, (de exemplu 1.5em sau \parindent) sau elastice. Acestea din urm pot varia, iar spaiul specificat de o asftel de lungime se poate lrgi sau ngusta, conform cerinelor. De exemplu, spaiile dintre cuvinte variaz ntr-un paragraf justified, astfel nct fiecare rnd s aib aceeai lungime. Urmtoarele comenzi fac parte din categoria lungimi i permit definirea parametrilor de stil ai unui text, i.e. designul acestuia:

74

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

\parindent Limea indentrii la nceput de paragraf. Este setat la zero ntr-un parbox. Valoarea sa poate fi schimbat oriunde. \textheight nlimea textului n pagin, i.e. a corpului paginii (fig. 2.5). \textwidth Limea textului n pagin (fig. 2.5). Valoarea sa poate fi schimbat doar n preambul. \parskip Distana, pe vertical, dintre dou paragrafe consecutive. Uzual, aceast distan este zero (cu excepia documentelor din clasa letter). Este o lungime elastic, astfel nct se poate extinde pentru a aduga spaiu vertical, ntre paragrafe, cnd acioneaz declaraia \flushbottom, descris n aceast subseciune. Valoarea sa poate fi schimbat, oriunde, n fiierul surs. \baselinskip Distana normal, pe vertical, de la baza unui rnd la baza rndului urmtor, n acelai paragraf. Depinde de mrimea fontului curent (seciunea 2.6). Dac rndul conine obiecte nalte, atunci aceast distan poate fi mai mare.
Observaie. Numrul de rnduri, pe o pagin ce conine doar un singur paragraf, este raportul dintre valoarea lungimii definite de \textheight i valoarea definit de \baselineskip.

Comanda \baselinestrech nu este o lungime. Ea returneaz un numr zecimal, cu valoarea implicit egal cu unu i care poate fi modificat prin comanda \renewcommand (seciunea 2.5). Urmtoarele dou comenzi definesc lungimi elastice. \fill Definete o lungime elastic avnd, n mod natural, valoarea zero i posibilitatea de a se extinde la o valoare pozitiv arbitrar. Dac aceast comand este multiplicat cu un numr zecimal, ea definete o lungime rigid; de exemplu 1\fill sau 0.7\fill sunt lungimi rigide, ambele cu valoarea 0in. \strech{dec_num} Definete o lungime elastic, avnd, n mod natural, valoarea zero i posibilitatea de a se extinde de dec_num ori valoarea definit de \fill, unde argumentul dec_num este un numr zecimal cu semn (i.e. un semn opional, urmat de un ir de cifre i un punct zecimal opional).

2.4. VARIABILE INTERNE LaTeX Urmtoarele comenzi permit modificarea lungimilor.

75

____________________________________________________________________________

\newlength{\cda} Declar parametrul \cda ca fiind o comand de tip lungime, unde cda este numele unei comenzi ce nu a fost nc definit. Valoarea definit de \cda este iniializat la zero. \setlength{\cda}{lun} Seteaz valoarea comenzii de tip lungime \cda la valoarea argumentului lun. \addtolength{\cda}{len} Seteaz valoarea comenzii de tip lungime \cda la valoarea sa curent plus valoarea argumentului lun. \settowidth{\cda}{text} \settoheight{\cda}{text} \settodepth{\cda}{text} Seteaz valoarea comenzii de tip lungime \cda la limea, nlimea i respectiv adncimea argumenului text . O pagin tiprit are trei pri: header-ul, corpul textului i footer-ul (fig. 2.5). Dimensiunile acestora sunt determinate de parametrii de stil. Stilul paginii specific coninutul header-ului i al footer-ului. Paginile din stnga i din dreapta pot avea parametrii, respectiv, diferii. n stilul fa-verso, paginile pare sunt pagini din stnga, respectiv cele impare sunt pagini din dreapta. La tiprirea pe o singur fa, toate paginile sunt considerate pe dreapta. Urmtoarele comenzi permit definirea stilului unei pagini. \pagestyle{style} Este o declaraie ce specific stilul paginii curente. Opiunile style standard sunt urmtoarele: plain - Header-ul este gol, footer-ul conine doar numrul paginii. Este stilul implicit al paginii. empty - Att header-ul ct i footer-ul sunt goale. headings - Header-ul conine informaia determinat de categoria documentului (uzual, este un header asociat unitii secionale), precum i numrul paginii; footer-ul este gol. myheadings - La fel ca headings, cu excepia faptului c informaia din header (fr numrul paginii) este specificat prin comenzile \markboth i \markright, descrise n aceast subseciune. \thispagestyle La fel ca \pagestyle, cu excepia faptului c se aplic doar paginii curente (cea care tocmai urmeaz s fie decupat de ctre TeX). Este o declaraie global.

76

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

1 in \topmargin 1 in \oddsidemargin sau \evensidemargin Header \headheight \headsep \textwidth \marginparwidth N ot a m ar nal gi a Corpul paginii \textheight \marginparsep

\pageheight

\footheight

Footer \pagewidth

\footskip

Fig. 2.5 - Parametrii de stil ai paginii; la paginile pare, notele marginale sunt n stnga corpului textului.

\markright{right_head} \markboth{left_head}{right_head} Aceste comenzi specific urmtoarea informaie coninut n header, pentru stilurile de pagin headings i myheadings: pentru pagina din stnga, header-ul este definit de argumentul left_head al ultimei comenzi \markboth, ce apare nainte de sfritul paginii; pentru pagina din dreapta, header-ul este definit de argumentul right_head al ultimei comenzi \markright sau \markboth din

2.4. VARIABILE INTERNE LaTeX

77

____________________________________________________________________________

pagin, sau, dac nu exist nici una, al ultimei comenzi corespunztoare, ce apare nainte de nceputul paginii. n stilul headings, comenzile de secionare seteaz header-ele paginilor cu ajutorul comenzilor \markboth i \markright astfel: Stilul de tiprire fa-verso o singur fa
___________________

Comanda \markboth(* \markright \markright


*) specific un header vid pe pagina din dreapta

Clasa documentului article book, report \chapter \section \section \subsection \chapter \section ______________ ______________

n mod implicit, prima pagin are header-ul vid. Dac nu se dorete acest lucru, atunci se poate genera o prim pagin goal, cu ajutorul cadrului titlepage. \pagenumbering{num_style} Specific stilul numerelor paginilor i seteaz valoarea contorului page la unu (subseciunea 2.4.1). Este o declaraie global. Valorile posibile ale argumentului num_style sunt : arabic Cifre arabe. roman Cifre romane mici (i, ii, etc.). Roman Cifre romane mari (I, II, etc.). alph Litere latine mici. Alph Litere latine mari. Comanda \pagenumbering redefinete valoarea returnat de \thepage ca fiind \num_style{page} (seciunea 2.4.1). \twocolumn[text] ncepe o nou pagin, executnd \clearpage i ncepe tiprirea pe dou coloane. Dac argumentul text este prezent, atunci este tiprit ntr-un parbox pe dou coloane, la nceputul noii pagini. \onecolumn ncepe o nou pagin, executnd comanda \clearpage i ncepe tiprirea pe o singur coloan.

78

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

\flushbottom nlimea textului, pe fiecare pagin, este aceeai, prin adugarea, cnd este necesar, a unui spaiu vertical, de dimensiune corespunztoare, ntre paragrafe. \raggedbottom Anuleaz efectul comenzii \flushbottom. n LaTeX, se consider implicit \raggedbottom, cu excepia cazului cnd acioneaz opiunea twoside a comenzii \documentclass (subsubseciunea 2.2.5.1) Majoritatea parametrilor de stil ce permit designul unei pagini sunt prezentai n fig. 2.5, n care dreptunghiul exterior reprezint marginile coalei. Aceti parametri sunt toi lungimi rigide i pot fi schimbai doar n preambulul fiierului cu extensia .tex (subseciunea 1.1). Paginile impare folosesc \oddsidemargin, respectiv cele pare comanda \evensidemargin. Nu este figurat parametrul \topskip, reprezentnd minimul distanei msurate de la marginea superioar a corpului figurii la punctul de referin al primei linii de text; el acioneaz ca o comand \baselineskip.

2.4.3 Parametrii de stil pentru ecuaii matematice


Atunci cnd se dorete modificarea stilului n care sunt scrise ecuaiile, trebuie modificai aa-numiii parametri de stil asociai acestor obiecte. n general, aceasta nu este o aciune recomandat, deoarece valorile implicite ale parametrilor de stil au fost stabilite, n LaTeX, pe baza anumitor reguli tipografice (reguli ce au izort din cerinele editurilor din SUA). Parametrii de stil ai ecuaiilor sunt comenzi de tip lungimi (seciunea 2.4.2). Iat, n continuare, descrierea lor. \jot Definete dimensiunea unui spaiu vertical suplimentar, adugat ntre dou linii consecutive, ntr-un cadru eqnarray sau eqnarray* (subseciunea 2.3.5). \mathindent Definete indentarea unei formule, msurat de la marginea din stnga a paragrafului, cnd se folosete opiunea fleqn pentru categorii (clase) de documente (subsubseciunea 2.2.5.1). \abovedisplayskip Definete dimensiunea spaiului suplimentar, adugat deasupra unei formule lungi cu excepia cazului n care se folosete opiunea fleqn pentru categorii de documente, caz n care se

2.4. VARIABILE INTERNE LaTeX

79

____________________________________________________________________________

consider lungimea definit de comanda \topsep. Lungimea definit este elastic. \belowdisplayskip Definete dimensiunea spaiului suplimentar, adugat sub o formul lung cu excepia cazului n care se folosete opiunea fleqn pentru categorii de documente, caz n care se consider lungimea definit de comanda \topsep. Lungimea definit este elastic. \abovedisplayshortskip Definete spaiul suplimentar, adugat deasupra unei formule scurte cu excepia cazului n care se folosete opiunea fleqn pentru categorii de documente, caz n care se consider valoarea lungimii definite de comanda \topsep. nceputul unei formule scurte este situat la dreapta punctului unde sfrete linia precedent. Lungimea definit este elastic. \belowdisplayskip Definete spaiul suplimentar adugat la stnga unei formule scurte cu excepia cazului n care se folosete opiunea fleqn pentru categorii de documente, situaie n care se consider valoarea lungimii definite de comanda \topsep. Lungimea definit este elastic. Formatul sau stilul de tiprire al numrului ecuaiei este controlat de comanda \theequation, ce poate fi eventual redefinit. De exemplu, pentru categoria de documente book, stilul de tiprire \theequation este predefinit ca fiind {\thechapter.\arabic{equation}}; n consecin, numrul formulei a 3-a din capitolul 2 este tiprit (2.3). Acest stil nu mai este valabil dac se editeaz o formul ntr-un document din categoria report (a se vedea i exemplul 2.20 din subseciunea 2.3.6). Stilul de numerotare poate fi, ns, redefinit, eventual doar local (i.e. doar pentru un grup de formule din document), cu ajutorul comenzii \renewcommand (subseciunea 2.5.1).
Observaie. n cazul n care se dorete ca stilul de tiprire al numrului unei formule s fie modificat, la comanda \renewcommand{\theequation}{noua definiie a stilului de numerotare} doar pentru acea formul din document, i.e. local, atunci ntregul grup de comenzi asociate formulei, ncepnd de la \renewcommand pn la \end{equation}, trebuie inclus ntre acolade { i }. n afara acestor acolade, definiia comenzii \theequation este cea implicit pentru clasa documentului respectiv.

80

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

n continuare este prezentat un exemplu de modificare local a stilului de numerotare a formulelor. Exemplul 2.49
\documentclass{report} \begin{document} Iat\u a un exemplu de formul\u a scris\u a cu parametrii de stil nemodifica\c ti. Defini\c tia transformatei Laplace a semnalului $f(t)$ este: \begin{equation} F(s)=\int_{0}^{\infty}f(t)e^{-st}dt \end{equation} Acum se modific\u a stilul de tip\u arire al contorului \verb|equation|. Num\u arul curent al capitolului este \arabic{chapter}. {\renewcommand{\theequation}{\thechapter.\arabic{equation}a} \begin{equation} \label{ecu}x_i=x_{i-1}+x_{i-2} \end{equation} \addtocounter{equation}{-1} \renewcommand{\theequation}{\thechapter.\arabic{equation}b} \begin{equation} \label{ecu+1}y=x_i \qquad i>10 \end{equation} } Acestea au fost trei exemple simple de formule. \end{document}

2.4. VARIABILE INTERNE LaTeX

81

____________________________________________________________________________

2.4.4 Parametrii de stil privind cadrul table i cadrul figure


Tabelele sau figurile sunt obiecte flotante (i.e. pot fi deplasate), create cu cadrele table (subseciunea 2.3.18) i respectiv figure (subseciunea 2.3.7). O pagin flotant conine numai astfel de obiecte i nu conine text. Aezarea n pagin a tabelelor sau figurilor se face, n LaTeX, respectnd, n mod optim, reguli tipografice [Lamport 1994]. Iat cteva dintre acestea: Obiectul (tabel sau figur) este tiprit n locul cel mai apropiat posibil, fa de punctul unde a fost generat, care respect regulile de mai jos, cu meniunea faptului c poziia, specificat prin valoarea h (here) a argumentului placement, este prioritar fa de cea specificat prin valoarea t (top). Obiectul nu va fi tiprit pe o pagin ce precede locul din document unde este definit cadrul (table sau figure) asociat. O figur nu va fi tiprit naintea unei figuri definite anterior, iar un tabel nu va fi tiprit naintea unui tabel precedent definit. Obiectul poate s apar doar n poziia permis de valoarea argumentului opional placement (din definiia cadrelor figure, respectiv tabular) sau, n lipsa acestuia, de valoarea implicit tpb. O figur sau un tabel nu poate depi o pagin. Modificarea, n preambulul documentului, a urmtorilor parametri de stil se aplic ncepnd cu prima pagin. Schimbrile, intervenite ulterior, se aplic ncepnd cu pagina imediat urmtoare locului unde au fost specificate. topnumber Definete un contor a crui valoare reprezint numrul maxim de obiecte flotante, permise la nceputul unei pagini de text. \topfraction Definete procentul maxim, din spaiul unei pagini, care poate fi ocupat, n partea superioar a acesteia, de obiecte flotante. Astfel, valoarea 0.25 specific faptul c primul sfert al paginii poate fi alocat obiectelor flotante. Poate fi modificat prin comanda \renewcommand. bottomnumber Are aceeai semnificaie ca topnumber, cu excepia faptului c obiectele sunt plasate n partea inferioar a paginii. \bottomfraction Are aceeai semnificaie ca \topfraction, cu excepia faptului c obiectele flotante sunt plasate n partea inferioar a paginii.

82

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

totalnumber Definete un contor, a crui valoare reprezint numrul maxim de obiecte flotante care pot s apar, pe o pagin ce conine text, oricare ar fi poziia acestora. \textfraction Definete procentul minim, din spaiul unei pagini, dedicat textului. Restul procentului, de 1-\textfraction, trebuie ocupat de obiecte flotante. Valoarea sa poate fi redefinit la comanda \renewcommand. \floatpagefraction Definete procentul minim, din spaiul unei pagini, care trebuie ocupat de obiecte flotante, limitnd astfel spaiul gol permis pe o pagin flotant. Valoarea sa poate fi redefinit la comanda \renewcommand. dbltopnumber Analogul contorului topnumber pentru obiecte flotante, aezate pe dou coloane, pe o pagin cu stilul twocolumn. \dbltopfraction Analogul comenzii \topfraction pentru obiecte flotante, aezate pe dou coloane, pe o pagin cu stilul twocolumn. \dblfloatpagefraction Analogul comenzii \floatpagefraction pentru o pagin flotant, cu stilul twocolumn. \floatsep Definete spaiul vertical, adugat ntre obiectele flotante, aezate n partea superioar sau inferioar a unei pagini de text. \textfloatsep Definete spaiul vertical, adugat ntre obiectele flotante, aezate n partea superioar sau inferioar a unei pagini de text i textul respectiv. \intextsep Definete spaiul vertical, adugat deasupra i dedesubtul unui obiect flotant, aezat n centrul paginii de text, cu argumentul opional h (here). Valoarea sa este o lungime elastic. \dblfloatsep Analogul comenzii \floatsep pentru obiecte flotante, de lime dubl dect a unei coloane, situate pe o pagin cu stilul twocolumn. Valoarea sa este o lungime elastic. \dbltextfloatsep Analogul comenzii \textfloatsep pentru obiecte flotante, de lime dubl dect a unei coloane, situate pe o pagin cu stilul twocolumn. Valoarea sa este o lungime elastic.

2.5. MACRODEFINIII

83

____________________________________________________________________________

2.5 MACRODEFINIII
De regul, compilatoarele lucreaz cu macrodefiniii numite, pe scurt, macrouri. Un macrou reprezint, n esen, o secven de comenzi ce va fi nlocuit, n timpul procesrii, cu definiia macroului respectiv. Din acest punct de vedere, LaTeX poate fi considerat un pachet de macrouri. Definiia unui macrou poate consta dintr-un text obinuit mpreun, eventual, cu alte macrouri i/sau primitive TeX. Primitivele TeX sunt secvene de control, recunoscute de TeX i care nu pot fi nlocuite cu alte comenzi.

2.5.1 Definirea comenzilor


Un macrou poate fi definit sau, respectiv, redefinit prin comenzile: \newcommand{\cda}[arg][opt]{def} \renewcommand{\cda}[arg][opt]{def} Parametrii comenzilor au urmtoarele semnificaii: cda Numele unei comenzi. n cazul comenzii \newcommand, trebuie s nu fie numele unei comenzi deja definite i nu trebuie s nceap cu end; n cazul comenzii \renewcommand, trebuie s fie numele unei comenzi deja definite. arg Un ntreg ntre 1 i 9, reprezentnd numrul de argumente al comenzii \cda. Implicit, comanda definit/redefinit nu are nici un argument. opt Dac acest argument este prezent, atunci primul argument din totalul de arg ale comenzii \cda este opional i are valoarea implicit opt. Dac acest argument lipsete, atunci toate celelalte argumente ale comenzii \cda sunt obligatorii. def Reprezint textul nlocuit ori de cte ori se ntlnete comanda \cda; un parametru, de forma #n n \cda, este nlocuit, cnd se face aceast substituire, cu textul asociat parametrului cu numrul n. def poate conine comenzi de definire a comenzilor sau cadrelor, doar dac toate comenzile sau cadrele astfel definite nu au argumente. n exemplul urmtor se arat cum se poate crea, n modul matematic, o comand simpl, care apare de mai multe ori n textul documentului.

84 Exemplul 2.50

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

\documentclass{article} \newcommand{\gn}{$\Gamma_{i}$} \begin{document} Fie \gn\ valoarea asociat\u a m\u arimii $i$,\par unde \gn\ este o norm\u a euclidian\u a. \end{document} Observaie. Dup comanda \gn, s-a dat comanda \ (i.e. backslah urmat de caracterul blank), deoarece TeX ignor caracterul blank plasat dup numele comenzii definite de \newcommand.

Comanda \Gamma, din exemplul 2.50, poate fi folosit doar n modul matematic i, de aceea, s-a folosit perechea de caractere $ i $, pentru delimitarea ei ca argument def al comenzii \newcommand. Pe de alt parte, comanda \gn nu poate fi folosit n modul matematic deoarece, la ntlnirea ei, primul caracter $ determin TeX s ias din modul matematic i s ncerce s execute \Gamma n modul paragraf. Dac \newcommand definete o comand ce refer un obiect matematic (funcie, expresie, formul etc.) i care va trebui repetat i n modul matematic, atunci, n argumentul def, se folosete comanda \ensuremath{expresie} care asigur faptul c argumentul expresie (reprezintnd un ir de caractere i comenzi ce descriu obiectul matematic n spe) este tiprit n modul matematic, indiferent de modul curent (subseciunile 2.6 i 2.7). Exemplul 2.51
\documentclass{article} \newcommand{\func}[2] {\ensuremath{ \mathit{var}(#1;#2)} } \begin{document} Deoarece \func{5x}{y} \c si \func{2x-1}{y}\par reprezint\u a valori aproximativ egale ale... \end{document}

2.5. MACRODEFINIII

85

____________________________________________________________________________ Observaie. Comanda \mathit este valabil doar n modul matematic i permite scrierea argumentului su cu litere italice (seciunea 2.7). Al doilea argument opional al comenzii \newcommand specific faptul c \func este o comand cu dou argumente. Parametrii #1 i #2 sunt nlocuii cu primul i, respectiv, al doilea argument al comenzii \func, n momenul n care aceasta este apelat n textul documentului.

O comand poate fi definit i n funcie de alt comand, dup cum reiese din exemplul urmtor. Exemplul 2.52
\documentclass{article} \newcommand{\func}[2] {\ensuremath {\mathit{var}(#1;#2)}} \newcommand{\util} {\func{2x}{0}} \begin{document} Valoarea \func{5x}{y} \c si\par valoarea \util\ \end{document}

Parantezele rotunde, ( i ), din argumentul def, nu delimiteaz efectul unei declaraii. Pentru a limita cmpul de aciune al unei declaraii, coninute n argumentul def, trebuie adugate, n definiia comenzii, paranteze suplimentare, de tip acolad { i }. Altfel, aciunea unei astfel de comenzi se poate extinde, n mod nedorit, i n afara argumentului respectiv. Exemplul 2.53
\documentclass{report} \newcommand{\bun}[3] {{#1}$({#2};{#3})$} \newcommand{\rau}[3] {#1$(#2;#3)$} \begin{document} Expresia \bun{\em func}{x}{4} este tip\u arit\u a \par corect, dar dup\u a \rau{\em finc}{x}{4} totul \par apare cu caractere italice, ca efect \par al comenzii \verb|\em| din primul\par argument al comenzii \verb|\rau| . \end{document}

86

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________ Observaie. Comanda \newcommand poate fi folosit i pentru abrevierea unor comenzi, frecvent folosite ntr-un document. De exemplu, dac se editeaz multe ecuaii i se dorete s se evite repetarea comenzilor \begin{equation] i \end{equation}, de fiecare dat cnd se definete un cadru equation, atunci se pot folosi comenzile \newcommand{\bee}{\begin{equation}} \newcommand{\ene}{\end{equation}} Acestea definesc grupul \bee \ene ca fiind echivalent cu comenzile LaTeX \begin{equation}\end{equation} Dac se folosesc foarte des ecuaii numerotate, atunci, n loc s se scrie, pentru fiecare ecuaie, grupul \begin{equation}\label{} formula \end{equation}, se poate utiliza comanda \newcommand{\ec}[2]{\begin{equation}\label{#1}#2\end{equation}} n care primul parametru specific eticheta, iar cel de-al doilea formula [Pusztai 1994].

n subseciunea 2.2.4, s-a exemplificat folosirea comenzii \renewcommand. Programe scurte, ce utilizeaz \renewcommand, sunt descrise n exemplul 2.43 (subseciunea 2.3.20) i n exemplul 2.49 (subseciunea 2.4.3).

2.5.2 Definirea cadrelor


Un cadru poate fi definit sau, respectiv, redefinit, utiliznd comenzile: \newenvironment{num}[arg][opt]{begdef}{enddef} \renewenvironment{num}[arg][opt]{begdef}{enddef} Parametrii acestor comenzi au urmtoarele semnificaii: num - Reprezint numele cadrului; poate fi orice secven de litere, numere sau caracterul *, care nu ncepe cu end. n cazul comenzii \newenvironment, trebuie s nu mai existe nici un alt cadru cu numele num i nici o alt comand \num. n cazul comenzii \renewenvironment, cadrul cu numele num trebuie s fie deja definit. arg - Este un ntreg cuprins ntre 1 i 9, reprezentnd numrul de argumente ale cadrului nou definit. Implicit, cadrul nou definit/redefinit nu are nici un argument.

2.5. MACRODEFINIII

87

____________________________________________________________________________

opt Dac acest argument este prezent, atunci primul din cele arg argumente ale cadrului este opional i are valoarea implicit opt. Dac acest argument lipsete, atunci toate argumentele cadrului sunt obligatorii. begdef Reprezint textul folosit, n fiierul surs, pentru a nlocui instruciunea \begin{num}; un parametru de forma #n n begdef este nlocuit cu textul corespunztor argumentului cu numrul n al comenzii \begin{num}, n momentul n care are loc aceast substituire. enddef Reprezint textul folosit, n fiierul surs, pentru a nlocui instruciunea \end{num}. Nu este permis s aib parametri de tip argument. n general, un nou cadru este definit folosind un cadru deja existent. Exemplul 2.54
\documentclass{report} \newenvironment{evident} {\begin{itemize}\em} {\end{itemize}} \begin{document} Acesta este un exemplu de cadru\par definit de utilizator. \begin{evident} \item Acest cadru, numit \verb|evident|,\par genereaz\u a o list\u a de elemente\par scrise cu caractere italice. \item Cadrul \verb|evident| este scris\par folosind cadrul \verb|itemize| din\par \LaTeX\ \c si comanda \verb|\em|. \end{evident} Acum a luat sf\^ar\c sit lista generat\u a\par de cadrul \verb|evident|. \end{document} Observaie. Argumentele begdef i enddef pot conine comenzi de definire a comenzilor sau de redefinire a cadrelor, doar dac toate comenzile sau cadrele pe care le acestea le definesc nu au, la rndul lor, argumente. Parantezele de delimitare ale unui cadru, care a fost definit sau redefinit cu \newenvironment, respectiv cu

88

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________ \renewenvironment, nu delimiteaz i cmpul de aciune al unei declaraii coninute n argument. Acest aspect a fost evideniat i n cazul comenzii \newcommand (subseciunea 2.5.1). Comanda \renewenvironment poate fi folosit, doar dac utilizatorul cunoate foarte bine cadrul pe care dorete s-l redefineasc.

Exemplul 2.55
\documentclass{report} \newenvironment{descr}[1]{\begin{quote}\textit{#1}:} {\end{quote}} \begin{document} Observa\c ti cum o nou\u a structur\u a logic\u a -\^\i n acest exemplu, o descriere etichetat\u a a unui singur element poate fi definit\u a \^\i n func\c tie de un cadru deja existent. \begin{descr}{Ceai} Aceast\u a descriere a ceaiului a fost generat\u a de cadrul \verb|descr|. \end{descr} Urmeaz\u a alt text. \end{document}

Observaie Comanda \textit{txt} are ca efect tiprirea argumentului txt cu caractere italice.

2.5.3 Definirea cadrelor de tip teorem


Comanda \newtheorem permite definirea unui cadru n care se pot scrie teoreme, leme, propoziii etc. i poate avea una din urmtoarele sintaxe: \newtheorem{env_name}{caption}[within] \newtheorem{env_name}[numbered_like]{caption}

2.5. MACRODEFINIII Parametrii comenzilor au, respectiv, urmtoarele semnificaii:

89

____________________________________________________________________________

env_name Este un ir de litere, reprezentnd numele teoremei, (lemei, axiomei, etc.) ce trebuie scrise i care trebuie s difere de numele unui alt cadru sau contor. caption Textul tiprit la nceputul cadrului, chiar nainte de numr, de exemplu Teorem sau Lem. within Numele unui contor deja definit, asociat, n general, unei uniti secionale (capitol, seciune etc.) i care permite resetarea contorului teoremei, n cadrul unitii secionale respective. Dac acest argument este prezent, atunci comanda \theenv_name este definit prin \thewithin.\arabic{env_name}, iar contorul env_name va fi resetat de una din comenzile \stepcounter{within} sau \refstepcounter{within} (subseciunea 2.4.1). Dac argumentul within lipsete, atunci \theenv_name este definit prin \arabic{env_name}. numbered_like Numele unui cadru de tip teorem, deja definit. Dac acest argument este prezent, atunci env-name va fi numerotat n aceeai secven (utilizndu-se acelai contor) ca i cadrul numbered_like i va declara valoarea \ref curent, ca fiind textul generat de comanda \thenumbered_like. Cu excepia cazului n care apare argumentul opional numbered_like, comanda \newtheorem creeaz un contor numit env_name, iar cadrul declar valoarea curent a \ref ca fiind textul generat de \theenv_name. Exemple 2.56
\documentclass{report} \begin{document} \newtheorem{guess}{Propozi\c tia} Dup\u a cum se \c stie, dou\u a matrice echivalente au acela\c si rang. Av\^and \^\i n vedere acest lucru, din teorema anterioar\u a rezult\u a imediat urm\u atorul enun\c t. \begin{guess} Rangul unei matrice este egal cu num\u arul valorilor sale singulare nenule. \end{guess} \end{document}

90

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

Prezena argumentului opional final al comenzii \newtheorem determin numerotarea cadrului, n interiorul unitii secionale respective. Exemplul 2.57
\documentclass{report} \renewcommand{\chaptername}{Capitolul} \newtheorem{guess}{Propozi\c tia}[chapter] \begin{document} \chapter{Rangul unei matrice}\label{unu} Aceasta este prima propozi\c tie din capitolul \ref{unu}: \begin{guess} Rangul unei matrice este egal cu num\u arul valorilor sale singulare nenule. \end{guess} \end{document}

2.5. MACRODEFINIII

91

____________________________________________________________________________

Argumentul opional numbered_like se folosete, dac se dorete ca structuri distincte, de tip teorem, s fie numerotate secvenial, cu acelai contor. Exemplul 2.58
\documentclass{report} \newtheorem{teor1}{Teorema} \newtheorem{teor2}[teor1] {Axioma} \begin{document} \begin{teor1} Unele teoreme sunt numerotate. \end{teor1} \begin{teor2} To\c ti oamenii sunt muritori. \end{teor2} \end{document}

Uneori, este indicat s se precizeze autorul teoremei sau un alt nume, sub care rezultatul respectiv este celebru. Exemplul 2.59
\documentclass{article} \newtheorem{teor1}{Teorema} \begin{document} \begin{teor1}[Schur] Fie perechea de\par matrice reale p\u atrate (A,B), ... \end{teor1} \end{document}

Observaie. n general, este recomandat ca declaraia \newtheorem s figureze n preambulul fiierului surs. Observaie. n sintaxa comenzilor \newcommand, \newenvironment i \newtheorem este interzis folosirea spaiilor ntre argumente. De exemplu, corect este sintaxa \newtheorem{teor}{Teorema} i nu \newtheorem{teor} {Teorema}.

92

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

2.5.4 Pachetul ifthen


Pachetul ifthen pune la dispoziie comenzile \ifthenelse i \whiledo, pentru scrierea de programe ce conin teste i bucle. Pachetul ifthen este ncrcat la comanda \usepackage{ifthen}. n continuare, sunt descrise sintaxele i modurile de utilizare ale comenzilor din acest pachet. \ifthenelse{test}{then_txt}{else_txt} Este o instruciune condiional, iar argumentul test este o expresie logic care, evaluat n LaTeX, poate avea valoarea adevrat sau fals. Dac argumentul test are valoarea adevrat, atunci se proceseaz argumentul then_txt; dac test are valoarea fals, se proceseaz else_txt. Argumentul test poate fi exprimat prin urmtoarele expresii: num1 op num2 Este o relaie numeric, unde op poate fi unul din urmtoarele trei caractere: > = <, iar num1 i num2 sunt numere. De exemplu, \value{page}>17 este evaluat la valoarea adevrat, dac i numai dac valoarea curent a contorului page este mai mare ca 17. \equal{str1}{str2} Este evaluat la valoarea adevrat, dac i numai dac TeX consider str1 i str2 ca fiind egale. TeX poate considera dou argumente (reprezentnd comenzi) ca fiind diferite, chiar dac au drept rezultat tiprirea aceluiai text. De exemplu \today i May 1, 2001 nu sunt egale, chiar dac prin aplicarea lor rezult textul: May 1, 2001. TeX va considera argumentele str1 i str2 ca fiind egale dac, prin nlocuirea fiecrei comenzi din fiecare argument cu definiia sa, ele sunt identice. \lengthtest{len1 op len2} Evalueaz relaia ntre lungimile specificate de argumentele len1 i len2; op poate fi unul din urmtoarele trei caractere: > = <. De exemplu, \length{\parindent<1cm} are valoarea adevrat, dac i numai dac valoarea curent a declaraiei \parindent este mai mic dect 1cm. n procesul de evaluare, o lungime elastic este nlocuit cu valoarea sa natural (subseciunea 2.4.2).

2.5. MACRODEFINIII

93

____________________________________________________________________________

\isodd{num} Este evaluat la valoarea adevrat, dac i numai dac numrul specificat de argumentul num este impar (odd). Este folosit pentru a genera texte diferite, n funcie de paritatea paginilor. Totui, comanda \isodd{\value{page}} nu lucreaz corect, deoarece contorul page poate avea, de exemplu, valoarea curent 42, chiar dac textul procesat se extinde pe pagina cu numrul 43. Pentru a rezolva aceast problem, se folosesc comenzile \label{key} i \isodd{\pageref{key}}. n momentul cnd se proceseaz header-ul sau footer-ul unei pagini, contorul page are chiar valoarea presupus de utilizator, \boolean{nam} Este evaluat la valoarea curent a registrului logic nam, unde nam poate fi o secven de litere. Acest registru trebuie definit de comanda \newboolean{name}. Valoarea sa este setat, prin comanda \setboolean{nam}{bool}, unde parametrul bool este fie true (adevrat), fie false (fals). Expresiile complexe, reprezentate de argumentul test, pot fi construite din expresii mai simple, ntre care se aplic operatorii logici \and, \or i \not, cu parantezele de grupare specificate de caracterele \( i \). \whiledo{test}{body} Proceseaz n mod repetat argumentul body, pn ce argumentul logic test devine fals, unde test este descris la fel ca n cazul instruciunii \ifthenelse. Nu execut nimic dac, iniial, test are valoarea fals. Exemplul 2.60
\documentclass{article} \usepackage{ifthen} \newcommand{\test}[1] {\ifthenelse{#1=1}{bun}{r\u au}} \begin{document} Variantele pot fi:\par om \test1 sau om \test2. \end{document}

94

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

2.5.5 Comenzi fragile


Comenzile LaTeX pot fi mprite n categoriile: fragile sau robuste. Comenzile de schimbare de stil (sau font), descrise n seciunea 2.6, precum i majoritatea comenzilor din modul matematic (seciunea 2.7) sunt robuste. Orice comand cu cel puin un argument opional sau care accept o form cu * este fragil. Unele argumente ale unor comenzi se numesc mobile. O comand fragil care apare ntr-un argument mobil produce eroare, dac nu este protejat prin comanda \protect. Aceast comand de protejare se aplic doar comenzii pe care o precede; comenzile fragile care, la rndul lor, apar n argumentul comenzii respective, trebuie s fie i ele protejate cu alte comenzi \protect. Urmtoarele comenzi i cadre au argumente mobile: Comenzile cu un argument ce poate figura n cuprins, n lista de figuri sau n lista de tabele, respectiv asociate documentului: \addcontentsline, \addtocontents, \caption, precum i comenzile de secionare (subsubseciunea 2.2.5.3). Dac un argument opional este folosit la o comand \caption sau la o comand de secionare, atunci chiar acesta este argumentul mobil. Comenzile de tiprire la terminal: \typeout i \typein. Argumentul opional al comenzii \typein nu este mobil. Comenzile utilizate la generarea heading-urilor: \markboth (ambele argumente sunt mobile) i \markright (subseciunea 2.4.2). Comenzile de secionare deja menionate intr, i ele, n aceast categorie. Cadrul letter (definit n categoria de documente letter). Comanda \thanks. Argumentul opional al comenzii \bibitem. declaraia @, ntr-un cadru array sau tabular. (Dei @ nu este o comand, totui comenzile fragile dintr-o @-expresie trebuie protejate prin comanda \protect, ca i n cazul n care ar figura ntr-un argument mobil.)

Toate comenzile de tip lungimi (subseciunea 2.4.2) sunt robuste i nu trebuie precedate de o comand \protect. Comanda \protect nu trebuie s apar ntr-un argument al unei comenzi \setcounter sau, respectiv, \addtocounter.

2.6. MODUL PARAGRAF

95

____________________________________________________________________________

2.6 MODUL PARAGRAF


Cnd TeX proceseaz un text, el se afl ntr-unul din urmtoarele moduri: modul paragraf, modul matematic sau modul de la stnga la dreapta (numit i modul LR, de la Left-to-Right). Modul normal n care proceseaz TeX este modul paragraf. n modul paragraf, TeX consider intrrile ca o secven de cuvinte i propoziii ce trebuie secionate pe rnduri, paragrafe i pagini. Modurile matematic i LR vor fi prezentate n seciunile urmtoare.

2.6.1 Fonturi
Stilul de tiprire al unui text, setat prin alegerea tipului i mrimii fontului, este folosit pentru a indica structura logic a documentului. Iat un exemplu privind diferite tipuri de fonturi disponibile n LaTeX. Exemplul 2.61
\documentclass{article} \begin{document} \textup{Stil Upright. De obicei, implicit.}\par \textit{Stil Italic. Pentru eviden\c tiere.}\par \textsl{Stil Slanted. U\c sor diferit de italic.}\par \textsc{Stil small caps. Utilizat mai rar.}\par \textmd{Medium series. Adesea implicit.}\par \textbf{Boldface series. Pentru titluri.}\par \textrm{Roman family. Adesea implicit.}\par \textsf{Familia sans serif.}\par \texttt{Familia typewriter.} \textnormal{Stil normal, acum Roman.} \end{document}

96

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

Fiecrei comenzi de setare a stilului de tiprire i corespunde o declaraie. Acestea sunt listate n tabelul urmtor. Tabelul 2.1: Comenzi i declaraii de setare a stilului fontului Comanda Declaraia Comanda Declaraia
\textmd{text} \textbf{text} \textrm{text} \textsf{text} \texttt{text} \mdseries \bfseries \rmfamily \sffamily \ttfamily \textup{text} \textit{text} \textsl{text} \textsc{text} \textnormal{text} \upshape \itshape \slshape \scshape \normalfont

De exemplu, text se poate tipri n stilul bold fie la comanda \textbf{text}, fie la apelarea declaraiei {\bfseries text}.
Observaie. Nici una din comenzile sau declaraiile din tabelul 2.1 nu pot fi folosite n modul matematic. Comenzile de schimbare a stilului de tiprire, n modul matematic, sunt descrise n seciunea 2.7.

Mrimea implicit a fontului folosit la tiprire, n LaTeX, este 10pt, dar aceasta poate fi setat, dup dorin, la 11pt sau 12 pt, conform opiunii din comanda \documentclass (subsubseciunea 2.2.5.1) Urmtoarele declaraii permit schimbarea mrimii fontului n cadrul unui document, lsnd stilul acestuia nemodificat (stilul implicit este Roman.) Tabelul 2.2 : Declaraii de setare a mrimii fontului
\tiny \scriptsize \footnotesize \small \normalsize \large \Large \LARGE \huge \Huge

Observaie. Nici una din aceste comenzi nu poate fi folosit n modul matematic. Toate sunt comenzi fragile.

Mrimea efectiv pe care o genereaz aceste declaraii depinde de mrimea implicit a fontului cu care se tiprete textul documentului. n exemplele urmtoare, mrimea implicit este 10pt. Declaraia \normalsize produce mrimea implicit, comanda \footnotesize genereaz mrimea corespunztoare scrierii notelor de subsol, iar comanda \scriptsize produce mrimea adecvat scrierii indicilor inferiori i superiori, n cazul formulelor tiprite cu \normalsize.

2.6. MODUL PARAGRAF Exemplul 2.62


\documentclass{article} \begin{document} {\tiny Exemplu}\par {\scriptsize Exemplu}\par {\footnotesize Exemplu}\par {\small Exemplu}\par {\normalsize Exemplu}\par {\large Exemplu}\par {\Large Exemplu}\par {\LARGE Exemplu}\par {\huge Exemplu}\par {\Huge Exemplu}\par \end{document}

97

____________________________________________________________________________

Aceste declaraii pot fi combinate cu declaraiile sau comenzile de selectare a fontului. Exemplul 2.63
\documentclass{article} \begin{document} \sffamily un text scris\par \textit{cu litere din}\par \large ce \^\i n ce \Large mai\par mari \bfseries \c si mai \par \LARGE groase. \end{document}

2.6.2 Simboluri speciale i accente


n LaTeX, se pot genera simboluri speciale i accente ce nu sunt comune limbii engleze. Ele permit inserarea, ntr-un text n limba englez, a unor texte scurte redactate n alte limbi. Toate comenzile prezentate n aceast seciune sunt robuste. n tabelul 2.3, sunt prezentate cteva simboluri care nu sunt comune limbii engleze i comenzile ce le produc; aceste simboluri pot fi generate att n modul paragraf, ct i n modul LR.

98

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

Tabelul 2.3 : Simboluri speciale permise doar n modurile paragraf i LR

n tabelul 2.4 sunt prezentate comenzile ce genereaz ase semne speciale de punctuaie. Tabelul 2.4 : Simboluri speciale (permise n orice mod)

Alte simboluri speciale i comenzile ce le genereaz au fost prezentate la nceputul seciunii 2.2. n tabelul 2.5 sunt prezentate comenzile ce permit generarea literei o, cu diferite accente specifice altor limbi dect engleza. Aceste comenzi pot fi folosite doar n modul LR i n modul paragraf. Ele se pot aplica, n forma specificat, oricrei litere. Tabelul 2.5 : Comenzi pentru generarea de accente aplicate literei o

Alte tipuri de accente, specifice limbii romne, au fost prezentate n subseciunea 2.2.3.
Observaie. Comenzile \i i \j genereaz literele i, respectiv j fr punct deasupra. Reaminitim c \i este folosit, pentru a construi litera , la comanda \^{\i} sau \^\i .

2.6. MODUL PARAGRAF

99

____________________________________________________________________________

2.6.3 Gestionarea rndurilor i a paginilor


n general, TeX realizeaz optim organizarea textului pe rnduri, paragrafe i pagini, astfel nct fiecare rnd dintr-un paragraf (cu excepia, eventual, a ultimului) i respectiv fiecare pagin (cu excepia, eventual, a ultimei pagini) s fie pline. Uneori sunt, ns, necesare comenzi speciale n acest scop. Ca o recomandare general, este bine ca formatarea textului s fie ultimul aspect tratat n realizarea unui document n LaTeX. Altfel spus, nu se ncepe rafinarea formatrii, nainte s se fi introdus tot textul. 2.6.3.1 Gestionarea rndurilor \linebreak[num] \nolinebreak[num] Comenzile \linebreak i \nolinebreak foreaz i, respectiv, inhib trecerea la un rnd nou. Parametrul opional num este un numr ntre 0 i 4. O valoarea mai mare a lui num constituie o sugestie mai puternic pentru a trece, respectiv pentru a nu trece la rndul nou. Dac num este absent, atunci comenzile acioneaz, respectiv, ca n cazul num = 4, adic trecerea la rndul nou este forat, respectiv interzis. Un mesaj \hbox underfull avertizeaz c o comand \linebreak genereaz spaii prea mari ntre cuvinte pe un rnd. Ambele comenzi sunt fragile i pot fi folosite doar n modul paragraf. \\[len] \\*[len] \newline Efectul acestor comenzi este trecerea la un rnd nou, fr a se lsa margini egale la stnga i la dreapta rndului curent (i.e. rndul curent nu este justified). Argumentul opional al comenzii \\ adaug, deasupra noului rnd, un spaiu vertical suplimentar de dimensiune len. Forma cu * a comenzii \\ inhib trecerea la o pagin nou, nainte de noul rnd. Comanda \newline poate fi folosit doar n modul paragraf, ntr-un paragraf; ea genereaz un mesaj de avertizare \hbox underfull, dac este utilizat la sfritul unui paragraf i, respectiv, un mesaj de eroare, dac este utilizat ntre paragrafe. Comanda \\ se comport n mod similar, cnd este utilizat n modul paragraf. Ambele comenzi sunt fragile.

100 \|-

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

Aceast comand permite desprirea n silabe: se trece la rndul urmtor i se insereaz liniua de desprire la finele rndului curent. Este o comand robust. \hyphenation{cuvinte} Sunt declarate permise puncte de desprire, unde cuvinte este o list de cuvinte, separate prin spaii, iar fiecare punct de desprire, n lista cuvinte, este marcat prin caracterul -. Este o declaraie global i robust. \sloppy \fussy Aceste declaraii controleaz trecerea la un rnd nou. Declaraia \fussy este implicit i gestioneaz rndul, astfel nct previne spaii prea mari ntre cuvinte. Declaraia \sloppy face ca LaTeX s nu fie att de rigid cu spaierea cuvintelor. \sloppy are acelai efect ca secvena de instruciuni \begin{sloppypar} pare \end{sloppypar}, ce definete cadrul sloppypar. Argumentul pare reprezint mai multe paragrafe pentru care este activ declaraia \sloppy. Trecerea, de la un paragraf la altul, se face lsnd un rnd liber n text sau la comanda \par. 2.6.3.2 Gestionarea paginilor \pagebreak[num] \nopagebreak[num] Comenzile \pagebreak i \nopagebreak foreaz i, respectiv, inhib trecerea la o nou pagin, n stilul onecolumn. Parametrul opional num este un numr ntre 0 i 4. O valoare mai mare a lui num constituie o sugestie mai puternic pentru a trece, respectiv pentru a nu trece la pagina nou. Dac num este absent, atunci comenzile acioneaz, respectiv, ca n cazul num = 4, adic trecerea la pagina nou este forat, respectiv interzis. Dac sunt utilizate ntr-un paragraf, aceste comenzi se aplic punctului imediat urmtor liniei pe care au fost apelate. Dac este activ declaraia \flushbottom (subseciunea

2.6. MODUL PARAGRAF

101

____________________________________________________________________________

2.4.2), atunci se genereaz un mesaj de avertizare \vbox underfull, n cazul n care \pagebreak are drept efect prea puine rnduri pe pagin. Comanda \nopagebreak nu are efect, n cazul n care o alt comand LaTeX a permis, n mod explicit, trecerea la pagin nou n punctul specificat. Aceste comenzi nu au nici un efect n modul LR sau ntr-un box. \enlargethispage{len} \enlargethispage*{len} Aceste comenzi mresc nlimea paginii procesate, n mod curent, de LaTeX (i.e. \textheight) cu valoarea lungimii specificate de argumentul len; len reprezint o lungime rigid i poate avea valoare negativ De exemplu, \enlargethispage{\baselineskip} va permite introducerea unei linii suplimentare n pagin (subseciunea 2.4.2). Forma cu * a comenzii ngusteaz, ct mai mult posibil, spaiul vertical dintre rnduri, comprimnd textul. Este nsoit, n general, de o comand \pagebreak. Sunt comenzi fragile. \newpage \clearpage \cleardoublepage Aceste comenzi sunt plasate n finalul paragrafului i, respectiv, al paginii curente, n cazul paginilor cu textul pe o singur coloan (onecolumn). Orice spaiu vid n corpul paginii (subseciunea 2.4.2) apare amplasat n partea inferioar a paginii, chiar dac declaraia \flushbottom este activ. Comenzile \clearpage i \cleardoublepage determin, n plus, i tiprirea tabelelor i figurilor care au fost create i nu au fost nc aezate n pagini; tiprirea se poate realiza, dac este necesar, pe una sau mai multe pagini flotante (ce conin doar tabele sau figuri). n stilul de tiprire fa-verso, \cleardoublepage transform pagina urmtoare ntr-una cu numr impar, insernd, dac este necesar, o pagin goal. Dac se folosete stilul twocolumn, atunci \newpage va avea ca efect terminarea coloanei curente, mai degrab dect a paginii; comenzile \clearpage i \cleardoublepage termin pagina, producnd, dac este necesar, o coloan vid. Aceste comenzi se utlizeaz doar n modul paragraf. Comenzile \newpage i \clearpage sunt robuste.

102

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

2.6.4 Spaii
Unele spaii, necesare la scrierea unui text, sunt predefinite i reprezint parametri de stil (a se vedea i subseciunea 2.4.2). n continuare, sunt descrise comenzile ce permit modificarea spaiilor, msurate pe vertical i pe orizontal, din structura unei pagini. \hspace{len} \hspace*{len} Aceste comenzi au ca efect generarea unui spaiu, pe orizontal, de lime len; parametrul len este o lungime exprimat ntr-o form acceptat n LaTeX (subsubseciunea 2.4.2). Spaiul generat de \hspace este suprimat, dac apare n punctul de trecere la un rnd nou; n acelai caz, spaiul generat de \hspace* nu este suprimat. Ambele comenzi sunt robuste. \vspace{len} \vspace*{len} Adaug un spaiu, pe vertical, de nlime len; parametrul len este o lungime exprimat ntr-o form acceptat n LaTeX (subsubseciunea 2.4.2). Spaiul generat de \vpace este suprimat, dac apare n punctul de trecere la o pagin nou; n acelai caz, spaiul generat de \vspace* nu este suprimat. Ambele comenzi pot fi folosite doar n modul paragraf i sunt fragile. \bigskip \medskip \smallskip Sunt echivalente, respectiv, cu urmtoarele comenzi: \vspace{\bigskipamount} \vspace{\medskipamount}, \vspace{\smallskip}

unde comenzile \bigskipamount, \medskipamount i \smallskipamount sunt de tip lungimi i reprezint parametri de stil. Aceste comenzi, generatoare de spaii, pot fi folosite n definiii de cadre, pentru a asigura spaii verticale standard. Sunt comenzi fragile. \addvspace{len} n mod normal, aceast comand adaug un spaiu, pe vertical, de nlime len. Cu toate acestea, dac n punctul respectiv a fost adugat,

2.6. MODUL PARAGRAF

103

____________________________________________________________________________

deja, un spaiu, printr-o comand \addspace precedent, atunci noua comand nu va mai aduga spaiu, dect pn la completarea dimensiunii specificate de parametrul len. Este utilizat pentru adugarea spaiilor suplimentare, pe vertical, situate deasupra i, respectiv dedesubtul celor mai multor cadre LaTeX care ncep un nou paragraf. Poate fi folosit doar n modul paragraf, ntre paragrafe, i.e. imediat dup o linie goal sau dup comanda \par. Este o comand fragil. \hfill Este echivalent cu \hspace{\fill} (comanda \fill a fost descris n subsubseciunea 2.4.2). \vfill Este echivalent cu o linie goal, urmat de \vspace{\fill}. Se utilizeaz doar n modul paragraf. comanda

\dotfill Acioneaz la fel ca \fill (subsubseciunea 2.4.2), dar produce puncte. \hrulefill Acioneaz la fel ca \dotfill, dar produce o linie orizontal. \noindent Suprim alineatul (i.e. indentarea) la nceput de paragraf. Nu are nici un efect dac este utilizat n interiorul unui paragraf. \par Sfrit de paragraf (echivalent cu o linie goal n text). \indent Introduce un spaiu, pe orizontal, a crei lime este egal cu limea indentrii paragrafului. Este utilizat pentru a aduga o indentare la nceputul unui paragraf, n cazul n care, n rest, indentarea a fost suprimat.
Observaie. Toate aceste comenzi pot primi, ca parametri, lungimi date n oricare din formele acceptate n LaTeX: se accept att mrimi exprimate ntr-una din unitile de msur a lungimilor (subseciunea 2.4.2), ct i multipli sau submultipli ai unor comenzi de tip lungimi. De exemplu, \vspace{0.5cm} nseamn adugarea unui spaiu vertical de 0.5cm; \vspace{2\parskip}nseamn adugarea unui spaiu vertical egal cu dublul distanei reprezentate de parskip (comanda \parskip este descris n subseciunea 2.4.2).

104 Exemplul 2.64

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

\documentclass{article} \begin{document} Comanda \verb|\hspace{1cm}| las\u a un\par spa\c tiu orizontal \par de 1cm, deci \hspace{1cm} etc.\par Numele\hrulefill \par Prenumele\hrulefill\par Nr.\dotfill \par din \dotfill\par Urmeaz\u a spa\c tiu vertical de 1cm.\par \vspace{1cm} \noindent Paragraf f\u ar\u a alineat. \end{document}

2.6.5 Note marginale


Uneori, este necesar s se insereze, n text, comentarii, sub form de note marginale. n acest scop, se poate utiliza comanda \marginpar[left_text]{right_text}, care genereaz o not marginal, avnd drept coninut textul specificat prin argumentul right_text, dac nota este aezat la dreapta sau dac nu exist argument opional, respectiv textul specificat prin left_text, altfel. Textul este tiprit ntr-un parbox. Pentru stilul de tiprire fa-verso i pe o singur coloan (opiunile twoside i onecolumn), aezarea implicit a note marginale este pe marginea exterioar a paginii, la stnga textului, n cazul paginilor numerotate par, respectiv la dreapta textului, n cazul paginilor impare. n cazul stilului de tiprire pe o singur fa i pe o singur coloan, aezarea implicit a notei marginale este pe marginea dreapt a textului. Aceste amplasri implicite pot fi schimbate prin comenzile urmtoare: \reversemarginpar determin aezarea notelor marginale pe marginea opus celei implicite; \normalmarginpar determin aezarea notelor pe marginea implicit.

2.6. MODUL PARAGRAF

105

____________________________________________________________________________

La apariia unei note marginale ntr-un paragraf, aezarea sa este determinat de declaraia activ n punctul unde ncepe linia goal ce ncheie paragraful. n cazul tipririi pe dou coloane (opiunea twocolumn), nota marginal apare, ntotdeauna, la marginea cea mai apropiat de coloana ce conine nota, indiferent de aceste declaraii. De regul, o not marginal este aezat astfel nct linia sa de sus s fie la acelai nivel cu linia de text ce conine comanda \marginpar; dac aceast comand apare ntre paragrafe, atunci nota este, n general, aliniat cu ultima linie a paragrafului precedent comenzii. Oricum, dac apare o suprapunere cu nota marginal precedent, nota curent este deplasat n josul paginii. Parametrii de stil asociai notelor marginale sunt urmtoarele comenzi de tip lungimi (a se vedea i Fig.2.5, subseciunea 2.4.2): \marginparwidth reprezint limea parbox-ului ce conine nota marginal; \marginparsep reprezint spaiul orizontal dintre marginea textului i nota marginal; \marginparpush specific spaiul vertical minim permis ntre dou note marginale succesive. Exemplul 2.65
\documentclass[twoside]{article} \begin{document} \stepcounter{page} Suntem la pagina \thepage.\par Aici apare prima not\u a. \marginpar{\em Nota 1. A\c ti \^\i nv\u a\c tat la analiz\u a?.}\par \^Incepe sesiunea (se creeaz\u a nota 2).\marginpar{\em Nota 2. Ave\c ti grij\u a cum v\u a petrece\c ti timpul liber.}\par Acum este mai interesant\u a via\c ta de student. \end{document}

106

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

2.7 MODUL MATEMATIC


TeX este considerat n modul matematic, cnd genereaz formule matematice. n acest mod, literele sunt considerate simboluri matematice; de exemplu, ab este interpretat ca produsul lui a cu b. Spaiile dintre simboluri sunt ignorate.

2.7.1 Cadre i stiluri specifice modului matematic


O formul matematic poate s apar, ntr-un document, fie pe un rnd de text, fie pe un rnd separat i dedicat. Pentru fiecare din cele dou cazuri sunt disponibile mai multe comenzi echivalente, ce definesc, de fapt, cadre specifice modului matematic. TeX poate folosi, doar n modul matematic, una din urmtoarele patru declaraii de stil pentru editarea formulelor: \displaystyle stilul display, implicit pentru simboluri normale, la formulele scrise pe rnduri dedicate; \textstyle stilul text, implicit pentru simboluri normale, la formulele scrise pe un rnd de text; \scriptstyle stilul script, implicit pentru indici inferiori i superiori de nivelul unu; \scriptscriptstyle stilul scriptscript, implicit pentru indici de niveluri superioare. Cadrele asociate modului matematic sunt: math, displaymath, equationarray (subseciunea 2.3.5) i equation (subseciunea 2.3.6). n continuare, este descris modul de creare a cadrelor math i displaymath. $ formula $ \(formula)\) \begin{math} formula \end{math} Aceste trei forme echivalente permit generarea unei formule aezate ntr-o linie de text uzual, prin editarea argumentului formula n stilul text. Pot fi utilizate n modul LR.

2.7. MODUL MATEMATIC

107

____________________________________________________________________________

\[ formula \] \begin{displaymath} formula \end{displaymath} Aceste forme echivalente permit generarea unei formule pe un rnd separat, prin editarea argumentului formula n stilul display. Pot fi utilizate doar n modul paragraf (seciunea 2.6). Formula apare centrat pe rnd, cu excepia cazului n care opiunea comenzii \documentclass este fleqn (subsubseciunea 2.2.5.1). Formula este nenumerotat
Observaie. Cadrul equation este similar cu displaymath, cu excepia faptului c genereaz o formul numerotat, utiliznd contorul equation.

2.7.2 Comenzi pentru crearea unor structuri uzuale


Comenzile frecvent folosite la scrierea formulelor matematice sunt urmtoarele: _{sub} - Tiprete argumentul sub ca indice inferior. ^{sup} - Tiprete argumentul sup ca indice superior. - Tiprete simbolul prim (). \frac{numar}{numit} - Genereaz o fracie cu argumentul numar la numrtor i respectiv numit la numitor. \sqrt[n]{arg} - Genereaz simbolul pentru rdcina de ordinul n a argumentului arg. Dac nu apare argumentul opional, atunci se genereaz rdcina ptrat. Trei puncte pot fi generate printr-una din urmtoarele comenzi: \ldots - Genereaz trei puncte aezate orizontal, n partea inferioar a rndului. Poate fi utilizat n orice mod. \cdots - Genereaz trei puncte n centrul rndului. \vdots - Genereaz trei puncte aezate vertical. \ddots Genereaz trei puncte dispuse n diagonal, de la stnga-sus la dreapta-jos.

108 Exemplul 2.66

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

\documentclass[fleqn]{article} \begin{document} $x^{2y}, x^{y^{2}}, x^{y}_{1}$\par $x_{2y}, x^{y_{1}}, x_{1}^{y}$\par \^{\i}nmul\c tind cu $n/2$ rezult\u a \((m+n)/n\).\par \(x=\frac{u+z/2}{y^{2}+1}\) \par O r\u ad\u acina p\u atrat\u a este \(\sqrt{x+y}\).\par O r\u ad\u acina de ordinul $n$ este $\sqrt[n]{2}$.\par Se scrie \c sirul: \[x_{1}, \ldots, x_{n}\]\par Puncte centrate: $a + \cdots +z$.\par $\textstyle{a+b} \scriptstyle{c} \scriptscriptstyle{d}$ \end{document}

2.7.3 Simboluri matematice


Litere greceti O liter greceasc se poate genera prin tastarea caracterului backslash (\), urmat de numele literei dorite, scris cu litere latine mici, n cazul literelor greceti mici, respectiv cu prima liter latin mare, n cazul literelor greceti mari. Comenzile necesare scrierii literelor greceti sunt listate n tabelul 2.6. Litere caligrafice n TeX sunt disponibile 26 de litere caligrafice mari, asociate respectiv literelor latine A, , Z i generate de comanda \mathcal. Exemplul 2.67
Alege\c ti $\mathcal{B}$.

2.7. MODUL MATEMATIC Tabelul 2.6 : Litere greceti

109

____________________________________________________________________________

Alte simboluri matematice n TeX sunt disponibile mai multe seturi de simboluri matematice speciale. Cteva dintre acestea se pot introduce direct de la tastatura standard, cum ar fi + sau >. Altele se obin prin aplicarea comenzilor listate n tabelele 2.7, 2.8, 2.9, 2.10 i 2.11. Tabelul 2.7 : Operatori binari1

Nu sunt listate comenzile \lhd, \rhhd, \unlhd i \unlhd disponibile n pachetul latexsym.

110

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

Tabelul 2.8 : Operatori relaionali2

O serie de comenzi generatoare de simboluri matematice, specificate n notele de subsol 1-4, respectiv asociate tabelelor 2.7-2.10, necesit ncrcarea pachetului latexsym, prin comanda \usepackage{latexsym}. Tabelul 2.9 : Simboluri de tip sgeat3

2 3

Nu sunt listate comenzile \sqsubset, \sqsupset i \Join, disponibile n pachetul latexsym. Nu este listat comanda \leadsto, disponibil n pachetul latexsym.

2.7. MODUL MATEMATIC Tabelul 2.10 : Diverse simboluri matematice4

111

____________________________________________________________________________

Tabelul 2.11 : Operatori mari (de mrime variabil)

Simbolurile din tabelul 2.11 au fost generate n stilul text. Cnd sunt generate n cadrul equation sau displaymath, ele apar mrite. Exemplul 2.68
\begin{document}Exemplu \^\i n stilul \textit{display}:\[\sum_{j=1}^{m}y_{j}=\int_{0}^{1}g\]\par \c si \^\i n stilul \textit{text}: \(\sum_{j=1}^{m}y_{j}=\int_{0}^{1}g\) \end{document}

Nu sunt listate comenzile \mho, \Box i \Diamond, disponibile n pachetul latexsym.

112

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

Simboluri suplimentare, de negaie, se pot construi prin aplicarea comenzii \not, naintea comenzii ce genereaz simbolul nenegat. Exemplul 2.69
Dac\u a $x \not< y$, atunci $x \not\leq y-1$.

n cazul n care simbolul de negare / nu apare exact n locul dorit, se utilizeaz comenzile de spaiere, descrise n subseciunea 2.7.6. Simbolurile funciilor matematice uzuale De regul, funciile matematice uzuale log, exp, sin, etc. se tipresc cu fontul Roman drept, iar argumentele sunt afiate cu caractere italice. Dac, pentru editarea unei formule n modul matematic, numele funciilor uzuale s-ar introduce direct de la tastatur, atunci ele ar fi tiprite cu font italic. Pentru a evita acest fenomen, se folosesc comenzile listate n tabelul urmtor. Tabelul 2.12 : Comenzi pentru generarea numelor unor funcii uzuale
\arccos \arcsin \arctan \arg \cos \cosh \cot \coth \csc \deg \det \dim \exp \gcd \hom \ker \inf \lg \lim \liminf \limsup \ln \log \max \min \Pr \sec \sin \sinh \sup \tan \tanh

Pentru tiprirea numelui funciei mod (modulo) se folosesc comenzile \bmod (pentru o relaie binar) i \pmod (pentru o relaie cuprins ntre paranteze). Exemplul 2.70
$\min (m,n)=a \bmod b$\par $x \equiv y \pmod{a+b}$

Unele din comenzile din tabelul 2.12 se comport, n raport cu generarea de indici inferior sau superiori, similar cu cele din tabelul 2.11: indicii apar mai mici dac formula este n text, respectiv mai mari dac aceasta este pe un rnd dedicat.
Observaie. TeX poate fi forat s afieze alt mrime dect cea asociat, implicit, stilului curent, pentru simbolurile din tabelul 2.11 sau, respectiv, pentru indicii formulelor generate prin unele din comenzile din tabelul 2.12. n acest scop, se folosesc comenzile

2.7. MODUL MATEMATIC


\displaystyle, \textstyle, (subseciunea 2.7.1). \scriptstyle sau

113
\scriptscriptstyle

____________________________________________________________________________

Exemplul 2.71
\documentclass{article} \begin{document} O formul\u a \^\i n stilul \textit{display}: \[\lim_{n \rightarrow \infty} y = 0.5\] arat\u a \textit{"\^\i n text"} astfel: \(\lim_{n \rightarrow \infty} y = 0.5\).\par \^In text putem scrie mic: $ \frac{1}{C}\int i =u$ sau mare:$ \frac{1}{C}\displaystyle{\int i }=u$.\par Putem scrie cu indice mic: $e^{x(i)}$ sau cu indice mare: $e^{\textstyle{y(i)}}$. \end{document}

2.7.4 Tablouri matriceale, delimitatori i formule lungi


Tablouri matriceale Tablourile matriceale se pot scrie folosind cadrul array, descris n subseciunea 2.3.1 i n subsubseciunea 2.3.19.2. Reamintim c sintaxa corespunztoare este urmtoarea : \begin{array}[pos]{cols} linii \end{array} TeX asociaz, fiecrei formule, cte o linie de centru, pe care va fi plasat, dac este cazul, semnul + sau -. Un tablou generat de cadrul array este, el nsui, o formul cu o linie de centru. Elementele unei linii a tabloului

114

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

sunt poziionate vertical, astfel nct liniile lor de centru s fie, toate, la aceeai nlime. n mod normal, linia de centru a unui tablou matriceal este situat la jumtatea distanei dintre linia superioar i, respectiv, cea inferioar. Poziia liniei de centru poate fi adus la nivelul liniei superioare sau inferioare a tabloului, cu valorile t (top) i, respectiv b (bottom), ale argumentului opional pos. Exemplul 2.72
\documentclass{article} \begin{document} $x-\left| \begin{array}{c} a_{1}\\ \vdots \\ a_{n} \end{array}\right| - \left|\begin{array}[t]{c} 1+i\\ \vdots \\ 3\left|\begin{array}[b]{r} i\\j \end{array} \right| \end{array}\right| $ \end{document}

Delimitatori Tablourile matriceale din exemplul precedent sunt separate, la dreapta i la stnga, prin delimitatori de tip bar vertical. Acest tip i ali delimitatori, frecvent utilizai n formulele matematice, sunt prezentai n tabelul 2.13. Comenzile din tabelul 2.13 genereaz delimitatori de mrimea indicat, corespunztoare mrimii implicite a fontului utilizat (aici 10 pt). Pentru a ajusta mrimea delimitatorilor la mrimea formulei delimitate lucru necesar n special n cazul tablourilor generate de cadrul array - se folosesc comenzile \left i \right, n pereche (exemplul 2.72). Fiecare din aceste comenzi se aplic chiar naintea comenzii de generare a delimitatorului. Dei \left i \right trebuie s apar n pereche, se poate crea un delimitator invizibil prin introducerea caracterului . imediat dup comanda \left sau \right. Aceast proprietate este utilizat n exemplul 2.73, la scrierea unei funcii cu acolad.

2.7. MODUL MATEMATIC Tabelul 2.13 : Delimitatori5

115

____________________________________________________________________________

Exemplul 2.73
\documentclass{article} \begin{document} $f(x)=\left\{ \begin{array}{ll} \sin (x)& \mbox{dac\u a $|x| \leq \pi$}\\ 0 & \mbox{altfel}\\ \end{array} \right.$ \end{document}

Formule multilinie Formulele lungi se pot tipri pe mai multe linii (sau rnduri), folosind cadrele eqnarray i eqnarray* (subsubseciunea 2.3.5). Fiecare rnd conine o subformul. Dac se folosete cadrul eqnarray, atunci fiecare rnd ce conine cte o subformul n parte este numerotat. Pentru a evita acest lucru, la sfritul fiecrei linii, cu excepia celei din urm, se introduce comanda \nonumber (exemplul 2.18). Un caracter + sau , situat la nceputul unei formule sau al unei subformule, este considerat, de TeX, ca un operator unar i va fi tiprit lipit de termenul situat la dreapta sa. Dac termenul respectiv apare ntr-o subformul ce face parte dintr-o singur formul lung, atunci caracterul + sau devine un operator binar i el trebuie tiprit la o mic distan de termenul
5

Pot fi folosite, drept delimitatori, i o parte din simbolurile de tip sgeat din tabelul 2.9; de exemplu, simbolurile generate prin comenzile \uparrow, \downarrow, \updownarrow i prin tandemurile acestora, scrise respectiv cu prima liter mare dup caracterul \.

116

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

situat la dreapta sa. Acest lucru se realizeaz introducnd comanda \mbox{}, naintea caracterului + sau -. Exemplul 2.74
\documentclass{article} \begin{document} \centering {Aici "+" apare "lipit" de $i$:} \begin{eqnarray*} y&=&a+b+c\\ & &+i+j+k. \end{eqnarray*}\par \centering {Corect este a\c sa:} \begin{eqnarray*} y&=&a+b+c\\ & &\mbox{}+i+j+k. \end{eqnarray*} \end{document}

2.7.5 Sublinieri i suprapuneri de simboluri


O serie de formule matematice necesit scrierea de simboluri suprapuse. Cadrul array permite suprapunerea, pe vertical, a mai multor simboluri, dar nu este comod de utilizat doar pentru sub- sau supralinieri. Linii i paranteze sub- i suprapuse Supra- i sublinierile se pot realiza cu urmtoarele comenzi: \overline{formula} - tiprete argumentul formula, cu o linie orizontal deasupra; \underline{formula} tiprete argumentul formula, cu o linie orizontal dedesubt i poate fi folosit n toate modurile. Urmtoarele comenzi permit suprapunerea acoladelor orizontale i a formulele matematice. \overbrace{formula} - tiprete argumentul formula, cu o acolad orizontal deasupra;

2.7. MODUL MATEMATIC

117

____________________________________________________________________________

\underbrace{formula} tiprete argumentul formula, cu o acolad orizontal dedesubt. Exemplul 2.75


\documentclass{article} \begin{document} Se supraliniaz\u a: $\overline{\overline{x}^{2} +1}$.\par Expresia $\underbrace{\overbrace{ 1+\sqrt{6}}^{2}+i+j+k}_{5}$ \par are 5 termeni din care 2 sunt numerici. \end{document}

Accente Comenzile pentru tiprirea accentelor, descrise n subseciunea 2.6.2, se aplic doar n modul paragraf i nu pot fi folosite la scrierea formulelor. n tabelul 2.14, sunt listate comenzile pentru aplicarea de accente n editarea formulelor; litera a este aleas doar spre exemplificare, iar comenzile se pot folosi pentru orice alt liter. Tabelul 2.14 : Accente n modul matematic

Versiuni ale simbolurilor generate de comenzile \hat i \tilde, care se adapteaz la lungimea formulei, se pot obine prin comenzile \what i respectiv \wtilde (numele lor provine de la wilde version). Comenzile \imath i \jmath genereaz literele i i respectiv j fr punct. Simboluri suprapuse Comanda \stackrel{top}{bot}

118

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

tiprete argumentul reprezentat de top, deasupra celui reprezentat de bot; mrimea caracterelor argumentului top corespunde stilului superscript, iar dac se dorete schimbarea acesteia, atunci se aplic, corespunztor, una din comenzile descrise n subseciunea 2.7.1. Exemplul 2.76
\documentclass{article} \begin{document} \[\widehat{x+y}= \widehat{-z}\]\par \[\vec{x} \stackrel{\mathrm{def}}{=} (x_1 \ldots x_n)^{T}\] \end{document}

2.7.6 Spaieri
Urmtoarele comenzile genereaz spaii orizontale n modul matematic: \, \! \: \; \ genereaz un spaiu ngust spre dreapta; genereaz un spaiu ngust negativ (i.e. la stnga); genereaz un spaiu mediu spre dreapta; genereaz un spaiu lat spre dreapta; genereaz un spaiu dintre dou cuvinte consecutive ( este blank).

Exemplul 2.77
\documentclass{article} \begin{document} \begin{tabular}{lcl} $\sqrt{2} \, x$& \^\i n loc de &$\sqrt{2}x$\\ $n/ \! \log{n}$& \^\i n loc de &$n/\log{n} $\\ $\int\!\!\int{z}\,dx\,dy$& \^\i n loc de &$\int\int{z}dxdy$ \end{tabular} \end{document}

Comanda \, poate fi folosit i n modurile paragraf i LR.

2.7. MODUL MATEMATIC

119

____________________________________________________________________________

2.7.7 Schimbri de stiluri n formulele matematice


n subseciunea 2.7.1, au fost descrise comenzile pentru schimbarea mrimii simbolurilor n modul matematic. Comenzile din tabelul urmtor permit schimbarea stilului fontului, n cazul numerelor, al literelor latine i greceti. Alte elemente ale formulelor, cum ar fi numele funciilor matematice log, sin, etc. (tabelul 2.12), rmn nemodificate. Tabelul 2.15 : Comenzile de setare a fontului n mod matematic i efectele lor

Comanda \mathcal a fost descris i n subseciunea 2.7.3. Simbolurile italice, generate de comanda \mathit, sunt spaiate diferit de cele generate n stilul italic uzual; \mathit este recomandat pentru simboluri matematice compuse din mai multe litere. Comanda \boldmath afecteaz toate caracterele unei formule i tiprete formulele matematice n stilul bold; poate fi folosit doar n modurile paragraf sau LR i, de aceea, trebuie introdus, mpreun cu argumentul su, ntr-un box generat cu \mbox (seciunea 2.8). Cteva din comenzile de schimbare de font, ce au fost descrise, sunt aplicate n exemplul urmtor. Exemplul 2.78
\documentclass{article} \begin{document} $matematic$ - \^\i n mod matematic uzual \par $\mathit{matematic}$ - la comanda \verb|\mathit| \par $x+\mbox{\boldmath{$\Re{(g)}$}}=0$ cu \verb|\boldmath| \^\i n \verb|\mbox| pentru $\Re{(g)}$ \par $diff+2^{ft} \Psi \log{[\psi]}$ \^\i n mod matematic uzual\par $\mathbf{diff+2^{ft} \Psi \log{[\psi]}}$ cu \verb|\mathbf | \par \mbox{\boldmath{$diff+2^{ft} \Psi \log{[\psi]}$}} cu \verb|\boldmath| \^\i n mod paragraf \par \end{document}

120

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

Observaie. Presupunem c lucrm n modul paragraf i c este necesar s editm o formul, numit formula_1, cu caractere bold i apoi formula_2, cu caractere uzuale n modul matematic. Dac n locul comenzilor \mbox{\boldmath{$formula_1$} s-ar folosi doar \boldmath{$formula_1$}, atunci, n mod nedorit, i formula_2 ar aprea cu caractere bold (dac \mbox lipsete, compilatorul LaTeX nu d eroare).

2.8 MODUL LR
n modul LR (Lef-to-Right), la fel ca i n modul paragraf, TeX consider simbolurile primite la intrare ca o secven de cuvinte cu spaii ntre ele. ns, spre deosebire de modul paragraf, n modul LR TeX genereaz un text de la stnga la dreapta, fr a se ncepe un rnd nou i fr a se verifica ncadrarea n spaiul disponibil, astfel nct exist riscul ca un text, astfel procesat, s ias din pagin. Textul procesat n modul LR este introdus ntr-un box, iar la ieirea din acest mod box-ul este aezat n pagin. Esenial este faptul c textul din box nu este secionat pe mai multe rnduri. n continuare sunt descrise comenzile care permit culegerea unui text n modul LR, crendu-se box-uri. Ele pot fi folosite n orice mod. \mbox{text} \makebox[lat][pos]{text} Aceste comenzi tipresc argumentul text n modul LR, plasndu-l ntr-un box; n cazul comenzii \makebox, argumentul opional lat

2.8. MODUL LR

121

____________________________________________________________________________

specific limea box-ului, iar poziia argumentului text n box este determinat de urmtoarele valori ale argumentului pos: c (center) centrat, implicit; r (right) aliniat la dreapta; l (left) aliniat la stnga; s (strech) spaiile dintre cuvinte sunt ajustate astfel nct textul s umple ntregul box. \fbox{text} \framebox[lat][pos]{text} Aceste dou comenzi sunt similare cu \mbox i respectiv \makebox, cu excepia faptului c se genereaz i un cadru dreptunghiular, n jurul box-ului ce conine argumentul text. \newsavebox{\cda} Declar comanda specificat de argumentul \cda ca fiind un buffer pentru salvarea unor box-uri; comanda \cda trebuie s nu fi fost deja definit, i.e. numele cda trebuie s fie nou. \sbox{\cda}{text} \savebox{\cda}[lat][pos]{text} \begin{lrbox}{\cda} text \end{lrbox} Aceste comenzi introduc argumentul text ntr-un box (similar cu \mbox), dar n loc s-l i tipreasc, l introduc ntr-un buffer, generat deja la comanda \newsavebox. n cadrul lrbox, text este salvat fr spaiile de la nceput i de la sfrit. \usebox{\cda} Tiprete box-ul cel mai recent salvat n buffer-ul \cda (creat la comanda \newsavebox). \raisebox{raise_len}[hght][dpth]{text} Aceast comand creeaz un box prin tiprirea argumentului text n modul LR; text este ridicat n box cu distana specificat de raise_len i extins, deasupra i dedesubtul rndului, cu distanele specificate de argumentele hght i respectiv dpth. Dac argumentul dpth sau ambele argumente opionale lipsesc, atunci TeX va folosi extensia curent a box-ului.

122

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

\rule{raise_len}{lat}{hght} Genereaz un dreptunghi solid, de lime lat i nlime hght, ridicat deasupra rndului la distana specificat de argumentul raise_len (sau cobort, dac raise_len are valoare negativ). raise_len are valoarea implicit 0in. \width \height \depth \totalheight Sunt comenzi de tip lungimi, ce pot fi aplicate argumentelor lat al comenzilor \makebox, \framebox i \savebox i argumentelor raise_len, hght i dpth ale comenzii \raisebox. Se refer la dimensiunile (lime, nlime, adncime i respectiv nlime+adncime ale) box-ului obinut prin tiprirea argumentului text. Stilul este controlat de urmtoarele comenzi: \fboxrule precizeaz limea liniei trasate de \fbox i \framebox; \fboxsep precizeaz spaiul dintre coninutul i marginile box-ului generat cu\fbox i \framebox . Comanda \mbox este folosit n exemplul 2.78 din finalul seciunii precedente. Iat alte exemple de generare de text n modul LR. Exemplul 2.79
\documentclass{article} \begin{document} Apare un \framebox[1in][l]{om} la \fbox{orizont}.\par Compara\c ti \fbox{acest \em{box}} cu \fbox{ \rule[-0.5cm]{0cm}{1cm} acest \em{box} }.\par XXX\framebox[0.5in] {diver\c si oameni}XXX. \end{document}

2.8. MODUL LR Exemplul 2.80

123

____________________________________________________________________________

\documentclass{article} \begin{document} Text \raisebox{0.6ex}{\em{ridicat}} sau \raisebox{-0.6em}{\em{cobor\^at}}. \end{document}

Exemplul 2.81
\documentclass{article} \begin{document} \newsavebox{\joc} \savebox{\joc}[1.5cm]{ap\u a} Este doar \usebox{\joc},\par \usebox{\joc}, \usebox{\joc},\par peste tot. \end{document}

Observaie. Alte comenzi pentru crearea de box-uri au fost descrise n subseciunea 2.3.13.

2.9 OBSERVAII FINALE


Dificultile legate de nsuirea limbajului LaTeX sunt mai mult de natur psihologic. Odat deprins, LaTeX asigur editarea textelor, conform celor mai exigente standarde de tehnoredactare. n plus, fiierul de ieire, cu extensia .dvi, este dup cum reiese i din denumirea sa n englez: Device Independent independent de drive-ul de imprimant. Compilatorul LaTeX este disponibil, gratuit, pe Internet. Reamintim c una din adresele de la care poate fi adus versiunea sa pentru Win95 este: www.stat.uiowa.edu/resources/help/win95/latex.html Prezentul capitol este doar o introducere privind limbajul LaTeX. Textul su este o combinaie ntre informaia de tip Users Guide i cea de tip Reference Manual. Anexa C conine o aplicaie din domeniul teoriei ecuaiilor difereniale, iar Anexa D cuprinde o list a principalelor comenzi

124

CAPITOLUL 2. INTRODUCERE N LIMBAJUL LaTeX

____________________________________________________________________________

LaTeX, sub form de memorator. Cea mai detaliat lucrare privind LaTeX rmne, pn n prezent, cartea lui Leslie Lamport [Lamport 1994]. Din motive pur conjuncturale, acest capitol, la fel ca i ntreaga lucrare, a fost editat n Microsoft Word97, iar exemplele i o parte din tabele au fost procesate n LaTeX, captate i apoi inserate n text. Dintre lucrrile publicate n limba romn, realizate n ntregime n LaTeX i care pun n eviden avantajele deosebite ale procesrii textelor tiinifice n acest limbaj, recomandm tratatul de calcul numeric matriceal de B. Dumitrescu, C. Popeea i B. Jora [Dumitrescu 1998].