N te de TEX T X DVIPS Vers.1 - octawian.ro · TEX este un limbaj de programare dedicat producerii...

31
Acest eseu nu a fost raportat vreunui referent. ˆ In consecint ¸˘ a, cont ¸inutul s˘ au trebuie considerat “ca atare.” ˆ In particular, utilizarea instruct ¸iunilor care urmeaz˘ a se face pe r˘ aspunderea dumneavoastr˘a. Autorul v˘ a a¸ steapt˘a comentariile la adresa de e-mail de mai jos ¸ si v˘ a mult ¸ume¸ ste anticipat pentru efortul depus. N te de T E X T E X YAP DVIPS Vers.1.3 Fi¸ sier procesat ˆ ın data de [September 14, 2015] de Octavian G. Mustafa e-mail address: [email protected] ˆ Inceput T E X este un limbaj de programare dedicat producerii de texte ¸ stiint ¸ifice sau beletristice care a fost inventat de profesorul Donald E. Knuth de la universitatea Stanford. ˆ In forma sa actual˘ a, limbajul este descris ˆ ın cartea The T E Xbook. Seventeenth printing, revised, January 1990, Reading, Massachusetts: Addison Wesley Publishing Company. ˆ In continuare,ne vom referila aceast˘a surs˘ a cu apelativul T E X. Un ajutor excelent pentru ˆ ınt ¸elegerea limbajului T E ıl constituie cartea T E X for the Impatient de Paul W. Abrahams, Kathryn A. Hargreaves ¸ si Karl Berry, 2003—Addison Wesley Publishing Company, 1990 —. Ea este disponibil˘a, conform“GNU Free Documentation License”, la adresa http://www.ctan.org/tex-archive/info/impatient ˆ In continuare, ne vomreferi la aceast˘a surs˘ a cu apelativul ImpaT E X. Pentru GNU, vezi ImpaT E X, pag. 341/No. 361. De asemeni, cartea T E X by topic, a T E Xnician’s reference de Victor Eijkhout, arhi- vat˘a la adresa https://savannah.nongnu.org/projects/texbytopic constituie o surs˘ a riguroas˘ade informat ¸ii avansate. o o \ Materialul de fat ¸˘ a se adreseaz˘ acelor care doresc s˘a produc˘a documente cu formule matematice ar˘ a complicat ¸ii deosebite sub sistemul de operare Windows 8.1. ˆ In acest scop, trebuie desc˘arcate din Internet mai multe componente ale unui “sistem publicistic”. Astfel, avet ¸i nevoie de un motor T E X, oferit de excelentul pachet (gratuit) MiKTeX: 1

Transcript of N te de TEX T X DVIPS Vers.1 - octawian.ro · TEX este un limbaj de programare dedicat producerii...

Page 1: N te de TEX T X DVIPS Vers.1 - octawian.ro · TEX este un limbaj de programare dedicat producerii de texte ¸stiin¸tifice sau beletristice care a fost inventat de profesorul Donald

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: [email protected]

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∼

Page 2: N te de TEX T X DVIPS Vers.1 - octawian.ro · TEX este un limbaj de programare dedicat producerii de texte ¸stiin¸tifice sau beletristice care a fost inventat de profesorul Donald

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∼

Page 3: N te de TEX T X DVIPS Vers.1 - octawian.ro · TEX este un limbaj de programare dedicat producerii de texte ¸stiin¸tifice sau beletristice care a fost inventat de profesorul Donald

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∼

Page 4: N te de TEX T X DVIPS Vers.1 - octawian.ro · TEX este un limbaj de programare dedicat producerii de texte ¸stiin¸tifice sau beletristice care a fost inventat de profesorul Donald

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∼

Page 5: N te de TEX T X DVIPS Vers.1 - octawian.ro · TEX este un limbaj de programare dedicat producerii de texte ¸stiin¸tifice sau beletristice care a fost inventat de profesorul Donald

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∼

Page 6: N te de TEX T X DVIPS Vers.1 - octawian.ro · TEX este un limbaj de programare dedicat producerii de texte ¸stiin¸tifice sau beletristice care a fost inventat de profesorul Donald

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∼

Page 7: N te de TEX T X DVIPS Vers.1 - octawian.ro · TEX este un limbaj de programare dedicat producerii de texte ¸stiin¸tifice sau beletristice care a fost inventat de profesorul Donald

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∼

Page 8: N te de TEX T X DVIPS Vers.1 - octawian.ro · TEX este un limbaj de programare dedicat producerii de texte ¸stiin¸tifice sau beletristice care a fost inventat de profesorul Donald

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∼

Page 9: N te de TEX T X DVIPS Vers.1 - octawian.ro · TEX este un limbaj de programare dedicat producerii de texte ¸stiin¸tifice sau beletristice care a fost inventat de profesorul Donald

*$$\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∼

Page 10: N te de TEX T X DVIPS Vers.1 - octawian.ro · TEX este un limbaj de programare dedicat producerii de texte ¸stiin¸tifice sau beletristice care a fost inventat de profesorul Donald

%-------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∼

Page 11: N te de TEX T X DVIPS Vers.1 - octawian.ro · TEX este un limbaj de programare dedicat producerii de texte ¸stiin¸tifice sau beletristice care a fost inventat de profesorul Donald

%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∼

Page 12: N te de TEX T X DVIPS Vers.1 - octawian.ro · TEX este un limbaj de programare dedicat producerii de texte ¸stiin¸tifice sau beletristice care a fost inventat de profesorul Donald

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∼

Page 13: N te de TEX T X DVIPS Vers.1 - octawian.ro · TEX este un limbaj de programare dedicat producerii de texte ¸stiin¸tifice sau beletristice care a fost inventat de profesorul Donald

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∼

Page 14: N te de TEX T X DVIPS Vers.1 - octawian.ro · TEX este un limbaj de programare dedicat producerii de texte ¸stiin¸tifice sau beletristice care a fost inventat de profesorul Donald

\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∼

Page 15: N te de TEX T X DVIPS Vers.1 - octawian.ro · TEX este un limbaj de programare dedicat producerii de texte ¸stiin¸tifice sau beletristice care a fost inventat de profesorul Donald

\vskip.5in%--cf. TEX, pag. 71---

\rightlinede A.~C. Grayling%--vezi TEX, pag. 92---

\vskip.1in

\rightlinee-mail address: [email protected]

\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∼

Page 16: N te de TEX T X DVIPS Vers.1 - octawian.ro · TEX este un limbaj de programare dedicat producerii de texte ¸stiin¸tifice sau beletristice care a fost inventat de profesorul Donald

o6 o\

Logica si filosofie

de A. C. Grayling

e-mail address: [email protected]

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∼

Page 17: N te de TEX T X DVIPS Vers.1 - octawian.ro · TEX este un limbaj de programare dedicat producerii de texte ¸stiin¸tifice sau beletristice care a fost inventat de profesorul Donald

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∼

Page 18: N te de TEX T X DVIPS Vers.1 - octawian.ro · TEX este un limbaj de programare dedicat producerii de texte ¸stiin¸tifice sau beletristice care a fost inventat de profesorul Donald

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∼

Page 19: N te de TEX T X DVIPS Vers.1 - octawian.ro · TEX este un limbaj de programare dedicat producerii de texte ¸stiin¸tifice sau beletristice care a fost inventat de profesorul Donald

%---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∼

Page 20: N te de TEX T X DVIPS Vers.1 - octawian.ro · TEX este un limbaj de programare dedicat producerii de texte ¸stiin¸tifice sau beletristice care a fost inventat de profesorul Donald

\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∼

Page 21: N te de TEX T X DVIPS Vers.1 - octawian.ro · TEX este un limbaj de programare dedicat producerii de texte ¸stiin¸tifice sau beletristice care a fost inventat de profesorul Donald

\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∼

Page 22: N te de TEX T X DVIPS Vers.1 - octawian.ro · TEX este un limbaj de programare dedicat producerii de texte ¸stiin¸tifice sau beletristice care a fost inventat de profesorul Donald

\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∼

Page 23: N te de TEX T X DVIPS Vers.1 - octawian.ro · TEX este un limbaj de programare dedicat producerii de texte ¸stiin¸tifice sau beletristice care a fost inventat de profesorul Donald

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∼

Page 24: N te de TEX T X DVIPS Vers.1 - octawian.ro · TEX este un limbaj de programare dedicat producerii de texte ¸stiin¸tifice sau beletristice care a fost inventat de profesorul Donald

\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∼

Page 25: N te de TEX T X DVIPS Vers.1 - octawian.ro · TEX este un limbaj de programare dedicat producerii de texte ¸stiin¸tifice sau beletristice care a fost inventat de profesorul Donald

\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∼

Page 26: N te de TEX T X DVIPS Vers.1 - octawian.ro · TEX este un limbaj de programare dedicat producerii de texte ¸stiin¸tifice sau beletristice care a fost inventat de profesorul Donald

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∼

Page 27: N te de TEX T X DVIPS Vers.1 - octawian.ro · TEX este un limbaj de programare dedicat producerii de texte ¸stiin¸tifice sau beletristice care a fost inventat de profesorul Donald

) 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∼

Page 28: N te de TEX T X DVIPS Vers.1 - octawian.ro · TEX este un limbaj de programare dedicat producerii de texte ¸stiin¸tifice sau beletristice care a fost inventat de profesorul Donald

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∼

Page 29: N te de TEX T X DVIPS Vers.1 - octawian.ro · TEX este un limbaj de programare dedicat producerii de texte ¸stiin¸tifice sau beletristice care a fost inventat de profesorul Donald

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&#2\cr%

#3&#4\cr\right)

\def\determdoi#1#2#3#4\left\vert\matrix#1&#2\cr%

#3&#4\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∼

Page 30: N te de TEX T X DVIPS Vers.1 - octawian.ro · TEX este un limbaj de programare dedicat producerii de texte ¸stiin¸tifice sau beletristice care a fost inventat de profesorul Donald

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∼

Page 31: N te de TEX T X DVIPS Vers.1 - octawian.ro · TEX este un limbaj de programare dedicat producerii de texte ¸stiin¸tifice sau beletristice care a fost inventat de profesorul Donald

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∼