Documente Academic
Documente Profesional
Documente Cultură
Prefaţă .......................................................................................... 11
Capitolul 1: CE ESTE TEX ? ...................................................... 13
1.1 Originea TEX–ului........................................................... 13
1.2 Cum lucrează TEX–ul ?................................................... 14
1.3 Caracterele TEX–ului ...................................................... 17
Caractere unite ................................................................ 19
Accente ............................................................................ 21
1.4 Secvenţe de control (comenzi sau instrucţiuni) ............... 22
1.5 Grupuri şi moduri de lucru ı̂n plain TEX ........................ 22
1.6 Mesaje de eroare ............................................................. 28
Capitolul 2: FONTURI UTILIZATE DE plain TEX .................... 33
2.1 Fonturi preı̂ncărcate ........................................................ 33
2.2 Definirea de noi fonturi (fonturi TEX) ............................ 35
2.3 Scalarea unui font ........................................................... 36
2.4 Scalarea globală .............................................................. 37
2.5 Fonturi ı̂n modul matematic de lucru .............................. 38
Capitolul 3: SPAŢIERI, CONCATENĂRI ŞI SALTURI............. 41
8 Cuprins
ţi-vă atenţia asupra capitolelor 1-5 şi 8, dacă doriţi scrierea tex-
telor matematice. Cum cea mai bună metodă de a ı̂nvăţa un
limbaj de programare (sistemul TEX are asemenea caracteristici)
este prin exemple, materialul de faţă conţine cel puţin un exemplu
de utilizare pentru fiecare concept sau comandă TEX prezentată.
Textul din exemplele prezentului material, atât cel presupus că
apare ı̂n “fişierul sursă” cât şi cel al documentului final (*.dvi),
este scris (ı̂n general) cu caractere de mărime 8pt. Pentru scrierea
comenzilor, am folosit fontul de tip ”maşină de scris” (\tt).
Cartea se bazează pe experienţa acumulată de autor ı̂n peri-
oada ı̂n care a activat ca tehnoredactor la ”Analele Ştiinţifice ale
Univ. Al.I. Cuza” din Iaşi, Secţia Matematică (1992-1999), pre-
cum şi pe cursul ”Sisteme de texte” predat studenţilor din anul IV
ai Universităţii ”Al.I. Cuza” din Iaşi, Facultatea de Matematică,
Secţia Matematici Aplicate.
Textul acestei cărţi a fost scris cu ajutorul procesorului plain
TEX, folosind caractere de mărime 12pt. Întreg materialul rezul-
tat a fost supus atenţiei următorilor specialişti: domnul
Prof. Dr. V. Oproiu de la Facultatea de Matematică a Uni-
versităţii “Al.I. Cuza” din Iaşi, domnul Conf. Dr. H.F. Pop de la
Facultatea de Matematică şi Informatică a Universităţii “Babeş-
Bolyai” din Cluj şi domnul Dr. C. Trenchea de la Institutul de Ma-
tematică ”O. Mayer” al Academiei Române, Filiala Iaşi. Pentru
observaţiile pertinente şi pentru tot efortul depus, autorul doreşte
să le adreseze tuturor mulţumirile cuvenite.
august 2000
Autorul
CAPITOLUL 1. CE ESTE TEX ?
respectă convenţiile valabile ı̂n SUA, multe dintre ele nefiind va-
labile ı̂n Europa. Actualmente este cunoscută o versiune şi mai
nouă, denumită LATEX2ε (vezi [4], [5]).
În limba română există cartea semnată de Artur Pusztai &
Gheorghe Ardelean (vezi [6]) care descrie versiunea LATEX 2.09,
corespunzătoare ediţiei ı̂ntâi a cărţii [3], precum şi o apariţie mai
recentă, cartea semnată de P.A. Blaga & H.F. Pop (vezi [1]).
Facem precizarea că ı̂n toate versiunile amintite mai sus este
utilizat acelaşi set de macrouri TEX , anume TEX–ul simplu. De-
osebirea dintre variante constă ı̂n apariţia de concepte şi definiţii
specifice.
Aşadar, TEX–ul este un produs program destinat culegerii
şi tipăririi de texte cu ajutorul calculatorului (editare computeri-
zată), texte ı̂n care abundă simboluri mai puţin uzitate ı̂n scrierea
obişnuită (simboluri matematice, formule chimice etc.) şi care pot
constitui un document: carte, articol, revistă ştiinţifică, scrisoare.
În cele ce urmează vom referi produsul program TEX spu-
nând: sistemul TEX, procesorul TEX sau, pur şi simplu, TEX–ul.
tex nume–fişier.tex
tex
nume-fişier.tex −−−−−−−−−−−→ nume-fişier.dvi
↑
fişiere tfm
v nume–fişier.dvi
Caractere Semnificaţie
ff −→ ff fi −→ fi
ffi −→ ffi ffl −→ ffl
‘‘ −→ “ !‘ −→ ¡
\oe, \OE −→ œ, Œ \aa, \AA −→ å, Å
\ae, \AE −→ æ, Æ \o, \O −→ ø, Ø
fl −→ fl
’’ −→ ”
?‘ −→ ¿
\l, \L −→ l, L
\ss −→ ß
Un ultim caracter de tip unit este liniuţa. Procesorul TEX
operează cu patru tipuri de astfel de liniuţe, anume:
• cratima: este utilizată pentru scrierea cuvintelor unite. Se
obţine prin scrierea ı̂n “fişierul sursă” a unui singur caracter
-. Facem observaţia că procesorul TEX este programat să
insereze automat o cratimă, la trecerea de pe un rând pe
altul, după prima parte a cuvântului divizat de el, ı̂n vederea
scrierii acestuia pe două linii (corespunzător despărţirii ı̂n
silabe ı̂n engleză). Pentru a realiza despărţirea ı̂n silabe ı̂n
limba română, trebuie inserat grupul de caractere “\−” ı̂ntre
silabele cuvântului.
• liniuţa “en-dash”: este dublul lungimii unei cratime; se ob-
ţine prin scrierea ı̂n “fişierul sursă” a două caractere - -,
consecutive.
• liniuţa “em-dash”: este triplul lungimii unei cratime, se ob-
ţine prin scrierea ı̂n “fişierul sursă” a trei caractere - - -,
consecutive.
CE ESTE TEX ? 21
-, –, —, 1+2-3, 1 + 2 − 3.
Să remarcăm că semnul minus diferă de primele trei tipuri de
liniuţe, atât prin lungime, cât şi prin grosime.
Accente. Pentru a obţine un accent peste o literă, trebuie scrisă
secvenţă de control corespunzătoare accentului dorit, urmată de
literă. Orice literă sau simbol poate seconda o secvenţa de control
de tip accent. Prezentăm ı̂n continuare lista accentelor disponibile
ı̂n cadrul plain TEX–ului, folosind litera r drept argument:
\‘r −→ r̀ \ˆr −→ r̂
\= r −→ r̄ \b r −→ r
¯
\H r −→ r̋ \’r −→ ŕ
\u r −→ r̆ \.r −→ ṙ
\v r −→ ř \c r −→ ŗ
\˜ r −→ r̃
\t r −→ r
\”r −→ r̈
\d r −→ r.
Să observăm că, pentru accentele obţinute prin folosirea unei
litere după \, argumentul trebuie separat de aceasta printr–un
spaţiu.
22 Capitolul 1
Exemplul 1.5.
\def\salut{Servus!}
\parindent=12pt
........... material ..........
{\def\salut{Ciao!}
\parindent=2pt
............... }
........... material ..........
Exemplul 2.3.
10pt . . . . . . . . . . . . . . . . . . Caract. de dim. 10pt
Caract. de dim.
\eightrm Caract. de dim. 8pt . . . . . . . . . . . . Caract. de dim. 8pt
\fiverm Caract. de dim. 5pt . . . . . . . . . . . . . . . . . Caract. de dim. 5pt
O serie de alte fonturi pot fi obţinute prin combinarea celor
cunoscute, şi anume: cmbxti10, cmbxsl10, cmitt10, cmsltt10,
cmcsc10, cmss10 (fontul “sans-serif”), cmssdc10 (fontul “dc”;
demibold condensed), cmssi10, cmdunh10 (fontul “Dunhill”) şi
cmff10 (fontul “funny”).
cu o diferenţă de ±1pt;
• \medskip corespunde unui salt de 6pt,
cu o diferenţă de ±2pt;
• \bigskip corespunde unui salt de 12pt,
cu o diferenţă de ±4pt.
3.4 Salturi
Din punct de vedere al procesorului TEX, secvenţele de con-
trol destinate salturilor nu creează spaţiu nou; ele doar comple-
tează spaţiul creat de o altă secvenţă de control.
Plain TEX-ul are câte două tipuri predefinite de secvenţe de
control pentru completarea spaţiului orizontal şi a celui vertical.
Acestea se numesc \hfil, \hfill, \vfil şi \vfill.
Dacă ı̂n “fişierul sursă” avem una din următoarele secvenţe
de control:
{\hfill AAB CDD}
sau
{AAB\hfill CDD}
sau ı̂ncă
{AAB CDD \fill},
procesorul TEX le tratează ı̂n mod obişnuit, adică ı̂n cadrul unui
grup nu se poate crea un anumit spaţiu vid, ı̂ncât prezenţa comen-
zii \hfill ı̂n cadrul blocurilor anterioare este inefectivă.
Exemplul 3.5. Să generăm acum un spaţiu vid prin forţarea
lungimii grupul la 1.2in (vezi Capitolul 6, §6.4). Aşadar, fie
secvenţele:
\hbox to 1.2in {$|$ AAB\hfill CDD $|$}
sau
\hbox to 1.2in {$|$ \hfill AAB\hfill CDD\hfill $|$}
procesarea cărora va genera ı̂n documentul final:
| AAB CDD | şi | AAB CDD |, respectiv. Ob-
servăm că saltul este făcut ı̂n limita spaţiului disponibil.
Iată acum un exemplu pentru cazul vertical.
Exemplul 3.6. Să generăm un spaţiu vid ı̂n interiorul unui box
vertical, a cărui ı̂nălţime să fie 20mm. Una din următoarele secvenţe
de control rezolvă această problemă:
SPAŢIERI, CONCATENĂRI ŞI SALTURI 49
CDD
Ca şi ı̂n cazul orizontal, saltul este făcut ı̂n limita spaţiului disponi-
bil.
S-a observat ı̂n cadrul operaţiei de extensie-comprimare
(vezi Exemplul 3.40 ) că, datorită elasticităţii acesteia, spaţiul este
rearanjat până la un anumit punct (dictat de valorile furnizate
procesorului prin cuvintele cheie plus şi minus). Completarea
secvenţelor de salt cu definiţii de tip elastic nu numai că va ı̂m-
bunătăţi procesul de realizare a saltului, ci va dispune ı̂n plus de
mai multă putere ı̂n realizarea extensiei şi comprimării, faţă de
operaţiile obişnuite de spaţiere.
Exemplul 3.7. Secvenţa elastică:
Astfel, eficient ar fi să se utilizeze saltul tare ı̂n text şi saltul slab
ı̂n definiţia unui macrou.
aşa cum sunt scrise ı̂n “fişierul sursă”). Pentru a obţine aceasta,
trebuie ı̂nceput textul respectiv cu comanda \obeylines, care
consideră CR echivalent cu \par.
Exemplul 4.1. Rezultatul procesării materialului:
{\obeylines % (= a asculta, a se supune)
Acest exemplu ilustrează posibilitatea apariţiei ı̂n
documentul final a unei părţi din materialul “fişierului sursă”,
exact ı̂n forma ı̂n care este scris, iar un simbol %
la sfârşitul unei linii
anulează ı̂ntreruperea unei parţi din linie. De
asemenea arată că pentru a obţine orice fel de
spaţiere verticală, trebuie folosită comanda explicită
\medskip
de spaţiere.}
revine la:
Acest exemplu ilustrează posibilitatea apariţiei ı̂n
documentul final a unei părţi din materialul “fi¸sierului sursă”,
exact ı̂n forma ı̂n care este scris, iar un simbol la sfârşitul unei linii
anulează ı̂ntreruperea unei parţi din linie. De
asemenea arată că pentru a obţine orice fel de
spaţiere verticală, trebuie folosită comanda explicită
de spaţiere.
4.6 Itemizări
O utilizare importantă a noţiunii de aliniere se regăseşte ı̂n
generarea şirurilor de itemizări sau a enumerărilor. Procesorul
TEX dispune ı̂n acest sens de secvenţa de control \item, urmată
de un parametru, mărginit de acolade.
Exemplul 4.3.
a) \item{arg-secv} Câteva CR-uri consecutive ı̂n fişierul sursă au acelaşi
efect cu al unuia singur. Pentru a neutraliza efectul comenzii \obeylines,
trebuie inclusă ı̂n acolade regiunea respectivă
62 Capitolul 4
caracter din textul care ı̂i urmează şi ı̂l va considera drept ar-
gument. Secvenţa \item este adesea folosită ı̂n interiorul unui
grup; astfel, mărimea alineatului poate fi controlată printr-o mo-
dificare locală a parametrului \parindent (vezi Exemplul 4.4).
În acest caz, ca de obicei, grupul trebuie ı̂ncheiat cu \par (altfel,
următorul paragraf nu este prelucrat corect). Nu este nevoie de
secvenţa \par ı̂ntre secvenţe consecutive de \item-uri, ı̂ntrucât
\item ı̂nsuşi marchează un nou paragraf.
Macroul \itemitem este folosit ı̂ntr-un mod similar cu cel al
comenzii \item, cu acelaşi efect, marginea din stânga fiind aliniată
cu valoarea 2*\parindent.
Exemplul 4.4. Procesarea materialului:
{\parindent = 20pt \item{{\bf 1.}} Câteva CR-uri consecutive ı̂n
fişierul sursă au acelaşi efect cu al unuia singur. Pentru a neutraliza efectul
\obeylines trebuie inclusă ı̂n acolade regiunea respectivă
comenzii
{\itemitem{\bf a.} Câteva CR-uri consecutive ı̂n fişierul sursă au acelaşi
efect cu al unuia singur.
\itemitem{\bf b.} Pentru a neutraliza efectul comenzii \obeylines,
trebuie inclusă ı̂n acolade regiunea respectivă \par}}
conduce la obţinerea următoarelor alinieri:
1. Câteva CR-uri consecutive ı̂n fişierul sursă au acelaşi efect cu al un-
uia singur. Pentru a neutraliza efectul comenzii \obeylines, trebuie
inclusă ı̂n acolade regiunea respectivă
a. Câteva CR-uri consecutive ı̂n fişierul sursă au acelaşi efect cu al
unuia singur.
b. Pentru a neutraliza efectul comenzii \obeylines trebuie inclusă
ı̂n acolade regiunea respectivă
\def\leftitem# 1{\item
{\hbox to\parindent {\enspace# 1 \hfill}}}
Exemplul 4.5. Procesarea materialului
{\parindent = 1in
\leftitem{\bf \TeX\ Book} Câteva CR-uri consecutive ı̂n
“fişierul \hfill\break
sursă” au acelaşi efect cu unul singur. \hfill\break
Pentru a neutraliza efectul comenzii \obeylines, \hfill\break
trebuie inclusă ı̂n acolade regiunea respectivă
}
are drept rezultat:
TEX Book Câteva CR-uri consecutive ı̂n “fişierul
sursă” au acelaşi efect cu unul singur.
Pentru a neutraliza efectul comenzii \obeylines,
trebuie inclusă ı̂n acolade regiunea respectivă
“fişierul \hfill\break
\hfill\break
sursă” au acelaşi efect cu unul singur.
Pentru a neutraliza efectul comenzii \obeylines, \hfill\break
trebuie inclusă ı̂n acolade regiunea respectivă
}
are drept rezultat:
TEX Câteva CR-uri consecutive ı̂n “fişierul
Book sursă” au acelaşi efect cu unul singur.
Pentru a neutraliza efectul comenzii \obeylines,
trebuie inclusă ı̂n acolade regiunea respectivă
\parindent = 27pt
\hangindent = 47pt \hangafter=2
Lungimea materialului din interiorul grupului { ... } ce urmează după
\leftitem este presupusă a fi ≤ valoarea parametrului \parindent mi-
nus 0.5em. Dacă ı̂nsă argumentul constă dintr-un cod de lungime mai mare,
acesta poate fi ı̂mpărţit ı̂n mai multe linii pe care procesorul le prelucrează
cu ajutorul secvenţei de control \vtop
(i) Câteva CR-uri consecutive ı̂n “fişierul sursă” au acelaşi efect cu al un-
uia singur. Pentru a neutraliza efectul comenzii \obeylines trebuie inclusă
ı̂n acolade regiunea respectivă
\headline l 22.5pt
pagină \vsize
\footline l 22.5pt
←−−−−−−−− \hsize −−−−−−−−→
Să remarcăm, din figura de mai sus, că procesorul plain TEX
gestionează mărimea unei pagini cu ajutorul a patru parametri:
72 Capitolul 5
\headline={\iftitlepage\the\titlepagehead
\else\ifodd\pageno\the\oddpagehead
\else\the\evenpagehead\fi\fi}
\footline={\iftitlepage\the\titlepagefoot
\global\titlepagefalse
\else\ifodd\pageno\the\oddpagefoot
\else\the\evenpagefoot\fi\fi}
Astfel, parametrii linia de sus şi linia de jos ai noii pagini vor fi:
\titlepagehead
pagină
\titlepagefoot
\evenpagehead \oddpagehead
\evenpagefoot \oddpagefoot
2 3
Adesea este necesar să se specifice un font, fie ı̂n cadrul de-
finiţiei parametrilor \headline şi/sau \footline, fie ca ı̂n exem-
plul de mai sus (incluzând fontul dorit ı̂n definiţia parametrilor
\runningauthor şi/sau \runningtitle (titlul de pagină)).
Dacă nu se doreşte ca prima pagină să conţină titlul de pa-
gină, atunci utilizatorul trebuie să introducă ı̂n “fişierul sursă”
secvenţa \titlepagefalse, imediat după secvenţa \input nume-
fis1.tex.
Exemplul 5.2. O alegere obişnuită pentru linia de sus şi linia de
jos a unei pagini este următoarea (ı̂n acest exemplu este presupus
că parametrul \footline are definiţia dată de relaţia (5.2)):
\evenpagehead={\tenbf\folio\hfill
\eightrm\the\runningauthor}
\oddpagehead={\tenrm\the\runningtitle
76 Capitolul 5
\hfill\tenbf\folio}
\evenpagefoot={\hfil} \oddpagefoot={\hfil}
\runningauthor={N. Gheorghe}
\runningtitle={Sisteme de Operare}
Rezultatul procesării unui “fişier sursă”, care conţine şi sec-
venţele de control din Exemplul 5.2, va conduce la generarea
perechilor de pagini (ı̂n cazul de faţă perechea (16,17)), cu urmă-
toarea ı̂nfăţişare:
ı̂n lucru este < 2in, atunci procesorul TEX mută materialul din-
tre \midinsert ... \endinsert ı̂n partea de sus a următoarei
pagini şi continuă, pe pagina ı̂n lucru, cu prelucrarea materialului
care urmează după \endinsert. O astfel de prelucrare a mate-
rialului se numeşte flotare. Notăm că pentru a genera spaţiu la
ı̂nceputul paginii şi ı̂n cazul unei flotări trebuie utilizată secvenţa
\vglue sau \null\vskip, ı̂n locul secvenţei \vskip.
Există o variantă pentru perechea de secvenţe de mai sus:
perechea
\topinsert
... material ...
\endinsert.
Prezentăm acum o descriere sumară a parametrilor (precum
şi a altor secvenţe de control) utilizaţi de procesorul TEX ı̂n pro-
cesul de organizare a unei pagini:
\advance = adună la un registru de tip: ı̂ntreg, dimensiune, spaţiu
sau spaţiu matematic, un alt obiect de acelaşi tip. Cel mai
frecvent, acest parametru este utilizat la incrementarea au-
tomată a contorului notelor de subsol (footnotes) precum şi
a contorului paginilor.
\advancepageno = incrementează valoarea variabilei \pageno
când procesorul ı̂ncepe prelucrarea unei noi pagini. Acest
macrou are următoarea definiţie:
\def\advancepageno{ifnum\pageno<0
\global\advance\pageno by -1
\else\global\advance \pageno by 1\fi}
Secvenţa \global este necesară deoarece secvenţa \advance
\pageno este apelată de obicei ı̂n interiorul unui grup şi acesta
trebuie să rămână ı̂n acţiune chiar după terminarea grupului
curent (vezi şi \gdef).
\hoffset = controlează dimensiunea orizontală a spaţiului gol,
din stânga foii de hârtie; implicit este 1in.
80 Capitolul 5
În TEX totul este asimilat ca fiind un box (vezi § 6.2), fiecare
box având anumite dimensiuni. De exemplu, când caracterele
sunt scrise ı̂mpreună pentru a forma o linie, linia ı̂nsăşi devine un
box. Putem spune că activitatea procesorului TEX este divizată
ı̂n două: crearea boxurilor şi scrierea lor.
Boxurile pot fi explicite sau implicite. Implicite sunt acele
boxuri generate de caractere sau linii de text. Cele explicite sunt
create prin utilizarea uneia din următoarele comenzi:
\hbox, \vbox, \vtop, \vcenter.
Odată ce procesorul a creat un box, acesta nu este intere-
sat (pentru moment) de conţinutul acestuia; boxul este privit ca
un dreptunghi ale cărui dimensiuni sunt ceea ce ı̂l interesează pe
procesor ı̂n această fază. Mai precis, iată câteva boxuri prin care
punem ı̂n evidenţă elementele aflate ı̂n atenţia procesorului
Figura 6.1.
Linia punctată din interiorul boxului se numeşte linia de
bază. Pe seama acesteia sunt alineate boxurile unul după altul
82 Capitolul 6
(ca ı̂n Figura 6.1). Punctul de referinţă al unui box este ultimul
din stânga al liniei sale de bază, indicat ı̂n figura de sus prin sim-
bolul →. Dimensiunile unui box sunt: lăţimea (width), ı̂nălţimea
(height) (partea de deasupra liniei de bază) şi adâncimea (depth)
(partea de sub linia de bază). Cel mai din stânga box din Figura
6.1 are următoarele dimensiuni: height=6pt, depth=15pt iar
width=lăţimea materialului “........”. Fiecare dimensiune a unui
box este ı̂n mod normal o valoare pozitivă dar acestea pot lua şi
valoarea 0 sau chiar valori negative (de exemplu, macrourile \llap
şi \rlap scriu argumentele lor ı̂ntr-un box de lăţime =0).
........
........
→ ........ Figura 6.2.
BOXURI 83
........
........
ı̂n timp ce prin prelucrarea unui \box se va crea exact o linie, linie
ce poate avea orice lungime (funcţie de conţinutul dintre {...}).
Linii. Acestea sunt de tip orizontal şi vertical şi sunt utilizate ı̂n
modul vertical şi orizontal de lucru. Astfel, TEX-ul trece ı̂n
modul vertical de lucru dacă nu se află deja ı̂n acest mod când
ı̂ntâlneşte secvenţa \hrule. Invers, secvenţa \vrule plasează
procesorul TEX ı̂n modul orizontal de lucru, iar boxurile ce
urmează sunt ı̂nşiruite pe orizontală (lipite unul de altul).
Boxuri explicite. Şi acestea sunt de tip orizontal şi de tip ver-
tical; fiecare tip poate să apară ı̂n fiecare mod de lucru. În
interiorul unui box, modul de lucru este schimbat conform
contextului, dar odată boxul terminat, modul de lucru revine
la cel precedent.
Figura 6.5.
Observaţia 6.1. Utilizarea caracterelor ’\ ’ ca prime elemente
ale secvenţei de mai sus a produs trecerea procesorului din modul
vertical ı̂n modul orizontal de lucru (vezi § 4.1).
\raise 6pt\box3.
\hbox{\$rightarrow$\raise -4mm\copy2\copy3
\raise -8mm\copy4}
90 Capitolul 6
........
........
→ ........ Figura 6.6.
........
........
........
→ Figura 6.60 .
\def\boxit#1#2{\hbox{\vrule
\vtop{%
\vbox{\hrule\kern#1%
\hbox{\kern#1#2\kern#1}}%
\kern#1\hrule}%
\vrule}}
Exemplu 6.2. Considerăm box-ul 8 setat astfel: \setbox8=
\hbox{\bf\TeX}. Rezultatul prelucrării secvenţelor:
\boxit{2pt}{\copy8}
\boxit{2pt}{\boxit {2pt}{\copy8}}
este ilustrat ı̂n Figura 6.7.
\centerline{\boxit{3pt}{\copy1}\hfil
\boxit{3pt}{\copy2}}
92 Capitolul 6
Figura 6.8.
.............. ..............
Figura 6.9.
Valorile celor trei variabile, pentru partea din stânga şi pen-
tru partea din dreapta din figura de mai sus, au fost, respectiv:
\baselineskip=5mm \baselineskip=0mm
\lineskip=3mm \lineskip=2mm
\lineskiplimit=0mm\lineskiplimit=0mm
Înălţimile celor trei boxuri sunt: 2, 2 şi 4mm, iar adâncimile
sunt toate egale cu 2mm. În exemplul din stânga, primele două
boxuri sunt separate cu 1 = 5 − (2 + 2)mm de spaţiu. Acesta
este acceptabil deoarece nu este mai mic decât valoarea variabilei
\lineskiplimit. Efectuând acelaşi calcul pentru ultimele două
boxuri, obţinem -1mm, valoare care este mai mică decât valoarea
variabilei \lineskiplimit; deoarece procesorul nu poate respecta
variabila \lineskiplimit, va insera ı̂ntre cele două boxuri un
spaţiu de 3mm (valoarea variabilei \lineskip).
Pentru exemplul din dreapta, \baselineskip este zero, ı̂ncât
nu va putea fi respectată niciodată valoarea variabilei
\lineskiplimit. În consecinţă, procesorul va insera ı̂ntre boxuri
un spaţiu de 2mm (valoarea variabilei \lineskip).
BOXURI 95
6.6 Linii
Liniile sunt boxuri umplute cu negru. Ele pot fi create cu
ajutorul următoarelor comenzi:
\hrule height n1 depth n2 width n3
\vrule height m1 depth m2 width m3
unde n1 , n1 , n3 , m1 , m2 , m3 sunt ı̂ntregi pozitivi, reprezentând:
ı̂nălţimea, adâncimea şi lungimea liniei. Oricare dintre argumente
poate lipsi şi poate fi utilizat ı̂n orice ordine. Procesorul re-
cunoaşte aşadar două tipuri de linii: orizontale (\hrule) şi verti-
cale
(\vrule). După cum vom vedea ı̂n continuare, secvenţa \hrule
poate trasa o linie verticală, şi viceversa. Distincţia esenţială din-
tre cele două secvenţe este aceea că \hrule se poate folosi numai
ı̂n modul vertical de lucru, iar \vrule numai ı̂n modul orizontal
de lucru.
Linii orizontale. Comanda \hrule se poate utiliza ı̂ntre para-
grafe sau ı̂n interiorul unui box vertical. Dacă se ı̂ncearcă folosirea
acestei secvenţe ı̂n interiorul unui paragraf, procesorul TEX va
ı̂ncheia prelucrarea paragrafului şi va trece ı̂n modul vertical de
lucru. În plus, dacă procesorul s-ar afla ı̂n modul orizontal restric-
tiv (echivalent cu prezenţa unei comenzi \hrule ı̂n interiorul unui
\hbox), atunci acesta va semnala o eroare.
96 Capitolul 6
y real 3.9998
z boolean false
\halign {...#...&...#...&...#...&...#...&...#...\cr
....... & ....... & ....... & ....... & .......\cr
....... & ....... & ....... & ....... & .......\cr
........................................................
....... & ....... & ....... & ....... & .......\cr
}
Materialul din interiorul acoladelor, de după secvenţa de con-
trol \halign, este ı̂mpărţit ı̂n linii, fiecare terminată prin \cr;
intrările din interiorul fiecărei linii sunt separate prin caracterul
&. Prima linie din \halign se numeşte preambul şi ı̂i comunică
procesorului TEX cum trebuie construite liniile utile ale tabelului.
Să remarcăm că, ı̂n scrierea secvenţei de mai sus, chiar dacă
ı̂ntre cuvintele name şi type am lăsat spaţiu explicit, procesorul TEX
face oricum acest lucru.
ALINIERI (Tabele) 99
sau
b) utilizând secvenţa:
\halign {\hfil #\hfil & \quad \it#\hfil& \hfil\quad#
\cr
\bf name & \bf type & \bf value & \cr
$x$ & integer & 1998 & \cr
$y$ & real & 3.9188 & \cr
$z$ & boolean & false & \cr
}
se obţine următoarea aliniere simplă:
name type value
x integer 1998
y real 3.9998
z boolean false
100 Capitolul 7
\def\hfq{\hfil\quad} (7.1)
de câte ori este necesar (ı̂n vederea tratării tuturor coloanelor din
tabel). Un preambul de forma:
A & & B\cr (7.2)
unde, ı̂n mod normal, caracterele # şi & alternează ı̂n interiorul
lui A şi B, este echivalent cu următoarea ı̂nşiruire:
A & B & B & B ...\cr.
Similar stau lucrurile pentru un preambul de forma &B\cr.
Comparând cu exemplul de mai sus, elementele A şi B din relaţia
(7.2) corespund următoarelor asignări: A:=#\hfil\quad iar
B:=\hfil #\quad.
Caractere ordinare
Caracterele ordinare constau din: punctul zecimal, literele
greceşti, anumite caractere caligrafice şi o serie de simboluri ma-
tematice:
Operatori mari
Operatorii mari se ı̂mpart ı̂n două subclase (ı̂n funcţie de mă-
rime): “mari” (pentru utilizare ı̂n modul matematic “display”), şi
“mai-puţin mari” (pentru utilizare ı̂n modul matematic “text”).
Operatori mari
P T
Σ Q \sum ∩ S \bigcap
Π ` \prod ∪ F \bigcup
q Z \coprod t \bigsqcup
R W
\int ∨ \bigvee
SCRIEREA MATEMATICĂ 109
I
H V
\oint ∧ \bigwedge
J N
L \bigodot ⊗ U \bigotimes
⊕ \bigoplus ] \biguplus
Operatori binari
Operatori binari
+ + − − ÷ \div
± \pm ∩ \cap ∨ \vee or \lor
∓ \mp ∪ \cup ∧ \wedge or \land
\ \setminus ] \uplus ⊕ \oplus
· \cdot u \sqcap \ominus
× \times t \sqcup ⊗ \otimes
∗ \ast or ∗ / \trianglelef \oslash
? \star . \triangleright \odot
\diamond o \wr † \dagger
◦ \circ
\bigcirc ‡ \ddagger
• \bullet 4 \bigtriangleup q \amalg
5 \bigtriangledown
Operatori relaţionali
Procesorul plain TEX dispune de un număr mare de asemenea
operatori. Trebuie remarcat că secvenţele \mid şi \parallel dau
acelaşi simbol cu secvenţele simple | şi \|, ı̂nsă generează mai mult
spaţiu ı̂n jurul lor.
Operatori relaţionali
< < > > = =
≤ \leq or \le ≥ \geq or \ge ≡ \equiv
≺ \prec \succ ∼ \sim
\preceq \succeq ' \simeq
\ll \gg \asymp
⊂ \subset ⊃ \supset ≈ \approx
⊆ \subseteq ⊇ \supseteq ∼
= \cong
v \sqsubseteq w \sqsupseteq ./ \bowtie
∈ \in 3 \ni ∝ \propto
` \vdash a \dashv |= \models
.
^ \smile | \mid = \doteq
_ \frown k \parallel ⊥ \perp
Negaţii
6< \not< 6 > \not>
6 ≤ \not\leq 6≥ \not\geq
6 ≺ \not\prec 6 \not\succ
6 \not\preceq 6 \not\succeq
6 ⊂ \not\subset 6 ⊃ \not\supset
6 ⊆ \not\subseteq 6 ⊇ \not\supseteq
6 v \not\sqsubseteq 6 w \not\sqsupseteq
SCRIEREA MATEMATICĂ 111
Săgeţi
← \leftarrow, \gets ←− \longleftarrow
→ \rightarrow, \to −→ \longrightarrow
↔ \leftrightarrow ←→ \longleftrightarrow
⇐ \Leftarrow ⇐= \Longleftarrow
⇒ \Rightarrow =⇒ \Longrightarrow
⇔ \Leftrightarrow ⇐⇒ \Longleftrightarrow
7 → \mapsto 7−→ \longmapsto
←- \hookleftarrow ,→ \hookrightarrow
( \leftharpoonup * \rightharpoonup
) \leftharpoondown + \rightharpoondown
*
) \rightleftharpoons ↑ \uparrow
↓ \downarrow l \updownarrow
⇑ \Uparrow ⇓ \Downarrow
m \Updownarrow % \nearrow
& \searrow . \swarrow
- \nwarrow
ı̂n care sunt utilizate. Astfel este indicat să se limiteze acţiunea
acestor secvenţe folosind grupul.
• \mit - această secvenţă poate fi utilizată pentru obţinerea
literelor greceşti mari:
${\mit\Gamma}, \Gamma$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Γ , Γ
Pentru numere, are acelaşi efect cu secvenţa \oldstyle
• \cal - această secvenţă este utilizată pentru a obţine litere
caligrafice:
${\cal AXZ}$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AX Z
Numai literele mari sunt disponibile ı̂n cazul acestei secvenţe.
b)
y
$x+{y\over 1+xˆn}$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . x + 1+xn
y
$$x+{y\over 1+xˆn }$$ . . . . . . . . . . . . . . . . . . . . . . . x +
1 + xn
Să facem o scurtă analiză a modurilor de lucru folosite de
procesor ı̂n realizarea expresiilor de la punctul b) de mai sus:
$eˆ{\scriptstyle x\over\scriptstyle n}$
$eˆ{x\over n}$ sau
$eˆ{\textstyle{x \over n}}$
$\displaystyle{ab \over x+y}$
$ ab\over x+y $ sau
$\displaystyle ab\over x+y$
8.6 Fracţii
Fracţiile sunt realizate cu ajutorul secvenţei de control \over
(vezi Exemplul 8.8). Acţiunea comenzii \over se extinde peste cel
mai mic grup care o conţine.
Exemplul 8.9. Grupuri şi acţiunea comenzii \over ı̂n cadrul
acestora. Analizaţi rezultatele procesării următoarelor secvenţe:
x+y
$$x+y \over A-B$$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A−B
118 Capitolul 8
y
$$x+{y\over A-B}$$ . . . . . . . . . . . . . . . . . . . . . . . . . . x +
A−B
Vezi comentariul de la Exemplul 8.7 asupra modului ı̂n care
procesorul tratează componentele unei fracţii. Exemplul 3.8 din
§3.4 ilustrează diferitele aranjări ale numărătorului unei fracţii
utilizând secvenţa \hfil.
Exemplul 8.10. Fracţii multiple:
\def\dd {\displaystyle}
$$E(x)=a 0+{1\over\dd a 1+
{\mathstrut 1\over \dd a 2+
{\mathstrut 1\over \dd a 3}}}$$
1
E(x) = a0 +
1
a1 +
1
a2 +
a3
revine la: X
ai bj
i,j∈k
i6=j
8.9 Radicali
Scrierea radicalilor se face cu ajutorul secvenţei de control
\sqrt{... material ...}.
Exemplul 8.15. Procesarea secvenţei:
$\sqrt{x+\sqrt{2+4 \sqrt{x+\sqrt {y}}}}$
s r q
√
va produce: x+ 2+4 x+ y
produce
def x
P (x) =
x2 + y 2
Macroul \buildrel are următoarea definiţie:
\def\buildrel#1\over#2{
\mathrel{\mathop{\kern 0pt #2}\limitsˆ{#1}}}
Acest macrou poate fi rescris astfel ı̂ncât noua definiţie să
cuprindă o subscripţie şi o superscripţie, anume:
\def\bbuildrel#1 #2ˆ#3{
\mathrel{\mathop{\kern 0pt#1}\limits {#2}ˆ{#3}}}
Şirul următor de secvenţe:
$$u n\bbuildrel\hbox to .5in {\rightarrowfill}
{n\rightarrow \infty}
ˆ{\hbox{\it weak}} 0$$
weak
produce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . un −−−−−→ 0
n→∞
Comanda \mathrel transformă { ... } ı̂ntr-o relaţie astfel
ı̂ncât conţinutul ’...’ va fi spaţiat la dreapta.
Pentru operaţiile matematice ı̂n care apare limita, procesorul
TEX dispune de secvenţele de control: \lim, \limsup şi \liminf.
Următoarele secvenţe
$\lim {x\rightarrow 0 }{f(x)\over x+f(x)}$
$$\lim {x\rightarrow 0 }{f(x)\over x+f(x)}$$
f (x)
produc limx→0 x+f (x)
f (x)
lim
x→0 x + f (x)
126 Capitolul 8
1 + x + x2 + · · · + xn + y + y 2 + · · · + y m + Z a
f (x)
c1 + c2 + · · · + cm + dx
0 1 + x2
Secvenţa de control \smash din Exemplul 8.23 face ca pro-
cesorul plain TEX să ignore valorile implicite ale unei linii pentru
ı̂nălţime şi adâncime şi să aloce spaţiu ı̂n funcţie de dimensiunile
materialului dintre acolade.
SCRIEREA MATEMATICĂ 127
După cum vom vedea puţin mai târziu, distanţa dintre linii
poate fi gestionată de utilizator.
a1 = 1 + 2 + 3
a1 + a2 = 1 + 2 + 3 + 4
a1 + a2 + a3 = 1 + 2 + 3 + 4 + 5
1+a
x1 = (1)
a−b
ex
(2) x2 = α + β −
1−x
s1 + a1 − b1 = 0 (1)
s1 + s2 + a2 − b2 = 0 (2)
SCRIEREA MATEMATICĂ 129
s1 + s2 + s3 + a3 − b3 = 0 (3)
................................................
s1 + s2 + · · · + sn + an − bn = 0 (n)
8.16 Matrici
Macroul \matrix este acela care face posibilă construirea
unei matrici. Simbolul & este utilizat pentru a separa intrările
din fiecare linie iar sfârşitul unei linii este specificat procesorului
de secvenţa \cr. Dacă numărul de simboluri & nu este acelaşi
pentru fiecare linie, atunci numărul de coloane al matricii respec-
tive va fi dat de linia cu cel mai mare număr de simboluri &; acolo
unde este nevoie, matricea va fi completată cu elemente vide.
Matricile sunt un caz particular de alinieri (vezi Capitolul 7).
Tabloul următor reprezintă o matrice cu trei linii şi trei coloane.
x1 x2 x3
x01 x02 x03
x001 x002 x003
x1 x2 x3
(∗) x01 x02 x03
x001 x002 x003
130 Capitolul 8
a11 − λ a12 a13
det(A − λI) = a21 a22 − λ a23
a31 a32 a33 − λ
x + 3.002y − 45z = d1
(S) −102x − y + z = d2
−x + 2y − 3z = d3
132 Capitolul 8
8.20 Diagrame
O diagramă poate fi obţinută prin utilizarea macroului
\diagram, macrou care reprezintă ı̂n fond o variantă a macroului
\matrix. Pentru a simplifica scrierea unei diagrame, procesorul
TEX dispune de macrourile \harr şi \varr. Macroul \harr pro-
duce o săgeată orizontală, orientată spre dreapta, cu lungimea de
1in. Acesta mai dispune de două argumente: primul este plasat
deasupra săgeţii iar celălalt sub săgeată. Prezenţa perechilor de
acolade este obligatorie, chiar dacă conţinutul materialului de pre-
lucrat este vid. Macroul \varr trasează o săgeată verticală, ori-
entată ı̂n jos, şi are aceeaşi sintaxă cu macroul \harr. Diagrama
x⊗yX
H ⊗R −−−−−→ P
u ṽ
y y
LATEX (se poate scrie şi LaTEX) este dezvoltat de către Leslie
Lamport pe baza procesorului TEX, definind aşa numitele layout-
uri (LAyout for TEX) standard pentru: cărţi, articole, rapoarte,
scrisori. LaTeX-ul permite ca utilizatorul să se concentreze asupra
organizării logice a unei lucrări lăsând ı̂n seama acestuia operaţia
de formatare a textului (aranjarea ı̂n pagină). Folosind LaTEX-ul
este foarte greu să modificăm aspectul general al documentului,
ı̂n raport cu formatul standard.
Paşii necesari a fi parcurşi pentru a obţine un document pe
hârtie utilizând versiunea LaTEX sunt:
a. Editarea fişierului sursă şi salvarea acestuia pe disc cu una
din extensiile: tex sau ltx;
b. Procesarea fişierului sursă - se face cu următoarea comandă:
latex nume-fişier.tex
Efectul primei procesări constă ı̂n scrierea (generarea) pe disc
a mai multor fişiere:
• nume-fis.aux - este un fişier cu informaţii auxiliare despre en-
tităţile logice din fişierul sursă şi etichetele: \label,
\bibitem. Este folosit de LaTEX la a doua procesare pentru
rezolvarea referinţelor ı̂ncrucişate: \cite, \ref, etc.);
138 Capitolul 9
*nota de titlu
+adresa-1
.
.
.
\end{document}
1
1bpt(Big point) = inches
72
\fill = spaţiul de lungime variabilă (0→∞)
Unele din cele mai importante varibile de tip lungime ale
căror valori sunt dependente de stilul documentului sunt:
• \parident - lungimea alineatului la ı̂nceputul unui paragraf;
• \textwidth - lăţimea textului pe pagină;
• \textheight - lungimea textului pe pagină;
• \parskip - spaţiul vertical suplimentar dintre ultima linie a
paragrafului şi prima linie a paragrafului următor;
• \baselineskip - spaţiul dintre sfârşitul unui rând şi sfârşitul
rândului următor;
Exemplu: Dacă nu dorim aliniere la ı̂nceput de paragraf,
putem introduce ı̂n fişierul sursă, la ı̂nceputul documentului, co-
manda:
\setlength{\parindent}{0cm}
9.4.2. Lungimi pentru controlul layout-ului
A. Stilurile article şi report, fără opţiunea twoside. O pagină
se va compune de sus ı̂n jos, respectiv, de la stânga la dreapta,
din:
Verticală: 1 inch,\topmargin,\headheight, \headsep,
\textheight,\footskip, restul paginii.
Orizontală: 1 inch,\oddsidemartgink\ evensidemargin,
\textwidth,\marginhparsep, \marginparwidth, restul paginii.
Singura diferenţă dintre paginile pare şi impare o constituie
lungimea numită \oddsidemargin respectiv \evensidemargin,
dar care au aceeaşi valoare. Pentru toate paginile, notele mar-
ginale sunt puse ı̂n marginea dreaptă a paginii.
B. Stilul book sau, orice stil cu opţiunea twoside. Dacă se face
aranjare diferenţiată a textului pe pagini pare şi impare (ceea ce
150 Capitolul 9
plain - este stilul implicit. Antetul va fi vid, iar ı̂n subsol va apărea
doar numă rul paginii;
empty - antetul şi subsolul sunt vide;
myheadings - antetul va conţine informaţii stabilite de utilizator şi numă-
rul paginii. Subsolul este vid;
Dacă se foloseşte stilul myheadings, informaţiile pentru an-
tete sunt stabilite cu ajutorul comenzilor:
\markboth{antet stânga }{antet dreapta}
\markright{antet dreapta}
unde antet stânga nu se va folosi decât dacă s-a optat pentru
twoside ı̂n lista de opţiuni ai comenzii \documentstyle, caz ı̂n
care se va folosi antetele paginilor pare.
Modul ı̂n care se face numerotarea paginilor se poate stabili
cu comanda:
\pagenumbering{stil}
unde stil poate lua una din următoarele valori:
arabic - numere arabe: 1,2,3, . . .;
roman - numere romane mici: i,ii,iii, . . .;
Roman - numere romane mari: I,II,III, . . .;
alph - litere mici: a,b,c, . . .;
Alph - litere mari: A,B,C, . . ..
Avem posibilitatea tipăririi pe două coloane a ı̂ntregului do-
cument specificănd twocolumn ı̂n lista de opţiuni a comenzii
\documentstyle, dar ne stau la dispoziţie şi comenzile:
\twocolumn[text]
care determină trecerea la pagină nouă, tipărirea lui text ( dacă
[text] este prezent ) pe toată lăţimea paginii şi culegerea textului
ce urmează după comandă pe două coloane, precum şi comanda:
\onecolumn
152 Capitolul 9
\c ¸, 21 \cal, 113
caractere, 17,84 caractere ordinare, 107
caractere speciale, 17-18 caractere unite, 19
\cap (∩), 109 \cases, 123
\cdot (·), 109 \cdots (· · ·), 133
\centerline, 55,61,78,91 \check ( ˇ ), 114
\chi (χ), 107 \choose, 119
\circ (◦), 109 \clubsuit (♣), 108
160 Index de concepte şi comenzi TEX (plain TEX)
H,h, 29 \H ( } ), 21
\halign, 97 \hangindent, 65-67
\hangafter, 65-66 \harr, 134-135
\hat, 114 \hbar, 108
\hbox, 23,38,54,64,76, \headline, 71-75
83-84,89,95-96,119
height (ı̂nălţime), 82,95-96,103
\heartsuit (♥), 108 \hfq, 100
\hfil, \hfill, 48,50, \hglue, 51
64-65,72,99-104,118
\hoffset, 79 \hom, 117
\hookleftarrow (←-), 111 \hookrightarrow (,→), 111
\hrule, 58,85,95 \hrulefill, 52
\hskip, 42,45,57,84,99,115 \hsize, 45,47,71-72,84,92-93
\hss, 54-55 \ht, 92-93
I,i, 29 \i, 21
\ifnum, 72,79 \ifodd, 74,80
\iftitlepage, 73-74,80 \ignorespace, 68-69
\Im (Im ), 108 \imath (ı), 108
imprimare document, 16 in, 38,42
\in (∈), 110,118 inch, 37,42
\indent, 58,67-68 \inf, 117
\infty (∞), 108,125 \input, 73,75
instrucţiuni, 22 instrucţiuni cuvânt, 22
Index de concepte şi comenzi TEX (plain TEX) 163
instrucţiuni
R simbol, 22 instrucţiuni primitive, 14
\int ( ), 106-108,120 \iota (ι), 107
\it, 22,35,99-103 italic, 33
\item, 61-63,68 \itemitem, 63,68
\itemitemitem, 63,67
ı̂nălţime, (height), 82
\l ( l), 20 \L (L), 20
\lambda (λ), 107 \Lambda (Λ), 108
\land (∧), 109 \langle (h), 112
\largdotfill, 53 layout, 18
lăţimea (width), 82 \lbrace ({), 112
\lbrack ([), 112 \lceil (d), 112
leaders, 52 \leaders, 53
\left, 122-124,128,130-131,135 \le (≤), 110
\leftarrowfill, 52 \leftarrow (←), 111
\Leftarrow (⇐), 111 \leftrightarrow (↔), 111
\Leftrightarrow (⇔), 111 \leftharpoonup ((), 111
\leftharpoondown ()), 111 \leftitem, 63-65
\leftskip, 60-62 \leq (≤), 110
\leqalignno, 128 \leqno, 127-128,131
\lfloor (b), 112 \lg, 117
\lim, 117,125 \liminf, 117,125
164 Index de concepte şi comenzi TEX (plain TEX)
modul vertical:
(obişnuit, intern), 18,26,
38,57-58,78,82,100
\models (|=), 108 \moveleft, 90
\moveright, 90 \mp (∓), 109
\mskip, 115 \mu (µ), 107
\myfootnote, 66-67
v, 14 \v, 21
\valign, 104 \varepsilon (ε), 107
\varphi (ϕ), 107 \varpi ($), 108
\varr, 134-135 \varrho (%), 107
\varsigma (ς), 107 \vartheta (ϑ), 108
\vbox, 49,82-83,91 \vcenter, 23,82-83,135
.
\vdash (`), 110 \vdots (.
.), 135
\vec ( ~ ), 114,121 \vee (∨), 109
\vert (|), 108 \vfil, 48,50,77
\vfill, 48,50,77 \vglue, 52,78
170 Index de concepte şi comenzi TEX (plain TEX)
\‘r −→ r̀ \^r −→ ^
r
\= r −→ r̄ \b r −→ r
¯
\H r −→ }
r \’r −→ ŕ
\u r −→ r̆ \.r −→ _
r
\v r −→ ř \c r −→ ŗ
\~ r −→ r
~
\t r −→
r
\"r −→ r̈
\d r −→ r
.
+ + − − ÷ \div
± \pm ∩ \cap ∨ \vee or \lor
∓ \mp ∪ \cup ∧ \wedge or \land
\ \setminus ] \uplus ⊕ \oplus
Index de concepte şi comenzi TEX (plain TEX) 173
( ( [ [ or \lbrack b \lfloor
) ) ] ] or \rbrack c \rfloor
h \langle { \{ or \lbrace d \lceil
i \rangle } \} or \rbrace e \rceil
Index de concepte şi comenzi TEX (plain TEX) 175
ff −→ ff fi −→ fi
ffi −→ ffi ffl −→ ffl
‘‘ −→ ‘‘ !‘ −→ ¡
\oe, \OE−→ œ, Œ \aa, \AA−→ å, Å
\ae, \AE−→ æ, Æ \o, \O −→ ø, Ø
fl −→ fl
’’ −→ ’’
?‘ −→ ¿
\l, \L −→ l, L
\ss −→ ß
cratima: -, liniuţa “en-dash”: --,
liniuţa “em-dash”: ---, semnul minus: −.
BIBLIOGRAFIE