n te de tex t x dvips vers.1 · 2017. 4. 9. · vezi, e.g., java fara˘ mistere de jim keogh, ed....
Post on 28-Mar-2021
6 Views
Preview:
TRANSCRIPT
Acest eseu nu a fost raportat vreunui referent. In consecinta, continutul sau trebuie considerat “ca atare.” In particular,
utilizarea instructiunilor care urmeaza se face pe raspunderea dumneavoastra. Autorul va asteapta comentariile la adresa de
e-mail de mai jos si va multumeste anticipat pentru efortul depus.
N ︷©te de TEX
TEX
YAP
DVIPS
Vers.1.3
Fisier procesat ın data de [September 14, 2015]
de Octavian G. Mustafa
e-mail address: octawian@yahoo.com
Inceput
TEX este un limbaj de programare dedicat producerii de texte stiintifice sau beletristice care
a fost inventat de profesorul Donald E. Knuth de la universitatea Stanford. In forma sa actuala,
limbajul este descris ın cartea
The TEXbook.
Seventeenth printing, revised, January 1990,
Reading, Massachusetts: Addison Wesley Publishing Company.
In continuare, ne vom referi la aceasta sursa cu apelativul TEX.
Un ajutor excelent pentru ıntelegerea limbajului TEX ıl constituie cartea TEX for the Impatient
de Paul W. Abrahams, Kathryn A. Hargreaves si Karl Berry, 2003—Addison Wesley Publishing Company,
1990 —. Ea este disponibila, conform “GNU Free Documentation License”, la adresa
http://www.ctan.org/tex-archive/info/impatient
In continuare, ne vom referi la aceasta sursa cu apelativul ImpaTEX. Pentru GNU, vezi ImpaTEX,
pag. 341/No. 361. De asemeni, cartea TEX by topic, a TEXnician’s reference de Victor Eijkhout, arhi-
vata la adresa
https://savannah.nongnu.org/projects/texbytopic
constituie o sursa riguroasa de informatii avansate.
o6 o\Materialul de fata se adreseaza celor care doresc sa produca documente cu formule matematice
fara complicatii deosebite sub sistemul de operare Windows 8.1. In acest scop, trebuie descarcate
din Internet mai multe componente ale unui “sistem publicistic”. Astfel, aveti nevoie de un motor
TEX, oferit de excelentul pachet (gratuit) MiKTeX:
∼1∼
http://www.miktex.org/
respectiv de un editor de text . Aici, ın afara de uzualul Notepad sau TeXworks (din MiKTeX), puteti
opta pentru editorul performant Vim:
http://www.vim.org/about.php
De asemeni, programul TeXnic Center—un “Graphical User Interface” usor de configurat—
http://www.texniccenter.org/
va ofera numerotarea liniilor de cod (esential pentru depanare), colorarea mediilor locale—high-
lighting—, ajutor la scrierea instructiunilor—code completion—, etc. O alternativa a asamblarii
sistemului publicistic este data de pachetul (gratuit) ProTeXt:
http://tug.org/protext/
Periodic, componentele acestuia pot fi ınlocuite cu ultimele lor variante (stabile).
o6 o\In cele ce urmeaza, vom folosi—ın linie de comanda, via cmd.exe; acest program se gaseste ın
WINDOWS\system32\; cel mai simplu: Start\Run, adica, apasati simultan tasta cu “steagul” Win-
dows si tasta R, si, ın casuta respectiva, scrieti cmd— din pachetul MiKTeX urmatoarele programe:
tex—adica, TEX—, yap si dvips. Un al patrulea program ©| , intitulat pdftex, va fi luat ın
considerare “pe alocuri”.
o6 o\(Off-main topic: apel ın linie de comanda) La instalarea pachetului MikTeX, variabilei de mediu
globale Path i se adauga (automat) calea catre “executabilele” acestuia—vezi Start\Control Panel
\System\Advanced\Environment Variables si, aici, System variables: Path —, deci puteti ape-
la editorul TeXworks scriind ın casuta Run-ului: texworks. Nu acelasi lucru se ıntampla cu editorul
TeXnic Center. O metoda de apelare simpla via cmd.exe presupune rularea (ınaintea primei utilizari
a TeXnic Center-ului) unui mic program batch. Astfel, din Run apelam editorul edit, ın care scriem
urmatoarele instructiuni:
@echo off
:: program apelare texniccenter
:: variabile adobe reader, ghost viewer
set drum_reader="C:\Program Files\Adobe\Reader 11.0"
set drum_viewer="C:\Program Files\Artifex Software\gsview6.0"
set mesaj_reader=Aveti nevoie de Adobe Reader 11.0 !
set mesaj_viewer=Aveti nevoie de GSview 6.0 !
set cale_reader=C:\Program Files\Adobe\Reader 11.0\Reader
set cale_viewer=C:\Program Files\Artifex Software\gsview6.0\bin
:: variabile principale
set drum_texnic="C:\Program Files\TeXnicCenter"
set drum_folder="C:\FisiereleMele"
set mesaj_folder=Creat folderul: C:\FisiereleMele
set cale_folder=C:\FisiereleMele
set apel_texnic=Pentru editorul TeXnic Center, tastati: texniccenter
set apel_unu=Pentru a citi tex-uri, dvi-uri, ps-uri sau pdf-uri
set apel_doi=din C:\FisiereleMele, tastati unul din cuvintele:
∼2∼
set apel_trei=texniccenter, yap, gsview sau acrord32 urmat de spatiu
set apel_patru=si numele_fisierului.tex (sau .dvi, .ps, .pdf).
set apel_cinci=Enjoy !
:: sfarsit variabile
if not exist %drum_reader% (echo. & echo %mesaj_reader% & echo. & goto oprire)
if not exist %drum_viewer% (echo. & echo %mesaj_viewer% & echo. & goto oprire)
path=%path%;%cale_reader%;%cale_viewer%;%drum_texnic%
if exist %drum_folder% (echo. & goto final)
mkdir %cale_folder%
echo. & echo %mesaj_folder% & echo.
:final
chdir %cale_folder%
echo %apel_texnic% & echo.
echo %apel_unu% & echo %apel_doi%
echo %apel_trei% & echo %apel_patru%
echo %apel_cinci% & echo.
:oprire
::finalul programului
call cmd
Apoi, salvati acest script folosind optiunea Save As “C:\go.bat”. Revenind la casuta Run, tastati
C:\go. Puteti acum utiliza editorul TeXnic Center pentru compunerea unui document TEX. Dupa
salvarea lui si iesirea din editor, ramane deschisa consola cmd. Aici, puteti apela TEX-ul, Acrobat
Reader-ul sau alte programe conexe, e.g., texdoc-ul (pastrati consola deschisa!). Reluati procedeul
Start\Run\C:\go ori de cate ori doriti sa scrieti codul-sursa al documentelor dumneavoastra ın
acest editor.
o6 o\
Incepem prin introducerea unui folder nou—sa zicem muncaTeX sau FisiereleMele—ın sis-
temul de fisiere al calculatorului dumneavoastra. In acest folder, introducem un fisier (gol) cu ex-
tensia “txt”: munca.txt. Il deschidem si scriem ın el, chiar de pe primul rand,
\line
\bye
Vezi TEX, pag. 87. Dupa ce am salvat/ınchis fisierul, ıi modificam extensia ın “tex”.
Apoi, apeland cmd.exe, ıi precizam calea catre folder. De exemplu, ın calculatorul meu—
reamintesc comenzile DOS: cd (schimba calea), cls (sterge totul din fereastra cmd-ului), respectiv
exit (paraseste programul); de asemeni, daca doriti sa rulati programe pe mai multe ferestre, avem
instructiunea start numeleprogramului; lista de comenzi este disponibila via help; sau vizitati
documentatia on-line:
http://www.microsoft.com/resources/documentation/windows/xp/all/
proddocs/en-us/ntcmds.mspx?mfr=true
—trebuie tastata instructiunea
cd "C:\...\FisiereleMele"
Odata modificata calea, apelam fisierul munca.tex:
tex \input munca
∼3∼
Cf. TEX, pag. 25. Dupa rularea programului, TEX produce doua fisiere: munca.dvi si munca.log.
Primul este produsul vizibil , adica viitorul articol/referat etc., ın drum spre imprimanta—dupa ınca
un pas—, celalalt reprezinta jurnalul activitatii TEX ın slujba dumneavoastra.
Pentru a vedea ce a rezultat din rularea primului material TEX—o foaie goala cu numarul de
pagina 1 centrat—, folosim programul yap—Yet Another Previewer—
yap munca
Acest fisier se adreseaza majoritatii printerelor—el este “device independent”—, cf. TEX, pag. 23.
Pentru a vedea jurnalul activitatii TEX, folosim programul notepad
notepad munca.log
Mai departe, catre imprimanta! Pentru a completa sistemul publicistic, este nevoie de cele doua
programe Ghostview:
http://www.gsview.com/downloads.html
si Ghostscript:
http://ghostscript.com/download/gsdnld.html
Instaland bundle-ul ProTeXt, aveti deja ın calculator programele respective, necesare manevrarii
fisierelor cu extensia ps—PostScript—:
http://partners.adobe.com/public/developer/ps/index_specs.html
In linia de comanda, scriem
dvips munca.dvi
Rezultatul va fi fisierul munca.ps din folderul FisiereleMele. Programul dvips—DVItoPS— re-
prezinta un device driver care se acceseaza ın linie de comanda. Vezi The LaTeX Graphics Companion,
Second Edition de Michel Goossens et al, Pearson Education, Inc., 2008, pag. 24. Este foarte utila lista setarilor sale
dvips --help
Pentru a transforma fisierele cu extensia “ps” ın fisiere cu extensia “pdf”, utilizam programul
ps2pdf. Mai precis,
ps2pdf munca.ps
o6 o\Exista posibilitatea de a obtine ın mod direct un fisier cu extensia pdf ın folderul FisiereleMele
folosind programul pdftex—din pachetul MiKTeX—; mai precis,
pdftex \input munca
(Off-topic: poze) Nu putem introduce poze ın TEX. Aceasta chestiune a fost rezolvata ın LaTeX,
extensia fundamentala a TEX-ului scrisa de Leslie Lamport si a carei varianta actuala (2ε) a fost
prezentata ın 1994. Conform The LaTeX Companion, Second Edition de Frank Mittelbach et al, Pearson Education,
∼4∼
Inc., 2004, pag. 3. Grafica acceptata de LaTeX se bazeaza pe eps—Encapsulated PostScript—. Un
program gratuit pentru obtinerea imaginilor de acest tip este GIMP:
http://www.gimp.org/
Pentru pozele cu alta extensie decat .eps se poate folosi ciclul (La)TEX–yap–dvips. Vezi paginile
42–44 din cartea Using imported graphics in LaTeX and pdfLaTeX de Keith Reckdahl, disponibila
la adresa
ftp://tug.org/tex-archive/info/epslatex/english/epslatex.pdf
Pe de alta parte, o serie de avantaje de offset , vezi TEX, pag. 251, pledeaza ın favoarea programelor
pdftex, pdflatex.
o6 o\
©| O traditie amuzanta ne cere sa ıncepem studiul unui limbaj de programare prin afisarea
mesajului “Hello, world!”. Vezi, e.g., Java fara mistere de Jim Keogh, Ed. Rosetti Educational,
Bucuresti, 2006, pag. 10, sau Initiere ın PHP 5 de Steven Holzner, Ed. Teora, Bucuresti, 2005, pag.
12. Astfel, scrieti ın linia de comanda urmatoarea instrutiune
tex
Raspunsul TEX-ului va fi:
C:\...\FisiereleMele>tex
This is TeX, Version 3.1415926 (MiKTeX 2.9)
**
Este singura data cand TEX-ul afiseaza doua stelute. Scrieti
**\relax
Ca raspuns, TEX-ul va renunta la cea de-a doua dintre stelute—aceasta tine locul instructiunii
\input, cf. TEX, pag. 23—
Mai departe, tastam urmatoarele instructiuni—caracterul * ıi apartine TEX-ului si orice scrieti
ın continuarea lui va merge ın fisierul cu numele (generic) texput.tex, cf. TEX, ibidem—
**\relax
*\read16 to \numeletau
*\messageHello, world! Salut,\numeletau
*\bye
Cf. TEX, pag. 217. Raspunsul TEX-ului va fi
*\read16 to \numeletau
\numeletau=octavian
*\messageHello, world! Salut,\numeletau
Hello, world! Salut, octavian
*\bye
No pages of output.
Transcript written on texput.log.
∼5∼
C:\...\FisiereleMele>
Scris si citit
Pentru a scrie ın linie de comanda articolele/cartile/rapoartele etc. la care lucram, se folosesc
urmatoarele instructiuni
*\openout0=numelefisierului
*\write0prima linie din programul dvs. TEX
*\write0a doua linie din programul dvs. TEX
*\write0ultima linie din programul dvs. TEX
*\closeout0
Cf. TEX, pag. 226. Programul TEX va introduce un fisier numelefisierului.tex ın folderul ın care
lucrati. TEX poate manevra un numar de maximum 16 asemenea fisiere, apelate cu \openout0 . . .
\openout15. Atentie, daca fisierul apelat continea deja informatii, acestea vor fi sterse ın totalitate
prin scrierea ın linia de comanda ©| .
Pentru a citi un rand dintr-un fisier cu extensia tex din folderul FisiereleMele, folosim
perechea de instructiuni \openin, \closein, cf. TEX, pag. 216. De exemplu, avand deja ın folder
fisierul munca.tex, putem scrie urmatoarele instructiuni
*\openin0=munca
*\read0 to\numedevariabila
*\messageam citit: \numedevariabila
Raspunsul TEX-ului va fi
*\openin0=munca
*\read0 to\numedevariabila
*\messageam citit: \numedevariabila
am citit: \hbox to\hsize
*\closein0
*\bye
No pages of output.
Transcript written on texput.log.
C:\...\FisiereleMele>
Intr-adevar, instructiunea \line este expandata de TEX ın grupul de comenzi \hbox to\hsize,
cf. TEX, pag. 77.
In legatura cu aceste instructiuni, trebuie mentionata si comanda \immediate, cf. TEX, pag.
227.
Ajutor
Trei comenzi foarte utile ne permit sa aflam informatii despre instructiunile limbajului TEX:
\show, \showthe si \meaning. Astfel, daca scriem ın linia de comanda
*\show\line
∼6∼
raspunsul TEX-ului va fi
*\show\line
> \line=macro:
->\hbox to\hsize .
<*> \show\line
?
Acest ? nu este vreun mesaj de eroare din partea TEX-ului, ci, pur si simplu, o ıntrebare: ıncotro?
Vezi TEX, pag. 31. Se face click pe tasta RETURN si programul trece la o noua linie (de comanda)
lansand deja ©| binecunoscuta “steluta”
*
Incheiem conversatia cu programul TEX via comanda \bye. Informatia care a fost afisata pe prompter
este, de asemeni, scrisa ın fisierul texput.log, apelabil cu notepad.
Daca scriem ın linia de comanda—vezi TEX, pag. 215—
*\showthe\hsize
raspunsul TEX-ului va fi
*\showthe\hsize
> 469.75499pt.
<*> \showthe\hsize
?
*\bye
No pages of output.
Transcript written on texput.log.
C:\...\FisiereleMele>
Am obtinut valoarea, exprimata ın unitati de masura point, cf. TEX, pag. 57, a lungimii randului
orizontal standard.
Spre deosebire de \show sau \showthe, instructiunea \meaning ne va conduce la un raspuns
printabil din partea TEX-ului. Daca scriem
*\meaning\line
*\bye
raspunsul TEX-ului va fi
*\meaning\line
*\bye
[1]
Output written on texput.dvi (1 page, 240 bytes).
Transcript written on texput.log.
C:\...\FisiereleMele>
∼7∼
Grupul de comenzi care desemneaza instructiunea \line va fi introdus ın fisierul texput.dvi, apela-
bil cu yap. Insa, dat fiind ca ın explicatie apar caractere speciale, vezi TEX, pag. 37, o serie de sim-
boluri sunt transformate ın ceva “ciudat”©| . Vezi si TEX, pag. 213. Pentru mai multe informatii,
vezi ImpaTEX, pag. 253/No. 273 si urmatoarele.
o6 o\In TEX, bibliotecile de comenzi se numesc formate, cf. TEX, pag. 11. Astfel, formatul plain al
limbajului de programare TEX—deja ıncarcat/instalat ın calculatorul dumneavoastra via MiKTeX—
este descris ın TEX, ıncepand cu pag. 342, respectiv ın ImpaTEX, ıncepand cu pag. 313/No. 333.
De asemeni, ın ImpaTEX, pag. 291/No. 311 si urm., este descris formatul eplain care contine
instructiuni esentiale pentru cei interesati de producerea unor documente complexe: patratelul ne-
gru—care marcheaza ıncheierea demonstratiilor—, cuprinsul—table of contents—, referirea au-
tomata la numere de ecuatii—cross reference—, etc.
o6 o\In toate listele de comenzi din TEX, respectiv ImpaTEX, semnul * desemneaza comenzile
primitive (primare, low-level), vezi ImpaTEX, pag. 88/No. 108 sau TEX, pag. 9. Raspunsul TEX-
ului la instructiunea
*\show\instructiuneprimitiva
este—aici, folosim ca primitiva comanda \input—
*\show\input
> \input=\input.
<*> \show\input
?
*\bye
C:\...\FisiereleMele>
Macroland
Motorul limbajului TEX transforma ceea ce dumneavoastra scrieti de la tastatura/ori ıi cereti
sa “citeasca” dintr-un fisier, ıntr-un sir de ınsemne—tokens—, cf. TEX, pag. 38. In fapt, profesorul
Knuth a adoptat o terminologie cu caracter biologic, vorbind despre “ochii”, “gura”, “intestinele”
sau “stomacul” TEX-ului. Vezi TEX, ibidem, sau ImpaTEX, pag. 46/No. 66—anatomy of TEX—.
In majoritatea situatiilor, dumneavoastra tastati text obisnuit, cum ar fi cum ar fi. Exista ınsa
cazuri cand va intereseaza producerea unor expresii mai complicate, e.g., 3√a = 2 sau
©|•∖
´´´´´´`````
= 666666
Aici intervin secventele de control—control sequences, cf. ImpaTEX, pag. 57/No. 77—, adica
instructiunile/comenzile limbajului TEX. Expresiile anterioare au fost produse scriind—TEX, pag.
130—
*$\root 3\of a=2$
respectiv
∼8∼
*$$\jollyroger]=666666$$
Daca ıncercati sa procesati via TEX prima relatie, totul va fi OK deoarece \root este o comanda
a formatului (bibliotecii) plain. Cealalta comanda, adica “piratul” \jollyroger], nu apartine nici-
unui format instalat ın calculatorul dumneavoastra; el a fost programat de mine! Aceasta este una
dintre caracteristicile esentiale ale limbajului TEX, cf. TEX, pag. 203, si anume programarea tuturor
elementelor grafice de pe pagina unui document, fie ele litere—fonturi, cf. TEX, pag. 13, 427—,
caractere “speciale”—TEX, pag. 390—, vezi “piratul”, etc.
Nu este nevoie sa programati dumneavoastra©| asemenea elemente decat ın cazuri exceptio-
nale. In mediul Internet gasiti multe biblioteci/pachete interesante si realizate profesional. Cel mai
bine este sa colectati aceste programe ıntr-un fisier “bun la toate”, din folderul FisiereleMele, sa
zicem set_de_macrouri.tex, pe care sa-l apelati la ınceputul fisierului aflat ın lucru cu instructiunea
*\input set_de_macrouri
Din acest moment veti putea introduce ın documentul dumneavoastra elementele grafice care va
intereseaza. Comenzile \line, \jollyroger], etc se numesc macrouri. Aceasta pentru ca, prin
procesare, asemenea scurte siruri de caractere sunt expandate ın elementele grafice dorite—apare
efectul macroscopic, cf. TEX, pag. 199—.
Drept exemplu, iata instructiunile cu care a fost construit Roger cel Vesel ©| . Atentie, ın
fisierul cu extensia tex ın care va stocati macrourile nu se foloseste—ca element de ınceput de
linie—simbolul *; acesta apare doar ın linia de comanda, din “partea” TEX-ului!
%-------Jolly Roger: cap de pirat, oase, centrare----
%-------un cap de pirat, gandit pentru \baselineskip=13pt---
\font\literecerculmarepirat=cmsy10 scaled\magstep4
\def\cerculmarepirat]\leavevmode\literecerculmarepirat \char‘015
\font\litereochipirat=cmr10 scaled\magstep1
\def\ochiulpirat]\leavevmode\litereochipirat \char‘027
\font\literepeticpirat=cmsy10
\def\peticpirat]\leavevmode\literepeticpirat \char‘017
\font\literenasulpirat=cmsy10
\font\literebarapeticpirat=cmex10 scaled\magstep1
\def\barapeticpirat]\leavevmode\literebarapeticpirat \char‘017
\def\nasulpirat]\leavevmode\literenasulpirat \char‘152
\font\literezimbetpirat=cmmi10
\def\zimbetpirat]\leavevmode\literezimbetpirat \char‘136
\def\cappirat]\leavevmode\lower2.5truept\hbox\cerculmarepirat]%
\kern−17.8truept\raise2truept\hbox\ochiulpirat]%
\kern−3truept\hbox\nasulpirat]%
\kern−.5truept\raise5truept\hbox\peticpirat]%
\kern−10.8truept\lower4truept\hbox\zimbetpirat]%
\kern−4.2truept\raise13.6truept\hbox\barapeticpirat]%
\hbox to 6truept
%--------sfarsitul capului de pirat------
∼9∼
%-------oasele piratului-------
\font\litereoase=cmtt10
\font\literecercoase=cmsy10
\def\atomstang]\leavevmode\litereoase \char‘023
\def\atomdrept]\leavevmode\litereoase \char‘022
\def\cercoase]\leavevmode\literecercoase \char‘016
\def\atomstangdublu]\leavevmode\atomstang]%
\kern−3.6truept\raise.7truept\hbox\atomstang]
\def\atomstangpatru]\leavevmode\atomstangdublu]%
\kern−3.6truept\raise1.4truept\hbox\atomstangdublu]
\def\atomstangopt]\leavevmode\atomstangpatru]%
\kern−3.6truept\raise2.9truept\hbox\atomstangpatru]
\def\atomstangsaisprezece]\leavevmode\atomstangopt]%
\kern−3.6truept\raise5.8truept\hbox\atomstangopt]
\def\atomdreptdublu]\leavevmode\atomdrept]%
\kern−3.6truept\lower.7truept\hbox\atomdrept]
\def\atomdreptpatru]\leavevmode\atomdreptdublu]%
\kern−3.6truept\lower1.4truept\hbox\atomdreptdublu]
\def\atomdreptopt]\leavevmode\atomdreptpatru]%
\kern−3.6truept\lower2.9truept\hbox\atomdreptpatru]
\def\atomdreptsaisprezece]\leavevmode\atomdreptopt]%
\kern−3.6truept\lower5.8truept\hbox\atomdreptopt]
\def\oase]\leavevmode\atomstangsaisprezece]%
\kern−29.5truept\raise10.7truept\hbox\atomdreptsaisprezece]%
\kern−3truept\raise1.8truept\hbox\cercoase]%
\kern−5truept\raise14.8truept\hbox\cercoase]%
\kern−34.5truept\raise2truept\hbox\cercoase]%
\kern−5truept\raise14.8truept\hbox\cercoase]
%-------sfarsit pentru oase------
\def\jollyroger]leavevmode\hbox to8truept%
\raise7truept\hbox\cappirat]%
\kern−29truept\lower23truept\hbox\oase]%
\hbox to31truept
%-----sfarsit pentru Jolly Roger-----
Roger cel Vesel poate fi apelat oriunde: ınceput de paragraf, formula matematica, interiorul unui
elemement grafic.
Un alt macro este cel care genereaza numerele de pagina. Instructiunile sale sunt urmatoarele:
%-----numerele de pagina-----
\def\incepnrpag#1 \ifnum\number#1<0\advance\pageno by0\%
\else\advance\pageno by #1 \fi
%acesta este un macro care imi spune de unde incep numerotarea paginilor;
∼10∼
%spatiul liber dintre #1 si acolada imi permite sa nu pun acolade la argument,
%atunci cand chem macro-ul, vezi TEX, pag. 202.
%altfel, trebuie sa pun acolade in jurul argumentului:\incepnrpag−7;
%macro-ul va citi argumentul pana la primul spatiu liber!
\font\literepagina=cmti10 scaled\magstep2
\incepnrpag−7 %decide de la ce numar incepe prima pagina;
%inspirata de \advancepageno, TEX, pag. 256.
\footline\literepagina\hss\raise2truept\hbox$\sim$%
\kern−2truept\number\pageno\raise2truept\hbox$\sim$\hss
%-----sfarsitul numerelor de pagina-----
Instructiunea care genereaza numerele de pagina este
*\incepnrpag−7
Deoarece numarul de pagina este negativ, numerotarea ıncepe de la 1; daca numarul de pagina
ar fi fost 35, atunci numerotarea ar fi ınceput de la 36. De asemeni, daca se ınlocuieste ın progra-
mul/scriptul anterior ultima comanda \number cu primitiva \romannumeral, atunci numerele de
pagina vor fi calculate cu cifre romane. Vezi TEX, pag. 41. In legatura cu acest macro, mentionez si
comanda—macro—\folio din formatul plain, cf. TEX, pag. 252.
Putem renunta la numerotarea paginilor via instructiunea \nopagenumbers, cf. TEX, pag. 251.
Literele: la drum!
In cele ce urmeaza, vom descrie pas cu pas elaborarea unui mic document matematic—formulele
ın sine nu vor avea ınteles, rolul lor fiind acela de a oferi un excurs de comenzi ale TEX-ului; vezi
TEX, Exercise 18.10, pag. 167—.
In fisierul munca.tex, stergem instructiunea \line si o ınlocuim cu grupul urmator:
\hsize=6in
\baselineskip=13pt
\frenchspacing
Prima comanda desemneaza lungimea randurilor orizontale ale documentului nostru, cf. TEX,
pag. 27. In limbajul TEX, unitatile de masura—absolute— sunt date ın tabelul de mai jos:
pt point mm millimeter (10 mm = 1 cm)
pc pica (1 pc = 12 pt) dd didot point (1157 dd = 1238 pt)
in inch (1 in = 72.27 pt) cc cicero (1 cc = 12 dd)
bp big point (72 bp = 1 in) sp scaled point (65536 sp = 1 pt)
cm centimeter (2.54 cm = 1 in)
Vezi TEX, pag. 57. Lor li se adauga diverse marimi relative/speciale: em, en, ex—TEX, pag. 60,
71—, mu—math units, cf. TEX, pag. 168—, \jot—TEX, pag. 194—, fil, fill, filll—TEX, pag.
72—, etc. Limbajul TEX recunoaste lungimi de pana la 5.7583 metri, cf. TEX, pag. 58.
Calculele “interne” ale TEX-ului sunt facute ın sp, deci rotunjirile marimilor sunt valabile ın cel
mult patru zecimale, cf. TEX, pag. 310, raspunsul la Exercise 11.3, pag. 67.
∼11∼
Dimensiunile pot fi afectate de magnificare: instructiunea \magnification=1000× f implica o
marire a dimensiunilor de f ori, cf. TEX, pag. 59. Pentru a controla dimensiunile finale ale anumitor
cantitati—independent de magnificari— se utilizeaza cuvantul cheie—TEX, pag. 61— true:
\hsize=6truein
Vezi TEX, pag. 60.
o6 o\Pentru a ıntelege diferenta dintre unitatile absolute si cele relative, ıncercati sa “stricati” mo-
mentan textul dumneavoastra aplicand o magnificare:
**\relax
*\magnification=\magstep2 \input munca
Veti observa ca Roger cel Vesel se distruge—ın calitatea sa de macro “home-made” ©| , a fost
definit ın true points—, ın timp ce macro-ul TEX se adapteaza noii ınaltimi. El a fost exprimat ın
unitatile relative em, ex:
T\kern−.1667em\lower.5ex\hboxE\kern−.125em X
cf. TEX, pag. 66.
o6 o\A doua instructiune, \baselineskip=13pt, desemneaza ınaltimea—fixa!—a spatiului alb dintre
randuri: “interline glue”, cf. TEX, pag. 78. Exista posibilitatea de a varia aceasta dimensiune—
glue—pe parcursul documentului cu ajutorul grupului de comenzi \baselineskip, \lineskip,
\lineskiplimit, ınsa profesorul Knuth recomanda evitarea acestei situatii, vezi TEX, ibidem. In
formatul plain, marimea \baselineskip este setata la 12 pt, cf. TEX, pag. 82. Tripletei de comenzi
anterioare i se adauga \offinterlineskip, cf. TEX, pag. 312, raspunsul la Exercise 12.10, pag. 80.
Cea de-a treia instructiune, \frenchspacing, stabileste valori fixe pentru lungimile spatiilor
albe dintre cuvinte. Vezi TEX, pag. 74, 351.
In acest moment suntem gata sa scriem primele linii de text. Limbajul TEX foloseste ansambluri
de pana la 256 de caractere tiparibile, numite fonturi , cf. TEX, pag. 427, 369. Formatul plain
utilizeaza saisprezece fonturi de baza:
cmr10 Computer Modern Roman 10 point
cmr7 Computer Modern Roman 7 point
cmr5 Computer Modern Roman 5 point
cmbx10 Computer Modern Bold Extended 10 point
cmbx7 Computer Modern Bold Extended 7 point
cmbx5 Computer Modern Bold Extended 5 point
cmsl10 Computer Modern Slanted Roman 10 point
cmti10 Computer Modern Text Italic 10 point
cmtt10 Computer Modern Typewriter Type 10 point
cmmi10 Computer Modern Math Italic 10 point
cmmi7 Computer Modern Math Italic 7 point
cmmi5 Computer Modern Math Italic 5 point
cmsy10 Computer Modern Math Symbols 10 point
cmsy7 Computer Modern Math Symbols 7 point
cmsy5 Computer Modern Math Symbols 5 point
cmex10 Computer Modern Math Extension 10 point
∼12∼
Vezi TEX, pag. 428, 350. Caracterele pentru textul obisnuit din aceste tabele au cel putin sapte
parametri iar cele de “tip matematic” cel putin douazeci si doi, cf. TEX, pag. 433 ©| . In fapt,
TEX-ul foloseste doar instructiunile metrice ale fonturilor—le “priveste” ca pe niste cutii, vezi TEX,
pag. 63 sau ImpaTEX, pag. 64–65/No. 84–85—, ın timp ce imprimanta se va ocupa cu “turnatul”
cernelii ın pagina.
Caracterele pot fi apelate din tabelele lor via instructiunea \char urmata de un numar exprimat
ın baza de numeratie opt (‘) sau saisprezece (‘‘), cf. TEX, pag. 44. E.g., simbolul ♣ a fost generat
cu grupul de comenzi:
E.g., simbolul
\font\exemplusimbol=cmsy10%
\def\treflaneagra]\leavevmode\exemplusimbol \char‘174%
\treflaneagra] a fost generat cu grupul de comenzi:
Fireste, nu este extrem de convenabil sa extragem simbolurile astfel atunci cand ele apar ın numar
mare©| , deci acestea trebuie “expediate” ın fisierul asociat set_de_macrouri.tex. In particular,
instructiunea $\clubsuit$ va produce acelasi rezultat, si anume ♣, cf. TEX, pag. 435.
In mod obisnuit, limbajul TEX utilizeaza caractere cu dimensiunea 10 pt, cf. TEX, pag. 51. In
aceasta dimensiune, comenzile
\it Roger \tt Roger \bf Roger \sl Roger
produc Roger , Roger, Roger, Roger, adica italic, typewriter, boldface, slanted, cf. TEX, pag.
13. Acoladele realizeaza o localizare/grupare a unui sir de caractere—grouping—. Tot ce se
defineste “ıntre paranteze” ramane valabil numai “ıntre paranteze”, cf. TEX, pag. 19. De asemeni,
interpretarea comenzilor TEX are loc ın ordinea citirii lor din fisier/linie de comanda, cf. TEX, pag.
39; ın plus, la “pornire”, TEX-ul recunoaste doar intructiunile primitive, vezi TEX, ibidem.
Una din problemele esentiale ın textul obisnuit este legata de accente, cf. TEX, pag. 52. Voi
introduce ın continuare cateva macrouri pentru literele romanesti ı, I ın diferite dimensiuni. Ele vor
fi urmate de lista macrourilor plain privind accentele.
%---litere romanesti---
%---folosesc primitiva \accent, cf. TEX, pag. 54, 356---
\font\literemari=cmbx10 scaled\magstep5
\font\literemedii=cmbx10 scaled\magstep1
\font\literemici=cmr7
\def\irTI]\leavevmode\literemari \accent94 \char‘111
\def\irTi]\leavevmode\literemari \accent94 \char‘020
\def\irtI]\leavevmode\literemedii \accent94 \char‘111
\def\irti]\leavevmode\literemedii \accent94 \char‘020
\def\irimic]\leavevmode\literemici \accent94 \char‘020
\def\irImic]\leavevmode\literemici \accent94 \char‘111
\def\irI]\leavevmode\rm \accent94 \char‘111%---font10pt---
\def\iri]\leavevmode\rm \accent94 \char‘020%---font10pt---
\def\itI]\leavevmode\it \accent94 \char‘111%---font10pt---
\def\iti]\leavevmode\it \accent94 \char‘020%---font10pt---
\def\ittI]\leavevmode\tt \accent94 \char‘111%---font10pt---
\def\itti]\leavevmode\tt \accent94 \char‘020%---font10pt---
\def\ibfI]\leavevmode\bf \accent94 \char‘111%---font10pt---
∼13∼
\def\ibfi]\leavevmode\bf \accent94 \char‘020%---font10pt---
\def\islI]\leavevmode\sl \accent94 \char‘111%---font10pt---
\def\isli]\leavevmode\sl \accent94 \char‘020%---font10pt---
%---sfarsitul literelor romanesti---
Macrourile descrise ın lista anterioara genereaza urmatoarele caractere:
\irTI] produce: I \irTi] produce: ı\irtI] produce: I \irti] produce: ı\irimic] produce: ı \irImic] produce: I
\irI] produce: I \iri] produce: ı
\itI] produce: I \iti] produce: ı
\ittI] produce: I \itti] produce: ı
\ibfI] produce: I \ibfi] produce: ı
\islI] produce: I \isli] produce: ı
o6 o\Formula lor, si anume \numecomanda], se bazeaza pe faptul ca simbolul ] are codul de caracter
12—Other character, cf. TEX, pag. 37—, ceea ce permite apelarea acestora ın textul obisnuit fara
a fi nevoie de spatiu gol/paranteze ınconjuratoare. Vezi TEX, pag. 204. Astfel, cuvantul “ ın” se
scrie sub forma \iri]n. Macroul \leavevmode permite utilizarea acestor comenzi oriunde ın textul
obisnuit, inclusiv la ınceput de paragraf, cf. TEX, pag. 313, raspunsul la Exercise 13.1, pag. 86.
o6 o\Macrourile plain pentru accente ın textul obisnuit sunt afisate ın tabelul de mai jos. Litera “o”
folosita aici are doar rol de exemplu!
\‘o o \’o o
\^o o \¨o o
\~o o \=o o
\.o o \uo o
\vo o \Ho o
\too ⁀oo \co o
\do o. \bo o¯
\i ı \j
\oe œ \OE Œ
\ae æ \AE Æ
\aa a \AA A
\o ø \O Ø
\l l \L L
\ss ß \dag †\ddag ‡ \S §\P ¶
Cf. TEX, pag. 52, 53.
Revenim la fisierul nostru, munca.tex, si adaugam—sub instructiunile deja scrise!—comenzile
urmatoare; aici, % desemneaza comentariile.
\centerline\literemari Logic\ua \csi filosofie%--cf. TEX, pag. 353---
∼14∼
\vskip.5in%--cf. TEX, pag. 71---
\rightlinede A.~C. Grayling%--vezi TEX, pag. 92---
\vskip.1in
\rightlinee-mail address: virgil@tipp22.com
\vskip.5in
\leftline\literemedii Introducere
\vskip.2in
\noindent Dup\ua propria relatare, principala %--spatiu liber!--
motiva\ctie filosofic\ua %--spatiul liber e spatiul dintre cuvinte--
a lui Russell a fost aceea de a afla dac\ua poate fi %
ceva cunoscut cu certitudine. $[\ldots]$%--vezi TEX, pag. 73---
\medskip%--cf. TEX, pag. 70, 352---
Munca filosofic\ua %
din ace\csti ani a continuat dup\ua ce %
cercet\uarile de logic\ua %
asociate au fost \iri]ncheiate prin publicarea %
\it Principia Mathematica\/.
Rezultatul acestor instructiuni este:
∼15∼
o6 o\
Logica si filosofie
de A. C. Grayling
e-mail address: virgil@tipp22.com
Introducere
Dupa propria relatare, principala motivatie filosofica a lui Russell a fost aceea de a afla daca poate
fi ceva cunoscut cu certitudine. [. . .]
Munca filosofica din acesti ani a continuat dupa ce cercetarile de logica asociate au fost ıncheiate
prin publicarea Principia Mathematica.
o6 o\Am folosit ın exemplul nostru paginile 33, 35 ale cartii profesorului A. C. Grayling, Russell: O
scurta introducere, Ed. ALL, Bucuresti, 2009.
In ceea ce priveste spatiul dintre randuri, acesta a fost modificat via \vskip, \medskip, vezi
TEX, pag. 70. Instructiunea \noindent priveste indentatia—spatiul orizontal “gol” de la ınceputul
unui paragraf—primului rand al documentului. Comenzile *\showthe\parindent arata ca ea are
valoarea de 20 pt ın formatul plain, vezi TEX, pag. 86. In sfarsit, instructiunea \/ priveste corectia
italiana, adica o modalitate de pozitionare corecta a unui caracter—slanted sau boldface— oarecare
fata de urmatorul element grafic al documentului, cf. TEX, pag. 64, 14.
In “modul orizontal”, adica ın lungul unui rand de text, cu sau fara formule matematice in-line,
vezi TEX, pag. 85, spatiul este comandat de instructiunile:
\ spatiu “de la tastatura”, de aici| |pana aici
\quad adica, de aici| |pana aici
\qquad adica, de aici| |pana aici
\thinspace adica, de aici| |pana aici
\negthinspace adica, de aici||pana aici
\hskip1.2cm adica, de aici| |pana aici
\hskip−.5cm adica, de aici||pana aici; cu alte cuvinte: de aici||pana aici
Vezi TEX, pag. 5, 8, 166 si 332, raspunsul la Exercise 22.1, pag. 233. In legatura cu spatiul orizontal,
mentionez si comenzile \enskip, cf. TEX, pag. 71, respectiv \enspace, cf. TEX, pag. 202.
Cratimele—hyphen, dash—sunt date astfel:
- te-am auzit te-am auzit hyphen
-- pag. 12–20 pag. 12--20 en-dash
--- din nou—iar— din nou---iar--- em-dash
Cf. TEX, pag. 4.
∼16∼
Ligaturile sunt grupurile de litere tratate de limbajul TEX ca un singur caracter “artistic”,
cf. TEX, pag. 4. Vezi si ImpaTEX, pag. 97/No. 117. In limba romana, acestea apar la alaturarea
literelor fi si fl. Iata un exemplu—exagerat—de ligaturi:
cu ligatura:fi fl fara ligatura: fi flPentru a evita local ligaturile, utilizam grouping-ul: fi, respectiv fl. Caracterele din fonturile
cmtt10, cmr5 nu au ligaturi, vezi TEX, pag. 53, 428. Un fenomen asemanator este kerningul, adica
apropierea literelor pentru o mai buna prezentare, cf. TEX, ibidem:
cu kerning:AV fara kerning:AVIn mod analog, am utilizat groupingul pentru dezactivarea kerningului.
o6 o\Fiind gandit pentru vocabularul limbii engleze, kerningul va functiona “moderat” ın anumite
cuvinte din limba romana. Astfel, cuvantul
mijloc mijloc mijlocbeneficiaza minimal de acest “fine tuning” al TEX-ului, cf. TEX, pag. 169. Una dintre solutiile “home-
made” ©| de a apropia literele “i” si “j” se bazeaza pe instructiunea \kern:
mi\kern−.05emjloc produce: mijloc mijlocmijlocAtentie, comanda \kern ımpiedica despartirea ın silabe daca nu este urmata de “glue”, cf. TEX,
pag. 75. Vezi si TEX, pag. 311, raspunsul la Exercise 12.4, pag. 74.
o6 o\Ligaturile pot fi apelate din tabelul fontului cmbx10 prin comenzile:
\literemari \char‘013 ff\literemari \char‘014 fi\literemari \char‘015 fl\literemari \char‘016 ffi\literemari \char‘017 ffl
Cf. TEX, pag. 427. Primitiva \noboundary dezactiveaza ligaturile si kerningul pentru fonturi apar-
tinand altor limbi (decat engleza), cf. TEX, pag. 286. Nu are efect asupra fonturilor din formatul
plain, cf. ImpaTEX, pag. 101/No. 121—acestea nu au acel “boundary character” invizibil—.
Despartirea ın silabe—hyphenation— poate fi facuta manual, ın caz de necesitate, via instruc-
tiunea \-, cf. TEX, pag. 28. De exemplu, cuvantul “apartament” se desparte astfel:
comenzi: aparta\-ment rezultat: aparta-
ment
De asemeni, primitiva \-, ın formula instruc\-\ctiunea, produce expresia “instruc-
tiunea”
—atentie, aceasta se ıntampla doar cand randul curent este mai lung decat \hsize plus \hfuzz, cf.
TEX, pag. 30—. Puteti introduce comanda de despartire ın silabe preventiv iar TEX-ul o va executa
∼17∼
doar la nevoie ©| . Tot aici se cuvin mentionate instructiunile \discretionary si \hyphenchar,
cf. TEX, pag. 95.
In sfarsit, un macro util atunci cand puneti multe cuvinte “ıntre ghilimele” este dat de
comenzile:
%---ghilimele---
%permite despartirea in silabe si mentine modul TEX-ului, cf. TEX, pag. 279---
\def\ghili#1\leavevmode\begingroup\lq\lq#1\rq\rq\endgroup
%---sfarsit pt. ghilimele---
Apelarea sa se realizeaza oriunde ın textul obisnuit: \ghilitextul.
Full force ahead: matematica!
©| [. . .] mathematics is supposedly expensive, cf. TEX, pag. 127
Scrierea formulelor ın textul dumneavoastra presupune intrarea ıntr-unul din “modurile mate-
matice”, si anume modul in-line, apelat de comenzile $enuntulformulei$, respectiv modul dis-
play, dat de instructiunile $$enuntulformulei$$, cf. TEX, pag. 85.
Iata o formula scrisa ın modul in-line, si anume a = b, adica $a=b$, respectiv una produsa via
modul display:
a = b× c
adica $$a=b\times c$$.
o6 o\Vizualizarea celor sase moduri ale limbajului TEX, si anume vertical , vertical intern, ori-
zontal , orizontal restrictionat , matematic—in-line—, si matematic afisat—display—, cf. TEX ibi-
dem, se realizeaza plasand instructiunea \tracingcommands=1 la ınceputul fisierului munca.tex si
instructiunea \showlists imediat dupa portiunea de document ın care va intereseaza succesiunile
de moduri, cf. TEX, pag. 88 si TEX, Exercise 13.5, pag. 89, 313. Pentru deosebirea dintre stari si
moduri d.p.d.v. al anatomiei TEX-ului, vezi TEX, pag. 46, iar pentru “listele matematice” vezi TEX,
pag. 159.
o6 o\In modurile matematice, esentiale sunt fonturile si spatiile. Iata, e.g., deosebirea dintre \rm
a=b—ceea ce afiseaza a=b— si expresia in-line a = b data de comenzile anterioare. In limbajul
TEX, literele obisnuite sunt produse—ın modurile matematice!—cu italice ın timp ce cifrele si restul
simbolurilor—adica !, ?, etc—sunt afisate via caractere romane, i.e., fontul cmr10, apelat printr-una
din comenzile \rm, \tenrm. Vezi TEX, pag. 132, 154, 350, 427. TEX-ul recunoaste o serie de functii
matematice uzuale—sin, arctan, etc— si le afiseaza cu ajutorul fontului cmr10, cf. TEX, pag. 162.
Pentru a capata controlul asupra caracterelor din fonturile “matematice”, introducem urma-
toarele linii de cod ın fisierul set_de_macrouri.tex:
%---fonturi de mate---
\font\literematei=cmmi10
\font\literemateii=cmti10
\font\literemateiii=cmr10
\font\literemateiv=cmsy10
\font\literematev=cmex10
∼18∼
%---sfarsit fonturi de mate---
In continuare, listez majoritatea simbolurilor matematice ale formatului plain:
\hbox\literematei\char‘000 Γ \hbox\literematei\char‘001 ∆
\hbox\literematei\char‘002 Θ \hbox\literematei\char‘003 Λ
\hbox\literematei\char‘004 Ξ \hbox\literematei\char‘005 Π
\hbox\literematei\char‘006 Σ \hbox\literematei\char‘007 Υ
\hbox\literematei\char‘010 Φ \hbox\literematei\char‘011 Ψ
\hbox\literematei\char‘012 Ω \hbox\literematei\char‘013 α
\hbox\literematei\char‘014 β \hbox\literematei\char‘015 γ
\hbox\literematei\char‘016 δ \hbox\literematei\char‘017 ǫ
\hbox\literematei\char‘020 ζ \hbox\literematei\char‘021 η
\hbox\literematei\char‘022 θ \hbox\literematei\char‘023 ι
\hbox\literematei\char‘024 κ \hbox\literematei\char‘025 λ
\hbox\literematei\char‘026 µ \hbox\literematei\char‘027 ν
\hbox\literematei\char‘030 ξ \hbox\literematei\char‘031 ρ
\hbox\literematei\char‘033 σ \hbox\literematei\char‘034 τ
\hbox\literematei\char‘035 υ \hbox\literematei\char‘036 φ
\hbox\literematei\char‘037 χ \hbox\literematei\char‘040 ψ
\hbox\literematei\char‘041 ω \hbox\literematei\char‘042 ε
\hbox\literematei\char‘043 ϑ \hbox\literematei\char‘044
\hbox\literematei\char‘045 \hbox\literematei\char‘046 ς
\hbox\literematei\char‘047 ϕ \hbox\literematei\char‘050
\hbox\literematei\char‘051 \hbox\literematei\char‘052
\hbox\literematei\char‘053 \hbox\literematei\char‘056 ⊲
\hbox\literematei\char‘057 ⊳ \hbox\literematei\char‘077 ⋆
\hbox\literematei\char‘100 ∂ \hbox\literematei\char‘133
\hbox\literematei\char‘134 \hbox\literematei\char‘135 ♯
\hbox\literematei\char‘136 \hbox\literematei\char‘137
\hbox\literematei\char‘140 ℓ \hbox\literematei\char‘175 ℘
\hbox\literematei\char‘176 ~ \hbox\literematei\char‘177 ⁀
\hbox\literemateii\char‘000 Γ \hbox\literemateii\char‘001 ∆
\hbox\literemateii\char‘002 Θ \hbox\literemateii\char‘003 Λ
\hbox\literemateii\char‘004 Ξ \hbox\literemateii\char‘005 Π
\hbox\literemateii\char‘006 Σ \hbox\literemateii\char‘007 Υ
\hbox\literemateii\char‘010 Φ \hbox\literemateii\char‘011 Ψ
\hbox\literemateii\char‘012 Ω \hbox\literemateii\char‘074 ¡
\hbox\literemateii\char‘034 ø \hbox\literemateii\char‘037 Ø
\hbox\literemateii\char‘043 # \hbox\literemateii\char‘044 £
\hbox\literemateii\char‘046 & \hbox\literemateii\char‘045 %
\hbox\literemateii\char‘076 ¿ \hbox\literemateii\char‘100 @
\hbox\literemateiii\char‘000 Γ \hbox\literemateiii\char‘001 ∆
\hbox\literemateiii\char‘002 Θ \hbox\literemateiii\char‘003 Λ
\hbox\literemateiii\char‘004 Ξ \hbox\literemateiii\char‘005 Π
\hbox\literemateiii\char‘006 Σ \hbox\literemateiii\char‘007 Υ
\hbox\literemateiii\char‘010 Φ \hbox\literemateiii\char‘011 Ψ
\hbox\literemateiii\char‘012 Ω \hbox\literemateiii\char‘074 ¡
\hbox\literemateiii\char‘034 ø \hbox\literemateiii\char‘037 Ø
∼19∼
\hbox\literemateiii\char‘043 # \hbox\literemateiii\char‘044 $
\hbox\literemateiii\char‘046 & \hbox\literemateiii\char‘045 %
\hbox\literemateiii\char‘076 ¿ \hbox\literemateiii\char‘100 @
\hbox\literemateiv\char‘004 ÷ \hbox\literemateiv\char‘005 ⋄\hbox\literemateiv\char‘006 ± \hbox\literemateiv\char‘007 ∓\hbox\literemateiv\char‘010 ⊕ \hbox\literemateiv\char‘011 ⊖
\hbox\literemateiv\char‘012 ⊗ \hbox\literemateiv\char‘013 ⊘\hbox\literemateiv\char‘014 ⊙ \hbox\literemateiv\char‘015 ©\hbox\literemateiv\char‘016 \hbox\literemateiv\char‘017 •\hbox\literemateiv\char‘020 ≍ \hbox\literemateiv\char‘021 ≡\hbox\literemateiv\char‘022 ⊆ \hbox\literemateiv\char‘023 ⊇\hbox\literemateiv\char‘024 ≤ \hbox\literemateiv\char‘025 ≥\hbox\literemateiv\char‘026 \hbox\literemateiv\char‘027 \hbox\literemateiv\char‘030 ∼ \hbox\literemateiv\char‘031 ≈\hbox\literemateiv\char‘032 ⊂ \hbox\literemateiv\char‘033 ⊃\hbox\literemateiv\char‘034 ≪ \hbox\literemateiv\char‘035 ≫\hbox\literemateiv\char‘036 ≺ \hbox\literemateiv\char‘037 ≻\hbox\literemateiv\char‘040 ← \hbox\literemateiv\char‘041 →\hbox\literemateiv\char‘042 ↑ \hbox\literemateiv\char‘043 ↓
\hbox\literemateiv\char‘044 ↔ \hbox\literemateiv\char‘045 ր\hbox\literemateiv\char‘046 ց \hbox\literemateiv\char‘047 ≃\hbox\literemateiv\char‘050 ⇐ \hbox\literemateiv\char‘051 ⇒\hbox\literemateiv\char‘052 ⇑ \hbox\literemateiv\char‘053 ⇓\hbox\literemateiv\char‘054 ⇔ \hbox\literemateiv\char‘055 տ\hbox\literemateiv\char‘056 ւ \hbox\literemateiv\char‘057 ∝\hbox\literemateiv\char‘060 ′ \hbox\literemateiv\char‘061 ∞\hbox\literemateiv\char‘062 ∈ \hbox\literemateiv\char‘063 ∋\hbox\literemateiv\char‘064 \hbox\literemateiv\char‘065 \hbox\literemateiv\char‘067 7 \hbox\literemateiv\char‘070 ∀\hbox\literemateiv\char‘071 ∃ \hbox\literemateiv\char‘072 ¬\hbox\literemateiv\char‘073 ∅ \hbox\literemateiv\char‘076 ⊤\hbox\literemateiv\char‘077 ⊥ \hbox\literemateiv\char‘100 ℵ
\hbox\literemateiv\char‘133 ∪ \hbox\literemateiv\char‘134 ∩\hbox\literemateiv\char‘136 ∧ \hbox\literemateiv\char‘137 ∨\hbox\literemateiv\char‘140 ⊢ \hbox\literemateiv\char‘141 ⊣\hbox\literemateiv\char‘161 ∐ \hbox\literemateiv\char‘162 ∇\hbox\literemateiv\char‘163 ∫ \hbox\literemateiv\char‘164 ⊔\hbox\literemateiv\char‘165 ⊓ \hbox\literemateiv\char‘166 ⊑\hbox\literemateiv\char‘167 ⊒ \hbox\literemateiv\char‘170 §\hbox\literemateiv\char‘171 † \hbox\literemateiv\char‘172 ‡\hbox\literemateiv\char‘173 ¶ \hbox\literemateiv\char‘174 ♣\hbox\literemateiv\char‘175 ♦ \hbox\literemateiv\char‘176 ♥\hbox\literemateiv\char‘177 ♠
\hbox\literematev\char‘106 ⊔ \hbox\literematev\char‘107 ⊔
\hbox\literematev\char‘110 ∮ \hbox\literematev\char‘111 ∮
∼20∼
\hbox\literematev\char‘112 ⊙ \hbox\literematev\char‘113 ⊙
\hbox\literematev\char‘114 ⊕ \hbox\literematev\char‘115 ⊕
\hbox\literematev\char‘116 ⊗ \hbox\literematev\char‘117 ⊗
\hbox\literematev\char‘120 ∑ \hbox\literematev\char‘121 ∏\hbox\literematev\char‘122 ∫ \hbox\literematev\char‘123 ⋃\hbox\literematev\char‘124 ⋂ \hbox\literematev\char‘126 ∧\hbox\literematev\char‘127 ∨ \hbox\literematev\char‘130 ∑
\hbox\literematev\char‘131 ∏ \hbox\literematev\char‘163 √
\hbox\literematev\char‘132 ∫ \hbox\literematev\char‘133 ⋃
\hbox\literematev\char‘134 ⋂ \hbox\literematev\char‘136 ∧
\hbox\literematev\char‘137 ∨ \hbox\literematev\char‘140 ∐
\hbox\literematev\char‘141 ∐ \hbox\literematev\char‘142
\hbox\literematev\char‘143 \hbox\literematev\char‘144 \hbox\literematev\char‘166 √ \hbox\literematev\char‘170 x\hbox\literematev\char‘171 y \hbox\literematev\char‘176 ~\hbox\literematev\char‘177 \hbox\literematev\char‘160 √
Cf. TEX, pag. 427–432.
Deoarece inserarea manuala a caracterelor “de mate” este dificila ©| , acestea sunt produse
cu o serie de instructiuni denumite sugestiv (ın engleza!), care pot fi apelate numai ıntr-unul din
modurile matematice—ıntre “dolarii” $—:
\pm ± \cap ∩ \vee ∨\mp ∓ \cup ∪ \wedge ∧\setminus \ \oplus ⊕ \cdot ·\sqcap ⊓ \ominus ⊖ \times ×\sqcup ⊔ \otimes ⊗ \ast ∗\triangleleft ⊳ \oslah ⊘ \star ⋆
\triangleright ⊲ \odot ⊙ \diamond ⋄\dagger † \circ \bigcirc ©\ddagger ‡ \bullet • \bigtriangleup \amalg ∐ \div ÷ \bigtriangledown \leq ≤ \geq ≥ \equiv ≡\prec ≺ \succ ≻ \sim ∼\preceq \succeq \simeq ≃\ll ≪ \gg ≫ \asymp ≍\subset ⊂ \supset ⊃ \approx ≈\subseteq ⊆ \supseteq ⊇ \cong ∼=\sqsubseteq ⊑ \sqsupseteq ⊒ \bowtie ⊲⊳
∼21∼
\in ∈ \ni ∋ \propto ∝\vdash ⊢ \dashv ⊣ \models |=\smile \mid | \doteq
.=
\frown \parallel ‖ \perp ⊥\not< 6< \not> 6> \not= 6=\not\leq 6≤ \not\geq 6≥ \not\equiv 6≡\not\prec 6≺ \not\succ 6≻ \not\sim 6∼\not\preceq 6 \not\succeq 6 \not\simeq 6≃\not\subset 6⊂ \not\supset 6⊃ \not\approx 6≈\not\subseteq 6⊆ \not\supseteq 6⊇ \not\cong 6∼=\not\sqsubseteq 6⊑ \not\sqsupseteq 6⊒ \not\asymp 6≍\aleph ℵ \prime ′ \forall ∀\emptyset ∅ \exists ∃ \nabla ∇\surd
√\flat \top ⊤
\natural \wp ℘ \bot ⊥\sharp ♯ \Re ℜ \| ‖\clubsuit ♣ \Im ℑ \angle 6
\diamondsuit ♦ \partial ∂ \triangle \hearsuit ♥ \infty ∞ \backslash \\sum
∑\bigcap
⋂\bigodot
⊙
\prod∏
\bigcup⋃
\bigotimes⊗
\coprod∐
\bigsqcup⊔
\bigoplus⊕
\int∫
\bigvee∨
\oint∮
\bigwedge∧
\leftarrow ← \longleftarrow ←−\uparrow ↑ \Leftarrow ⇐ \Longleftarrow ⇐=
\Uparrow ⇑ \rightarrow → \longrightarrow −→\downarrow ↓ \Rightarrow ⇒ \Longrightarrow =⇒\Downarrow ⇓ \leftrightarrow ↔ \longleftrightarrow ←→\updownarrow l \Leftrightarrow ⇔ \Longleftrightarrow ⇐⇒\Updownarrow m \mapsto 7→ \longmapsto 7−→\hookleftarrow ← \hookrightarrow → \searrow ց\leftharpoonup \rightharpoondown \swarrow ւ\nwarrow տ \rightleftharpoons \nearrow ր
Cf. TEX, pag. 435 si urmatoarele. Atentie, caracterele apelate astfel ısi pot schimba dimensiunile
ın functie de modul matematic/pozitionarea ın formula. Vezi TEX, e.g., pag. 141, 144—conceptul
de large operators—.
o6 o\Iata doua metode de a modifica numele instructiunilor, ınsotite de recomandarea de a se con-
suma cu moderatie. Prima dintre ele foloseste faptul ca TEX-ul permite mai multe nume pentru
acelasi lucru. De exemplu, instructiunile $\neq$, $\ne$ si $\not=$ produc toate simbolul matematic
in-line: 6=, cf. TEX, pag. 361. Sintaxa redenumirii unei instructiuni este
\let\numenou=\numevechi
Drept exemplu, grupul de comenzi
\let\literaalfa=\alpha%
$\literaalfa=\alpha$
va produce afisarea formulei in-line: α = α.
∼22∼
Cea de-a doua metoda presupune anularea unei instructiuni urmata de redefinirea ei. Astfel,
grupul de comenzi
\csname input\endcsname%
\def\input\bf Bear %
\input este starul din \lq\lqSupravietuitorul\rq\rq!
va face ca TEX-ul sa “uite” momentan ce ınseamna instructiunea \input, ınlocuind-o cu “nimic”,
adica \relax, cf. TEX, Exercise 7.7, pag. 40, si apoi va produce afisarea listei de caractere Bear ın
sirul “Bear este starul din “Supravietuitorul”! ”, cf. TEX, pag. 40. In acest mod, dupa ce am gasit
comenzile care definesc macroul ce ne intereseaza din formatul plain—ın exemplul nostru: \bf
Bear —, le putem aloca acestora noul nume.
o6 o\Literele grecesti, ın modurile matematice, sunt apelate de formulele de mai jos:
\alpha α \iota ι \varrho
\beta β \kappa κ \sigma σ
\gamma γ \lambda λ \varsigma ς
\delta δ \mu µ \tau τ
\epsilon ǫ \nu ν \upsilon υ
\varepsilon ε \xi ξ \phi φ
\zeta ζ o o \varphi ϕ
\eta η \pi π \chi χ
\theta θ \varpi \psi ψ
\vartheta ϑ \rho ρ \omega ω
\Gamma Γ \Xi Ξ \Phi Φ
\Delta ∆ \Pi Π \Psi Ψ
\Theta Θ \Sigma Σ \Omega Ω
\Lambda Λ \Upsilon Υ
Cf. TEX, pag. 434.
Cu ajutorul urmatoarelor formule, introduse ın fisierul set_de_macrouri.tex, obtinem sim-
boluri “home-made”©| ale principalelor multimi de numere: N∣∣
, Z//, Q∣∣
, R∣∣
si C∣∣. Aceste macrouri pot
fi apelate oriunde, indiferent de mod.
%---multimi de nr. importante: la 10pt---
\font\litmati=cmr10
\font\limati=cmex10
\font\lipmati=cmsy10
\font\minimati=cmr5
\def\baramatex]\leavevmode\limati \char‘014
\def\primtex]\leavevmode\minimati \char‘057
\def\rmatex]\leavevmode\litmati \char‘122
\def\qmatex]\leavevmode\litmati \char‘121
\def\cmatex]\leavevmode\litmati \char‘103
\def\zmatex]\leavevmode\litmati \char‘132
\def\nmatex]\leavevmode\litmati \char‘116
\def\bbaramatex]\leavevmode\raise6.21truept\hbox\baramatex]%
\kern-3.3truept\raise6.6truept\hbox\baramatex]\hbox to5.1truept
\def\bbbaramatex]\leavevmode\raise6.4truept\hbox\baramatex]%
∼23∼
\kern-3.3truept\raise6.4truept\hbox\baramatex]\hbox to2.7truept
\def\rmate]\leavevmode\hbox\rmatex]\kern−8.8truept\bbaramatex]
\def\qmate]\leavevmode\hbox\kern−.8truept\qmatex]%\kern−7truept\bbbaramatex]
\def\cmate]\leavevmode\hbox\kern−.8truept\cmatex]%\kern−6truept\bbaramatex]\kern−3truept
\def\zmate]\leavevmode\hbox\kern−.8truept\zmatex]%\kern−4.2truept\raise1.3truept\hbox\primtex]%
\kern−2.6truept\raise1.8truept\hbox\primtex]\kern−1truept
\def\nmate]\leavevmode\hbox\nmatex]\kern−8.8truept\bbaramatex]
%---sfarsit pt. multimi de nr. importante---
Apelarea lor se realizeaza astfel—N∣∣
u C∣∣oN∣∣
teaZ//a Q∣∣
oN∣∣
textul C∣∣uR∣∣
ent—:
\nmate] produce: N∣∣
\zmate] produce: Z//
\qmate] produce: Q∣∣
\rmate] produce: R∣∣
\cmate] produce: C∣∣
Alte trei macrouri utile privesc radicalii:
%---radicali---
\def\radi[#1]#2\root #1\of \mathstrut #2%---cf. TEX, pag. 131---
\def\raddi#1\sqrt\mathstrut #1%---cf. TEX, pag. 130---
\def\radddi#1\root 2\of \mathstrut #1
%---sfarsit pt. radicali---
Apelarea lor, ın modurile matematice, se realizeaza astfel:
\radi[43]a produce: 43√a
\radi[43]ab produce: 43√ab
\radi[43 + c]a b produce: 43+c
√ab
\radi[43]ab produce: 43√ab
\raddia produce:√a
\radddia produce: 2√a
O eventuala repozitionare a ordinului radicalilor se realizeaza cu instructiunile \raise, \lower,
\hbox, cf. TEX, pag. 179.
o6 o\
In tabelul anterior s-au evidentiat doua din caracteristicile fundamentale ale modurilor matem-
atice: anularea spatiului liber “de la tastatura”, cf. TEX, pag. 127, respectiv alegerea automata a
fonturilor pentru diversele subformule—ın cazul nostru, 43, 43+c si 2—ale formulei principale. Aces-
tea sunt grupate ın opt stiluri, si anume afisat—display—, text , script , scriptscript ımpreuna cu cele
patru variante “cramped”—ınghesuite—ale lor, cf. TEX, pag. 140. Fonturile ın moduri matematice
au trei ordine de marime: textsize, scriptsize si scriptscriptsize, cf. TEX, pag. 153.
o6 o\Modificarea stilului unei subformule poate fi realizata ca mai jos
\radi[\displaystyle 43]a produce: 43√a
\radi[\displaystyle 43+\scriptstyle c]a produce: 43+c√a
\radi[\scriptscriptstyle 43+\textstyle c]a produce: 43+c√a
∼24∼
\radi[\hbox\literemedii 43+\hbox\literemari c]a produce: 43+c√a
Cf. TEX, pag 141, 163.
TEX-ul, spuneam, descurajeaza introducerea spatiilor goale “de la tastatura” dar pune ın miscare
un algoritm extrem de sofisticat/inteligent de pozitionare a “entitatilor” grafice—listele matema-
tice—.
o6 o\O “lista matematica” se compune din atomi—de treisprezece tipuri: Ord, Op, Bin, Rel, Open,
Close, Punct, Inner, Over, Under, Acc, Rad, Vcent, vezi TEX, pag. 158—, glue, etc, cf. TEX, pag.
157. La randul sau, un atom se compune din nucleu, superscript si subscript , cf. TEX, 158. Spatierea
entitatilor grafice ale unei formule, la nivel “atomic”, este descrisa ın tabelul din TEX, pag. 170.
o6 o\
Impreuna cu algoritmii de despartire a cuvintelor ın silabe, a paragrafelor ın linii si a docu-
mentelor ın pagini, mecanismul de spatiere a entitatilor grafice—ın particular, a formulelor mate-
matice—constituie centrul limbajului de programare TEX. Nu este de mirare©| nivelul apreciabil
de dificultate al regulilor sale—ınsusi profesorul Knuth afirma ca “People usually work with TEX at
least a year before they find their first application for \valign; [. . .]”, vezi TEX, pag. 249—.
Optez, de aceea, pentru ©| evitarea prezentarii riguroase a acestor reguli si recomand urma-
torul “truc” pentru spatiere manuala—barele verticale din formule au fost introduse pe post de
“ruleta”—:
$abcdef$ produce: abc||def$abc \hbox\hskip2cm def$ produce: abc| |def$abc \hbox\hskip−.5cm def$ produce: abcdef ; cu alte cuvinte: abc|
|defVezi TEX, pag. 185. Alte comenzi, ın modurile matematice, sunt date de instructiunile “\,”, “\>”,
“\;”, “\!”, cf. TEX, pag. 167, \thinmuskip, \medmuskip, \thickmuskip, \mskip, \mkern, cf. TEX,
pag. 168, etc.
De asemeni, utilizarea groupingului ın formulele matematice transforma orice simbol “cu prob-
leme de spatiere” ın ınsemn obisnuit:
$f:I\to J$ produce: f : I → J
$f:I\to J$ produce: f :I → J
$55,43$ produce: 55, 43
$55,43$ produce: 55,43
In sfarsit, instructiunea \mathsurround stabileste cat de mult spatiu gol suplimentar se va pune
de-o parte si de alta a unei formule matematice in-line, cf. TEX, pag. 97. In formatul plain, setarea
este data de \mathsurround=0pt, cf. TEX, pag. 162.
Limite si operatori. “Trecerea la limita” este o operatiune frecventa ©| ın documentele
matematice:
$$\lim_t\rightarrow+\inftya$$ produce: limt→+∞
a
$\lim_t\rightarrow+\inftya$ produce: limt→+∞ a
$\lim\limits_t\rightarrow+\inftya$ produce: limt→+∞
a
$$\lim\nolimits_t\rightarrow+\inftya$$ produce: limt→+∞ a
∼25∼
Cf. TEX, pag. 144. In legatura cu primitivele \limits, \nolimits, mentionez si primitiva \dis-
playlimits, vezi TEX, ibidem. In primele doua linii din tabelul anterior poate fi remarcat compor-
tamentul de operator matematic al instructiunii \lim. TEX-ul recunoaste ca operatori matematici
cele treizeci si doua de instructiuni de mai jos:
\arccos \cos \csc \exp
\ker \limsup \min \sinh
\arcsin \cosh \deg \gcd
\lg \ln \Pr \sup
\arctan \cot \det \hom
\lim \log \sec \tan
\arg \coth \dim \inf
\liminf \max \sin \tanh
Cf. TEX, pag. 162, 361. Puteti construi dumneavoastra ınsiva asemenea operatori matematici via
urmatoarele instrutiuni:
\def\numeoperator\mathop\rm numeoperator
Efectul lor este vizibil ın urmatorul tabel:
$$\numeoperator_t\searrow\alphaa$$ produce: numeoperatortցα
a
$\numeoperator_t\geq1a$ produce: numeoperatort≥1 a
$\numeoperator\limits^t\in Ta$ produce:t∈T
numeoperatora
$$\numeoperator\nolimits_-\infty\swarrow ta$$ produce: numeoperator−∞ւt a
Puterile si indecsii sunt inserate astfel:
$a_b$, $a\sbb$ produc: ab$a^b$, $a\spb$ produc: ab
$_ca$ produce: ca
$^ca$ produce: ca
$a_b^c$, $a^c_b$ produc: acb$a^\prime$ produce: a′
$A_b^cd_e$ produce: Abcd
e
Cf. TEX, pag. 128, 130, 135, 319, raspunsul de la Exercise 16.6, pag. 130.
Delimitatori si ınaltimi. Delimitatorii sunt elemente grafice care ınconjoara o formula mate-
matica si tin seama de ınaltimea sa—via primitivele \left si \right—:
$\left\lbrace a^b\right\rbrace$ produce:ab
$\left\lbracea^b^c^d\right\rbrace$ produce:ab
cd
$\left\lbrace a\atop b\right\rbrace$ produce:ab
$\left\lbracea\atop b\atopc\atop d\right\rbrace$ produce:
a
bc
d
$\left\lbracea\atop b\atopc\atop d\right\rangle$ produce:
a
bc
d
⟩
$\left\lbracea\atop b\atopc\atop d\right.$ produce:
a
bc
d
Cf. TEX, pag. 148.
In urmatorul tabel apar cei douazeci si doi de delimitatori ai formatului plain:
( paranteza stanga: (
∼26∼
) paranteza dreapta: )
[ sau \lbrack paranteza patrata stanga: [
] sau \rbrack paranteza patrata dreapta: ]
\ sau \lbrace acolada stanga: \ sau \rbrace acolada dreapta: \lfloor podeaua stanga: ⌊ —parte ıntreaga—
\rfloor podeaua dreapta: ⌋\lceil tavanul stang: ⌈ —parte ıntreaga plus 1—
\rceil tavanul drept: ⌉\langle unghiul stang: 〈\rangle unghiul drept: 〉/ taietura dreapta ©| , adica slash: /
\backslash taietura stanga: \| sau \vert bara verticala: |\| sau \Vert dubla bara verticala: ‖\uparrow sageata ın sus: ↑\Uparrow dubla sageata ın sus: ⇑\downarrow sageata ın jos: ↓\Downarrow dubla sageata ın jos: ⇓\updownarrow sageata ın sus si ın jos: l\Updownarrow dubla sageata ın sus si ın jos: m
Cf. TEX, pag. 146. Acestora li se adauga delimitatorii nuli , care sunt produsi cu comenzile “\left.”,
“\right.”, vezi TEX, pag. 149. Lor le corespunde un mic spatiu gol ın formula, setat ın plain de
\nulldelimiterspace=1.2pt, cf. TEX, pag. 150.
Cutii si numere de ecuatii. Pentru a utiliza un set de formule, pozitionate pe randuri supra-
puse, ca o subformula—cutie—, se folosesc instructiunile \eqalign, \noalign si \vskip. Astfel,
comenzile
$$f(x)=\left\lbrace%
\eqaligna&=b\cr c&+d\cr %
e&\mid f\cr\right.\eqno(30)$$
produc:
f(x) =
a = b
c+ d
e | f(30)
Cf. TEX, pag. 191, 326, raspunsul la Exercise 19.6, pag. 187. Putem introduce oricate linii dorim.
Simbolul “&” este cel care decide linia verticala de aliniere a “intrarilor” din cutia data de \eqalign.
Vezi TEX, pag. 327, raspunsul la Exercise 19.11, pag. 191. O alta formula multi-linie realizata cu
\eqalign este
a = b ≤ c≤ d = e
Liniile sale de cod sunt:
$$\eqaligna=b&\leq c\cr %
&\leq d=e\cr$$
∼27∼
Cf. TEX, pag. 326, raspunsul la Exercise 19.9, pag. 191. Mentionez si metoda de a construi for-
mule multi-linie complicate cu ajutorul macroului \displaylines, cf. TEX, pag. 196. Controlul
distantelor inter-linii se face cu primitiva \noalign. Mai precis, instructiunile
$$\left\lbrace\eqaligna&=b\cr c&=d\cr \noalign\vskip−10pt%
e&=f\cr\right.\eqno\hbox\literemateiv\char‘177
produc:
a = b
c = de = f
♠
Primitiva \eqno introduce “numerele” ın ecuatii—manual—. Acestea sunt formule matematice
ın stilul text , cf. TEX, Exercise 19.6, pag. 187. Mentionez primitiva \leqno care plaseaza ın stanga
numerele ecuatiilor, cf. TEX, pag. 187. Exista posibilitatea de a aseza numarul ecuatiei pe urmatorul
rand—pentru numerele “pe dreapta”—, respectiv pe randul precedent—pentru numerele “pe stan-
ga”—ecuatiei via macrourile \llap, \rlap, cf. TEX, pag. 189. Tot aici trebuie amintite macrourile
\smash, \phantom, cf. TEX, pag. 327, raspunsul la Exercise 19.15, pag. 193, si pag. 178.
o6 o\Modurile/macrourile matematice pot fi folosite la construtia unor elemente grafice accesibile
textului obsnuit. E.g., acest paragraf este “pazit” de “spade ıncrucisate”—cu indulgenta ©| —,
apelate de instructiunea \incheieredemo], a carei definitie este data mai jos:
%---spade incrucisate la sfarsitul demonstratiilor matematice; la 10pt--
\font\obisnuit=cmsy10
\font\oddbisnuit=cmtt10
\def\bara]\leavevmode\obisnuit \char‘066
\def\bbara]\leavevmode\obisnuit \char‘156
\def\ooo]\leavevmode\oddbisnuit \char‘157
\def\spadeincrucisate]\leavevmode\lower2.5truept\hbox\ooo]%
\kern−5truept\bara]%
\kern4.5truept\lower2.5truept\hbox\ooo]\kern−6.2truept\bbara]
\def\incheieredemo]\par\nointerlineskip%
$$\eqno\hbox\spadeincrucisate]$$\par\nointerlineskip
%---sfarsitul spadelor incrucisate--
Un alt macro este cel al centului, vezi TEX, pag. 140, Exercise 17.4: /c, apelat cu \centi].
Definitia sa este:
%---centi, la 10pt--
\def\centi]\leavevmode\hbox$/$\kern−.08truein$c$
%---sfarsitul centilor--
Desi sunt usor manevrabile ın construtia de macrouri “home-made”—profesorul Knuth foloseste
expresia “homegrown display” ©| , cf. TEX, pag. 194—portiunile matematice pot fi afectate de
setarile mediului ınconjurator. Acesta este unul din motivele pentru care macrourile “de negare” sau
“taiate”, e.g., 6=, se preteaza mai bine la \llap, \rlap, vezi TEX, pag. 82.
o6 o\Ecuatii multi-linie si numere de ecuatii. Doua macrouri, \eqalignno si \leqalignno per-
mit numerotarea unora dintre linii:
∼28∼
a = b (3)
= c+ d
⊗ e (2–5)
cu sursa
$$\eqalignnoa&=b&(3)\cr %
&=c+d\cr %
&\otimes e&\hbox(2--5)\cr$$
Cel de-al doilea simbol “&” produce afisarea numarului de linie, cf. TEX, pag. 192. Primitiva
\noalign permite coborarea/ridicarea unei “cutii” \eqalign fata de axul formulei, vezi TEX, pag.
150. De exemplu,
∫∫∫
Ω
=ab ∨ ∧
c = d
cu instructiunile
$$\mathop\int\kern−6truept%
\int\−6truept\int\limits_\displaystyle\kern−5truept\Omega%
=\eqalign\cr\noalign\vskip15truept ab\lor\land&\cr c&=d\cr$$
Matrice si determinanti. Introducem urmatoarele macrouri ın set_de_macrouri.tex:
%---matrice, determinanti--
\def\matricedoi#1#2#3#4\left(\matrix#1\cr%
#3\cr\right)
\def\determdoi#1#2#3#4\left\vert\matrix#1\cr%
#3\cr\right\vert
%---sfarsit pt. matrice, determinanti--
Astfel, instructiunile
$$\matricedoiabcd\quad\determdoiefgh$$
produc afisarile
(a bc d
) ∣∣∣∣e fg h
∣∣∣∣
Cf. TEX, pag. 176.
Puncte, puncte, puncte—ellipsis points/dots—:
$\ldots$ produce . . .
$\vdots$ produce...
$\ddots$ produce. . .
$\cdots$ produce · · ·$\dots$, \dots produc . . .
Vezi TEX, pag. 173, 177.
∼29∼
Despartirea ın subformule este ımpiedicata de grouping, respectiv de macroul \nobreak:
$a=\nobreak b$, cf. TEX, pag. 174, Exercise 18.19. Mentionez si macroul \allowbreak, cf. TEX,
ibidem. Lista instructiunilor din formatul plain care controleaza despartirea ın silabe/subformule
se gaseste ın TEX, pag. 339.
Accente ın modurile matematice:
$\hato$ o $\tildeo$ o
$\checko$ o $\acuteo$ o
$\graveo$ o $\doto$ o
$\ddoto$ o $\breveo$ o
$\baro$ o $\veco$ ~o
$\widehatooo$ ooo $\widetildeo$ ooo
$\underlineoooo$ oooo $\overlineoooo$ oooo
$\underbraceoooooo$ oooooo︸ ︷︷ ︸ $\overbraceoooooo$︷ ︸︸ ︷oooooo
$\underbraceooo\limits_p$ ooo︸︷︷︸p
$\overbraceooo\limits^p$
p︷︸︸︷ooo
Cf. TEX, pag. 135, 176. In plus—vezi TEX, pag. 437—,
$\buildrelabc\overdef$ produce:abc
def
Tabel simplu. Instructiunile care urmeaza, si anume
\settabs\+aaaaaaaaaaaaaa&bbbbbbbb&ccccc&\cr
\+&d&&e\cr
\+&fg&h&i\cr
genereaza tabelul:
d e
fg h i
Aici, primul rand al instructiunilor desemneaza lungimile “celulelor” iar simbolul “&” reprezinta
pozitia fiecarei celule pe randul curent, cf. TEX, pag. 232.
Incheiere
Documentul dumneavoastra este finalizat odata cu afisarea bibliografiei. Un model extrem de
simplu, care functioneaza eficient atunci cand se utilizeaza numere naturale mici pentru nu-
merotarea intrarilor din lista, este dat de urmatoarele linii de cod:
%---minibibliografie---
%---inspirata de macroul \item, vezi TEX, pag. 102, 335---
\def\stanga]\leavevmode\hangindent=2\parindent\hangafter=0
\def\referinta#1;#2;#3;\noindent\stanga]%
\llap\rm \char‘133#1\char‘135\hbox to 4truept%
\begingroup\rm #2\hbox to4truept\it #3%
\hbox to4truept\endgroup
\def\numar#1,#2;\leavevmode\hbox to2truept\bf #1 %
\rm \char‘050#2\char‘051\char‘054\hbox to4truept
%---sfarsit pt. minibibliografie---
∼30∼
Apelarea bibliografiei se realizeaza astfel:
\referinta Knuth;D.E. Knuth, The TEXbook;Addison Wessley, 1990; produce: [Knuth]
\referinta Knuth2;;Addison Wessley, 1990; produce: [Knuth2]
\referinta Knuth3;D.E. Knuth, The TEXbook;; produce: [Knuth3]
\referinta3;J. Harold, Nice paper;Proc AMS;\numar4,1987;3--8 produce: [3]
\referinta5;;J Math Phys;00875689 produce: [5]
[Knuth] D.E. Knuth, The TEXbook Addison Wesley, 1990
[Knuth2] Addison Wesley, 1990
[Knuth3] D.E. Knuth, The TEXbook
[3] J. Harold, Nice paper Proc AMS 4 (1987), 3–8
[5] J Math Phys 00875689
Un exemplu de referinta bibliografica pe mai multe linii, produsa de aceleasi instructiuni
\referinta, \numar, este dat mai jos apeland la un pasaj din cartea profesorului T. Nagel, Oare ce
ınseamna toate astea? O foarte scurta introducere ın filosofie, Ed. ALL, Bucuresti, 2004.
[Nagel] Este chiar posibil sa nu ai nici corp, nici creier – ıntrucat convingerile tale ın aceasta privinta
ısi au originea exclusiv ın dovezile furnizate de simturi. Nu ti-ai vazut niciodata creierul –
presupui doar ca toata lumea poseda unul – dar chiar daca l-ai fi vazut, sau ai crede ca l-ai
vazut, asta n-ar fi decat o experienta vizuala ca oricare alta. Poate ca nu existi decat tu,
subiectul experientei, si poate ca nu exista nicio lume fizica – nici stele, nici pamant, nici
fiinte omenesti. Poate ca nici macar spatiul nu exista. Oare ce ınseamna toate astea? ALL
(2004), pag. 13
Puteti, de acum, produce documente cu formule matematice bine afisate! Felicitari! Si . . .
O cupa de sampanie (virtuala) din partea mea:⊥˚
∼31∼
top related