Documente Academic
Documente Profesional
Documente Cultură
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
____________________________________________________________________________
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. 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
____________________________________________________________________________
Fig. 2.2 Rezultatul procesrii fiierului surs din fig. 2.1 (setup-ul paginii n LaTeX este diferit).
2.1. INTRODUCERE
15
____________________________________________________________________________
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
____________________________________________________________________________
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.
17
___________________________________________________________________________
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.
18
____________________________________________________________________________
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
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
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.
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
____________________________________________________________________________
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)
),
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
____________________________________________________________________________
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. 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}
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:
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
____________________________________________________________________________
\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.
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
____________________________________________________________________________
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
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
____________________________________________________________________________
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:
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
____________________________________________________________________________
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)
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
____________________________________________________________________________
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
____________________________________________________________________________
Exemplul 2.16
\documentclass{report} \begin{document} \begin{center} un paragraf centrat\\ se pune \^\i ntr-un cadru\\ center \end{center} \end{document}
36
____________________________________________________________________________
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}
38
____________________________________________________________________________
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. CADRE
39
____________________________________________________________________________
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.
40
____________________________________________________________________________
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. 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{}.
42
____________________________________________________________________________
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
____________________________________________________________________________
Textul precedent
\topsep + \parskip [+ \partopsep] Label \labelwidth \leftmargin \itemindent Elementul 1 Paragraful 1 \rightmargin
\listparindent
\itemsep + \parsep
Label
Elementul 2
Fig. 2.3 - Semnificaia parameterilor din cadrul list (a se vedea i subseciunea 2.4.2).
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
____________________________________________________________________________
\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. CADRE
47
____________________________________________________________________________ y
2 (-2.1,1) 1 originea
(2,2)
x -2.1
unitate de lungime
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.
50 Exemplu 2.26
____________________________________________________________________________
\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}
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
____________________________________________________________________________
2.3. CADRE
53
____________________________________________________________________________
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
____________________________________________________________________________
\+
\-
\ \
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
____________________________________________________________________________
\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. 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.
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
____________________________________________________________________________
\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}
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
____________________________________________________________________________
64
____________________________________________________________________________
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.
65
____________________________________________________________________________
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
____________________________________________________________________________
\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.
68
____________________________________________________________________________
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.
69
____________________________________________________________________________
Exemplul 2.46
\documentclass{report} \begin{document} Se poate scrie:\\\verb*+$x=y$+ sau \verb*?$x = y$?. \end{document}
70
____________________________________________________________________________
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
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.
____________________________________________________________________________
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.
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.
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
____________________________________________________________________________
\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).
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
____________________________________________________________________________
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
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
___________________
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
____________________________________________________________________________
\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.
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
____________________________________________________________________________
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}
81
____________________________________________________________________________
82
____________________________________________________________________________
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.
84 Exemplul 2.50
____________________________________________________________________________
\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
____________________________________________________________________________ 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. 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
____________________________________________________________________________ \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.
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
____________________________________________________________________________
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
____________________________________________________________________________
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
____________________________________________________________________________
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.
95
____________________________________________________________________________
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
____________________________________________________________________________
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.
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}
98
____________________________________________________________________________
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 .
99
____________________________________________________________________________
100 \|-
____________________________________________________________________________
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
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
____________________________________________________________________________
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,
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).
____________________________________________________________________________
\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}
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
____________________________________________________________________________
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.
____________________________________________________________________________
\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}
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
____________________________________________________________________________
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.
111
____________________________________________________________________________
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}
112
____________________________________________________________________________
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
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}
114
____________________________________________________________________________
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.
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
____________________________________________________________________________
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}
117
____________________________________________________________________________
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
____________________________________________________________________________
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}
119
____________________________________________________________________________
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
____________________________________________________________________________
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
____________________________________________________________________________
\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}
123
____________________________________________________________________________
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.
124
____________________________________________________________________________
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].