Documente Academic
Documente Profesional
Documente Cultură
A
Ghid L TEX
Bucureti
2005
c 2005
Avertisment
Textul acestei cri reect experiena autorului. El reect, de asemenea, o serie de preferine ale autorului.
Este important s nelegei c toate explicaiile referitoare la
folosirea computerului sunt rodul practicii personale a autorului i
oglindesc n mod inevitabil i limitele acestei practici. Toate soluiile
i programele descrise n carte au fost testate de ctre autor, inclusiv
pe parcursul elaborrii crii ca atare. Autorul i editura nu-i asum
ns nici un fel de rspundere direct sau indirect pentru eventuale
neajunsuri sau daune care ar putea rezulta din folosirea crii sau
a programelor de calculator prezentate n carte.
Utilizarea programelor i a soluiilor descrise n carte trebuie fcut de cititoare sau cititori pe propriul lor risc.
Sprijin n utilizarea programelor sau aplicarea soluiilor prezentate n carte nu pot primi, n limita timpului disponibil, dect studentele sau studenii care elaboreaz lucrri sub ndrumarea autorului. Orice alte persoane trebuie s ia textul crii ca atare, fr
posibilitatea de a cere sprijin sau ndrumri n aplicarea soluiilor
sau utilizarea programelor.
n sfrit, autorul nu se angajeaz sub nici o form s asigure
sprijin n dezvoltarea de noi programe sau soluii de aplicare a unor
programe pentru nici o categorie de persoane.
Multe denumiri sunt folosite de ctre rme sau creatorii de programe individuali pentru a distinge produsele lor. Unele dintre ele
sunt menionate n carte, respectnd forma proprie denumirii respective. Cititoarele i cititorii trebuie s tie c aceste denumiri nu
pot utilizate de ctre alte rme sau persoane individuale dect
pentru desemnarea produselor respective.
Pentru alte precizri i informaii suplimentare consultai pe Internet situl <http://www.ub-filosofie.ro/~solcan/wt>.
Cuprins
Avertisment . . . . . . . . . . . . . . . . . . . . . . . . . .
iii
1 Creionul electronic
1.1 Sistemul de operare i managementul ierelor
1.2 Editorul Vim . . . . . . . . . . . . . . . . . . .
1.3 Expresiile regulate . . . . . . . . . . . . . . . .
1.4 n cutarea surselor . . . . . . . . . . . . . . .
1.5 Corectura computerizat . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
24
46
52
60
2 Tehnoredactarea computerizat
A
2.1 L TEX . . . . . . . . . . . . . . .
2.2 BibTEX . . . . . . . . . . . . . .
2.3 Turnul Babel . . . . . . . . . . .
2.4 Tabele i formule . . . . . . . .
2.5 Indexarea electronic . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
63
64
114
121
144
156
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3 Pensula electronic
159
3.1 Imaginile . . . . . . . . . . . . . . . . . . . . . . . . . 159
A
3.2 Inserarea imaginilor n L TEX . . . . . . . . . . . . . . 164
3.3 Inserarea literelor ca inserare de imagini . . . . . . . 167
4 Translatorii
171
4.1 Drumul ctre html . . . . . . . . . . . . . . . . . . . 172
4.2 Drumul ctre rtf . . . . . . . . . . . . . . . . . . . . 178
A
4.3 napoi ctre L TEX . . . . . . . . . . . . . . . . . . . . 179
Bibliograe
181
Indice
183
Capitolul 1
Creionul electronic
Cuprins
1.1
10
1.2
1.3
15
1.4
20
1.5
1
2
7
13
15
22
24
25
32
46
47
50
51
52
53
54
60
25
1.1
30
Nu este sucient ca un computer s e n perfect stare de funcionare ca simplu dispozitiv zic. Fr un sistem de operare este
un obiect decorativ. S-ar putea s e util pentru a presa ceva sau
pentru a mpiedica accesul pisicii ntr-un ungher unde nu vrei ca
ea s intre.
Ce este sistemul de operare? Ca i losoa, sistemul de operare
1. Creionul electronic
nu este uor de denit. Tanenbaum i Woodhull spun c sistemul de
operare este programul fundamental al computerului.1 Ce face ns
acest program? Am putea s-l vedem ca pe un program care creeaz o main virtual. Aceeai main zic devine e o main
Windows98 sau WindowsXP, e o main Linux sau altceva. Am
putea vedea sistemul de operare i ca pe un manager al resurselor
sistemului.2
1.1.1
Care main virtual este mai bun? n ce s-mi transform computerul? Totul depinde de ceea ce vrem s facem cu computerul.
10
15
Dac vrem doar s utilizm un sistem de operare, atunci alte criterii intr n joc. Achiziia unei licene pentru un sistem Windows98
sau pentru o versiune de cas a sistemului WindowsXP nu este chiar
aa de costisitoare i costurile totale ale deinerii unui astfel de sistem sunt probabil sub cele ale unui sistem cu sursele deschise. Multe
periferice, precum scannerele sau aparatele foto, se integreaz foarte
uor sub Windows. Nu se poate spune acelai lucru despre Linux.
Cum cea mai mare parte a publicului care consult acest ghid
lucreaz cu un sistem Windows, soluiile descrise aici sunt cele valabile pe acest sistem.4 Presupunerea noastr a fost una minimal.
Am pornit de la ideea c sistemul utilizat este Windows98. De altfel,
dac nu suntei conectate direct la Internet i prelucrai doar texte
i imagini nu foarte complicate, sistemul Windows98 este preferabil.
Sistemul WindowsXP, cu distinciile lui ntre utilizatori obinuii i
administrator, mai mult v-ar ncurca.
1
Tanenbaum i Woodhull, Operating Systems (Upper Saddle River, NJ:
Prentice-Hall, 1997), p.1.
2
Aceste posibiliti de caracterizare a sistemului de operare sunt evideniate
de ctre Tanenbaum i Woodhull, op.cit., pp.35.
3
n Tanenbaum i Woodhull, op.cit. gsii n anex 27646 de rnduri eseniale
din sursa sistemului de operare Minix. Ca i-n anexele de fa, ecare rnd de
cod este numerotat. Putei face astfel o comparaie ntre micile fragmente de
cod reproduse aici i dimensiunile programului care servete drept sistem de
operare.
4
Se pare c 95% dintre PC-urile din lume funcioneaz cu ajutorul Windows.
20
25
30
10
15
20
25
30
1.1.1.1.1 Taste funcionale i combinaii de taste n Windows Unul dintre avantajele interfeelor grace este faptul c rolul meniurilor i butoanelor este explicat chiar de numele lor sau de
pictogramele asociate. De multe ori este ns mai uor de lucrat cu
taste i combinaii de taste.
Tastele cu utilizare general le gsii listate n nalul ghidului
Windows98. Dat ind importana lor, vom descrie i noi cteva
taste.
F10 servete la activarea meniurilor. Observai, de asemenea, c meniuri
n meniuri literele subliniate indic tasta pe care putei apsa
pentru a lansa o comand.
Ctrl+c servete la copierea unei poriuni selectate dintr-un - copiere
ier. Fii sigure c-ai neles ce nseamn selecie nainte de a utiliza
combinaiile care urmeaz.
35
n englezete, desktop.
Termenul englezesc pentru dosar este folder. Cel pentru ier este le.
7
Dac versiunea preinstalat este 5, putei aduce lesne Internet Explorer la
o versiune superioar.
6
1. Creionul electronic
tate. Ea este disponibil pentru inserare n alt punct, n momentul
urmtor.
inserare
anulare
10
15
Tasta din stnga, cea cu steagul Windows pe ea, dac este apsat, deruleaz meniul de start.
Tasta din partea dreapt, cea cu o foaie i sgeat pe ea, este
poate mai rar observat, dar poate extrem de util. Selectai
meniul pictograma My Computer de pe suprafaa de lucru. Apsai tasta
con- respectiv. Apare un meniu.
textual
Acelai meniu apare i la un clic pe butonul dreapta al mouseului. Acest meniu se numete meniu contextual.
Meniurile contextuale sunt deosebit de importante i fr a
familiarizat sau familiarizat cu ele practic nu poi lucra ecient n
Windows. De ce? Un ier poate deschis de ctre mai multe programe. Ai nevoie de meniul contextual pentru a avea acces rapid la
programele care prelucreaz ierul respectiv. De asemenea, meniul
contextual v ofer acces la proprietile obiectelor cu care sistemul
de operare a populat computerul dumneavoastr.
1.1.1.1.3 Amenajarea suprafeei de lucru Ghidul primit o
dat cu achiziionarea Windows98 v ofer unele sugestii referitoare
la amenajarea suprafeei de lucru.
imaginea
Cu puin noroc putei nfrumusea lesne suprafaa de lucru. Cude pe tai pe Internet un situl <http://www.webshots.com>. Descrcai
suprafaa de acolo una sau mai multe dintre coleciile de imagini pentru su4 de lucru
20
25
30
35
10
15
20
25
30
35
1. Creionul electronic
apoi se pune bara oblic invers i numele unui dosar i aa mai
departe.
ci n
Folosirea \ n numele de ci este exact opus celei din sistemele
Unix Unix, unde se utilizeaz n acelai scop /. ncurcturile create sunt
numeroase, dar trebuie s nvm s ne descurcm. De asemenea,
sistemele Unix nu folosesc conceptul de disc. Totul este organizat
pe un singur arbore, a crui rdcin este notat cu /. Dosarele
nu dai sunt organizate foarte disciplinat. Dosarele bin, de pild, sunt strict
dosarelor pentru programe executabile.
nume cu
Pentru o bun compatibilitate cu programele din lumea Unix nu
spaii dai, de asemenea, nume de dosare cu spaii. Folosii spaiul subli-
10
15
20
25
Inscripionarea de cd-uri este o alt soluie. Un cd poate adposti o mare cantitate de date.
Dac nu dispunei de un inscriptor de cd, atunci un program care
poate s mpart un ier mare n buci care ncap pe o dischet
este foarte util. Vei gsi cu siguran c programul Splitfile al
splitle lui Magnus Nilsson10 joac bine acest rol.
Splitfile ocup un loc foarte mic pe o dischet. Nu depindei de
nici un fel de program instalat pe un computer sau altul.11 Singura
precauie de care trebuie s inei cont este aceea de a nu ncerca
9
Putei pi acest lucru i cnd trecei un ier din Windows98 n Windows2000, nu doar cnd apelai programe Unix sub Windows.
10
Programul Splitle nu pare s aib o pagin de web proprie. Ultima
dat (12/01/2004) l-am gsit la adresa <http://biphome.spray.se/mason40/
index.html>. Trebuie cutat i cu ajutorul cuvintelor-cheie.
11
Versiunea 1.4.1.12 a 2xExplorer dispune i ea de un Split file intern. Nu
uitai ns c v trebuie 2xExplorer i pe computerul pe care vrei s refacei
30
10
1.1.2
15
20
25
1. Creionul electronic
o analogie ntre ele i rndurile dintr-un ier de tip text. Analogia
aceasta nu este lipsit de ambiguiti,16 dar este util.
cr lf
lf
cr
10
Managementul ierelor
Mai important dect nfrumusearea suprafeei de lucru este extinderea posibilitilor de a explora discul dur al computerului. Sub
Windows98 i WindowsXP exist un program special destinat explorrii ierelor i pe care-l gsim n meniul contextual ataat lui
My Computer dac apsm pe Open sau Explore.
Programul de explorare a ierelor este setat automat la instalare dup o formul cam paternalist. Cea mai util schimbare mi
se pare a aarea extensiei tuturor numelor de iere. Windows
extensiile folosete extensia (literele puse dup un punct n numele ierului
ierelor pentru a determina tipul acestuia i aciunile asociate). Ca s vedem toate extensiile trebuie s parcurgem ruta Start Settings
Folder Options. . . . n Folder Options apsm pe View i deselectm
Hide le extensions for known le types.
15
20
25
30
10
15
20
25
30
este 2xExplorer. Este scris de Nikos Bozinis.19 Instalarea programului lui Bozinis este extrem de simpl,20 dar n faza n care presupun
c v aai acum s-ar putea s v vin mai greu s facei acest lucru
sub Windows98.21 WindowsXP dispune de un program de dezarhivare aa c ajunge s indicai un dosar n care s e despachetate
ierele programului. Ca s-l pornii comod putei crea o scurttur
pe suprafaa de lucru.
De ndat ce ai fcut dublu clic pe scurttura nou creat apare
o fereastr divizat n trei panouri. Eu am nchis ns panoul din
stnga apsnd semnul din colul din dreapta sus. Am tras, de
asemenea, bara cu unelte n partea de sus. Oricum, aceste lucruri
sunt mai puin importante n sine. Fiecare poate aranja cum vrea
aspectul ferestrei n care apare 2xExplorer.
La ce este bun 2xExplorer sau un program similar? Uureaz
enorm managementul dosarelor i ierelor. Am vzut muli utilizatori care pun totul pe suprafaa de lucru, n dosarul My Documents,
creat automat la instalarea Windows, sau care plaseaz ierele direct n rdcina discului c. Aceste obiceiuri denot faptul c nu au
fcut un efort pentru a nelege rolul managementului ierelor. n
orice caz, nici s nu v gndii s folosii uneltele transferate din
Unix fr managementul adecvat al ierelor. Riscai s producei
sute de iere n acelai dosar, printre care v va absolut imposibil
s v descurcai.
1.1.2.1.1.1 Crearea de dosare i iere cu 2xExplorer
Pentru nceput deschidei 2xExplorer i vericai dac nelegei
cum putei crea dosare i iere. Navigai ctre un loc care nu este
periculos.22 Apsai f8 i vei vedea cum apare un dosar pe care scrie
New Folder. Schimbai-i numele n Test.23 n 2xExplorer exersai
acum clicul simplu (apsarea) pe butonul din stnga al mouse-ului,
cu sgeata ndreptat ctre un dosar. Vei vedea cum se schimb
culoarea pictogramei dosarului. Dac apsai Enter ptrundei n
dosarul respectiv. Cu Back Space revenii.
f8
1. Creionul electronic
f7
Intrai ntr-unul dintre aceste dosare. Apsai f7.24 Apare o pictogram lng care scrie New File.txt. Schimbai numele ca i-n
cazul dosarului.
f12
10
15
20
25
1.1.2.1.1.4 Proprietile ierelor i dosarelor n 2xExplorer selectai un ier sau un dosar.25 Apsai tasta f12! Apare o
fereastr cu proprietile ierului sau dosarului.
Uitai-v mai ales la Attributes. De multe ori vrem s bifm sau
s debifm Read-only. Dup cum sugereaz i numele englezesc al
24
10
30
10
15
20
25
30
35
1.1.2.1.1.6 Informaii despre un dosar cu iere n meniul principal dai clic pe Tools i apoi pe Folder Data. . . . Vei obine
date despre dosarul respectiv.
La ce sunt bune aceste date? Cea mai simpl utilizare este legat
de folosirea spaiului de pe discul dur. De pild, pe computerul pe
care scriu, dosarul cu complexul de programe TEX ocup 653.5mb.
Pot ns vedea i arborele subdosarelor din dosarul respectiv, cu
statistica numrului de dosare i de iere din ele.
Datele astfel obinute pot pstrate ntr-un ier de tip text.
Pentru aceasta folosii meniul contextual al ferestrei cu date despre
dosare. Dai un clic pe Print. n ciuda numelui, avei posibilitatea
s creai un ier. Putei face acest lucru i pentru un cd-rom.
Pstrai documentele descrcate de pe Internet n dosare care
au ca nume data descrcrii. n aceste dosare grupai ierele n
dosare cu nume semnicative. Adugai, dac este necesar, ntr-un
ier special adresa de Internet i date cu privire la locul de unde
ai descrcat documentele. Creai cataloage cu aceste dosare dup
metoda descris mai sus. n acest fel nu vei avea probleme cu citarea
documentelor de pe Internet.
cataloage
cu documente
descrcate
de pe
Internet
1.1.2.1.1.7 Cutarea de iere O operaie pe care o ntreprindem adesea este cutarea de iere. Mergei la Tools n 2xExplorer. Cutai un ier al crui nume nu-l tii. Punei doar *.*,
semn c nu tii nici numele, nici extensia. tii ns un fragment
de text din ier. Introducei fragmentul de text respectiv n caseta
de dialog, dup ce ai bifat use text constraints.
Cutarea pe care o ofer 2xExplorer nu este mult mai sosticat
dect cea pe care ai gsi-o la Start Find n Windows, dar o putei
efectua mai uor, direct n dosarul care v intereseaz.
11
1. Creionul electronic
1.1.2.1.1.8 Aranjarea meniului de start Activai panoul
din stnga al 2xExplorer-ului. Urmai ruta Bookmarks Go to folderStart Menu i dai clic pe Start Menu. Creai acum dosare n
care grupai scurtturi ctre programele pe care le-ai instalat.
Putei crea noi scurtturi ntr-un mod ct se poate de simplu.
n panoul din dreapta mergei la un dosar unde avei un executabil Windows. Selectai-l! Mergei la Edit i copiai (Ctrl+c).
Trecei apoi n panoul din stnga. Mergei la Edit i apsai Paste
Shortcut. Acum putei redenumi scurttura.
Nu uitai sfatul de a folosi un dosar i programe destinate doar
testrii pn suntei sigure i siguri pe ceea ce facei.
1.1.2.2
10
15
20
25
7-zip are propriul manager de iere. Cu ajutorul acestui manager putei cuta n interiorul unui pachet de iere.
De asemenea, v putei sluji de comenzile pe care programul le
instaleaz n meniul ataat oricrui ier (meniul care apare cnd
facei clic pe dreapta pe pictograma ierului).
O problem este lipsa unui dezarhivator pentru arhivele specice
Mac. O soluie este Aladdin Expander al rmei AladdinSystems.
n acest caz, citii cu atenie licena produsului. Acest lucru este
valabil, evident, pentru toate programele pe care le vom meniona
aici. n special i atente i ateni la faptul c n-avei dreptul s
obinei un prot comercial n urma distribuirii produsului.26
26
Cu alte cuvinte, dac ai descrcat de pe Internet acest dezarhivator sau
l-ai obinut n alt mod nu-l putei vinde altcuiva. Evident, putei s-l dai mai
12
30
35
1.1.3
Vizualizarea ierelor
10
15
20
25
30
13
1. Creionul electronic
dar are o licen, ca s zic aa, la limita programelor care vor
recomandate n aceast carte. Pentru a face s dispar o fereastr
care tot apare cnd deschidei programul28 trebuie s nregistrai
programul contra unei sume de bani. Versiunea nenregistrat este
ns absolut funcional i nu cuprinde nici un fel de limitri.
pstoedit
Versiunile mai noi ale Ghostview nu integreaz ns o unealt extrem de necesar denumit pstoedit. Despre pstoedit putei citi la
<http://www.pstoedit.net/pstoedit/>. Concret, pentru instalare, v trebuie ierul pstoeditsetup.exe i, desigur, priceperea
minim necesar pentru a instala programe sub Win98.29
10
1.1.3.2
1.1.3.3
15
20
25
Programele de vizualizare a ierelor, spre deosebire de cele de editare, sunt de regul oferite gratuit de ctre rme.
Word
n mod sigur vei avea nevoie periodic de un vizualizator de iere
Viewer doc. Microsoft Word Viewer poate folosit n mod gratuit. Putei
vedea cu el i ierele de tip rtf.
OpenOce
14
30
10
Un alt tip de iere pe care s-ar putea s le ntlnii pe Internet sunt cele pentru palm computere. Exist cri ntregi n for- Docmat pdb. Un vizualizator gratuit pe care l-am folosit cu succes este Reader
DocReader-ul creat de Mike Pickering.32
Evident, pentru omniprezentele, pe Internet, iere html, este
nevoie de un vizualizator pentru asemenea iere. De regul, Microsoft Internet Explorer sau Netscape Navigator sunt folosite pentru
a vizualiza asemenea iere.
1.1.4
Internet
Explorer
i/sau
Netscape
Navigator
15
20
25
30
exemplu
de
comand
n linie
15
1. Creionul electronic
Programul va aa cuminte Un text. Cuvntul echo este o comand, care spune programului s aeze textul care urmeaz imeistoria diat dup comanda respectiv.
comenziPutem inuena ceea ce se ntmpl la prompt-ul ms-dos? Da.
lor Merit s dispunem de o istorie a comenzilor. Mergei pe discul c
chiar n rdcin i plasai sgeata cursorului Windows pe autoexec.bat. Facei clic pe dreapta. Facei apoi clic pe Edit. Fiierul
acesta este un ier de tip text, dar al crui coninut este, pentru sistemul de operare, un ir de comenzi. Adugai la sfritul ierului
comanda c:\windows\command\doskey.com. Vericai dac efectiv
avei pe calea indicat un ier cu numele doskey.com. Repornii
calculatorul.35
Cnd sistemul a repornit deschidei din nou o fereastr ms-dos.
Dai ce comenzi vrei n ea. Apsai apoi tasta cu o sgeat n
sus i pe cea cu sgeata n jos. Observai c acum sistemul ine
minte comenzile.36 Cu tastele cu sgei ctre stnga i ctre dreapta
v putei mica prin textul comenzii. Folosii tasta Ins37 pentru a
modica o comand fr a o scrie de la capt.
Ai dat deja peste un fel de resurs secret i extrem de util a
sistemului ms-dos.
1.1.4.1
10
15
20
16
25
30
10
Dir este o comand n linie care trebuie dat ntr-o fereastr msdos. Apsai tasta f10 urmat de Enter. Apare o fereastr neagr
(cel puin aceasta este culoarea setat automat). Acum dir are alt
efect.
f10
1.1.4.2
15
20
25
30
38
n WindowsXP exist comenzile n linie specice. Se pot obine explicaii
recurgnd la ajutorul oferit de sistem.
17
1. Creionul electronic
1.1.4.3
Exist oare i resurse Windows mai mult sau mai puin ascunse?
Cum s nu! De unele este relativ periculos s v apropiai. Altele
sunt ns puin cunoscute, dar extrem de utile.
Uneori exist scurtturi n Accessories pentru aplicaii utile,
dar ele nu sunt folosite prea des. Un exemplu este un program pe
nume kodakimg.exe. l gsii n dosarul Windows.
Putei crea i propriile dosare cu scurtturi n meniul Start. Mergei n 2xExplorer pe urmtorea rut cu meniuri: Bookmarks Go
to Folder Start Menu. Creai un nou dosar i dai-i un nume sugestiv. Intrai n acest dosar i facei o scurttur ctre programul
kodakimg.exe.
tiff
sfc
regedit
18
10
15
20
25
30
35
10
1.1.4.4
20
programele
interacioneaz
25
30
SET
SET
SET
SET
HOME=D:\dat\home
VIM=D:\USE\VIM
GHOSTSCRIPT_FONT_DIR=D:\ed\gs\fonts
PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;D:\USE\BIN
40
Avantajul WindowsXP const, ntre altele, n eliminarea acestui tip de instabilitate.
19
1. Creionul electronic
Aceasta este o parte din ierul Autoexec.bat. Citii cu atenie
aceste rnduri, dar nu facei modicri mecanice pe calculatorul
dumneavoastr. inei cont de denumirile propriilor dosare.
home este numele unei variabile al crei coninut este folosit de
ctre diverse programe. Programele transferate din Unix folosesc
dosarul indicat drept home pentru a plasa acolo iere de congurare.
Trebuie s i atente i ateni la modul n care se instaleaz Vim
(i alte programe) n funcie de existena sau nu a unei valori pentru
home. Editorul care este marea alternativ la Vim, Emacs, va cere
n mod explicit s dai o valoare lui home.
Urmtorul punct important n setrile de mai sus l constituie
set path i cile care urmeaz dup aceea (vedei linia a patra din
fragmentul din Autoexec.bat). Aceste setri v scutesc de tastarea
cii complete atunci cnd apelai un program printr-o comand n
linie. De exemplu, d:\use\bin va permite s apelez n linie orice
executabil pus n dosarul bin din dosarul use aat pe discul d. n
dosarul respectiv pun, ntre altele, unelte aduse din lumea Unix.
variabile
de mediu
n WindowsXP
Cum modicm variabilele de mediu sub WindowsXP? n sistemul XP Autoexec.bat nu mai joac rolul din ms-dos sau Windows98. Mergei pe ruta Start Control Panel System Advanced Environment Variables i ajungei la o fereastr n care vedei
lista variabilelor de mediu. XP distinge ntre variabilele create de
utilizatori i cele ale sistemului. De exemplu, eu am creat o variabil
home. Cutai pe path printre variabilele de sistem i selectai cu
mouse-ul respectiva variabil de mediu. Dai apoi un clic pe butonul
Edit i adugai calea pe care dorii s o tie sistemul.
1.1.4.4.1 Sistem Unix minimal sub Windows Resursele native Windows pentru comenzile n linie n fereastra ms-dos sunt
foarte limitate. O soluie o reprezint instalarea de unelte Unix.
Pentru nceput recomandabil este instalarea unui strat minimal de
unelte Unix.41
10
15
20
25
30
20
35
10
15
1.1.4.4.2 GnuWin32 Sistemul msys nu folosete direct Windows. Exist unelte Unix care folosesc n mod direct sistemul de
operare Windows. Proiectul GNU are o versiune pentru Windows.
Gsii n ea un set vast de unelte Unix, precum i multe alte programe.
20
25
30
Versiunea pentru Windows a proiectului GNU se numete GnuWin32. Consultai pagina de web cu pachetele de programe realizate n cadrul acestui proiect.42 Alegei programele de care avei
nevoie. Recomandarea noastr este ca, la nceput, s instalai doar
programe care dispun de setup. Orice nceptoare sau nceptor vor
avea mari diculti la instalarea fr setup.
1.1.4.4.3 Programarea n C/C++ Ucenicii vrjitori interesai de programarea n C++ vor desigur atrai de versiunea pentru
Windows a compilatorului gcc. Acest compilator este foarte important n sistemul de operare zis Linux. Este att de important nct
muli cred c sistemului respectiv ar trebui s i se zic GNU/Linux.
Numele celui care iniiat elaborarea gcc i micarea GNU, Richard
Stallman, ar trebui s e cunoscut de toat lumea.43
gcc
La ce este bun compilatorul? Nu v convine modul cum se comport wc.exe? Putei rescrie programul.
Pe situl <http://sourceforge.net> gsii un excelent mediu
integrat de dezvoltare de programe n C/C++. Cutai un program
42
Adresa paginii de web cu lista de pachete GnuWin32 este <http://
gnuwin32.sourceforge.net/packages.html>. Pentru surse i documentaie,
v.<http://www.gnu.org>, <http://gnu.eunet.fi> sau orice alt sit Internet
legat de proiectul GNU.
43
Pentru ideile micrii GNU v. 1.1.5
21
1. Creionul electronic
care se numete Dev-C++. Vei avea o interfa grac tipic pentru Windows i compilatorul gcc integrat. Cu acest mediu putei
rescrie, evident dup ce nvai C/C++, programele de genul celui
de numrat cuvinte.
1.1.5
22
10
15
20
25
30
10
15
fora
minii
este mai
important
25
30
35
sursele
deschise i
accesul la
cunoatere
Exist ns i alte avantaje ale surselor deschise n raport cu programele care sunt doar gratuite. Autoarea sau autorul unui program
gratuit ar putea s nceteze s mai dezvolte produsul su. Aceasta
i oblig pe utilizatori s foloseasc alt program. n cazul surselor
deschise, dac programul este cu adevrat valoros, se va gsi cu
siguran cineva care s-l dezvolte n continuare.
ameliorarea
programelor
23
1. Creionul electronic
folosit accesul la sursele programului care determin stilul bibliograei pentru a obine rezultatul dorit.49
1.2
Editorul Vim
Cred c unii se gndesc deja s-i scrie eseul cu unul dintre oceuri.51 Cartea de fa v propune ns alt perspectiv dect cea pe
care o adopt un program pentru munca de birou. Problema nu este
de a avea un program pentru munca de birou care s e gratuit.52
Ideea este de a schimba perspectiva utilizrii cu aceea a programrii.
10
15
49
24
1.2.1
Vim este mai prietenos dect vechiul vi. Vi te punea n faa unui
ecran negru. Apsai tastele i nu se ntmpla nimic, dac nu tastai
din greeal i sau a. Atunci apreau nite litere pe ecran, dar mare
lucru nu se ntmpla. Te ntrebai cine o folosind Vi. Rspunsul
este relativ simplu: cei care scriu programe.
Mergei la adresa de Internet <http://www.vim.org> pentru a
aa cum putei descrca Vim de pe Internet. Versiunea cu care sunt
scrise i sursele acestei cri este 6.2.
10
15
Un editor modal
25
30
35
25
1. Creionul electronic
Cnd deschidei Vim v aai n modul normal. Dac tastm d
de dou ori, tergem un rnd! Din fericire, putem tasta u i rndul
se reface.
Sistemul complet al modurilor Vim este descris n documentaia
care nsoete editorul.
1.2.1.1.1.2 Inserarea textului Felul n care ajungem s introducem text a fost deja explicat (vezi seciunea 1.2.1.1, rndul 26).
Ca s ieim din acest mod apsm tasta Esc i revenim n modul
normal.
26
10
15
20
25
30
15
20
25
30
Este vorba despre rnduri n sens logic. Vezi despre rnduri i seciunea 1.2.1.2.
55
Se poate trece n modul comand n linie i apsnd tasta /. Acest lucru
l facem atunci cnd vrem s dm o comand de cutare prin restul textului
(din punctul n care se a cursorul n modul normal). Tastm ns ? (n modul
normal) atunci cnd vrem s cutm n poriunile de text aate nainte de
punctul n care se a cursorul.
27
1. Creionul electronic
Apsai tasta cu sgeata n sus. Vim ine minte comenzile n linie.56
Repetai comanda anterioar. Numerele dispar.
1.2.1.2
10
Distincia dintre rndurile logice i cele vizuale este foarte important. Rndurile vizuale depind de dimensiunea ferestrei Vim.
Pentru a obine rnduri vizuale dai comanda :set wrap!; efectul
ei este aarea rndurilor logice n ntregimea lor, chiar dac depesc dimensiunile ferestrei.
15
Explorarea meniurilor
28
20
25
30
35
10
15
20
25
30
source $VIMRUNTIME/vimrc_example.vim
Fiierele Dos sunt totuna cu ierele text din Windows. Vezi mai sus (pagina 8, rndul 4) deosebirile dintre trei tipuri de iere text.
58
V. 2.3.1
59
Pentru detalii v. 1.2.1.3.3.1.
60
Linia din faa numelui ierului imit stilul Unix. n Unix ierele de congurare au nume care ncep cu un punct. Linia n-are un mare rol aici. S-ar putea
s e o msur de precauie fa de programele antivirus care vd un duman
n tot ce nu este ca-n Windows.
29
1. Creionul electronic
Pe calculatorul cu care este scris cartea adugirile mai importante sunt urmtoarele:
1
2
3
4
5
6
set
set
set
set
set
set
guifont=lucida_console:h12:cEASTEUROPE
listchars=tab:\|\_,trail:-,eol:<
lbr!
shiftwidth=3
tabstop=3
noexpandtab
literele Prima linie de mai sus spune Vim ce font s foloseasc atunci cnd
deschide un ier, ct de mare s e corpul literei i s recurg la
un litere printre care se gsesc i cele romneti. Rolul celorlalte
linii l putei descoperi lesne dac folosii bara cu instrumente (bara
ajutor cu pictograme) i facei clic pe semnul de ntrebare cu lup. Punei
Vim cuvntul care v intereseaz n caseta de dialog i cerei ajutor.
Atenie! Semnul de exclamare, egalul etc. nu fac parte din cuvintelecheie ca atare.
1.2.1.3.2 Scripturile Vim Vim are desigur i multe puteri ascunse. Este imposibil s converteti n meniuri tot ce poate face Vim.
limbajul Important este extensibilitatea sa. Vim folosete pentru aceasta
Vim propriul su limbaj.61 Acest limbaj nu este ns foarte greu de nsuit i putem crea cu ajutorul lui o mulime de lucruri utile, inclusiv
noi meniuri.
n limbajul Vim se pot scrie programe. Un program Vim este scris
script ntr-un ier de tip text, dar care are extensia vim. Aceste iere sunt
colecii de comenzi pe care le interpreteaz Vim. Exist i un nume
generic pentru astfel de programe. Ele se numesc script-uri.
n primul rnd, merit s extindei Vim cu ajutorul altora. n
vimles funcie de modul n care ai instalat Vim, cutai un dosar care se
numete vimfiles. Cutai n el dosarul plugin. Recomandarea ar
s nu folosii dosarul plugin din vimfiles. Putei astfel distinge
ntre extinderile operate direct din instalare i cele ulterioare. O alt
variant ar s pstrai unul dintre dosare pentru extinderile create
de alii i una pentru cele create de dumneavoastr.
Eu am adugat, de pild, UnMtchBracket.vim. Este o extensie
creat de Chandra Naveen. i permite s sesizezi dac o parantez
a fost sau nu nchis. Dup cum vei observa ulterior, acest lucru
este absolut esenial din perspectiva programrii. Extensia aceasta
v scutete de multe bti de cap.
61
30
10
15
20
25
30
10
15
20
25
30
35
1.2.1.3.3.2 Integrarea Vim n 2xExplorer Din 2xExplorer poate se poate apela direct la un editor extern. Folosind View
31
1. Creionul electronic
Options. . . bifai butonul radio pentru editorul extern i indicai
calea ctre gvim.exe.
Putei deschide acum cu Vim orice ier prin simpla apsare a
tastei f4. Metoda aceasta este foarte comod i este o bun alternativ la meniul contextual.
f4
1.2.1.3.3.3 Cte cuvinte sunt n ier? Studentele i studenii sunt uneori foarte nedumerii cnd li se cere ca eseul lor s
nu depeasc un anumit numr de cuvinte. Vor s msoare totul
n pagini de text.
n epoca ierelor electronice este ns relativ lesne s numeri
cuvintele.
Vrei s aai cte cuvinte ai scris n ier? Trecei n modul
comand. Tastai g. Apoi tastai Ctrl+g (inei tasta Ctrl apsat i, n acelai timp, apsai g). Pe ultimul rnd al ferestrei Vim
va aprea un mesaj care v spune la al ctelea cuvnt suntei i cte
cuvinte sunt n ier.62
1.2.1.3.3.4 Semne de carte n ierele foarte mari este greu
s revenim cu uurin la un punct din ier. Vim are posibilitatea
de a se deplasa la rndul dorit, dar pentru a folosi aceast metod
trebuie s notm numere de rnd. Mai simplu este s punem semne
de carte.
Trecei n modul comand (modul normal al Vim). Tastai m.
Apoi tastai o liter oarecare. Este recomandabil ca litera respectiv
s v e cumva asociat cu tema textului n punctul unde am pus
semnul de carte.
10
15
20
25
1.2.2
filosofie uman
62
Pentru mai multe detalii a se vedea manualul scris de Bram Moolenaar
pentru utilizatorii Vim (seciunea 12.5).
32
30
1
2
3
4
5
0000000:
0000010:
0000020:
0000030:
0000040:
6669
5c63
7665
6f66
650d
6c6f
6861
7374
6963
0a
736f
7074
6520
2062
6669
6572
6d69
6962
6520
7b77
740d
6c69
756d
6f6f
0a66
6f67
616e
7d20
696c
7261
0d0a
706f
6f73
6669
filosofie uman..
\section{woo} po
veste mit..filos
ofic bibliografi
e..
xxd
10
15
1
2
3
4
5
6
7
8
9
10
11
12
00:
06:
0c:
12:
18:
1e:
24:
2a:
30:
36:
3c:
42:
01100110
01100110
01100001
01101000
01111011
01110000
01100101
00001010
01101111
01101001
01110010
00001010
01101001
01101001
01101110
01100001
01110111
01101111
00100000
01100110
01100110
01100010
01100001
01101100
01100101
00001101
01110000
01101111
01110110
01101101
01101001
01101001
01101100
01100110
01101111
00100000
00001010
01110100
01101111
01100101
01101001
01101100
01100011
01101001
01101001
01110011
01110101
01011100
01100101
01111101
01110011
01110100
01101111
00100000
01101111
01100101
01101111
01101101
01100011
01110010
00100000
01110100
00001101
01110011
01100010
01100111
00001101
filoso
fie um
an..\c
hapter
{woo}
povest
e mit.
.filos
ofic b
ibliog
rafie.
.
Observai c nu mai sunt acum dect ase coloane n centrul tabelului. Sunt aceleai numere ca i mai sus, dar scrise n baza 2. Se vd
63
33
1. Creionul electronic
limpede grupurile de opt cifre de 0 sau 1. n limbajul informaticii
un grup de asemenea cifre binare se numete octet 65
Creai cu ajutorul Vim un ier woof.txt cu urmtorul coninut:
1
2
3
filosofie uman
\section{woof} poveste mit
filosofic bibliografie
34
10
15
20
25
30
cr lf
15
Exist rete un cod i pentru bara oblic invers. Acest cod este
5c.
n rezumat, serviciul fundamental pe care ni-l face un editor ca
Vim este acela de a ne facilita manipularea coleciilor de coduri de
genul celor descrise mai sus. Vim nu este destinat arii frumoase
a unui text ntr-o pagin. Nu este un sistem de tiprire, e pe ecran,
e pe hrtie.
1.2.2.1
20
25
67
Pentru detalii despre sfritul de rnd n diverse tipuri de iere vezi
1.1.2, pagina 8, rndul 4.
68
De la expresia englezeasc end of le.
69
Numele sugereaz faptul c persoana respectiv se uit la ecran sau n alt
parte, dar nu la taste.
70
Tastele f i j au pe ele mici prole distincte pentru a putea reveni lesne la
poziia standard a minilor pe tastatur.
71
Pentru explicaii cuprinztoare, bogat ilustrate, vezi cartea despre Vim
scris de Steve Oualline[9].
35
1. Creionul electronic
1.2.2.1.1 Construirea meniurilor Vim are un sistem foarte
exibil de adugare a unor meniuri suplimentare.72 Pentru a nva
scrierea de meniuri, creai un dosar special pentru exerciii. n acest
dosar (folder) creai un ier aidoma lui woo.txt73 .
Comenzile pentru toate meniurile pe care le vei crea trebuie
un prim puse n iere cu extensia vim. Creai, n dosarul pentru exerciii,
meniu un ier simplu.vim; aici vei pune cel mai simplu meniu posibil.
Scriei urmtoarea linie de cod (fr numrul de linie din fa!):
1
10
15
20
36
25
30
10
15
20
&
Trebuie s i atente i ateni la posibilele conicte cu alte meniuri sau inconsistene. Dac nu folosii des acceleratorii, atunci
n-are probabil rost s-i creai.
1.2.2.1.1.3 Bara cu instrumente B. Moolenaar explic n
manual cum poate modicat bara cu instrumente.75
75
Moolenaar[7, 42.4].
37
1. Creionul electronic
Efectul obinut prin modicarea barei cu instrumente v va convinge probabil c Vim este efectiv exibil. Dac avei pasiunea interfeelor grace, vei pune desigur cel puin o pictogram proprie
pe bara cu instrumente.
S vedem un exemplu practic. Creai un ier vim care conine
urmtorul cod:
1
2
Prima linie de cod spune editorului ce mesaj s aeze n mica fereastr care apare cnd ducem mouse-ul pe pictograma de pe bara
cu instrumente. A doua linie include comanda. Am pus amenu pentru ca pictograma s e aat n toate modurile Vim76 . Comanda
ca atare este n cel de-al treilea bloc. Ea i spune lui Vim s inseA
reze scheletul unei comenzi L TEX, format din semnele \{} i apoi
s mute cursorul dup bara oblic invers. Pe <Esc> l putei ignora
deocamdat. Nu-l eliminai ns.77
La urm, dar nu n cele din urm, examinai blocul din mijloc
al celor dou linii de cod de mai sus. Scriei ToolBar i nu altceva.
Nu schimbai nici majusculele n minuscule sau invers. Altfel Vim
nu nelege c vrei s punei ceva pe bara sa cu instrumente. V
trebuie ns i o imagine pentru pictograma de pe bar.
Eu am creat un dosar (un folder) bitmaps n dosarul standard
vimfiles. Vim citete o variabil de mediu care-i spune unde sunt
dosarele sale.78 Dosarul bitmaps trebuie s e undeva unde caut
Vim. Eu prefer vimfiles pentru c aici stau doar ierele create sau
instalate local (de ctre mine) i nu cele din instalaia standard Vim.
De asemenea, nu schimbai numele lui bitmaps. Punei n bitmaps
imagini de tip bmp cu dimensiunea de 18 x 18 pixeli.
Imaginile din dosarul bitmaps sunt folosite pentru pictograme.
Numele lor trebuie s e exact acelai cu cel care urmeaz dup
ToolBar i punct. n exemplul nostru, imaginea trebuie s aib desigur numele LtxCmd.bmp.
Dac nu tii nimic despre imaginile folosite de ctre programele
de computer, putei aa cte ceva aici n 3.1.
76
38
10
15
20
25
30
10
1
2
3
4
5
6
7
8
9
:aunmenu
:aunmenu
:aunmenu
:aunmenu
:aunmenu
:aunmenu
:aunmenu
:aunmenu
:aunmenu
Tools.&Make
Tools.&List\ Errors
Tools.L&ist\ Messages
Tools.&Next\ Error
Tools.&Previous\ Error
Tools.&Older\ List
Tools.N&ewer\ List
Tools.Error\ Window
Tools.Set\ Compiler
15
20
"
"
39
1. Creionul electronic
1.2.2.2
10
1.2.2.2.1 Micri ale cursorului n modul normal n modul normal, care este modul n care putem da comenzi apsnd pe
taste, exist o serie de taste care controleaz micrile cursorului.
Este destul s indicm aceste taste ntr-un script Vim pentru ca s
obinem acelai efect ca atunci cnd apsm zic pe taste.
15
menu
menu
menu
menu
Cursor.<- h
Cursor.^ k
Cursor.v j
Cursor.-> l
Dup cum se observ mai sus, cele dou puncte din faa cuvntului
menu nu sunt absolut necesare. Evident dac ai folosi tastatura, ar
trebui s apsai pe tasta cu dou puncte pentru a trece n modul
comand n linie.
Meniul pe care-l creai nu este, n practic, de mare folos. Dup
cum sugereaz i semnele noastre, sgeile pot face lesne acelai
lucru. Important este ns descoperirea efectelor comenzilor.
20
25
menu Cursor.<- 3h
menu Cursor.-> 3l
Cifra din faa literei indic de cte ori se aplic comanda. Fiierul
meu woo.txt este prea strmt pentru salturi peste rnduri, dar ideea
se aplic i-n acel caz.
40
30
1
2
3
4
5
6
7
8
10
1.2.2.2.1.4 Deplasrile pe distane lungi Putem s mergem ns de la un capt la altul al rndului. Putem merge de la un
capt la altul al ierului.
1
2
3
4
5
6
7
8
15
20
41
1. Creionul electronic
1
2
3
4
5
6
7
8
imenu
imenu
imenu
imenu
imenu
imenu
imenu
imenu
Cursor.Stanga <Left>
Cursor.CuvantStanga <C-Left>
Cursor.Sus <Up>
Cursor.Jos <Down>
Cursor.Dreapta <Right>
Cursor.CuvantDreapta <C-Right>
Cursor.CapRand <Home>
Cursor.SfarsitDeRand <End>
<Esc>
10
15
Modicarea ierelor
20
42
25
30
1
2
3
4
5
6
7
8
9
10
11
12
10
"Copie n registrul a
menu Redactor.copieA "ay
"Scrie din registrul a
menu Redactor.scrieA "ap
"Copie n registrul b
menu Redactor.copieB "by
"Scrie din registrul b
menu Redactor.scrieB "bp
"Copie n registrul c
menu Redactor.copieC "cy
"Scrie din registrul c
menu Redactor.scrieC "cp
20
S analizm acum comenzile din meniu. Apoi trebuie s ne lmurim ce rol au ghilimelele duble. Ele trebuie folosite n modul normal
(modul comenzilor) pentru a-i spune lui Vim s atepte restul comenzii. De pild, dac am selectat text n modul vizual al Vim,
putem da o comand de genul "dy. Vim pune poriunea selectat n
registrul d. Cum? Acel y, care vine de la termenul yank este cheia
comenzii respective.80
25
15
yank
43
1. Creionul electronic
nu-r putea renuna la ghilimelele duble. Nu n meniurile de mai
sus. Cu seleciile am putea lucra, dar, n modul normal, un a, de
pild, ne-ar duce n modul insert. Vim nu-r ti c este vorba despre
registrul de memorie. i totui ucenicul vrjitor are dreptate.
Exist o soluie. Meterii meniuri cu ajutorul urmtoarelor rnduri de cod Vim:
1
2
3
4
"Copie un cuvnt
menu Redactor.copieCuvant bye
"Copie (inclusiv) pn la acolada din dreapta
menu Redactor.copiePanaLaAcoladaDreapta yf}
10
15
20
atenie la
Vim distinge ns ntre dou feluri de a pune text, dup cum se
diferena vede mai jos:
dintre
minuscule 1 "Plaseaz (dup cursor) ceea ce ai copiat
2 menu Redactor.plaseazaDupa p
i 3 "Plaseaz (nainte de cursor) ceea ce ai copiat
majuscule 4 menu Redactor.plaseazaInainte P
Toat diferena este dat de folosirea unei litere minuscule sau a
uneia majuscule.
82
44
25
"tergem o liter
menu Sterge.x x
"terge pn la sfritul cuvntului
menu Sterge.dw dw
"terge pn la sfritul celui de al treilea cuvnt
menu Sterge.d3w d3w
"terge un rnd
menu Sterge.dd dd
"Anuleaz efectul comenzii anterioare
menu Sterge.undo u
"Anuleaz anularea unei comenzi
menu Sterge.redo <C-R>
10
1
2
15
20
1
2
45
1. Creionul electronic
3
4
5
6
7
8
9
10
11
12
13
14
15
1.3
Expresiile regulate
Dincolo de orice teorie sosticat, ideea care st n spatele expresiilor regulate poate lesne explicat printr-un exemplu. S zicem
c-am ieit n ora i studiez numere de nmatriculare ale mainilor.
Unele numere de nmatriculare ncep cu una-dou cifre i continu
cu o liter. Dar sunt vechile numere! Altele au o liter urmat de
mai multe cifre. Par a numere provizorii. Majoritatea mainilor
au numere de nmatriculare noi. Cum le disting? A putea oferi o
descriere de acest gen: la nceput sunt una sau dou litere, apoi dou
cifre, urmate de trei litere.
84
46
10
15
20
10
15
20
1.3.1
25
apartenena la o
mulime
de
expresii
Denirea abloanelor
Unii scriu losoe, alii lozoe. Eu unul nu cred c este o problem de substan n spatele acestei diferene. Exemplul este ns
bun pentru a explica modul de cutare ntr-un text cu ajutorul unor
abloane sau tipare.
Creai un ier care cuprinde urmtorul text:
30
35
/filo[sz]ofie/
Cu tiparul se potrivesc att filosofie, ct i filozofie. Parantezele drepte indic faptul c oricare dintre literele din parantez s-ar
47
1. Creionul electronic
bara putea potrivi. Barele oblice sunt necesare n Vim pentru cutri
oblic i-nlocuiri de iruri de semne. Le vom folosi n continuare i pentru
c marcheaz clar graniele unui tipar.
Deschidei ierul test.txt n Vim. Punei cursorul la nceputul
ierului.86 Trecei n modul comand n linie i tastai tiparul de
mai sus. Cnd execut comanda, Vim mut cursorul la prima apariie a unui ir de semne care corespund tiparului i evideniaz cu
ajutorul fondului colorat tot ce corespunde cu tiparul dat.87
Vim folosete tipare pentru a ltra un text, separnd ceea ce
corespunde tiparului de ceea ce nu corespunde. Mulimea expresiilor
care corespund tiparului este evideniat prin colorare.
1.3.1.1
10
Logica abloanelor
15
20
25
Din nou, persoanele interesate de logic pot s mediteze la cuanticarea implicat de parantezele drepte puse n tipar. n cuvinte
aceasta ar nsemna pentru oricare dintre semnele din parantez.
\?
48
30
10
15
\+
Dac vrei un mod standard de formare a tiparelor, atunci trebuie s punei o opiune \v chiar la nceputul tiparului. Experimentai cu /\vfi+losofie/. Pentru alte opiuni care afecteaz tiparele modul
sau pentru eventuale nepotriviri cu explicaiile date aici citii docu- standard
mentaia Vim.
Am introdus deja mai sus o alt cuanticare n tipare. Ea ar putea citit n felul urmtor: una sau mai multe apariii ale semnului
anterior. Astfel, tiparul /\vfi+losofie/ caut losoe cu una sau
mai multe apariii ale lui i.
Cuanticarea * funcioneaz ca i +, dar admite i situaia cnd
n lacuna aat n raza sa de aciune nu a fost completat cu nici
un semn. Setarea normal a lui Vim89 ne permite s ne dispensm
de opiune \v n acest caz.
Putem cuantica i numeric. Tiparul /\vfi{1,3}losofie/ va cuanticonduce la ltrarea acelor cazuri n care i apare cel puin o dat care
sau cel mult de trei ori. Putem omite unul dintre numere.
numeric
20
25
30
35
49
1. Creionul electronic
1.3.1.1.1 Conectori pentru abloane Ca i-n logica propoziiilor, putem folosi conectori pentru obine abloane compuse. Un
tipar poate avea, de pild, dou ramuri, precum /\vfil|biblio/.
Bara vertical o putem citi sau. Dac experimentm acest tipar
pe ierul test.txt, observm desigur cum cuvntul bibliol este
evideniat n ntregimea sa.
Trebuie s m ateni la spaii. Spaiile puse n jurul barei verticale vor interpretate ca ind o parte a tiparului. Dac ni se pare
confuz expresia, putem pune paranteze rotunde n jurul tiparelor
conectate.
1.3.2
10
Utilizarea abloanelor
50
15
20
25
30
35
1.3.3
10
15
20
25
30
35
substituire
intermediar
Dac v ntrebai ce programe, n afar de Vim, folosesc tipare pentru cutri, cel mai simplu ar s instalai o unealt Unix numit grep sau s folosii mediul integrat de dezvoltare de proA
grame L TEX.93 Mergei cu ajutorul 2xExplorer n dosarul n care
inei test.txt i chemai fereastra ms-dos. Tastai urmtoarea grep
comand n fereastra ms-dos: grep filo[sz]ofie *. Comanda are
trei pri: numele comenzii, un tipar dup care se face cutarea i
numele ierului n care se face cutarea. n locul numelui ierului
am pus * pentru a arta c este vorba despre orice ier (din dosarul
respectiv).
Rezultatul este aarea numelui ierului n care grep a gsit
ceva care corespunde tiparului i a rndului n care apare irul care
corespunde tiparului. Dac vrei i numrul rndului, punei opiunea -n dup grep. Pentru a v convinge c grep caut efectiv
prin mai multe iere, creai un alt ier text n dosarul respectiv i scriei acolo, ntre altele, losoe i/sau lozoe. Dac
vrei instruciuni ceva mai detaliate pentru grep, dai comanda
grep --help > grep.txt. Aceast comand va crea un ier cu
explicaii. Se observ c-am folosit pe >, care redirecioneaz rezultatul comenzii. Acesta nu mai este aat pe ecran, ci este scris ntr-un
ier.
n TEXnicCenter cutai pictograma cu binoclul aezat peste un TEXnicdosar (Find in les). Cnd dai clic pe aceast pictogram apare Center
o fereastr de dialog. Ar trebui s nu v e deloc greu s alegei
tipul ierelor. De asemenea, este relativ uor s alegei dosarul
unde se face cutarea (Directory). Bifai butonul de validare Regular
expression.
Eu am avut, de exemplu, nevoie s caut contextele n care aprea
una dintre formele expresiei ucenic vrjitor. Am folosit ablonul
ucenic[i]* vr.jitor[i]*. De ce? Voiam s gsesc i cazurile cnd
93
51
1. Creionul electronic
expresia era folosit la plural; de asemenea, era mai simplu s nu
m ncurc cu diacriticile.94
TEXnicCenter construiete o list cu toate contextele n care
apare expresia. Dnd clicuri pe lista respectiv deschidei ierul
chiar n punctul dorit. Acest mod de cutare de tip grep este unul
dintre marile avantaje ale TEXnicCenter.
1.4
n cutarea surselor
10
15
20
25
cutare cu
Pot cuta ns i cu ajutorul comenzilor n linie. Aps tasta Esc
comand urmat de / i cuvntul-cheie Peter. Cursorul se mut ceva mai jos
n linie n text n punctul n care este vorba despre Petru cel Mare.
n principiu, n textul n limba rus se caut n acelai fel. Ceea
ce complic lucrurile sunt literele chirilice. Cnd deschid textul apar
semne incomprehensibile. Merg la meniul Edit i apoi la Select Font
chirilice pentru a schimba script-ul tipului de liter n Cyrillic. Acum pot citi
textul. M mulumesc s selectez un cuvnt din text i s-l copii n
94
Putei ns pune litere cu diacritice n abloane. Atta doar c trebuie s
comutai pe tastatura cu literele cu diacritice nainte de a deschide caseta de
dialog.
95
Romanul lui Dostoievski este disponibil n rus; de asemenea, putem gsi
traducerea n englez realizat de Constance Garnett.
52
30
10
15
20
25
30
1.4.1
35
53
1. Creionul electronic
Start Menu. Putei crea, de exemplu, un dosar pentru Editare i-n
el unul pentru Analiza textelor.
Wconcord construiete concordanele pe baza ierelor de tip
text.97 Prima operaie care trebuie fcut cu programul este elaborarea unei liste a ierelor n care se vor opera cutrile.
Programul are o interfa grac i este extrem de uor de folofrecvena sit. Cel mai simplu lucru este s construim o list a cuvintelor care
cuvintelor apar n text i s o ordonm n funcie de frecven. Am experimentat acest lucru cu textul romanului lui Dostoievki Fraii Karamazov. Alioa, de exemplu, este menionat de 1243 de ori. Termenul
moarte apare de 121 de ori, n vreme ce libertate apare de 53 de
ori.
concordane
pentru
documente
pdf
10
15
20
25
1.4.2
Arheologie pe Internet
30
Toate programele despre care este vorba n aceast carte sunt disponibile pe Internet. Este deci resc s spunem cteva cuvinte despre
modul n care putem gsi un document pe Internet.
Presupun c nu scriei eseul i efectuai cutrile pe Internet pe
acelai calculator. Putei merge n laboratorul Facultii i vei gsi
acolo o reea de calculatoare care este conectat la Internet. De altfel, Internetul nu este dect o reea de reele de calculatoare care
97
Extragerea textului este posibil din orice ier. De la un format la altul,
trebuie vzut ns cum se procedeaz i ce program poate s fac acest lucru.
54
35
10
15
20
acoper tot globul. Fiecare reea mai mic are un calculator care le
deservete pe celelalte. Termenul englezesc pentru acest calculator
este server. Dac reeaua este mai dezvoltat s-ar putea s existe
un alt calculator care are instalate pe el programele care formeaz
poarta ctre Internet. Termenul englezesc este gateway. Calculatoarele acestea nu se disting de celelalte neaprat prin modul n care
construite, ci prin sistemul de operare de care dispun.
Categoric, Windows98 este nepotrivit pentru conectarea la Internet. Este vulnerabil la atacurile de pe Internet. Ceea ce-l face
att de plcut cnd este folosit pe un calculator separat, uurina
cu care avem acces la iere devine un handicap cnd persoane ru
intenionate au i ele cam acelai acces facil la iere.
Oricine poate face pe ucenicul vrjitor i vedea ct de vulnerabil
este Win98. Mergei cu 2xExplorer pe discul c. Nu facei ns modicarea care urmeaz dect dac avei organizarea ierelor sugerat
n acest capitol.98 Redenumii dosarul Program Files prin simpla eliminare a spaiului din nume. Vei primi un avertisment, dar att.
Sistemul nu v mpiedic s acionai. ncercai acum s deschidei
un ier cu extensia html. Dac n-ai modicat locul n care se a
Internet Explorer, vei primi un mesaj care spune c sistemul nu
poate descoperi unde se a iexplore.exe. Redenumii Program
Files pentru a-l aduce la forma pe care o tie sistemul.
e uor s
distrugi;
greu e s
construieti
30
35
40
55
1. Creionul electronic
la telefon, iar persoana respectiv v-ar dicta un text. Cam tot aa,
un calculator apeleaz numrul unui alt calculator i i procur
ierul de care este nevoie.
Ca persoan uman ar greu s inei minte numerele de pe
Internet ale calculatoarelor. De aceea se folosesc adrese umanizate.
De exemplu, adresa paginii de pe Internet a acestei cri este <www.
fil.unibuc.ro/~solcan/eft/>.
Dac vorbii la telefon trebuie s tii i limba persoanei cu care
conversai. Tot aa, adresa de mai sus nu este complet funcional
fr o indicaie privitoare la limb. Completat astfel, ea devine
http://www.fil.unibuc.ro/~solcan/eft/.
descrcarea de
iere de
pe
Internet
10
S zicem c ai ajuns la pagina de Internet a crii i ai descoperit un script, un program, pe care vrei s-l descrcai pe calculatorul
dumneavoastr. n Internet Explorer, putei duce cursorul Windows
pe numele ierului respectiv; obinei apoi un meniu prin clic pe
dreapta. Folosii Save Target As. . . pentru a descrca ierul. Dac
utilizai Netscape, procedura este asemntoare, numai c recurgei
la Save Link As. . . .
15
20
56
25
30
35
40
10
15
20
25
30
Mai sunt cteva programe extrem de utile a cror cutare me- TEXnicrit s o ilustrm aici. Dac folosim cuvintele-cheie TeXnicCenter Center
download, gsim adresa de la care putem descrca mediul integrat
A
pentru crearea de programe L TEX: <http://www.toolscenter.
org/products/texniccenter/download.htm>.
35
Dac utilizm cuvintele-cheie weaverSlave HTML editor download, descoperim adresa de Internet <http://www.subjective.
de/en/weaverslave/index.php>. De aici se poate descrca un editor de iere html, php i comenzi sql, foarte util pentru crearea de
pagini web.
40
editor
pentru
pagini
web
57
1. Creionul electronic
reprezentat de paginile cu trimiteri ctre documente sau programe.
pagini cu Dac navigai pe Internet la adresa <http://www.uni-giessen.
trimiteri de/~ga1007/ComputerLab/concordance.htm>, gsim o pagin n
care se explic pe scurt ce este o concordan i o list cu programe de creat concordane. Pagina aceasta nu ofer ns direct
posibilitatea de a descrca programe. La <http://www.ujaen.es/
dep/filing/profesores/alejandro_alcaraz.html> gsim o pagin care ofer aceast posibilitate. Putei descrca direct arhiva
Wconcord de la adresa <http://www1.ujaen.es/~aalcaraz/HEL/
wconcord.zip>.
1.4.2.1
alternativa la
Save
Target
As. . .
10
Programul wget
58
15
20
25
30
35
40
10
15
O precauie contra descrcrii n exces de iere o reprezint opiunea -A urmat de o list de extensii de iere (separate prin virgule). Acestea sunt singurele tipuri de iere care vor descrcate.
Alternativ, putei pune opiunea -R i specica tipurile de iere
care nu vor descrcate.100
Programul wget este extrem de util pe o reea instabil. n acest descrcare
caz, descrcarea de iere se ntrerupe frecvent. Rmnem cu o bu- n reele
cat de ier. Fiierele de mari dimensiuni nu pot practic descr- instabile
cate. Folosind opiunea -c putem continua descrcarea din punctul
unde s-a rupt ierul. Continuarea descrcrii n acest mod nu depinde numai de wget, ci i de sprijinul pentru aceast operaie pe
serverul de pe care descrcm ierul. Nu toate serverele ofer sprijin pentru continuarea unei descrcri ntrerupte.101
1.4.2.2
20
25
30
Wget este un program din lumea Unix, unde acesta este modul de a opri
forat rularea unui program. Programele ms-dos sunt oprite, probabil, de
Ctrl+Break. n Win98 apsai Ctrl+Alt+Del i oprii procesul respectiv.
100
Din practic tiu c se ntmpl ca o persoan s aib n pagina sa texte pe
care a vrea s le citesc i care nu ocup mult loc pe disc, dar i iere enorme
cu muzic sau lme, de care n-am nevoie i care ar putea epuiza spaiul de pe
disc. Sub sistemele Unix sau WindowsNT, n mod normal, utilizatorii obinuii
au alocat doar o poriune limitat de disc. S-ar putea ca un lm s nici s nu
ncap pe zona care le-a fost alocat.
101
Pentru mai multe detalii despre wget i pentru problemele ridicate de combinarea diverselor opiuni consultai documentaia programului.
59
1. Creionul electronic
Ce-i de fcut? Cutm pe Google folosind tehnica exemplicat
de secvena: python -snake -monty. Semnul minus pus n faa unor
cuvinte-cheie i spune motorului de cutare s exclud de pe lista
pe care o produce siturile despre erpi sau monty.
Persoanele care sunt n cutarea arpelui i nu a limbajului de
programare pot s pun python -programming.
10
15
1.5
Corectura computerizat
20
60
25
30
meterirea
unui
dicionar
ortograc
romnesc
10
SET ISO8859-2
2
3
4
1
2
25
meta
Primul rnd specic pentru corectorul ortograc codicarea folosit. Rndul al patrulea i spune sistemului cum s ataeze un prex,
foarte important pentru losoe i nu numai, prexul meta. Se observ c aici a fost declarat un steag, cum se spune tehnic.105 Steagul
trebuie ataat cuvintelor din ierul de tip dic care pot prexate
cu meta. Iat dou exemple evidente:
15
20
PFX G Y 1
PFX G
0
filosofie/G
limbaj/G
61
1. Creionul electronic
n versiunile mai vechi ale TEXnicCenter nu se putea folosi dect Spelling. . . din meniul Tools. ncepnd cu versiunea 1 Beta 6.20
Beta, este posibil s dm un clic pe butonul din dreapta al mouseului, pe cuvntul marcat ca incorect i s folosim un meniu contextual.
62
Capitolul 2
Tehnoredactarea
computerizat
Cuprins
5
2.1
10
2.2
15
2.3
20
2.4
25
2.5
30
A
L TEX . . . . . . . . . . . . . . . . . . . . . . . 64
A
2.1.1 Utilizarea programului L TEX: costuri i
benecii . . . . . . . . . . . . . . . . . . 65
2.1.2 Instalarea TEX i a programelor asociate 69
A
2.1.3 L TEX ntr-o sptmn . . . . . . . . . 75
BibTEX . . . . . . . . . . . . . . . . . . . . . . 114
2.2.1 Primii pai n lumea bazelor de date . . 114
2.2.2 Sistemul BibTEX . . . . . . . . . . . . . 116
2.2.3 Stilurile bibliograce . . . . . . . . . . . 119
Turnul Babel . . . . . . . . . . . . . . . . . . . 121
2.3.1 Literele romneti . . . . . . . . . . . . 122
2.3.2 Vim i adaptarea tastaturii . . . . . . . 125
2.3.3 Limbile europene care folosesc alfabetul
latin . . . . . . . . . . . . . . . . . . . . 132
2.3.4 Tehnica alegerii tipului de liter . . . . 134
2.3.5 Limba greac veche . . . . . . . . . . . 136
A
2.3.6 L TEX i unicod . . . . . . . . . . . . . . 141
A
2.3.7 Alte pachete cu simboluri n L TEX . . . 143
Tabele i formule . . . . . . . . . . . . . . . . . 144
2.4.1 Principiile de baz ale construirii tabelelor144
2.4.2 Cteva idei simple despre formule . . . . 148
2.4.3 Tehnicile avansate de scriere matematic 156
Indexarea electronic . . . . . . . . . . . . . . . 156
2. Tehnoredactarea computerizat
2.1
A
L TEX
Vezi Donald E. Knuth, Arta programrii calculatoarelor, 3 volume (Bucureti: Teora, 1999-2002). Aceasta este o carte celebr. Aa cum reiese din textul
reprodus pe ultima copert a tuturor celor trei volume, Bill Gates a scris despre
ea urmtoarele: Dac te crezi programator, . . . citete Arta programrii calculatoarelor de Knuth. . . Dac poi citi toat cartea, trimite-mi neaprat un C.V.
Trebuie s inei cont c aceste cuvinte vin nu doar din partea unuia dintre cei
mai mari oameni de afaceri din toate timpurile, ci i a cuiva care a publicat ca
programator-cercettor (a se vedea B. Gates i C. Papadimitriou, Bounds for
sorting by prex reversals, Discrete Mathematics 27: 47-57, 1979)
2
O excelent prezentare a bazelor sistemului TEX, n limba romn, o gsii
n cartea lui Moroanu[8].
3
Istoria acestei arte este povestit de S.Tth[12].
64
10
15
20
25
A
2.1 L TEX
2.1.1
10
A
Utilizarea programului L TEX: costuri i benecii
A
A
Ce este L TEX? Fr a intra n detalii, putem spune c L TEX v
permite s tiprii (pe hrtie sau n format electronic), cu ajutorul
n ultim instan al TEX, eseurile dumneavoastr. Aceleai tehnici
pot folosite pentru a tipri practic orice: articole, cri, ae i aa Leslie
A
mai departe. L TEX a fost creat de ctre Leslie Lamport.4
Lamport
A
Ct este de greu de folosit sistemul L TEX? Nu v grbii cu
aceast ntrebare! Mai bine facei un calcul cu privire la costuri i
benecii.
20
25
30
programare
elementar
65
2. Tehnoredactarea computerizat
2.1.1.1
10
15
20
25
30
35
Un sistem TEX, dup cum se vede din cele scrise mai sus, este
altceva dect o suit de programe pentru munca de birou.
Marea calitate a unui sistem TEX este c permite soluionarescrierea rea problemelor legate de rescrierea textului. Dac n-ar trebui s
textului rescriem un text, atunci sistemele uzuale ar destul de potrivite.
66
40
A
2.1 L TEX
10
15
20
25
Sunt toate acestea doar simple unelte? Punctul de plecare al sistemului a fost de ordin practic, dar el a luat turnura necesar pentru
a punctul de pornire i al unor reecii cu caracter general. O
anex la un ghid de elaborare a eseurilor losoce nu ofer cadrul
necesar pentru a duce prea departe consideraiile teoretice. Putem
face doar scurte observaii despre natura algoritmilor i a proceselor
algoritmice.
ncepem cu o distincie care amintete de distincia dintre tip i
mostr. Dac aranjm n pagin irul de semne validitate, cte li- prob de
tere a, i sau t trebuie s plasm? Una sau dou? Putem formula liter vs.
rspunsul n termenii distinciei tip-mostr (sau prob de liter)8 . liter
n validitate exist apte tipuri de liter, iar din tipurile a, i i
t avem cte dou mostre sau probe de liter.
n sistemul lui Knuth ecare liter are un cod. La rndul lor,
literele sunt grupate pe categorii. O prob, n sistemul lui Knuth,
este desemnat printr-o pereche format dintr-un cod i o categorie.
Operarea cu o prob seamn cu felul n care, n vechile tipograi,
zearii9 culegeau cu mna literele din nite cutii. Aveau cutii cu
litere de unde luau ce le trebuia i aezau n pagin. Aceasta nu este
altceva dect esena tiparului lui Gutemberg: literele mobile. Pe de
7
Cel care m-a convins denitiv de superioritatea sistemului lui Knuth este
cunoscutul logician Melvin Fitting. El mi-a explicat c, ntr-adevr, i scrie
scrisorile cu un editor de birou; crile i articolele sale de logic sunt scrise ns
cu un sistem TEX. Distincia este limpede i convingtoare: dac scrisorile ar
rodul unui proiect de cercetare, dac-ar avea o structur complicat, numeroase
trimiteri etc., atunci ar trebui i ele scrise cu un sistem gen TEX. O scrisoare
are, de multe ori, o singur pagin i este mult mai comod s aranjezi direct,
vizual elementele ei n pagin dect s scrii un program. O carte are sute de
pagini. Aici avantajul programrii se face repede simit.
8
Tipograi colecioneaz exemple din literele de care dispun i alctuiesc albume care se numesc probare de litere(v. Dicionarul limbii romne(Bucureti:
Editura Academiei, 1984), tom VIII, partea a 5-a, s.v.).
9
n limba veche se numeau chiar probari.
67
2. Tehnoredactarea computerizat
alt parte, un a poate avea categorii diferite. Aa cum, n Vim,
ntr-un mod este comanda de a plasa litera a n text, iar n alt mod
o comand de trecere la inserarea de text dup poziia curent a
cursorului.
Mai departe, putem rana ideea de procesor. TEX are un numr
limitat de comenzi de baz. Aceste comenzi pot folosite pentru a
scrie alte comenzi mai complexe. Cu alte cuvinte, n inima sistemului
conceput de Donald Knuth exist un procesor virtual.
procesor
Cnd vorbesc despre procesoare oamenii se gndesc la procesoarele zice. Putem face ns abstracie de ele i s ne concentrm
asupra a ceea ce face procesorul virtual.
n sistemul lui Donald Knuth, putem face o distincie ntre dou
procese fundamentale: plasarea unor cutii virtuale pe pagin i ceea
ce este pus n cutiile respective. Sistemul nu plaseaz deci literele ca
atare, ci cutiile n care sunt puse probe de litere. Putem astfel separa
procesul de aranjare a cutiilor de procesul de desenare a literelor.
Aici ne vom concentra atenia, n primul rnd, asupra aranjrii
cutiilor i alegerii unui coninut potrivit pentru ele. La urma urmei,
nu refacem desenul tipurilor de liter de ecare dat cnd scriem
un text. Folosim probele de litere existente i variantele lor pentru
a da un coninut cutiilor. Limbajul care ne permite acest lucru ne
intereseaz cu precdere.
Ca i-n cazul procesoarelor reale, nu este tocmai uor s programm direct n limbajul procesorului virtual. n multe situaii putem
face abstracie de ceea ce se ntmpl la nivelul procesorului. Ca i
atunci cnd folosim limbaje de nivel mai nalt, i-n cazul sistemului
lui Donald Knuth putem utiliza sisteme de comenzi mai complexe,
care vor traduse automat n procesul compilrii.
Compilarea nseamn n sistemul lui Knuth generarea a unor
iere care pot vizualizate i tiprite. Pentru vizualizare i tiprire
vor folosite programe precum Ghostview sau Acrobat Reader.
68
10
15
20
25
30
35
A
2.1 L TEX
2.1.2
10
15
20
25
30
35
69
2. Tehnoredactarea computerizat
N-ar ru s reorganizai i Start Menu n aa fel nct s nu e
toate scurtturile puse n Programs. n orice caz, gsii scurttura
care se numete MikTeX Options i care trimite ctre mo.exe, unul
dintre executabilele MikTEX. Executai un clic pe Languages i bifai
limbile de care avei nevoie. n orice caz, bifai romanian. Dai apoi
clic pe General i, pentru siguran, un clic pe Refresh Now. Aceast
mprosptare a bazei de date este absolut necesar cnd adugai
noi pachete cu iere.
Sistemul este efectiv uria i integreaz o contribuii realizate de
ctre diveri autori. Pornii MikTeX Package Manager i vei avea o
list a pachetelor instalate, cu unele scurte informaii despre ceea
ce face ecare.11
10
ntrebarea din titlu este foarte important. Dac intrai n sala calculatoarelor de la Facultatea de Filosoe, observai imediat computerele Sun i PC-urile care funcioneaz sub sistemul de operare
Linux. Sistemele de operare sunt, n acest caz, de tip Unix. Alturi
de ele vei gsi ns cel puin un PC care folosete Windows.
15
20
Acest program exist ncepnd cu versiunea 2.3 a MikTEX, dar lipsete din
versiunile anterioare.
12
Vezi aici explicaiile de la pagina 20, rndul 18.
70
25
30
35
A
2.1 L TEX
2.1.2.2
10
15
20
A
A recomanda ns L TEX studentelor i studenilor care nu au acas
un computer sau care au un model foarte vechi.13 Ce poi face cu
un computer foarte vechi? Poi scrie iere de tip text! Poi folosi o
versiune mai veche a Vim, eventual fr interfaa grac.
A
Pentru sursele L TEX nu este nevoie dect de iere de tip text.
O carte ntreag ncape fr probleme pe o singur dischet. Sursele respective pot apoi compilate i corectate sub Linux, ntr-un
laborator care dispune de computere performante.
A
Putei folosi pentru a crea surse L TEX chiar i un calculator
care n-are disc dur! Un PC foarte vechi, de la nceputul anilor 80 ai
secolului trecut, cu doar dou dischete poate folosit cu mult succes.
Un calculator de tip Spectrum, dar care are i sistemul de operare
CP/M (cum este calculatorul romnesc HC2000), poate servi i el
A
la producerea ierelor text care alctuiesc sursa L TEX.
A
Nu uitai c L TEX sau programele asociate pot produce i desene
pornind de la iere de tip text!
Achiziionarea de sisteme scumpe doar pentru a scrie eseuri pentru examene, lucrri de diplom, articole, teze de doctorat, cri
este efectiv o eroare. Investiia trebuie fcut n direcia nvrii
programrii, nu a utilizrii de computere foarte scumpe.
25
30
13
71
2. Tehnoredactarea computerizat
2.1.2.3
10
15
Este vorba aici mai ales de utilizatorii sistemului de operare Windows. Linux transform computerul ntr-o puternic staie de lucru. Cine este capabil
sau capabil s lucreze n Linux se poate descurca folosind Makefile-uri. De asemenea, comanda n linie din Linux este incomparabil ca putere cu ceea ce ofer
sistemul Windows ca atare.
16
Vezi <http://lug.mfh-iserlohn.de/vim/vim-latex/vim-latex.html> pentru
explicaii, exemple de utilizare i descrcarea scriptului lui Mehner.
17
N-am testat scriptul sub Linux, dar acesta pare conceput sub un sistem
Unix.
18
A se vedea aici pagina 57, rndul 30.
19
Modul acesta de lucru este, de altfel, imperios necesar dac n-avei la disA
poziie n mod curent un calculator pe care este instalat L TEX. Creai sursele
programelor separat i apoi executai ciclul compilare-vizualizare-corectare pn
obinei rezultatul dorit.
72
15
20
25
A
2.1 L TEX
10
15
20
25
30
35
20
73
2. Tehnoredactarea computerizat
deschidei
Vim la
rndul
curent
74
10
15
20
25
30
A
2.1 L TEX
10
15
20
2.1.3
A
L TEX ntr-o sptmn
A
L TEX este un limbaj de programare. Trebuie nvat ca orice limbaj
de programare: fcnd exerciii. Exerciiile propuse de ctre noi aici
constau n construirea unor meniuri Vim foarte simple.25
25
30
75
2. Tehnoredactarea computerizat
2.1.3.1
schema
comenzilor
A
L TEX
Prima zi
A
Prima idee care ar trebui nvat este cea de comand L TEX ca
A
atare. Scheletul unei comenzi L TEX este urmtorul: \{}. ntre bara
oblic invers i prima acolad se pune numele comenzii. ntre acolade se pune argumentul comenzii. Argumentul nu este altceva dect
materialul pe care comanda l prelucreaz n conformitate cu algoritmul aat n spatele ei.
meniu
Exemplul practic s-ar putea s v conving ns c este mai simVim plu dect credei. Creai un ier de tip vim i introducei urmtoapentru rele linii de cod Vim pentru a realiza un meniu:
scheletul
unui 1 :imenu ltx1.antet \documentclass[a4paper,11pt]{}<Left>
program 2 :imenu ltx1.corp \begin{document}<CR><CR>\end{document}<Up><Home>
A
L TEX
Cele dou puncte ne arat c este vorba despre comenzi n linie
pentru Vim. Din imenu reiese destul de uor c este vorba despre un
meniu activ n modul insert. Numele meniului care apare pe bara
principal cu meniuri este LaTeX. Punctul pus dup numele meniului
este urmat de numele elementului pe care vrem s-l introducem n
meniu.
Dac nu vrei sau nu putei lucra n mod grac cu Vim, experimentai urmtorul tip de comand ntr-un script Vim.
76
10
15
20
25
30
35
A
2.1 L TEX
1
normal i\documentclass[a4paper,11pt]{}
10
15
20
25
30
77
2. Tehnoredactarea computerizat
A
gatoriu al antetului unui program L TEX. Programul trebuie s aib
ns i ceea ce se numete un corp.
10
15
n exemplul de mai sus vedei n partea stng un program minimal i-n partea dreapt rezultatul obinut dup compilare.
Ce este compilarea? Un program conine comenzile pe care
vrem s le execute computerul. n cazul compilrii, programul este
prelucrat, ca s spunem aa, n ntregimea sa. Nu obinem rezultatul
dorit pe buci, comand cu comand.
A
Adevrul este c L TEX este sucient de exibil pentru a lucra i
bucat cu bucat. Scriei n prim.tex doar antetul. ntr-o fereastr
ms-dos, cu promptul chiar n dosarul unde este prim.tex, putem
duce un dialog cu TEX de genul celui care urmeaz:
E:\test\zi1>latex prim.tex
This is e-TeX, Version 3.141592-2.1 (MiKTeX 2.4)
entering extended mode
(prim.tex
LaTeX2e <2001/06/01>
Babel <v3.7m> and hyphenation patterns for english loaded.
)
*\begin{document}
(D:\ed\ltx\texmf\tex\latex\base\article.cls
Document Class: article 2001/04/21 v1.4e Standard LaTeX
document class
(D:\ed\ltx\texmf\tex\latex\base\size11.clo)) (prim.aux)
*Salut lume!
*\end{document}
[1] (prim.aux)
78
20
25
A
2.1 L TEX
Promptul > este cel al sistemului de operare, care ateapt o comand n linie. Stelua este promptul sistemului TEX, care ateapt
comenzi. Mesajele indic faptul c totul s-a terminat cu bine.
5
10
15
20
25
30
35
Pentru a compila ierul prim.tex v trebuie un document complet, dup modelul indicat mai sus. Cnd dai acum comanda n
linie latex prim nu mai trebuie s ducei nici un dialog cu TEX.
Putei vedea rezultatul dnd un dublu clic pe prim.dvi.
Atenie, nu scriei textul care vrei s apar pe ecran n afara
corpului programului! n antet, ar o eroare. Dup \end{} n-ar
avea nici un efect. Aceasta din urm este eroarea tipic a novicilor. Este semnul c n-ai neles rolul perechii de comenzi. Nu este
nici o problem! Exersnd v dai seama care este funcia corpului
programului.
unde
scriem
textul
eseului?
Folosii mediul integrat pentru compilare. Dai dublu clic pe ierul prim.tex i acesta va deschis n TEXnicCenter. Cutai
pictograma Build current le (Ctrl+F7). Dai un clic. n fereastra
de jos a mediului integrat vei vedea o serie de mesaje. Dac sunt
0 Error(s), pentru o prim ncercare, totul este n ordine. Pentru a
vedea rezultatul, dai un clic pe pictograma View output.
Este recomandabil s meninei caseta Output prole pe opiu- impornea LaTeX=>DVI ct timp lucrai la primele versiuni ale eseului tana
dumneavoastr. Acestea sunt fazele n care, nainte de era compu- dvi
terelor, ai scris cu mna. Abia cnd pregtii versiunea pentru
printer sau pentru ecran are sens s compilai un ier PostScript
sau pdf. Deocamdat vericai doar dac totul este n ordine pentru
toate cele trei tipuri de rezultat (dvi, ps i pdf).
Vizualizatorul ierelor dvi este setat n aa fel la instalarea mediului integrat nct putei da dublu clic ntr-un punct al textului
i vei reveni n editorul de texte din mediul integrat n punctul
corespunztor din surs.29 n acest fel putei parcurge lesne ciclul
compilarevizualizarecorectare pn obinei rezultatul dorit.
Citii deci sursa pentru a vedea dac n-avei erori din perspecA
tiva limbajului L TEX. Citii rezultatul n programul de vizualizare
pentru a vedea dac el corespunde cu inteniile dumneavoastr. Corectai sursa i recompilai pentru a vedea noul rezultat.
29
79
2. Tehnoredactarea computerizat
A
2.1.3.1.1 Proiectul L TEX Dac elaborai un document de dimensiuni mai mari i punei tot ce este legat de documentul respectiv ntr-un singur ier, acesta devine extrem de greu de inspectat.
Principiul sursei deschise ar putea funciona i la nivelul unui ier
foarte amplu, dar caracterul deschis al sursei nu ne-ar de mare
folos. n plus, ctigm n planul structurrii logice a documentului
dac-l secionm.
10
15
20
[FormatInfo]
Type=TeXnicCenterProjectInformation
Version=2
4
5
6
7
8
[ProjectInfo]
MainFile=eseu.tex
UseBibTeX=0
UseMakeIndex=0
80
25
30
A
2.1 L TEX
1
2
3
4
5
6
7
8
\documentclass[a4paper,12pt]{article}
\author{Prenume Nume}
\title{Primul meu eseu}
\begin{document}
\maketitle
\tableofcontents
\include{text}
\end{document}
Atenie n special la rndul 7 din ierul principal. Acest rnd cuprinde o comand care cere includerea unui ier de tip tex, numit text.tex n proiect. Nu punei extensia ierului n comanda
\include. Fiierul trebuie creat de ctre dumneavoastr. O putei
face att n mediul integrat, ct i-n afara acestuia. Trebuie ns
neaprat s punei acest ier n dosarul proiectului.
Ce cuprinde ierul text.tex? Deocamdat o singur linie de
text pur. Este sucient att pentru prima zi. n perspectiv, n acest
ier poate sta un ntreg eseu.
10
15
20
25
30
Cum compilai proiectul? Cutai pe bara cu instrumente pictograma Build Output(f7). Dai clic i compilai.
f7
81
2. Tehnoredactarea computerizat
n cazul unei cri, este recomandabil ca ecare capitol s e
pus ntr-un ier aparte. Evident, n ierul principal al proiectului,
trebuie s schimbai tipul documentului din article n book.
S-ar putea ca unii s e ngrozii de sumedenia de iere dintr-un
proiect. Dup compilare rezult noi iere. Unele dintre ele, cnd
v satisface rezultatul nal, pot terse. n TEXnicCenter, putei
cura proiectul de ierele auxiliare folosind Build Clean Project.
Este recomandabil ns s avei undeva (pe dischet sau cd ar cel
mai bine) tot proiectul salvat, nainte de a face curenie.
Chiar i curat de ierele auxiliare, un proiect are numeroase
iere. Cum l distribuim pe Internet sau l trimitem prin pota electronic? S-ar putea ca destinatarii s aib probleme cu descrcarea
ierelor. Soluia cea mai bun este s arhivai tot proiectul. Selectai dosarul proiectului. Deschidei meniul contextual. Dac avei
7-zip sau alt program de arhivare instalat, chemai programul de
arhivare, selectai opiunile dorite i construii o arhiv a proiectului. Acum avei un singur ier, lesne de transportat.30
A
2.1.3.1.2 Vim i sintaxa limbajului L TEX Ca orice limbaj
A X are o sintax care trebuie strict respectat.
de programare, L TE
A
Dai un nume de comand pe care L TEX nu-l tie i vei primi la
compilare un mesaj de eroare. Nu se poate ns face ceva pentru a
depista erorile de sintax nainte de faza compilrii.
10
15
20
25
30
82
35
A
2.1 L TEX
pare ns mai exibil i de mai mare ajutor atunci cnd este vorba
despre depistarea unei erori subtile de sintax.
2.1.3.2
Ziua a doua
A
Orice program L TEX se traduce, pn la urm, n comenzi pe care
le execut procesorul TEX. Ar foarte util s ne amintim c TEX
nu este un editor de texte asemenea lui Vim. Este un sistem de
aranjare a textului n pagin n vederea tipririi.
TEX pune pe foaia de hrtie cutii (boxes) n care apoi pune litere.31
10
15
A
2.1.3.2.1 Modurile L TEX Oricine s-a jucat cu cutii tie ns
c le poi e pune unele lng altele, e unele peste altele. Pe foaia de
hrtie, care este bidimensional, cutiile au doar un sens metaforic.
Evident, sunt doar nite patrulatere care pot dispuse pe orizontal
sau pe vertical.
20
vertical obinuit n acest mod se pot pune una peste alta oricte
cutii, deoarece se trece de la o pagin la alta i aa mai departe;
vertical intern Cutiile sunt puse vertical ntr-o alt cutie i exist
o limit dat de dimensiunile cutiei n care se pun alte cutii;
orizontal obinuit n acest mod se pot nirui oricte cutii, deoarece se trece de la un rnd la altul;
25
30
83
2. Tehnoredactarea computerizat
pun o limit n calea niruirii de oricte cutii; aici era vorba ns
de nite distincii de principiu.
Cel de al treilea mod este cel matematic. ntr-un eseul losoc
este perfect posibil s ntlnii formule logice. Acestea trebuie scrise
n modul matematic. Acest mod de lucru al TEX nu poate nvat
ns n dou zile.33
Dac am neles felul n care lucreaz TEX, atunci am neles i
A
modurile de lucru ale L TEX. Putem, de asemenea, s facem i o distext vs. tincie simpl, binar, ntre un mod text i un mod non-textual.
non-text Textul ca atare este aranjat orizontal i vertical. Vei vedea i o serie
de comenzi pentru text. Cnd trebuie specicat explicit c aceste
A
comenzi sunt pentru text L TEX, ele sunt de forma \text...{}.
A
Cnd pornete, L TEX este n modul vertical. Cum se schimb
acest mod? Prin comenzi care implic modul orizontal ntr-una din
versiunile sale i la ntlnirea unuia dintre semnele care nu sunt rezervate.
10
15
>tex
This is TeX, Version 3.141592 (MiKTeX 2.4)
**\tracingcommands=1
*\vbox{}
*a
*\hbox{}
*$x$
*\end
[1]
(see the transcript file for additional information)
Output written on texput.dvi (1 page, 260 bytes).
Transcript written on texput.log.
Chiar dac nu tii comenzile, numele lor este sugestiv: vbox sugereaz o cutie legat de modul vertical; iar hbox este o cutie care are
legtur cu modul orizontal. Citirea ierului de tip log este oricum
instructiv:
1
2
3
84
20
A
2.1 L TEX
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
10
15
20
25
85
2. Tehnoredactarea computerizat
rndul alb pentru a crea alineate mi se pare preferabil. Marele avantaj al faptului c apsarea pe tasta Enter nu este echivalent cu
trecerea la un nou alineat36 este ns altul. Putem pune ecare idee
pe un rnd logic distinct.
Un alineat este crmida de baz a unui text. Fiecare alineat
cuprinde un mnunchi de idei care graviteaz n jurul unei idei-cheie.
Este extrem de avantajos s putem pune ecare idee pe un rnd
distinct.
n acest punct se vede cel mai bine de ce soluia aleas curent
n editoarele de birou este inadecvat pentru munca intelectual.
Editoarele de birou37 ne foreaz s scriem ideile, ca s zic aa, n
modul orizontal, punndu-le unele dup altele. Aceast modalitate
de scriere este avantajoas dac vrem s vedem imediat cum va
arta rezultatul nal. Ce-ai zice ns dac-ar cere cineva ca o cldire
s e construit fr a se recurge la schele, pe motiv c acestea nu
ne permit s vedem pe parcurs apropierea de rezultatul nal? Dac
respectm aceast cerin, rezultatul nal va semna mai mult cu
o colib dect cu o cldire frumoas.
2.1.3.2.3 Textul invizibil Un alineat are o idee-cheie. Putem
A
face ceva, n sursa programului L TEX, pentru a evidenia cumva
ideile-cheie? Da. Editoarele de birou recurg la colorare. Aceast meA
tod este ns rezervat n sursele L TEX pentru marcarea sintaxei
limbajului. Exist ns i o alt posibilitate: textul invizibil (n documentul tiprit n nal).
comentan surse este bine s e puse comentarii. Comentariile pot curii prinde, de pild, ideea-cheie a alineatului. Comanda pentru comenA
L TEX tarii este realizat cu ajutorului semnului rezervat %. Tot ce se a
ntre simbolul procent i primul sfrit de rnd logic devine comentariu i este ignorat de ctre compilator. De asemenea, putem pune
comentariile pe un rnd separat.
Dac examinm nceputurile de rnd din sursa alineneatului de
la pagina 86, rndul 9 vedem un comentariu (pe rndul al doilea n
extrasul de mai jos) care nu apare n text dup compilare (rolul lui
este de a-mi permite s sesizez rapid esenialul alineatului):
1
2
86
10
15
20
25
30
A
2.1 L TEX
3
4
5
6
2.1.3.2.4 Seciunile Este bine s folosim ct mai mult comentariile. n cele ce urmeaz vom explica felul n care pot create
A
seciunile unui eseu ntr-un document L TEX. Titlul lor nu ne spune
ns, dup o vreme, chiar totul despre ce am vrut s punem n seciunea respectiv. Un comentariu ne ajut enorm din acest punct
de vedere.
10
A
n L TEX, articolele sunt divizate n seciuni, subseciuni, subsubseciuni, paragrafe i subparagrafe. Nu exist capitole n cazul unui
articol.
15
1
2
3
4
5
6
25
Termenii din limba englez pentru ultimele dou tipuri de seciuni sunt susceptibili s genereze confuzii. n limba englez, un paragraph este mai degrab un alineat. Numele comenzilor sunt mai
puin importante ns. Semnicativ este c acestea sunt toate seciuni ale unui text. Cea mai mic seciune grupeaz un numr de
alineate, centrate n jurul unei idei-cheie.
Comenzile de secionare pot date i-n mediul integrat TEXnicCenter. Recomandarea noastr este s NU facei acest lucru. Me- creai
diul integrat construiete automat argumentul comenzii \label{} seciunile
i pune o secven sec: la nceputul oricrui argument. Acest obicei cu Vim
87
2. Tehnoredactarea computerizat
mai mult ncurc ns lucrurile. Cel mai bine ar ca argumentul din
comanda \label{} s e un unic cuvnt. Dac punei dou puncte
n argument, atunci nu se mai respect aceast cerin.
La ce slujete comanda \label{}? Scriei comenzi de secionare
n ierul text.tex al proiectul eseu. Nu le scriei n ierul principal. Scriei comenzi pentru toate cele cinci tipuri de seciuni, cu
titluri i ceva text n ecare seciune. Transformai ns n comentarii rndurile unde se a comenzile \label{}. Dup ce compilai,
studiai efectul obinut. n textul generat astfel sunt vizibile seciunile. Primele trei tipuri au i numere puse automat. Eliminarea
comenzilor \label{} n-a stricat ns nimic.
label
10
15
88
20
25
30
35
A
2.1 L TEX
10
2.1.3.3
1
2
3
4
5
6
7
8
25
Ziua a treia
15
20
imenu
imenu
imenu
imenu
imenu
imenu
imenu
imenu
ltx3.emph \emph{}<Left>
ltx3.textit \textit{}<Left>
ltx3.underline \underline{}<Left>
ltx3.textbf \textbf{}<Left>
ltx3.texttt \texttt{}<Left>
ltx3.textsc \textsc{}<Left>
ltx3.textsf \textsf{}<Left>
ltx3.textsl \textsl{}<Left>
Prima dintre comenzile de mai sus este probabil cea mai imporA
tant. n ciuda aparenelor, L TEX face mult mai multe lucruri n
mod automat dect un procesor de cuvinte. Prima comand i spune
A
sistemului L TEX s evidenieze poriunea de text cuprins n acolaA
dele comenzii (argumentul comenzii), n funcie de context. L TEX
alege metoda potrivit, nu utilizatoarea. Este metoda recomandabil de evideniere a textului. n anumite puncte ale textului, alte
metode nu funcioneaz sau nu funcioneaz cum v ateptai.
Pentru a vedea cum funcioneaz comenzile de mai sus cel mai
potrivit este s dm un exemplu:
89
2. Tehnoredactarea computerizat
\emph{Eseul filosofic}\\
\textit{Eseul \emph{filosofic}}\\
\underline{Eseul \emph{filosofic}}\\
\textbf{Eseul \emph{filosofic}}\\
stilurile \texttt{Eseul \emph{filosofic}}\\
literelor \textsc{Eseul \emph{filosofic}}\\
\textsf{Eseul \emph{filosofic}}\\
\textsl{Eseul \emph{filosofic}}\\
\textrm{Eseul \emph{filosofic}}
Eseul losoc
Eseul losoc
Eseul losoc
Eseul losoc
Eseul filosofic
Eseul losoc
Eseul losoc
Eseul losoc
Eseul losoc
10
15
rezervate \texttt{\~{}}\\
\label{}
(conti- \textbackslash{}label\{\}
nuare)
Bara oblic invers este obinut, n modul text, cu comanda
\textbackslash{}.
90
20
A
2.1 L TEX
10
15
A
L TEX este sensibil la diferena de stil ntre semnele folosite n modul matematic i-n modul orizontal, obinuit sau strict. Acest lucru
se vede din prezena unor comenzi specice textului. Unele le-am
menionat deja. Altele pot studiate n exemplele care urmeaz.
>
\textgreater{}\\
<
\textless{}\\
\textsection{}\\
semne
\textparagraph{}\\
speciale
c
\textcopyright{}
Pentru a uura comparaiile am inclus n cazul ghilimelelor i
versiunile scurte ca s zicem aa.38
\textquotedblleft{}\\
\\
\textquotedblright{}\\
\\
ghilimele
\textquoteleft{}\\
\\
\textquoteright{}\\
--\\
--Din exemplul de mai sus rezult implicit cum putem spune sistemului s nu rup punctele de suspensie. Ce facem ns n cazul
ortogramelor romneti? La trecerea de pe un rnd pe altul s-ar putea s ne ciocnim de ruperea ortogramei ntr-un punct nedorit. Felul
n care putem proceda ne este sugerat de exemplele urmtoare:
ntr-o ntr-o ntr-o ntr-o ntr-o
ntr-o parte ntr-o zi zi
ntr-o ntr-o
ntr-o
ntr-o
ortograme
20
38
Atenie! Acestea sunt ghilimele standard n limba englez. Ghilimelele romneti trebuie construite, dup cum vom arta mai jos.
91
2. Tehnoredactarea computerizat
zontal obinuit n locul n care este plasat. Putem compara alte
dou exemple:
\hbox{ntr-o}
\hbox{ntr-o}
\hbox{ntr-o}
ntr-o
ntr-o
ntr-o
\mbox{ntr-o}
\mbox{ntr-o}
\mbox{ntr-o}
A
n manualul su[4], creatorul L TEX, Leslie Lamport, recomand
folosirea comenzii \mbox{} pentru evitarea ruperii textului.39
10
15
20
25
92
30
A
2.1 L TEX
Eseul losoc
Eseul filosofic
Eseul losoc
Eseul losoc
declaraii
Eseul losoc
Eseul losoc
Eseul filosofic
Eseul losoc
Eseul losoc
Se observ c exist o coresponden ntre comenzile prin care se
d o anumit form literelor din text42 i declaraii.43
A
2.1.3.3.2 Revizia textului programelor L TEX Se-ntmpl
de multe ori s lucrez i s uit s subliniez o liter sau s scriu cursiv
un cuvnt. Cnd fac revizia textului descopr aceste probleme. Ce-i
de fcut? Mi-am construit meniurile care urmeaz tocmai pentru a
rezolva genul acesta de probleme.
10
1
2
3
4
5
6
7
8
15
20
imenu
imenu
imenu
imenu
imenu
imenu
imenu
imenu
ltx3.cuvantInAcolade {<Esc>ea}
ltx3.cuvantInComanda \{<Esc>ea}
ltx3.cuvantTextsc \textsc{<Esc>ea}
ltx3.cuvantTexttt \texttt{<Esc>ea}
ltx3.cuvantTextit \textit{<Esc>ea}
ltx3.cuvantSubliniat \underline{<Esc>ea}
ltx3.litSubliniata \underline{<Esc>la}
ltx3.litInAcolade {<Esc>la}
93
2. Tehnoredactarea computerizat
punctul pus n numele ierului. N-am ns nici un interes s schimb
felul n care Vim nelege rolul punctului.
Toat lumea tie c editoarele de birou au o soluie simpl la
problema de mai sus: selectezi textul i apei pe un buton virtual;
poriunea selectat i schimb forma pe ecran. Nu este chiar aa de
greu s construim meniuri Vim care ne permit s lucrm cu poriuni
de text selectate.
1
2
3
4
5
menu
menu
menu
menu
menu
ltx3n.selInAcolade xi{<Esc>pa}
ltx3n.selInComanda xi\{<Esc>pa}
ltx3n.selTextsc xi\textsc{<Esc>pa}
ltx3n.selTexttt xi\texttt{<Esc>pa}
ltx3n.selTextit xi\textit{<Esc>pa}
Aceste meniuri trebuie studiate ceva mai atent dect cele de mai
sus. Ele nu sunt active n modul insert i este resc s e aa.
Atunci cnd selectai text, Vim i schimb modul. Cnd exersai,
acordai atenie i deosebirilor dintre efectul comenzilor n modul
(insert)select i modul vizual, precum i rolului punctului din
care ncepei selecia.
A
Cred c acum vestea proast i vestea bun n legtur cu L TEX
(i Vim!) au prins deja contur. Vestea proast este c-ar trebui s
dobndii un minimum de deprinderi de programatoare sau programator. Vestea bun este legat de exibilitatea sistemului i de
posibilitatea de a face (n principiu) orice cu textul tiprit.
Felul n care sunt percepute cele dou veti depinde n cea mai
mare parte de ct programare tii deja. Dac tii programare,
s-ar putea s i uimit sau uimit s vedei cte lucruri se pot face
fr structuri condiionale, funcii, obiecte i altele. Dac nu tii,
s-ar putea s nu apreciai corect ct de multe lucruri face sistemul
pentru dumneavoastr i ct de puin investii, de fapt, n raport
cu ceea ce primii.
2.1.3.4
10
15
20
25
Ziua a patra
94
30
A
2.1 L TEX
1
2
10
15
20
Dup cum se vede din a doua linie de cod de mai sus, comanda
pentru nota care apare pe margine este asemntoare cu aceea pentru nota de subsol. Dac este vorba despre un document tiprit pe
A
ambele fee ale foii (o carte), atunci L TEX plaseaz automat nota
pe marginea exterioar. O subtilitate a notei marginale o reprezint
posibilitatea de a folosi dou valori pentru argumentul comenzii: una
pentru marginea din stnga, alta pentru cea din dreapta. Putei studia diferena plasnd comanda \marginpar[stnga]{dreapta} n
diverse puncte ale textului, n aa fel nct s-apar cnd pe pagini
pare, cnd pe pagini impare. Nu lsai una dintre paranteze fr
coninut; sistemul va interpreta paranteza goal ca pe o comand i
nu va aa nimic.
2.1.3.4.1 Acolo unde scriau tipograi nchipuii-v c suntei ntr-o tipograe veche. Btrnul meter tipograf culege textul
liter cu liter. Caut prin cutiile din faa sa litere i formeaz rnduri. La capt de rnd desparte-n silabe, dac este cazul, i trece pe
rndul urmtor. i tot aa pn termin un alineat i apoi ntreaga
pagin de carte. Apare ns o problem. Textul rndurilor nu se
termin exact n marginea din dreapta. Arat mai mult ca textul
dactilograat dect ca un text tiprit.
ntr-o alt form, problema aprea i-n cazul articolelor de ziar.
Articolului i se rezerva un anumit spaiu n pagina de ziar. Se ntmpla ns ca articolul s e un pic prea scurt i s nu umple bine
locul rezervat. Nu-i nimic, spuneau tipograi. Aici scriem noi!
25
30
35
Tipograi scriau, cu spaii albe. Se punea albitur. n zilele noastre un program de aezare n pagin a textului, cum este
A
L TEX,scrie i el precum vechii tipogra.
A
n mod normal, L TEX produce o aliniere a textului att la marginea din stnga, ct i la cea din dreapta. Uneori nu reuete s
ncadreze exact textul ntre margini sau n spaiul vertical alocat
i compilatorul se plnge de existena unor bad boxes. Acesta este
este cel de al treilea tip de mesaje pe care le primim de la compiA
lator. Putem primi mesaje cu privire la erori (de sintax L TEX),
avertismente (de exemplu, ni se atrage atenia c trebuie s recompilm sursa) sau aceste mesaje cu privire la textul care nu ncape
bine n cutii.
A
Dac are prea mult text pe un rnd, L TEX spune c a aprut
A
o overfull \hbox.. Dac are prea puin text pe un rnd, L TEX
95
2. Tehnoredactarea computerizat
spune c a aprut o underfull \hbox.. S studiem puin exemplul
care urmeaz.
magice
pentru
Cuvinte magice pentru ucenicii Cuvinte
ucenicii vrjitori cnd nu
vrjitori cnd
reuesc s compileze probad nu reuesc s compileze
gramul:ab:rasintaxadabra
box(es) programul:ab:rasintaxadabra
ab:racompiladabra
ab:racompiladabra
Iniial sistemul s-a plns c-au aprut cutii orizontale prea puin
umplute. El nu tie unde vreau s folosesc dou puncte pentru a
introduce o enumerare i unde cele dou puncte fac parte din expresia magic. Am pus un spaiu alb dup dou puncte, acolo unde
introduc enumerarea. Rezultatul nu a fost total reuit. Sistemul nu
tia cum s despart-n silabe cuvinte magice. Comanda \- i spune
unde poate separa silabele. Acum situaia s-ar ndrepta automat
dac sistemul ar ti c textul este n romn. n prima sptmn,
este mai bine s lsai sistemul setat doar pentru limba englez.
Dac facei exerciii cu un exemplu similar, forai despririle n
silabe dup regulile limbii romne. Avei mai jos exemplul cuvntului uceni\-cii.
Cuvinte magice pentru
uceni\-cii
vrjitori cnd
nu reuesc s compileze
programul: ab:rasin\-taxadabra
ab:racompiladabra
10
15
96
20
25
30
A
2.1 L TEX
pe orizontal sau pe vertical. Practic, scriu un text, compilez, vizualizez, msor cu ajutorul Yap i introduc comenzile pentru a scrie
precum tipograi.
Eseul filosofic Eseul filosofic\\
Eseul\hspace{68pt} filosofic\par
\vspace{10pt}
Eseul filosofic
5
10
15
20
spaii albe
Eseul losoc
Modul de lucru descris mai sus NU este ns recomandabil. El
folosete partea cea mai discutabil din wysiwyg: ideea de a ne
plimba cu cursorul pe ecran i de a aprecia din ochi poziia n care
plasm textul.
A
L TEX ofer posibilitatea unor calcule precise. Ar trebui s ne facem un proiect de aranjare n pagin. S-ar putea ns ca ziua a patra
s aib o valoare simbolic: suntem nc ntre lucrul aproximativ (i
A
comod) i acribia L TEX.
A
2.1.3.4.2 Mediile L TEX Ce facem ns dac vrem ca textul s
e aliniat doar la marginea din stnga? Sau dac dorim s-l aliniem
doar la dreapta? Sau s-l centrm. Trebuie s-i spunem tipografului
cum s aranjeze textul.
25
Primul exemplu de medii va cel pentru centrarea textului, respectiv alinierea la stnga sau la dreapta.
\begin{center}Eseul\end{center}
\begin{flushleft}
filosofic
\end{flushleft}
losoc
\begin{flushright}
filosofic
\end{flushright}
30
Eseul
losoc
Dac studiai atent exemplele de mai sus, vedei c toate cele trei
medii, cnd se ncheie efectul lor, fac trecerea la modul vertical. Nu
trebuie ns s tragei de aici concluzia c orice mediu face trecerea
la un nou alineat atunci cnd se termin.
97
2. Tehnoredactarea computerizat
Cum am putea construi meniuri Vim pentru a scrie mai uor
comenzile pentru medii? Mai jos sunt oferite dou genuri de soluii.
1
2
3
4
5
6
Prima soluie are dou versiuni. Mai nti este creat un meniu care
ne ajut s inserm un mediu ntr-o linie de program. A doua versiune a primului gen de meniu ne permite s scriem ns ntr-un
mod mult mai lizibil codul aferent unui mediu.
Problema primului gen de meniuri este aceea c trebuie s scriem
de dou ori numele mediului. Aceasta este adesea o surs de erori.
Uneori uii s scrii numele mediului n acoladele lui end. Alteori
greeti ceva ntr-una dintre instanele numelui.
Al doilea gen de meniuri ncearc s rezolve problema de mai
sus. Preul pltit este un cod Vim ceva mai complicat. Am redat
meniuri doar varianta de scriere pe vertical a mediului n a doua versiune.
cu caset Acest meniu face s apar o caset de dialog. Exist chiar i o list
de dialog cu nume de medii. Ea are doar un caracter orientativ. Putei s
scriei ce nume vrei n caseta de dialog. Trebuie dat apoi un clic
pe butonul ok al casetei i mediul va aprea n ier. Nu rmne
dect s punei ceva ntre nceputul i sfritul mediului.
Nu uitai c rndurile 3-6 reprezint un singur rnd logic Vim.
Mrimea paginii de hrtie, ca i ecranul, ne oblig s fragmentm
acest rnd n mai mute rnduri vizuale.44
Cu ajutorul mediilor pot create diverse tipuri de liste. Sintaxa
comenzilor este lesne de-neles dac studiai exemplul care urmeaz.
44
Cred c este mai comod s folosii situl crii, de unde putei prelua codul
ca atare, fr s i nevoite sau nevoii s retastai totul.
98
10
15
20
A
2.1 L TEX
\begin{itemize}
\item Primul pe list
\item Al doilea pe list
\item Al treilea pe list
\end{itemize}
\begin{enumerate}
\item Primul pe list
\item Al doilea pe list
\item Al treilea pe list
\end{enumerate}
\begin{description}
\item [Primul] pe list
\item [Al doilea] pe list
\item [Al treilea] pe list
\end{description}
Primul pe list
Al doilea pe list
Al treilea pe list
1. Primul pe list
2. Al doilea pe list
3. Al treilea pe list
Primul pe list
Al doilea pe list
Al treilea pe list
10
15
20
Alte medii ne permit introducerea de citate n text sau a versurilor. Pentru citate scurte este potrivit mediul quote. Pentru citatele
mai lungi mediul quotation este mai adecvat; el formateaz citatul
ca pe un text de sine stttor.
A
L TEX, care este standardul de facto cnd este vorba despre tiprirea de cri de informatic, are desigur i posibiliti de reproducere a progamelor sau fragmentelor de program. Liniile de program
pe care le vedei n aceast carte sunt realizate cu mediul verbatim.
Mediul acesta poate folosit ns ori de cte ori vrem s dm unei
poriuni de text aerul de pagin dactilograat.
A
2.1.3.4.3 Modul matematic L TEX este vestit mai ales pentru capacitile sale de a produce formule matematice. Orict de
A
repede am trece n revist sintaxa limbajului L TEX,nu se poate s
nu spunem cteva cuvinte despre modul matematic.
Indice suprascris xi
Indice subscris xj
Doi indici xij
99
2. Tehnoredactarea computerizat
Arsenalul de simboluri care pot folosite n modul matematic
este impresionant. Sgeile, de pild, la care am recurs i noi pe
parcurs sunt inserate cu ajutorul modului matematic.
A\rightarrow{}B\hspace{50pt}
A\Rightarrow{}B\\
B\leftarrow{}A\hspace{50pt}
B\Leftarrow{}A
AB
BA
AB
BA
10
15
1 0 1
0 1 0
1 0 1
Exemplul necesit cteva comentarii. N-am primi de la compilator un mesaj de eroare dac-am folosi mediul math. Pentru aarea
de sine stttoare a unei formule trebuie s folosim ns mediul
displaymath. Textul matematic nu mai este ncastrat n alineat,
lucru care nu prea ar avea, de altfel, sens n cazul matricii.
20
100
25
30
A
2.1 L TEX
2.1.3.5
Ziua a cincea
A
2.1.3.5.1 Trimiterile n limbajul L TEX Comanda \label{}
am amintit-o deja, n contextul discuiei despre comenzile de secionare. Rolul ei nu a fost ns discutat.
10
15
20
25
30
35
\ref{}
101
2. Tehnoredactarea computerizat
ctre toat lumea. Senzaia produs de aceste trimiteri pe Internet
este una mai ciudat, pentru c, n vreme ce o trimitere de factur
tradiional la un text presupunea eforturi de deplasare i cutare
prin biblioteci, acum textul la care se face trimitere sau imaginea
apar cu mare repeziciune pe ecran.
2.1.3.5.1.1 Vim i navigarea prin intermediul tag-urilor
Dac-ai lucrat cu Vim sau cu alte editoare pentru programare ai
observat n meniuri sau la explicaiile pictogramelor c exist posibilitatea de a construi tag-uri. Pe bara cu instrumente din Vim
vedei o pictogram cu un ciocan pus peste o etichet de forma celor care se leag de valize la aeroporturi. Le voi zice tag-uri, pentru
a nu le confunda cu etichetele (labels).
Vim n-are inclus n kit-ul de instalare programul ctags care creeaz tag-uri. Acest program trebuie descrcat separat de la adresa
de Internet <http://ctags.sourceforge.net>. Programul ctags
este scris de ctre Darren Hiebert. Acest program poate crea tag-uri
pentru o sumedenie de limbaje de programare. Versiunea lui Hiebert
A
nu include ns i L TEX.
Programul lui Hiebert poate extins pentru a include i tagA
tag -uri uri pentru L TEX. Mergei la adresa <http://www.unb.ca/chem/
pentru ajit/vim.htm> i vei gsi o versiune pentru Windows a ctags
A
A
L TEX care produce i tag-uri pentru L TEX. Sursele suplimentare necesare
A
pentru a recompila programul lui Hiebert cu sprijin pentru L TEX
sunt scrise de ctre Ajit J. Thakkar.
Ce facei cu ctags? l punei ntr-un dosar aat pe un path, o
cale pe care caut sistemul Windows. Asta este tot. Vim are deja
pregtite comenzile pentru crearea de tag-uri.
Dup ce ai creat tag-urile putei s examinai ierul tags, aat
n dosarul proiectului dumneavoastr. n proiectul crii de fa
ierul respectiv are, de pild, urmtorul rnd:
1
10
15
20
25
30
Pe acest rnd putem deslui mai nti numele unei etichete, apoi
cel al unui ier i o expresie regulat. Litera l din nalul rndului
ne spune c este vorba despre o etichet (label). Expresia regulat
permite Vim s caute eticheta cu numele respectiv.
Acum putem explica raiunea pentru care am recomandat ca
numele etichetelor s nu conin dou puncte. Dac le conine, comanda de cutare generat de ctags nu va funciona n Vim.45
45
102
35
A
2.1 L TEX
10
A
Cu ajutorul tag-urilor putei i naviga prin sursele L TEX. Putei
pune trimiteri i-n textul invizibil (la compilare) al sursei. De pild,
dac punei numele unei etichete ntr-un comentariu, putei naviga
de la acel punct la locul unde este declarat eticheta. Punei doar
numele, nu redeclarai eticheta. Putei pune numele etichetei i imediat dup comanda % prin care sunt introduse n surs comentariile.
15
Programul ctags este foarte util i s-ar putea s vrei s-l extindei. Eu, de exemplu, am adugat n ierul latex.c scris de Ajit
J. Thakkar urmtoarele rnduri de cod:
20
1
2
3
25
30
35
vericarea
argumentelor
comenzii
\ref{}
addTagRegex (language,
"\\linelabel\{[ \t]*([^} \t]+)[ \t]*\}",
"\\1", "l,linelabel",
NULL);
103
2. Tehnoredactarea computerizat
n aa fel nct s gseasc mai nti pe sort.exe de tip Unix. Programul Unix which v poate spune pe ce cale se a un executabil
i, implicit, ce executabil va apelat cu prioritate.46
Versiunea compilat cu Cygwin apeleaz i programul de tip
Unix sh.exe. Eu folosesc versiunea instalat de Msys pentru sh.exe
i pe cea din GnuWin32 pentru sort.exe47 .
sh.exe
Pentru nceput versiunea programului ctags creat de ctre Anjit J. Thakkar este absolut recomandabil. Explicaiile de mai sus
au fost doar pentru ucenicii vrjitori.48 Experiena descris arat,
de altfel, limitele lucrului cu unelte Unix sub Windows. Dac vrei
s compilai programe C/C++ cu surs deschis, se pare c Linux
este incomparabil mai bun. Atta vreme ct n-avei aceste interese
de ucenic vrjitor experimentat, Windows cred c rmne o alegere
mult mai rezonabil.
2.1.3.5.2 Comenzile noi Ca la orice limbaj de programare, seA
cretul producerii la nesfrit de noi expresii rezid i-n L TEX n posibilitatea de a combina elementele deja introduse pentru a realiza
noi construcii.
A
Ai remarcat desigur faptul c unele comenzi L TEX au nume
foarte lungi. Se spune, de exemplu, \textbackslash{}. Numele
acesta lung nu este fr sens. El ne ofer deja o explicaie a rostului comenzii; ne atrage, de asemenea, atenia asupra faptului c
este o comand pentru modul text. Dezavantajul este c e dicil de
tastat. Nu este greu s denim o nou comand, cu un nume mai
scurt.
Unii folosesc comenzile noi pentru a abrevia denumiri de organizaii sau orice fragment de text ceva mai lung i a economisi timp
la tastare. Comenzile noi se introduc dup modelul urmtor:
1
2
\newcommand{\bs}{\textbackslash}
\newcommand{\ub}{Universitatea din Bucureti}
104
10
15
20
25
A
2.1 L TEX
A
unul pentru numele noii comenzi; altul pentru descrierea, n L TEX,
a aciunii care este ntreprins de ctre sistem n momentul n care
este dat comanda respectiv. Efectul comenzilor noi de mai sus
este lesne de ilustrat:
\NumeleComenzii
\bs{}NumeleComenzii\\
\ub
Universitatea din Bucureti
A
Comenzile noi (cel puin pentru versiunea limbajului L TEX inclus n distribuia MikTEX 2.4) pot denite oriunde n document.
Recomandarea noastr ar s nu le plasai dect n antetul documentului principal sau ntr-un ier special49 .
10
15
20
25
30
\newcommand{\cmd}[1]{\texttt{\bs{#1}\{\}}}
105
2. Tehnoredactarea computerizat
\cmd{section}\\
\cmd{label}\\
\cmd{ref}
\section{}
\label{}
\ref{}
10
\newenvironment{caNotaDeSubsol}{\footnotesize }{\normalsize}
Comanda prin care denim un mediu nou are trei argumente: numele mediului, o specicare a ceea ce se ntmpl cnd ncepe mediul
i o specicare a ceea ce se petrece cnd mediul se ncheie.50
S folosim acum mediul nostru:
Text normal.\\
\begin{caNotaDeSubsol}
Text care poate fi omis
la o prim lectur.
\end{caNotaDeSubsol}\\
Din nou text normal.
Text normal.
Text care poate omis la o prim lectur.
15
106
20
A
2.1 L TEX
2.1.3.6
Ziua a asea
A
L TEX ne ofer toate avantajele unui limbaj de programare. Desigur,
el este prea specializat pe tiprirea de texte pentru a-l folosi comod
n alte scopuri.52 Cnd este vorba despre tiprirea de texte avantajul
A
TEX i L TEX este acela de a ne permite s punem textul n pagin
aa cum dorim.
A
2.1.3.6.1 Pachetele L TEX S-ar putea ca multe dintre problemele care ne frmnt pe noi s fost rezolvate de mult vreme de
A
ctre alii. Comunitatea persoanelor care folosesc L TEX este puternic i aproape sigur vei gsi pe cineva care a dat deja o soluie.
10
Putem desigur mbunti rezolvrile date de ctre alii. Le putem mula dup dorinele noastre. n-are ns rost s reinventm
roata.
Rezultatele obinute deja sunt mpachetate i doar trebuie inA
stalate, integrate n sistemul L TEX pe care-l folosii. MikTEX instaleaz o mulime de astfel de pachete.
15
Sistemul trebuie anunat cnd vrei s folosii un anumit pachet. Persoanele care tiu un limbaj de programare gen Pascal sau
C/C++ sunt probabil intrigate de faptul c-am tot insistat asupra
A
calitilor ce limbaj de programare ale TEX/L TEX. Unde sunt struc53 comanda urmtoare:
turile condiionale? Punei n antet
20
\usepackage{ifthen}
25
107
2. Tehnoredactarea computerizat
Putem chiar aa numrul paginii scriind \thepage{} n text.
Prexul the se pune n faa oricrui contor, atunci cnd vrem s-i
am valoarea. Putem aa valoarea din contor cu ajutorului lui
\value{page}, dar aceast comand o putem folosi doar n argumentul unei alte comenzi, cum ar \isodd{}, care ne spune dac
un numr este impar sau nu.
54
108
10
15
20
25
30
A
2.1 L TEX
10
1
2
3
\newcommand{\letrina}[3]{\noindent\hangindent=#1
\hangafter=-#2\hskip-#1\smash{\hbox to #1
{#3\hfill}}\ignorespaces}
\letrina{15pt}{2}
{\Huge E}seul filosofic
Eseul losoc
20
25
\lettrine[lines=1]{E}seul
filosofic
seul losoc
Soluia lui Daniel Flipo, autorul pachetului lettrine, este evident mai uor de folosit. Dac studiai documentaia aferent pachetului, vei descoperi o mulime de posibiliti de a crea letrine.
2.1.3.6.2 Fiierul de tip sty Comenzile de utilizare a pachetelor, deniiile de noi comenzi i de noi medii sunt reutilizabile.
Dac le-am pune ntr-un ier, am putea muta lesne ierul respectiv dintr-un proiect ntr-altul. n plus, ierul respectiv ar face ca
antetul documentului principal s e mult mai concis.
Extensia ierului n care punem pachetele pe care le utilizm i
deniiile comenzilor i mediilor este sty.
Sintaxa ierelor de tip sty difer de cea a din ierele de tip
tex. Diferenele fa de ceea ce am vzut pn acum sunt uor de
sesizat, dac cercetai cu atenie exemplul de mai jos. Am extras
chiar o parte din ierul sty folosit pentru aceast carte.
55
Acesta este, de regul, numele dosarului unde stau ierele create local sau
pachetele instalate suplimentar de ctre dumneavoastr. Nu uitai s folosii
programul MikTEX Options pentru a remprospta baza de date a sistemului
TEX.
56
Aici folosim ideile lui Seroul[11, p.83]
109
2. Tehnoredactarea computerizat
1
2
3
4
5
6
7
8
\ProvidesPackage{eseu}
\RequirePackage{ifthen}
\RequirePackage{lettrine}
\RequirePackage{url}
%==========================
\setcounter{secnumdepth}{5}
%==========================
\newcommand{\bs}{\textbackslash}
A
Pe primul rnd se arat modul n care se comunic L TEX care este
pachetul furnizat. Apoi se vede cum, n loc de \usepackage{} trebuie folosit comanda \RequirePackage{}
110
10
15
A aptea zi
57
20
25
A
2.1 L TEX
10
A
L TEX n-ar deloc un limbaj comod dac am vrea s scriem programe care s rezolve ecuaii. Nu aceasta este menirea sa. Formatul
comenzilor, numele lor ample i explicite sunt ns extrem de utile
pentru tehnoredactare. Rndurile de mai jos sunt extrase din ierul
sty al crii de fa. Ele aproape nu necesit comentarii.
15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
\oddsidemargin=2.2mm
\evensidemargin=10mm
\topmargin=0mm
%\headwidth %vezi mai jos
\headheight=5.5mm
\headsep=4mm
\textheight=200mm
\textwidth=112mm
\marginparsep=3mm
\marginparwidth=20mm
\footskip=5.5mm
\marginparpush=3mm
\hoffset=17.5mm
\voffset=12mm
\paperwidth=210mm
\paperheight=295mm
%========================================
\addtolength{\headwidth}{\marginparsep}
\addtolength{\headwidth}{\marginparwidth}
111
2. Tehnoredactarea computerizat
cerneal i aezm lng ea alte cutii i aa mai departe ar iei un
A
desen. L TEX poate executa desene n acest mod.
A
Recomandarea noastr ar s folosii L TEX doar pentru a trasa
A
linii i forme geometrice elementare. Partea forte a L TEX o constituie aranjarea textului n pagin, nu desenarea de guri. Figurile
pot create cu alte programe i apoi pot integrate n text.
10
15
112
20
25
30
35
40
A
2.1 L TEX
Un articol scurt, dar extrem de interesant, este cel al lui Piet van
A
Ostrum, Page Layout in L TEX. l gsii, n dosarul fancyhdr, pe
calea \texmf\doc\latex . Articolul ofer explicaii pertinente cu
privire la structura paginii.
10
15
20
25
30
35
f1
113
2. Tehnoredactarea computerizat
2.2
BibTEX
2.2.1
Modul tradiional de alctuire a unei bibliograi presupunea o colecie de e bibliograce i o list alctuit la nalul lucrrii pe
baza acestor e. Elaborarea unei bibliograi computerizate merge
pe aceeai idee.
10
15
biblioBibliograile ne pun n faa unei situaii diferite. Chiar din persgraile pectiva tradiional, ele bibliograce erau o baz de date. n baza
de date, pe e, cmpurile cu informaii pot dispuse n cu totul
alt mod dect n lista bibliograc. De asemenea, n list putem
prezenta doar o parte din informaiile din baza de date.
20
25
30
114
35
2.2 BibTEX
partea introductiv a crii59 , numrul de pagini din partea principal a crii, numrul de pagini alocate indicelui. Ca-n orice niruire
aceste date sunt separate prin virgul. Fiecare rnd corespunde unei
e tradiionale:
1
2
3
Bazerman 1989,527,14,501,12
Fischel 1984,299,10,280,9
Hairston 1974,364,13,344,7
10
15
20
25
Este recomandabil s folosii acest program sau un program similar pentru a v face practic o idee despre ierele csv. Cu programul
lui Sam Francke putei sorta, schimba ordinea coloanelor, elimina ele63 care se repet. Este posibil, de asemenea, utilizarea a diveri
separatori.
59
115
2. Tehnoredactarea computerizat
2.2.2
Sistemul BibTEX
10
15
@BOOK{latex,
author={Leslie Lamport},
title={\LaTeX{}: a document preparation system},
address={Reading, Massachusetts},
publisher={Addison Wesley Longman,Inc.},
year={1994}
}
Structura de mai sus are forma @TIP{eticheta, cmpuri}. Cmpurile sunt separate prin virgule. Fiecare cmp are un nume, urmat
de semnul egal, dup care este pus coninutul propriu-zis al cmpului.
Rolul etichetelor este exact acelai ca i-n cazul unui argument
A
al comenzii \label{} din L TEX sau al unui tag. Eticheta unei nregistrri ne permite s regsim nregistrarea respectiv ntr-un ier.
20
25
Numele cmpurilor sunt sucient de sugestive pentru a nu necesita explicaii. n cazul crii date drept exemplu aceste cmpuri
asigur informaia bibliograc minim n sensul specicat aici.
Pentru a facilita crearea de iere bib putem extinde meniurile
Vim. Iat un exemplu pentru o intrare de tip book:
1
2
3
116
30
2.2 BibTEX
Articolele sunt adesea prezente n bibliograile eseurilor losoce.
Prin urmare, este important s oferim i aici un exemplu de
bibliograc electronic pentru un articol. Aceast ia forma unei
nregistrri ntr-un ier bib, ca-n exemplul care urmeaz:
1
2
3
4
5
6
7
8
9
10
Cum este i normal, n cazul unui articol, trebuie menionat publicaia periodic cu datele aferente.
10
15
1
2
3
4
5
6
7
8
9
10
20
@ARTICLE{FlewTCE,
author={Antony Flew},
title={Issues in Teaching Contemporary Ethics},
journal={Teaching Philosophy},
month={Summer},
year={1975},
volume={1},
number={1},
pages={55--60},
}
@WEBBED{,
author={},
title={},
notatxt={},
url={},
year={},
download={},
note={},
annote={},
}
117
2. Tehnoredactarea computerizat
unui eseu losoc. Ar putea cel mult menionat n note, cu titlu
de surs a unui exemplu sau de surs a unei opinii sau armaii.
n cmpul notatxt punem o not despre situl pe care se a textul sau despre caracterul textului.65 Coninutul acestui cmp ind
mai exibil putem s-l reglm n aa fel nct s scpm de cutiile
cu litere care depesc zona alocat textului bibliograei(bad boxes).
n cmpul url trebuie pus adresa de Internet. Acesta este un
cmp absolut necesar, dar nu sucient pentru o astfel de . Menionarea anului n care documentul a fost publicat pe Internet ar
o completare util.
Documentele de pe Internet au o natur dinamic. Se schimb
des. De multe ori este greu s e identicat versiunea. Nu de puine ori ns, dup ce au fost disponibile o vreme, dispar. De aici
necesitatea cmpului download, n care trebuie trecut data la care
a fost descrcat66 documentul. Recomandarea noastr ar s e
A
folosit un format al datei acceptabil pentru L TEX i care nu recurge
la numele de luni, pentru a nu crea confuzii cu formatul folosit n bibliograe pentru data publicrii documentului. Un astfel de format
ar , de pild, implicit n: 14/09/2003.
n sfrit, structura de mai sus este prevzut cu un cmp pentru
o not i unul pentru adnotare. Nota poate s e folosit pentru un
supliment de informaii privind documentul. Adnotarea are rolul
uzual, acela de a oferi o scurt descriere a documentului.
2.2.2.1
118
10
15
20
A
Un ier bib poate utilizat i independent de sistemul L TEX. Soluia care mi se pare cea mai bun, sub Windows, este cea a utilizrii
programului BibDB, creat de ctre Eyal Doron.67
65
25
2.2 BibTEX
a limbajului, semantic, inteligen articial i domenii conexe,68
este manevrat cu mare uurin de ctre BibDB.69
2.2.3
10
15
20
Stilurile bibliograce
Datele dintr-un ier bib pot extrase i prezentate n diverse moduri, indiferent de felul sau ordinea n care apar ele n ierul respectiv. Modurile acestea de prezentare a datelor bibliograce se numesc
stiluri bibliograce.
Descrierile stilurilor bibliograce sunt plasate n iere care au
extensia bst. Ele sunt scrise ntr-un limbaj special, inventat de ctre creatorul programului BibTEX, Oren Patashnik. Dac nu tii
ceva mai mult programare sunt puine anse s nelegei limbajul
ierelor bst. n orice caz, nu modicai coninutul ierelor bst
standard! Dac vrei s operai modicri, facei o copie ntr-un
dosar din localtexmf i redenumii copia, n aa fel nct s nu se
produc nici un fel de confuzii n sistem.
Pentru nceput putei investiga ierele bst cele mai obinuite ierele
din dosarul base plasat pe calea \texmf\bibtex\bst. Repet, nu bst
modicai nimic aici! Facei doar copia n modul indicat mai sus i
examinai copia.
25
30
A
Limbajul bst are o sintax aparte. Dac n L TEX ai vzut o
structur condiional de forma comand, condiie, aciune, aciune, n bst structura condiional are forma condiie, aciune,
aciune, if$. Este ca i cum ai scrie 2 2 +. Exist motive temeinice pentru a proceda aa, dar explicarea lor nu-i are rostul aici.70
119
2. Tehnoredactarea computerizat
rare a elementelor intrrii bibliograce, precum i unele diferene n
modul de evideniere a lor. Ordinea faptelor privitoare la publicare
difer i ea. Dac v familiarizai cu funciile din plain.bst, vei
descoperi desigur c acesta pune mai nti editura i apoi localitatea i anul. Majoritatea stilurilor bibliograce prefer s indice nti
localitatea i apoi editura.
Stilurile bibliograce denite n ierele bst sunt replici electronice ale stilurilor tradiionale. Un element important de difereniere
l reprezint modul n care se realizeaz conexiunea dintre text i
intrrile din bibliograe. Multe stiluri folosesc un cuplu autor-an.
Plain folosete un numr, numrul intrrii bibliograce.
Oren Patashnik argumenteaz n favoarea stilului plain contra
sistemului editurii Universitii din Chicago.71 Stilul acesta era diA
cil de folosit pe vremea tiparului tradiional. Cu BibTEX i L TEX
situaia se schimb. Nu trebuie s avem grija numerelor din bibliograe.
10
15
A
Listarea unei bibliograi n L TEX
20
A
Generarea bibliograei n L TEX este foarte simpl. n fereastra de
dialog cu proprietile proiectului TEXnicCenter bifai caseta Uses
BibTEX. n ierul principal punei n punctul n care trebuie s apar
A
bibliograa rnduri de program L TEX dup modelul urmtor:
1
2
3
4
\backmatter
\nocite{*}
\bibliography{eseu}
\bibliographystyle{plain}
A
Comanda de pe rndul 1 spune L TEX c este vorba despre partea
nal a crii. Comanda de pe rndul 2 cere aarea ntregului coninut al ierului bib, indiferent de citarea sau nu a intrrilor n
cuprinsul lucrrii. Argumentul comenzii de pe linia 3 este numele
ierului bib, fr extensie. BibTEX adaug automat extensia.73
120
25
10
15
20
25
2.3
30
A
Trimiterile la bibliograe n L TEX
Turnul Babel
121
2. Tehnoredactarea computerizat
la ignorarea importanei programrii unui calculator. Consumatorii
tind s achiziioneze maini puternice. Programele sunt ns adesea piratate sau instalate fr o reglare atent. Efectul este, fr
ndoial, dezastruos.
2.3.1
Literele romneti
litere
romneti
n
Windows
S zicem c folosii Windows98, sistemul de operare la care ne referim n mod preponderent n aceast carte. Dai un clic pe butonul
Start. Urmai ruta Settings Control Panel Keyboard. Fereastra
care se deschide v permite s controlai proprietile tastaturii.
Alegei panoul Language i dai un clic pe butonul Add. . . . Selectai
din lista derulant Romanian. Dai un clic pe ok. Apoi dai un clic
pe Apply.
Dup ce-ai fcut operaiile de mai sus sistemul v va cere, probabil, cd-ul de pe care ai instalat Windows98. Lucrurile se vor petrece ceva mai lin dac sistemul este preinstalat. De cele mai multe
ori ns, oricum nu este nevoie de cd. Fiierul de care avei realmente nevoie este kbdro.kbd i se gsete poate deja n dosarul
c:\windows\system.
Vericai, dup aceea, dac pe taskbar va apare indicatorul ce
ne spune care este tastatura pe care o folosim. De asemenea, vedei
care este combinaia de taste care v convine cel mai mult atunci
cnd comutai de la o tastatur la alta.
Acum avei o tastatur care include literele romneti. Fiierul
kbdro.kbd de pe cd-ul de instalare produce o tastatur pe care
eu unul nu o gsesc comod. Evident, este mai bun dect una
fr litere romneti. Din pcate, tastele y i z i inverseaz n
mod inutil rolul. Semnele de punctuaie sunt greu de gsit. Dac
dai peste un suet caritabil n stare s modice n mod competent
ierul kbdro.kbd, ar bine s aducei tastatura la o form mai
comod.
122
10
15
20
25
30
35
10
2.3.1.1
A
L TEX poate pregti pentru tipar n condiii foarte bune texte cu
litere romneti. Voi prezenta mai nti soluia pe care o folosesc
efectiv n aceast carte i care mi se pare deosebit de comod. Apoi
voi descrie soluia clasic, tipic pentru spiritul TEX, soluie care
A
poate folosit pentru a pregti surse L TEX pe computere care nu
au posibilitatea de a instala tastaturi cu litere romneti.
15
A
2.3.1.1.1 Pachetele L TEX i limba romn Soluia folosit
la pregtirea pentru tipar a crii de fa poate lesne neleas examinnd cele trei-patru rnduri din ierul sty care-i spun sistemului
A
L TEX s foloseasc limba romn:
20
1
2
3
4
5
6
25
A
Soluii L TEX pentru limba romn
\RequirePackage{type1ec}
\RequirePackage[T1]{fontenc}
\RequirePackage[cp1250]{inputenc}
\RequirePackage[english,romanian]{babel}
%===============================================
\newcommand{\texteng}[1]{\foreignlanguage{english}{#1}}
N-am reuit s localizez problema, dar bnuiesc c totul pleac de la problemele generate de ideea de integrare ca atare. Programul trebuie s captureze
uxul mesajelor compilatorului, care este apelat ns n linia de comand.
123
2. Tehnoredactarea computerizat
Nu este absolut necesar s ncrcai cm-super. Putei folosi liA
terele standard n L TEX sau putei ncrca pachetul times pentru
tipul de litere Times New Roman.
Al doilea rnd este ns necesar pentru a avea acces la literele
romneti.76 Comanda pe care o conine ar putea asemuit cu
indicarea pe vremuri a cutiilor cu litere de plumb. Necesar pentru
limba romn este doar opiunea T1.
Rndul al treilea conine o comand care-i spune sistemului n
ce limb i dm ordinele privitoare la litere. n esen, opiunea
cp1250 i spune sistemului c noi folosim codicarea literelor din
Windows.
A
Rndul al patrulea cere L TEX s ncarce pachetul babel. Acest
A
pachet, creat de Johannes L. Braams, permite L TEX s despart
corect n silabe n limba romn, s scrie o serie de cuvinte n limba
romn. Cutai ierul romanian.ldf; citii i modicai (dup ce
v-ai fcut o copie de siguran) unele elemente din acest ier: eu
unul prefer termenul indice (pentru englezescul index); tabelul
i nu tabela i glosar pentru englezescul glossary.77
A
A
2.3.1.1.2 Comenzi L TEX pentru diacritice L TEX are pro79 Exist o serie de
priul su mod de a construi litere cu diacritice.
comenzi care ne permit s plasm diacritice pe litere. Ca deobicei
76
124
10
15
20
25
30
A
Ca i-n cazul altor comenzi din L TEX, numele comenzii, chiar
dac se rezum aici doar la un semn, este sugestiv.
2.3.2
A
Dac vrei s folosii comenzile specice L TEX, crearea unui meniu
Vim pentru literele romneti cu diacritice nu este o soluie foarte
practic. Exist, din fericire, o alternativ. Schimbarea rolului unor
taste.
10
Dac ierul kbdro.kbd este criptic, ierul de tip vim care face
acelai lucru este relativ uor de construit. n orice caz, soluia pe
care o prezentm n continuare este lesne de realizat de ctre oricine:
1
2
3
4
5
6
7
8
9
10
15
20
:imap
:imap
:imap
:imap
:imap
:imap
:imap
:imap
:imap
:imap
<F2>
<S-F2>
<F3>
<S-F3>
<F4>
<S-F4>
<F7>
<S-F7>
<F8>
<S-F8>
\u{a}
\u{A}
\^{a}
\^{A}
\^{\i}
\^{I}
\c{s}
\c{S}
\c{t}
\c{T}
S zicem c-ai scris un ier taste.vim cu coninutul de mai sus. Experimentai o vreme ntr-un dosar special creat pentru teste. Creai
un ier. n modul normal dai comanda :so taste.vim.80 Acum
tastele funcionale au un rol!
Nu este nevoie de prea multe explicaii pentru ceea ce ai obinut. n scriptul vim, cele dou puncte sunt desigur un semn c
este vorba despre o comand care poate dat i-n linie. Putei s
le i eliminai. Cheia comenzilor este imap, care-i spune lui Vim s
schimbe rolul unei taste n modul insert. <f2> se refer la cea de-a
doua tast funcional.81 Dup numele tastei, este indicat noul ei
rol.
80
81
125
2. Tehnoredactarea computerizat
Eu recomand schimbarea n felul artat mai sus a rolului tastelor funcionale. La urma urmei, pentru asta sunt disponibile pe
tastatur: pentru a putea reprograma rolul lor.
V scie ns inversarea rolului tastelor y i z din tastatura
romneasc a Windows? n-ai gsit pe nimeni care tie cum s modice kbdro.ro? n Vim, putei schimba rolul celor dou taste.
Studiai ns atent sau atent urmtoarele dou rnduri!
1
2
inoremap z
inoremap y
y
z
inoremap <S-z>
inoremap <S-y>
10
Y
Z
A
De la codurile Windows la comenzile L TEX i napoi
126
15
20
25
30
00:
10:
20:
30:
40:
50:
60:
70:
80:
90:
a0:
b0:
c0:
d0:
e0:
f0:
00:
0102
1011
2021
3031
4041
5051
6061
7071
8081
9091
a0a1
b0b1
c0c1
d0d1
e0e1
f0f1
0000
0304
1213
2223
3233
4243
5253
6263
7273
8283
9293
a2a3
b2b3
c2c3
d2d3
e2e3
f2f3
0d0a
0506
1415
2425
3435
4445
5455
6465
7475
8485
9495
a4a5
b4b5
c4c5
d4d5
e4e5
f4f5
0708
1617
2627
3637
4647
5657
6667
7677
8687
9697
a6a7
b6b7
c6c7
d6d7
e6e7
f6f7
090d
1819
2829
3839
4849
5859
6869
7879
8889
9899
a8a9
b8b9
c8c9
d8d9
e8e9
f8f9
0a0b
1a1b
2a2b
3a3b
4a4b
5a5b
6a6b
7a7b
8a8b
9a9b
aaab
babb
cacb
dadb
eaeb
fafb
0c0d
1c1d
2c2d
3c3d
4c4d
5c5d
6c6d
7c7d
8c8d
9c9d
acad
bcbd
cccd
dcdd
eced
fcfd
0e0f
1e1f
2e2f
3e3f
4e4f
5e5f
6e6f
7e7f
8e8f
9e9f
aeaf
bebf
cecf
dedf
eeef
feff
2
3
4
5
6
7
0 1
!
0 1
@ A
P Q
a
p q
2
"
2
B
R
b
r
\begin{verbatim}
3 4 5 6 7 8 9 a b
# $ % & ( ) * +
3 4 5 6 7 8 9 : ;
C D E F G H I J K
S T U V W X Y Z [
c d e f g h i j k
s t u v w x y z {
\end{verbatim}
c
,
<
L
\
l
|
d
=
M
]
m
}
e
.
>
N
^
n
~
f
/
?
O
_
o
127
2. Tehnoredactarea computerizat
a ecranului Vim vor aprea numele literei, codul zecimal al literei,
codul n hex i-n octal.
Cu ierul astfel creat putei face investigaii. Modicai versiunea tipului de liter i vei vedea alte semne pe ecran. Punei, de
pild, versiunea pentru greac a tipului de liter i observai unde
apar literele greceti. Schimbai tipul de liter i studiai posibilitile pe care vi le ofer.
2.3.2.1.2 Schimbri de care s-ar putea s aib nevoie i
persoanele obinuite Dac suntei o utilizatoare sau un utilizator obinuit, v-ai mulumit doar s citii n diagonal seciunea 2.3.2.1.1. Dac ai srit peste ea, aruncai totui o privire. V
vei ntreba poate de ce am folosit o imagine i nu un text pentru a
ilustra felul n care Vim aeaz literele limbilor Europei Centrale.
A
Motivul rezid n modul n care L TEX prelucreaz input-ul pe care
l-am produs cu ajutorul Vim.
10
15
Codul 131 n-are o deniie n cp1250. Codul 132 este tradus prin
\quotedblbase{} i genereaz <>.
Dm n continuare restul listei codurilor care nu ridic probleme
deosebite:
133<. . . >
139<>
145<>
150<>
156<>
161<>
168<>
128
134<>
140<>
146<>
151<>
157<>
162<>
169< c >
135<>
141<>
147<>
153<TM >
158<>
163<>
170<>
137<% >
142<>
148<>
154<>
159<>
165<>
171<>
138<>
143<>
149<>
155<>
160< >
167<>
174< r >
20
25
30
176< >
183<>
188<>
193<>
198<>
203<>
208<>
213<>
219<>
224<>
229<>
234<>
239<>
244<>
250<>
255<>
178<>
184<>
189<>
194<>
199<>
204<>
209<>
214<>
220<>
225<>
230<>
235<>
240<>
245<>
251<>
179<>
185<>
190<>
195<>
200<>
205<>
210<>
216<>
221<>
226<>
231<>
236<>
241<>
246<>
252<>
180<>
186<>
191<>
196<>
201<>
206<>
211<>
217<>
222<>
227<>
232<>
237<>
242<>
248<>
253<>
10
Codul 173 este tradus prin \-{} care este comanda prin care i se
A
spune sistemului L TEX unde se poate face o desprire n silabe. Nu
l-am inclus n tabel pentru c efectul su este invizibil dac nu se
face efectiv o desprire n silabe n punctul n care apare. De altfel,
A
nici nu mi se pare o idee bun s folosim acest semn n sursa L TEX;
ar imposibil s-l deosebim de liniua de unire.
Codul 136 are efect n Vim, dar este nedenit n cp1250. n
schimb, codurile 127 i 144 nu au efect n Vim i sunt nedenite i-n
cp1250. Folosirea lor genereaz o eroare.
15
A
Codurile urmtoare au efect n L TEX, dar trebuie folosite n modul matematic, nu n mod text:
172<>
20
177<>
181<>
215<>
247<>
Cazurile cele mai interesante sunt cele ale codurilor 164 i 166.
A
Ele sunt denite n cp1250. L TEX nu genereaz un mesaj de eroare
din perspectiva tastaturii, a input-ului. Apare ns un mesaj de
eroare care ne spune c nu exist n T1 simbolurile corespunztoare.
Este ca i cum turntoria de litere de plumb ne-ar spune c n-are
mulajele necesare pentru a turna litere de forma cerut.
Nu v bucurai prea mult de listele cu coduri de mai sus. Ele
sunt bune n cazul Windows. n lumea larg, vei ntlni o jungl de
129
2. Tehnoredactarea computerizat
astfel de coduri. Cu adevrat important este nelegerea procesului
n mai multe trepte prin care o apsare pe o tast se transform
A
ntr-un cod numeric, apoi ntr-o comand L TEX i se termin prin
gsirea unui simbol care este pus pe foaia de hrtie.
N-am putea opera i noi asemenea transformri? Desigur c da.
A
n interiorul L TEX ele au o utilitate mai restrns, n msura n
care putem folosi pachete gata pregtite. Transformrile sunt cu
A
adevrat utile n afara L TEX.
Putem folosi Vim pentru a opera o trecere de la codicarea WinA
dows la cea a L TEX. Voi ilustra acest lucru n cazul literelor romneti. Generalizarea nu este dicil de realizat. Trebuie doar create
nite iere de tip vim care conin scripturile pentru realizarea substituiilor. Iat cum facem trecerea de la coduri Windows la comenzi
A
L TEX:
1
2
3
4
5
6
7
8
9
10
%s//\\u{a}/ge |
%s//\\u{A}/ge |
%s//\\^{a}/ge |
%s//\\^{A}/ge |
%s//\\^{\\i}/ge
%s//\\^{I}/ge |
%s//\\c{s}/ge |
%s//\\c{S}/ge |
%s//\\c{t}/ge |
%s//\\c{T}/ge |
2
3
4
5
6
7
8
9
10
%s/\\u{a}//ge |
%s/\\u{A}//ge |
%s/\\^{a}//ge |
%s/\\^{A}//ge |
%s/\\^{\\i}//ge
%s/\\^{I}//ge |
%s/\\c{s}//ge |
%s/\\c{S}//ge |
%s/\\c{t}//ge |
%s/\\c{T}//ge |
15
update
update
update
update
| update
update
update
update
update
update
130
10
update
update
update
update
| update
update
update
update
update
update
20
10
Ideea de baz este cea de a ataa o alt codicare tastei. Urmtoarele comenzi v permit s tastai pe n loc de { i pe n loc
de [.
15
1
2
:map! {
:map! [
<char-195>
<char-227>
20
:map! /a
Trebuie s batei ns sucient de repede tastele una dup alta pentru a obine efectul dorit.
Putem crea i scripturi cu astfel de modicri ale tastelor. Atenie
ns la asigurarea unui gen sau altul de mecanism de scpare. Punei,
de exemplu, n script ceva de genul:
25
Vim are posibilitatea de a crea tastaturi cu ajutorul unor scripturi speciale. Doar cu titlu de exemplu, putem presupune c-am creat
un ier romana.vim i l-am plasat n dosarul keymap din vimfiles.
Coninutul su este urmtorul:
1
2
tastatur
romneasc
pentru
Vim
let encoding=cp1250
let b:keymap_name = "ro"
131
2. Tehnoredactarea computerizat
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
loadkeymap
" Taste modificate n jurul lui Enter:
[
{
]
}
\\
<Bar>
;
:
\"
" Recuperarea tastelor pierdute (folosind combinaii):
/. :
/, ;
/q {
/w }
/z \\
2.3.3
10
Br\{e}hier\\
L\^{E}tre et le n\{e}ant\\
La science et lhypoth\{e}se\\
G\"{o}del\\
f\"{u}r sich
132
15
az igazhvk
mvelet
Unele limbi europene au simboluri speciale, pe lng cele din
alfabetul latin:
\L{}ukasiewicz\\
ukasiewicz
Bewu\ss{}tsein\\
Bewutsein
S\o{}ren Kierkegaard\\
Sren Kierkegaard
\AA{}kvist\\
kvist
filozof ta\c{s}\i{}\\
lozof ta
\textquestiondown{}
humanizacin o deshumanizahumanizaci\{o}n
cin?
o deshumanizaci\{o}n?\\
. . . !
\textexclamdown{}\ldots{}!
az igazh\{\i}v\H{o}k\\
m\H{u}velet
10
15
20
83
133
2. Tehnoredactarea computerizat
2.3.4
10
134
15
Eseul filosofic
E SEUL
FILOSOFIC
Eseul losoc
20
Eseul losoc
Eseul filosofic
Eseul losoc
Eseul losoc
10
2.3.4.2
Alfabetul chirilic
20
! "
% & ' ( ) * , - . /
0 1 2 3 4 5 6 7 8 9 : ; < > ?
A B C D E F G H I J K L M N O
P Q R S T U V W X Y Z [ ]
` a b c d e f g h i j k l m n o
p q r s t u v w x y z |
S-ar prea c a avut loc un accident. Avei n surs aceleai coduri, dar rezultatul nal apare cu litere chirilice. Nu a avut loc nimic
neobinuit. Codicarea nal este cea care s-a schimbat.
Dac n ierul sty facem cteva modicri putem insera n textul cu litere latineti text cu litere chirile:
25
30
\RequirePackage[OT2,T1]{fontenc}
135
2. Tehnoredactarea computerizat
2
3
4
5
6
7
8
9
%...............................
\newcommand{\textrus}[1]{\foreignlanguage{russian}{#1}}
\newcommand{\dur}{\cyrhrdsn}
\newcommand{\Dur}{\CYRHRDSN}
\newcommand{\moale}{\cyrsftsn}
\newcommand{\Moale}{\CYRSFTSN}
\newcommand{\erus}{\cyrerev}
\newcommand{\Erus}{\CYREREV}
Soluia aceasta este ideal atunci cnd textul nu este preponderent n limba rus sau nu dispunem de cunotinele necesare pentru
a modica tastatura. Secretul ei este c o comand precum:
1
2
3
\textrus{
abvgde\"{e}zhzi\U{i}klmnoprstufkhtschshshch
\dur{}y\moale{}\erus{}yuya}
are drept rezultat la ieire, pe foaia de hrtie (zic sau electronic) irul: abvgdeziklmnoprstufhcqxwy~ de semne
ale alfabetului rus.85
Dac majoritatea textului este cu chirilice pare mai raional s
modicai codicarea input-lui. n acest caz, putei folosi opiunea
cp1251 pentru inputenc i o opiune de genul T2A pentru fontenc.
Putei avea n continuare acces la literele romneti cu ajutorul
comenzilor TEX pure. De asemenea, trebuie s modicai tastatura
Vim n aa fel nct s putei introduce lesne literele chirilice.86
2.3.5
10
15
136
20
10
Exist o transliterare precis a textelor greceti vechi. Ea se numete betacod. Transliterarea aceasta n-are un aspect estetic prea
A
plcut, dar este foarte ecient n rolul de input ntr-o surs L TEX.
Pentru a folosi betacodul trebuie s ncrcai pachetul betacode
punnd n locul cuvntului babel cuvntul betababel. Pachetul
betababel este o extensie a pachetului babel creat de ctre Felix
G. Berkemeier.
Voi explica principiile de baz ale betacodului cu ajutorul unor
termeni losoci foarte cunoscui:89
\bcode{A)DIA/FORON}\\
\bcode{AU)TA/RKEIA}\\
\bcode{AU)TARXEI/A}
15
20
25
diforon
atrkeia
atarqea
bolhsvic
gnesvic
dinoia
edoc
137
2. Tehnoredactarea computerizat
nal. Dac avem nevoie, putem ns scrie \bcode{s1} pentru a obine
sv i \bcode{s2} pentru a obine c.
\bcode{ZW=|ON}
zon
Accentul circumex este notat prin semnul egalitii. Iota subscris este notat printr-o bar vertical.
\bcode{H(DONH/}\\
\bcode{QEWRI/A}\\
\bcode{I)SONOMI/A}\\
\bcode{KO/SMOS}\\
\bcode{LO/GOS}\\
\bcode{TA\ MAQHMATIKA/}
don
jewra
svonoma
ksvmoc
lgoc
t majhmatik
\bcode{NOU=S}\\
\bcode{CENO/S}\\
\bcode{O)/NOMA}\\
\bcode{PAQO/S}\\
\bcode{R(OH/}\\
\bcode{SWFROSU/NH}\\
\bcode{TE/LOS}\\
\bcode{U(PO/QESIS}\\
\bcode{FRO/NHSIS}\\
\bcode{XRO/NOS}\\
\bcode{YUXH/}\\
\bcode{W(/RA}
noc
xenc
noma
pajc
o
svwfrosvnh
tloc
pjesvic
frnhsvic
qrnoc
yuq
ra
\bcode{*)Aristote/lhs}\\
\bcode{*Dioge/nhs *Lae/rtios}\\
\bcode{*E)mpedoklh=s}\\
\bcode{*Pla/twn}
91
138
10
15
1
2
3
4
\begin{betacode}
sullogismo\s de/ e)sti lo/gos e)n w(=| teqe/ntwn tinw=n e(/tero/n
ti tw=n keime/nwn e)c a)na/gkhs sumbai/nei tw=| tau=ta ei)=nai.
\end{betacode}
2.3.5.1
10
Swkrathc
Observai cum, ca i-n cazul literelor chirilice, am modicat codicarea la ieire, nu pe cea de la intrare. Este normal s procedm
aa atta timp ct suntem interesate i interesai de inserarea unor
cuvinte sau mici fragmente de text n greac ntr-un text care altfel
este scris preponderent cu caractere latine.
15
Dac-ai sesizat c a cu accent ascuit are codul 225, atunci suntei pe drumul cel bun cu experimentele. Pasul urmtor const n
localizarea efectului obinut mai sus. Scriei un alt proiect, n care
preambulul arat astfel:
20
1
2
3
4
5
\documentclass{article}
\usepackage[cp1250]{inputenc}
\usepackage[LGR,T1]{fontenc}
\usepackage[polutonikogreek,romanian]{babel}
\newcommand{\textelin}[1]{\foreignlanguage{polutonikogreek}{#1}}
92
139
2. Tehnoredactarea computerizat
Punei numele lui Socrate ntre acoladele comenzii \textelin{}.
Acum doar acest cuvnt va aprea cu litere greceti. Opiunea LGR
nu este acum neaprat necesar. De fapt, pachetul babel va face
oricum apel la ea.
Acum ar trebui s e i mai limpede ce rol joac babel i ce rol
joac betababel. Cnd ncrcm betababel acest pachet cheam
pachetul babel i introduce opiunea polutonikogreek. De aceea,
opiunea aceasta este nu doar superu, ci genereaz chiar erori n
cazul n care am ncrcat pachetul betababel.
2.3.5.2
Ibycus
10
15
140
20
25
2.3.6
10
15
20
25
30
A
L TEX i unicod
Pachetul ucs
Dup cum se vede mai sus, n cazul scrierilor care folosesc un alfabet,
ne putem descurca excelent separnd poriunile n care folosim o
anume codicare de celelalte. Cadrul oferit de codurile de la 0 la ff
este totui strmt. Pentru a avea acces la lumea codicrii unicod,
96
Sigma majuscul pune probleme n betababel. Urmrii situl crii pentru
a detalii, exemple i eventuale soluii mbuntite.
141
2. Tehnoredactarea computerizat
trebuie recurs la pachetul ucs. ncrcarea sa se face dup modelul
urmtor:
1
2
3
4
5
\usepackage{ucs}
\usepackage[utf8,cp1250]{inputenc}
\usepackage[LGR,OT2,T1]{fontenc}
\usepackage[romanian]{betababel}
\newcommand{\textelin}[1]{\foreignlanguage{polutonikogreek}{#1}}
\begin{quote}
\textelin{S}\bcode{WKRA/THS SOFO\S A)NH/R,
TA/ TE METE/WRA FRONTISTH\S KAI\}\ldots
\end{quote}
142
10
15
20
\textelin{\textdigamma}\\
\textelin{\textsanpi}
Ultimul simbol are codul hex 03e1 (zecimal 993). Alte coduri
i comenzile aferente lor pot studiate cu ajutorul documentaiei
pachetului ucs sau citind chiar programele din pachet ca atare.
2.3.7
10
15
20
a
b
g
A
Alte pachete cu simboluri n L TEX
r
CV
25
30
143
2. Tehnoredactarea computerizat
fonetic hr, nseamn a cdea. Determinativul este acum un om aat
a
10
A
LT
2.4
15
Tabele i formule
Multe dintre eseurile losoce nu au deloc tabele sau formule. Persoanele care folosesc intens ananaliza logic au ns nevoie cel puin
de cunotinele de baz privitoare la scrierea de formule. De asemenea, multe eseuri de losoe politic recurg la tabele statistice.
20
2.4.1
Tipul cel mai simplu de tabel conine doar text aranjat pe linii i
coloane. Voi descrie nti modul de a construi un mic tabel, pe care-l
voi folosi mai jos pentru a realiza un tabel ceva mai complicat.
Tabelul simplu are dou coloane i dou rnduri. Nu servete
dect la dispunerea a patru cuvinte n cele patru coluri ale unei
mici pagini.
\begin{tabular}{cc}
Liberal & Libertarian \\
Populist & Conservator \\
\end{tabular}
Liberal
Populist
Libertarian
Conservator
144
Ibidem.
A se vedea aici 3.3.
25
30
10
15
20
25
30
35
145
2. Tehnoredactarea computerizat
\begin{tabular}{lccc}
&
& 1 & 1 \\
&
& + & - \\
2 & + & L1 & L2 \\
2 & - & P & C
\end{tabular}
2
2
+
-
1
+
L1
P
1
L2
C
\newcommand{\mc}[3]{\multicolumn{#1}{#2}{#3}}
\begin{table}[ht]
\centering
\begin{tabular}[c]{lccc}
&
& \mc{2}{c}{Intervenia}\\
&
& \mc{2}{c}{statului}\\
&
& \mc{2}{c}{n economie}\\
&
&
pro
&
contra\\
\cline{3-4}
& \mc{1}{r|}{}
&
&\mc{1}{c|}{}\\
Extinderea
& \mc{1}{r|}{pro}
& L1
&\mc{1}{c|}{L2}\\
libertilor & \mc{1}{r|}{}
&
&\mc{1}{c|}{}\\
personale
& \mc{1}{r|}{contra}& P
&\mc{1}{c|}{C}\\
\cline{3-4}
\end{tabular}
\caption{Tipuri de ideologii dup Maddox i Lilie}
107
Termenul tehnic n englez este cel de oat. Nu doar imaginile plutesc n
pagini. Notele marginale sunt, de pild, i ele structuri plutitoare.
146
10
15
20
10
\label{TipuriDeIdeologii}
\end{table}
Comanda \multicolumn{}{}{} merit o atenie special. Pentru c numele ei este lung am redenumit-o mc (pe rndul 1 din fragA
mentul de surs L TEX de mai sus). Primul ei argument specic
numrul de coloane. Acest numr poate i 1! Al doilea argument
arat cum este aliniat textul. Al treilea argument este reprezentat
de text ca atare. n rezumat, este o comand care spune pe cte
coloane este scris un text n tabel i cum este aliniat.
Dac dup litera care specic alinierea punem o bar verical108 , atunci n tabel, la captul coloanei(coloanelor) respective
apare o linie vertical.
Liniile orizontale sunt trasate cu \cline{}; n argumentul acestei
comenzi trebuie specicat de la ce coloan pn la ce coloan se
trage linia. Comanda \hline trage o linie orizontal de-a lungul
ntregului tabel.
Intervenia
statului
n economie
pro
contra
Extinderea
libertilor
personale
pro
liberalism
libertarianism
contra
populism
conservatorism
20
147
2. Tehnoredactarea computerizat
1
2
3
4
5
6
7
8
\begin{longtable}[c]{lllll}
---\textless{}...\textgreater{}&
---\textless{}...\textgreater{}&
---\textless{}...\textgreater{}&
---\textless{}...\textgreater{}&
---\textless{}...\textgreater{}\\
................................
\end{longtable}
2.4.2
A
L TEX este ndeosebi faimos pentru capacitatea sa de a genera formule matematice. n seciunea 2.1.3.4.3, referitoare la modul matematic, am artat deja cum ne putem sluji de modul matematic n
rndurile de text. Multe eseuri losoce conin formule n limbajul
simbolic al logicii. Este, de aceea, util s trecem n revist modul
A
simbolistica de baz a logicii poate realizat n L TEX.
Negaia : $\neg{}p$\\
O notaie pentru conjuncie:\\
$p\&{}q$\\
Alt notaie pentru
conjuncie:\\
$p\wedge{}q$\\
Implicaia: $p\to{}q$\\
Echivalena: $p\equiv{}q$
10
Negaia : p
O notaie pentru conjuncie:
p&q
Alt notaie pentru conjuncie:
pq
Implicaia: p q
Echivalena: p q
15
Cuanticare existenial:
(x)(P x Qx)
Cuanticare universal:
(x)(P x Qx)
148
20
2.4.2.1
x aparine mulimii X: x X
Negaia apartenenei: x X
/
Incluziunea: Y X
Intersecia: X Z
Reuniunea: X Z
Complementara: X
Rezultatele matematice sunt exprimate ca formule n limbaj simbolic i, de regul, sunt scrise pe rnduri separate. Oricum, atunci
cnd citm formule din crile altora, trebuie s le punem pe un
rnd separat.
ddac |=LK
a
A
Iat cum am codicat n L TEX enunul din cartea lui Adrian
Miroiu:
1
2
3
4
10
15
20
\begin{displaymath}
\mathrm{\vdash_{\scriptscriptstyle LK}\varphi\ ddac\breve{a}\
\models_{\scriptscriptstyle LK}\varphi}
\end{displaymath}
A
Codicarea L TEX este destul de transparent pentru cei care tiu
logic. S-ar putea spune chiar c ofer un plus de explicaii. Trebuie
totui fcute cteva comentarii.
Prima observaie este aceea c trebuie s tratm modul matematic ca un loc n care n-are sens s venim cu obiceiurile de a scrie
A
n mod text. n primul rnd, n mod automat, L TEX scrie cursiv
textul matematic. De aici necesitatea comenzii \mathrm{}, care-i
spune sistemului s scrie cu tipul de liter roman.
n al doilea rnd, folosirea literelor n modul matematic are particularitile sale.110 Literele greceti, de pild, se obin cu ajutorul litere
unor comenzi speciale. Am folosit \varphi i nu \phi pentru c greceti n
aceasta era varianta lui f folosit n textul lui Adrian Miroiu.
modul
n al treilea rnd, trebuie observat rolul spaierii i alegerii di- matemamensiunii literelor n modul matematic. Barele oblice inverse urmate tic
109
110
149
2. Tehnoredactarea computerizat
de un spaiu sunt comenzi! Ele cer introducerea unui spaiu, menit
s elimine eventuale ambiguiti. De asemenea, o pereche de acolade
(fr nimica ntre ele) foreaz mrirea spaiului alb. De aici lipsa
lor dup \vdash sau \models. Cu acolade dup comenzi, rezultatul
ar LK sau |= LK .
Declaraia \scriptscriptstyle corecteaz dimensiunea indicelui, reducnd-o la dimensiunea unui indice la indice. Observai, n
acest sens, diferena dintre LK i LK .
Un alt exemplu, extras dintr-o carte a lui Mircea Dumitru, pune
i el probleme interesante de tehnoredactare.111 Fragmentul citat
mai jos este o parte din deniia noiunii de satisfacere n logica
modal a propoziiilor(LLMP). Iat fragmentul:
10
20
text n
modul Comanda \text{} cu ajutorul creia am inserat text n modul mamatema- tematic nu este accesibil dac ai ncrcat doar nucleul sistemului
A
tic L TEX. Trebuie s ncrcai pachetul amstext.112
111
150
15
25
2.4.2.2
10
15
Punerea de diacritice pe litere n modul matematic difer de operaia similar din modul text. Dac scriu un n mod matematic,
sistemul traduce acest lucru prin comanda \u{a}, care este inacceptabil n mod matematic. Trebuie scris \breve{a} n mod matematic.
Iat literele romneti n mod matematic pur (fr pachetul
amstext):
$\breve{a}$ $\breve{A}$\\
aA
$\hat{a}$
$\hat{A}$\\
$\hat{\imath}$
$\hat{I}$\\ a A
$\stackrel{\textstyle{}s}{,}$ I
$\stackrel{\textstyle{}S}{,}$\\ s S
, ,
$\stackrel{\textstyle{}t}{,}$ t T
, ,
$\stackrel{\textstyle{}T}{,}$
20
2.4.2.3
25
Numerotarea formulelor
A
Eu am folosit n special Scott Pakin The Comprehensive L TEX Symbol List (v. ierul symbols.dvi n dosarul comprehensive din documentaia
MikTEX).
151
2. Tehnoredactarea computerizat
Dei pare complicat, axioma Nicodukasiewicz pentru logica
A
propoziiilor(2.1) nu este greu de scris n L TEX.
[p/(q/r)]/ [s/(s/s)]/{(s/q)/[(p/s)/(p/s)]}
(2.1)
\begin{equation}
[p/(q/r)]/\bigg([s/(s/s)]/\{(s/q)/[(p/s)/(p/s)]\}\bigg)
\label{NicodLukasiewicz}
\end{equation}
10
15
p
1
1
0
0
q pq
1
1
0
0
1
1
0
1
Pentru un tabel asemenea celui de mai sus, scriei mai nti comenzile pentru mediul care aeaz formule nenumerotate. Procedai apoi ca i-n cazul mediului tabular, dar folosii mediul array,
n care putei introduce formule.
Tabelele cu formule sunt evident mult mai utile dac ne putem
referi la ele de la distan. De exemplu, vreau s v dau un exemplu
152
20
q p q p (p q) (p (p q)) q
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
Tabelul 2.2: Demonstrarea unei tautologii
A
Sursa L TEX a tabelului 2.2 sper c este sucient de clar pentru
a nelege modul n care este construit tabelul. Am evitat n mod
special utilizarea & drept conectiv pentru conjuncie pentru a nu
genera confuzii. Simbolul rezervat & este separatorul coloanelor, nu
i nume pentru o comand de generare a simbolului conectorului
conjunciei.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
10
15
\begin{table}[htb]
\centering
\begin{displaymath}
\begin{array}{llccc}
p & q & p\to{}q & p\wedge{}(p\to{}q) & (p\wedge{}(p\to{}q))\to{}q\\
\hline
1 & 1 &
1
&
1
&
1
\\
1 & 0 &
0
&
0
&
1
\\
0 & 1 &
1
&
0
&
1
\\
0 & 0 &
1
&
0
&
1
\end{array}
\end{displaymath}
\caption{Demonstrarea unei tautologii}
\label{DemonstrareaUneiTautologii}
\end{table}
A
Putei localiza poziia unui tabel n cadrul sursei L TEX cu ajutorul TEXnicCenter. Putei, de asemenea, produce o list a tabelelor n
documentul nal, plasnd comanda \listoftables dup comanda
\tableofcontents din ierul principal al proiectului.
153
2. Tehnoredactarea computerizat
o linie simpl sau dubl este necesar deasupra ultimului rnd. Ea
face tabelul mai clar. Abuzul de linii este total nerecomandabil.
Crearea de tabele poate un lucru extrem de pretenios. Adesea
ele sunt prea late sau prea lungi i aa mai departe. Prezentarea
noastr a fost doar una sumar. Trebuie s citii o carte despre
A
L TEX care acord mai mult spaiu tabelelor.114 Foarte util este i
documentaia inclus n distribuia MikTEX.
2.4.2.5
Formulele ca tabele
10
15
20
25
xy =
154
30
x + y, dac x, y < 57
5
altfel
x + y, dac x, y < 57
5
altfel
xy =
(2.2)
10
1
2
3
4
5
6
7
8
9
15
x + y, dac x, y < 57
5
altfel
\begin{equation}
x \oplus y = \left\{
\begin{array}{ll}
x+y,
&
\text{dac}\ x,y<57 \\
5
&
\text{altfel}
\end{array}
\right.
\label{quus}
\end{equation}
A
n ciuda aparentei simpliti a codului L TEX, dac ncercai s-l
construii fr nici un plan, s-ar putea s v trezii ntr-un noian de
erori. Orice tabel, orict de simplu, trebuie proiectat atent.
155
2. Tehnoredactarea computerizat
2.4.3
A
Scrierea surselor L TEX pentru modul matematic este un lucru mult
mai pretenios dect pregtirea prii care este n mod text. Din
fericire, crile de logic sau de losoa tiinei, cele care folosesc
deobiecei cel mai intens limbajele simbolice, nu conin la tot pasul
sisteme de ecuaii complicate.
10
A
Marea majoritate a introducerilor n L TEX sunt scrise din perspectiva utilizrii sistemului pentru a tehnoredacta studii i cri de
matematic i informatic. Nu vei duce lips de surse de documentare dac v intereseaz tehnicile avansate de elaborare a textelor
care conin formule complicate.117
15
2.5
Indexarea electronic
A
L TEX folosete un program special pentru a genera indici. Folosirea
acestui compilator de indici este mai simpl dect n cazul BibTEX.
Ca i-n cazul BibTEX, mediul integrat TEXnicCenter are,la proprietile proiectului, o opiune pentru folosirea programului MakeIndex118 . Aceast opiune trebuie bifat, dac vrei s generai
un indice.
Studiai, de asemenea, Dene Output Proles. . . din meniul Build
al TEXnicCenter i vei vedea cum este apelat makeindex.exe n
mediul integrat.
n preambulul documentului principal al proiectului trebuie s
A
introducei dou comenzi L TEX:
1
2
\usepackage{makeidx}
\makeindex
n limba romn putei consulta cartea lui Paul A. Blaga i Horia F. Pop[1].
Autorul programul MakeIndex este Pehong Chen. Pentru detalii referitoare
la program i utilizarea lui, a se vedea Leslie Lamport, MakeIndex: An Index
A
Processor for L TEX, \texmf\doc\makeindex\makeindex.dvi n documentaia
MikTEX.
118
156
20
25
10
\index{indici!generarea manual}
\index{indici!generarea lor cu MakeIndex}
15
20
\index{editor de texte|see{Vim}}
25
119
Prima oar este modicat doar ierul de tip ind. Abia a doua oar se modic i documentul nal. Dac avei probleme, citii mesajele compilatorului.
157
2. Tehnoredactarea computerizat
158
Capitolul 3
Pensula electronic
Cuprins
3.1
3.2
3.3
10
Imaginile . . . . . . . . . . . . . . . . . .
3.1.1 Programul Gimp . . . . . . . . . .
3.1.2 Limbajul PostScript . . . . . . . .
A
Inserarea imaginilor n L TEX . . . . . . .
3.2.1 Inserarea de imagini n iere pdf
Inserarea literelor ca inserare de imagini .
3.3.1 Desenarea unei litere . . . . . . . .
3.3.2 Inserarea literei n text . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
159
161
162
164
165
167
167
170
15
A
L TEX are propriile sale comenzi i medii pentru realizarea de
diagrame i desene cu caracter tehnic. Prezentarea lor ar depi cu
mult ambiiile foarte reduse ale acestei anexe.
20
3.1
25
30
Imaginile
3. Pensula electronic
A
Atunci cnd tehnoredactm un text n L TEX nu ne intereseaz
punctele de pe ecran sau de pe foaia de hrtie. Gndim din perspectiva cutiilor cu litere plasate pe ecran sau pe foaie, nu gndim
la nivelul pixelilor. Dac vrem s nelegem ns secretele imaginilor
generate de ctre computer, trebuie s ne ndreptm atenia ctre
aceste puncte minuscule.
10
5a00
0300
2400
0000
0000
0000
0000
0000
0000
0000
00ff
ffff
0000
0300
9c0e
ffff
ffff
ff00
0000
0000
0000
ff00
0000
0000
3600
0100
9c0e
0000
0000
0d0a
0000
1800
0000
ffff
0000
160
20
2800
0000
0000
ff00
ffff
15
25
3.1 Imaginile
albastru n programul de vizualizare, dup ce ai remprosptat5
imaginea. Schimbai pe ffffff n 00ff00 i pixelul devine verde.
Schimbai pe ffffff n 0000ff i pixelul devine rou.
5
Fiierele create n modul descris mai sus, conin o hart a pixelilor. Nu este de mirare c, atunci cnd mrim o astfel de imagine,
lucrurile arat precum n gura 3.1.
10
3.1.1
Programul Gimp
Vim este un excelent editor de iere de tip text, dar n-ar putea
folosit pentru editarea de imagini. ntr-un fel, exemplul cu care am
nceput seciunea 3.1 ne arat de ce acest lucru este adevrat.
15
20
Programul pe care l-a recomanda n mod deosebit pentru prelucrarea hrilor de pixeli este Gimp.6 Gimp poate deschide inclusiv mica imagine creat prin manipularea codurilor hex (vezi pagina 160, rndul 20).
Posibilitile Gimp sunt numeroase, dar descrierea lor nu constituie obiectivul anexei de fa. Multe dintre aciunile pe care le
putei ntreprinde cu Gimp sunt evidente din denumirea meniurilor
contextuale ale ferestrelor programului.
O singur observaie ar de fcut aici. Ar inutil s ncercai
s schimbai o imagine de 3 3 pixeli cu pensulele Gimp, orict
5
161
3. Pensula electronic
de mici le-ai face. Selectai zona (practic pixelii) pe care vrei s o
modicai i umplei-o cu culoarea dorit.
3.1.2
Limbajul PostScript
%!PS
%%BoundingBox: 18 28 124 180
/cm { 28.35 mul } def % definiia centimetrului
%%EndProlog
1 cm 6 cm moveto
% punctul din care va fi desenat figura
1 cm 3.5 cm lineto
% marcarea unei ci
4 cm 3.5 cm lineto
% marcarea mijlocului lui phi
4 cm 6 cm lineto
% ncepem bucla lui phi
2.5 cm 6 cm lineto
% ne ntoarcem ctre mijloc
2.5 cm 1 cm lineto
% ultima cale marcat
0.7 cm setlinewidth
% grosimea liniei pe calea trasat
2 setlinejoin
% rotunjirea colurilor
stroke
% punerea de cerneal pe calea trasat
showpage
% afiarea paginii
162
10
15
3.1 Imaginile
Persoanele familiarizate cu notaia polonez din logica simbolic
pot nelege mai uor sintaxa PostScript. Limbajul creat de ctre
rma Adobe folosete notaia polonez invers.8
5
10
15
20
25
30
35
3.1.2.1
163
3. Pensula electronic
avei instalat Ghostscript pe computer. Gimp folosete Ghostscript
pentru a lucra cu iere PostScript.
Gimp poate, de pild, deschide fr probleme ierul phi.ps, cu
sau fr cutia delimitatoare.
Fii atente i ateni la faptul c Gimp, dac modicai ierul
PostScript, se va folosi de posibilitatea de a construi hri de pixeli
n PostScript! Pe lng faptul c ierul va de needitat cu mna,
imaginea va avea probleme la scalare ca orice bitmap.
Dac avei deja creat un ier PostScript, lucrul cel mai bun pe
care-l poate face Gimp este s-l transforme ntr-un ier jpg.
10
15
3.2
A
Inserarea imaginilor n L TEX
Cutiile imaginilor PostScript sunt inserate de ctre TEX printre cutiile proprii. Rezultatul este de o calitate deosebit de bun i este
foarte uor de obinut.
Voi descrie dou cazuri: inserarea simpl a unei imagini PostScript i transformarea ei ntr-un corp otant, la care ne putem
A
referi cu ajutorul mecanismului trimiterilor din L TEX.
20
25
...
\usepackage{graphicx}
...
\begin{center}
\includegraphics[scale=1]{./imagini/phi.ps}
\end{center}
164
30
A
3.2 Inserarea imaginilor n L TEX
A
Cealalt metod este ilustrat cu ajutorul codului L TEX folosit
pentru a insera gura 3.1:
1
2
3
4
5
\begin{figure}[ht]
\includegraphics[width=.98\textwidth]{./imagini/bitmap.ps}
\caption{O imagine care folosete o hart a pixelilor mrit}
\label{puncteBitmap}
\end{figure}
Trimiterile la guri se pot face folosind comanda \ref{} i eticheta denit n mediul figure.
10
15
20
3.2.1
25
30
\usepackage[pdftex]{graphicx}
10
165
3. Pensula electronic
Un ier pdf are dou mari avantaje: este portabil (poate vzut
att sub Unix, ct i sub Windows); este compact i uor de trimis
sau de descrcat pe Internet. Cu alte cuvinte, este o superb carte
electronic.
Putei converti direct un ier ps ntr-unul pdf folosind Ghostscript. Recomandabil ar s folosii opiunea LaTeX => PS => PDF
la compilare, disponibil n versiunea 1 beta 6.20 a TEXnicCenter.
Dezavantajul convertirii descrise mai sus este acela c n-avei
acces la compilatorul pdflatex. Limbajul PDF are specicul su,
n raport cu PostScript, i este resc s e aa: o carte electronic
se citete altfel dect una tiprit.
10
11
166
15
20
25
30
35
3.3
3.3.1
10
Ca deobicei, ideea noastr este c modul cel mai bun de a nva (chiar i principiile n materie de programare) este meterirea
unui program i experimentarea. Creai cu Vim un ier phi.mf cu
urmtorul coninut:
15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
u#:=1/2pt#;
define_pixels(u);
beginchar(70,12u#,12u#,6u#);"Litera phi";
x1=x2=u; x3=x4=11u;
y1=y4=y5=7u; y2=y3=u;
x5=x6=6u;
bot y6=-5u;
pickup pencircle scaled 0.5pt;
draw z1..z2;
draw z2..z3;
draw z3..z4;
draw z4..z5;
draw z5..z6;
labels(range 1 thru 6);
endchar;
end
Ar destul de greu s ne dm seama ce semnicaie are programul phi.mf fr a genera o imagine. Deschidei cu 2xExplorer o
fereastr ms-dos pentru dosarul n care se a phi.mf i dai dou
comenzi:
20
1
2
mf phi
gftodvi phi.2602gf
167
3. Pensula electronic
168
10
15
20
25
30
600dpi este o msur a rezoluiei printerului (dots per inch). Cum minusculele pete (dots) de cerneal seamn cu pixelii, msura este bun i pentru
ecran.
169
3. Pensula electronic
3.3.2
un F cu coluri.
Cum am procedat? Am pus ierele de tip mf pk i tfm n dosarul
proiectului crii13 i am spus sistemului s recunoasc un nou tip
de liter i s-l foloseasc:
1
2
3
10
\newfont{\literaPhi}{phi}
\newcommand{\filos}{{\literaPhi F}}
un \filos{} cu coluri.
Prezentarea de mai sus este una strict informativ. Litera construit n-are o valoare practic. n orice caz, valoarea ei este foarte
limitat. Pot rescrie formula preluat din cartea lui Adrian Miroiu:14
LK
F ddac |=LK F
a
170
15
20
Capitolul 4
Translatorii
Cuprins
5
4.1
10
4.2
4.3
15
20
. . . . . . . . . . .
cu ajutorul HEVEA
cu ajutorul TEX4ht
A
cu L TEX2html . .
. . . . . . . . . . .
. . . . . . . . . . .
172
174
176
177
178
179
A
L TEX este un limbaj pentru cei care au nostalgia crilor frumos
tiprite. Este, de asemenea, limbajul ideal pentru elaborarea scrierilor cu caracter academic. n lumea de azi exist ns multe alte
limbaje pentru documentele electronice.
25
A
Exist deci o problem a integrrii documentelor L TEX n acest
peisaj variat i, n funcie de necesiti, a traducerii lor n alte limbaje.
30
4. Translatorii
Tiprirea poate pe hrtie sau electronic. n cazul tipririi
electronice, formatul pdf este cel la care trebuie ajuns, dac este
posibil. Utilizarea pachetului hyperref, creat de ctre Sebastian
Rahtz, este, de asemenea, absolut recomandabil n cazul tipririi
electronice.1
Date ind scopurile crii de fa, prezentarea n detalii a traduA
cerii din L TEX n alte limbaje n-are sens. Obiectivul nostru principal l reprezint producerea unor texte tiprite. Aceast anex
ofer doar cteva informaii cu privire la posibilitile i tehnicile
de traducere, fr nici un fel de indicaii cu caracter practic. Pentru instalarea, utilizarea i modicarea programelor la care ne vom
referi trebuie s consultai documentaia lor.
Nu uitai niciodat s efectuai ecare traducere ntr-un dosar
A
separat. Pentru a obine rezultate mai bune sursele L TEX trebuie
pregtite n mod special n vederea traducerii, conform indicaiilor
din documentaia relevant.
4.1
10
15
A
Documentele L TEX, tiprite electronic n iere ps sau pdf sunt
uor de vehiculat pe Internet. Aa cum am artat mai sus, formatul
pdf este preferabil.
20
A
A se vedea explicaiile lui Sebastian Rahtz, n Hypertext marks in L TEX,
ierul hyperref.dvi din \texmf\doc\latex\hyperref, precum i restul documentaiei din dosarul respectiv. Nu ncercai s nelegei de la bun nceput
subtilitile tehnice ale pachetului; simpla lui includere n document i cteva
minime adaptri ale documentului vor produce efecte spectaculoase.
2
Bradley[2, p.4] arat c sgml a devenit un standard n 1986.
172
25
30
10
Numele tag-urilor, precum i indicaiile de prelucrare a poriunilor de text plasate sub cupola unui tag sunt date separat n Document Type Denition, pe scurt dtd.
dtd
15
20
25
30
35
Observai precizarea privitoare la dtd. Chiar dac ea lipsete, vizualizatorul de html se descurc. Analizoarele de html nu sunt
3
Bradley[2, p.72] explic felul n care poate identicat poriunea scris n
TEX.
173
4. Translatorii
nici pe departe aa de pretenioase cu textul pe care-l au n fa ca
TEX.
Capacitile html sunt destul de limitate, dar n ultima vreme
exist un efort considerabil de a dezvolta xml, n ncercarea de a
redescoperi ntreaga putere a sgml.
A
Din descrierea sumar de mai sus se vede c L TEX i html au
i o serie de puncte comune. Sunt, n orice caz, perfect compatibile.
10
A
LT
4.1.1
A
De la L TEX la html cu ajutorul HEVEA
15
20
174
25
30
:%sno//ã/ge | update
:%sno//Ã/ge | update
:%sno//â/ge | update
:%sno//Â/ge | update
:%sno//î/ge | update
:%sno//Î/ge | update
:%sno//ş/ge | update
:%sno//Ş/ge | update
:%sno//ţ/ge | update
:%sno//Ţ/ge | update
10
1
2
3
4
5
6
7
8
9
10
:%sno/ã/ă/ge | update
:%sno/Ã/Ă/ge | update
:%sno/â/â/ge | update
:%sno/Â/Â/ge | update
:%sno/î/î/ge | update
:%sno/Î/Î/ge | update
:%sno/ş/ş/ge | update
:%sno/Ş/Ş/ge | update
:%sno/ţ/ţ/ge | update
:%sno/Ţ/Ţ/ge | update
4.1.1.1
15
20
175
4. Translatorii
Programul care v ajut s facei secionrile descrise mai sus
este HACHA. Acest program trebuie folosit dup ce ai prelucrat documentul cu ajutorul HEVEA.
4.1.1.2
10
4.1.2
A
De la L TEX la html cu ajutorul TEX4ht
15
176
20
25
30
Bressan i Eitan Gurari pentru pachetul TEXProject.8 Am instalat elementele din pachetul respectiv. Am pus sursa manualului
ntr-un dosar n care nu era alt ier. Am adugat n surs comanda
\usepackage{tex4ht} i am dat ntr-o fereastr ms-dos comanda
ht latex manual. Fr a exagera, se poate spune c rezultatul a
fost de o calitate deosebit de bun.
TEX4ht poate produce i iere xml n formatul denit de ctre
dtd-uri ale OpenOce.
4.1.3
10
15
20
25
A
A
De la L TEX la html cu L TEX2html
A
L TEX2html a fost conceput iniial de ctre Nikos Drakos. Opera
sa a fost continuat de ctre Ross More i alii. Ideea lor de baz
este aceea de a realiza un translator care traduce n ntregime docuA
mentul L TEX: unele pri sunt traduse direct n limbajul html, iar
ceea ce nu se poate traduce este transformat n imagine i inserat
ca imagine n documentul html.
177
4. Translatorii
oricui o mare satisfacie. Este recomandabil folosirea lui n cazul
transformrilor mai dicile. Este singurul dintre translatori care s-a
descurcat cu anexele crii de fa chiar i fr s operat vreo
A
schimbare n sursa L TEX.
4.2
10
15
20
A
Pentru a benecia de toat puterea L TEX2rtf trebuie s avei
instalat Ghostscript i ImageMagick13 .
Poriunea prins ntre acolade reprezint un grup. Ca i o instruciune TEX, secvena \b i spune programului care interpreteaz ierul rtf c grupul trebuie scris cu aldine. Alternativ, am putea
folosi comenzile \b i \b0 pentru a marca nceputul, respectiv sfritul poriunii de text care este scris ngroat.
Putei experimenta pe un ier rtf creat cu ajutorul translatorului folosind editorul Vim. Fiierele de tip rtf sunt iere text.
12
178
25
30
A
4.3 napoi ctre L TEX
10
:%s/\\u{a}/a227/ge | update
:%s/\\u{A}/A195/ge | update
:%s/\\^{a}//ge | update
:%s/\\^{A}//ge | update
:%s/\\^{\\i}//ge | update
:%s/\\^{I}//ge | update
:%s/\\c{s}/s186/ge | update
:%s/\\c{S}/S170/ge | update
:%s/\\c{t}/t254/ge | update
:%s/\\c{T}/T222/ge | update
4.3
A
napoi ctre L TEX
15
20
Pentru a vedea un ier rtf putei folosi programul de vizualizare a documentelor Word pus la dispoziie gratuit de ctre Microsoft. Acest program poate
citi i iere rtf. Putei construi propriul lector de rtf folosind codul inclus de
ctre Microsoft n specicaia limbajului rtf. Ca i formatul rtf, programul
de vizualizare i codul pentru lector sunt proprietatea rmei Microsoft i pot
folosite numai n condiiile respectrii drepturilor rmei. Citii desigur licenele
aferente.
179
4. Translatorii
introduse n text. Aceasta este raiunea succesului produsului respectiv pe pia.
A
Trecerea de la Word la L TEX este departe de a chiar att
de simpl. Exist o serie de produse comerciale care ncearc s
fac fr prea mult succes acest lucru. Eu m voi referi aici
la un program cu surs deschis, MSWordView.16 MSWordView
a fost conceput iniial ca un program de traducere, sub Unix, a
documentelor Word n html. n stadiul actual este capabil s fac
A
o traducere, inclusiv sub Windows, n L TEX.
A
Partea bun a MSWordView atunci cnd traduce n L TEX este
A
capacitatea sa de a produce o surs L TEX curat. Redarea literelor
specice limbii romne este, de asemenea, impecabil.
10
15
16
Versiunea cea mai comod de instalat sub Windows este cea disponibil n
cadrul proiectului GnuWin32. A se vedea <http://gnuwin32.sourceforge.
net>.
180
20
25
30
Bibliograe
A
[1] Paul A. Blaga i Horia F. Pop. L TEX 2 . Bucureti: Editura
Tehnic, 1999. Citat la pp. 65, 150, 154 i 156.
[2] Neil Bradley. The concise <sgml> companion. Harlow, Anglia: Addison-Wesley, 1996. Citat la pp. 172 i 173.
[3] I. Funeriu. Principii i norme de tehnoredactare computerizat.
Timioara: amarcord, 1998. Citat la p. 86.
A
[4] Leslie Lamport. L TEX: a document preparation system. Reading, Massachusetts: Addison Wesley Longman,Inc., 1994. Citat la pp. 65, 92, 93, 108 i 154.
[5] Henry McGilton i Mary Campione. PostScript by Example. Reading, Massachusetts: Addison-Wesley, 1992. Citat
la p. 162.
[6] Tony McKinley. From Paper to Web. San Jose, California:
Adobe Press, 1997. Citat la p. 174.
[7] Bram Moolenaar. Vim User Manual. <http://vimdoc.sf.
net>, 2002, data accesrii: 2003/12/03. Citat la pp. 35, 36,
37, 38, 43, 45 i 46.
[8] Costic Moroanu. Elemente de baz ale sistemului TEX i
plain TEX. Iai: Editura Universitii Alexandru Ioan Cuza,
2001. Citat la pp. 64 i 65.
[9] Steve Oualline. Vi IMprovedVim. <http://www.truth.sk/
vim/vimbook-OPL.pdf>, 2001, data accesrii: 2003/12/30. Citat la p. 35.
A
[10] Artur Pusztai i Gheorghe Ardelean. L TEX: ghid de utilizare.
Bucureti: Editura Tehnic, 1994. Citat la p. 65.
BIBLIOGRAFIE
[12] S. Tth. Litera de tipar. Bucureti: Editura tiinic, 1966.
Citat la p. 64.
182
Indice
, 89
Autoexec.bat, 19, 20
betacod, 137140
BibDB, 118
bibliograe
cu BibTEX, 119121
stil, 119, 120
stil simplu, 120
bitmap, vezi imagini(hri de
pixeli)
Bozinis, Nikos, 9
Braams, Johannes L., 124
cutare, vezi i expresii regulate
pe Internet, 5460
cale, 5
computerul i munca intelectual, 71
coninut vs. form, 113
concordan, 53, 54
corectura
computerizat, 6062
ctags, 102104
cuprins
A
cu L TEX, 80, 81, 153
Denisov, Alex, 145
descriptor, 157
Doron, Eyal, 118
Drakos, Nikos, 177
expresii regulate, 4652
e, 7
INDICE
gcc, 21
Ghostscript, 13
Gimp, 161163
GNU, 22
GnuWin32, 21
Gonzato, Guido, 112
grep, 51
Gurari, Eitan, 176
HACHA, 175
HEVEA, 174
hieroglife, 143
home, 20
Ibycus, 140, 141
imagini
hri de pixeli, 160, 161
vectoriale, 162, 163
indici
generarea lor cu MakeIndex, 157
Jacq, Christian, 143
Joy, William, 24
Knuth, Donald, 64, 6668, 83,
123, 135
Lamport, Leslie, 65
LaTable, 145
A
L TEX, 6567
#, 105
alineat, 85
antet, 76
bad box(es), 96
\bcode{}, 137
{\bfseries }, 93
blocurile, 92
\cite{}, 121
comentarii, 86
compilare, 78
contoare, 107
corpul programului, 79
cp1250, 127130
184
declaraiile, 92
diacritice, 124
documentaie, 112
{\em }, 93
\fontfamily{}, 134
\fontsize{}, 134
\footnote{}, 94
ghilimele, 91
\hspace{}, 96
hyperref, 172
ifthen, 108
\index{}, 157
{\itshape }, 93
\label{}, 88
\ldots{}, 91
letrine, 109
\marginpar{}, 94
\mbox{}, 92
{\mdseries }, 93
mediile, 97
modul matematic, 99
modurile, 83
\newcommand{}{}, 104
\newenvironment, 106
pachete, 107
pachete proprii, 109
\pageref{}, 101
\par{}, 85
\ref{}, 101
\relax, 110
revizia, 93
{\rmfamily }, 93
romna, 123
{\scshape }, 93
seciuni, 87
\selectfont{}, 134
semne rezervate, 76, 90
{\sffamily }, 93
{\slshape }, 93
structura paginii, 111
\textbf{}, 90
\textit{}, 90
\textrm{}, 90
INDICE
\textsc{}, 90
\textsf{}, 90
\textsl{}, 90
\today{}, 92
{\ttfamily }, 93
\underline{}, 90
unicod, 141
{\upshape }, 93
\vspace{}, 96
A
L TEX2html, 177, 178
A
L TEX2rtf, 178
Levy, Silvio, 140
litere
chirilice, 135, 136
greceti, 136141
limbile europene, 132, 133
romneti, 29, 122126, 151
MacKay, Pierre, 140
Maranget, Luc, 174
matchit, 82
meniu contextual, 4
METAFONT, 144, 167169
MikTEX, 69, 70
More, Ross, 177
ms-dos, 1517
MSWordView, 180
note
de subsol, 94, 95
marginale, 95
octet, 34
Oetiker, Tobias, 112, 113
OpenOce, 60, 177
folosirea bibliograei, 24
Ostrum, Piet van, 113
Pakin, Scott, 151
paragraf, 87
partiiile, 5
Patashnik, Oren, 119, 120
Pehong Chen, 156
pixel, 159
plagiatul, 180
proiect
A
L TEX, 80, 82
rnd
logic, 28
sfritul de rnd, 8, 35
vizual, 28
Rahtz, Sebastian, 172
seciune, 87
sgml, 172
sit, 57
splitle, 6
stil bibliograc
Chicago, 120
simplu, 24, 120, 121
subdescriptor, 157
substituie, 50
surse deschise, 22, 23
tabele, 100, 144148, 152, 154,
155
TEX4ht, 176, 177
TEXnicCenter, 51, 52, 57, 72,
73
TEXnicCenter
i Vim, 74
trimiteri
n comentarii, 103
n pagini web, 58, 173
de la un indice la altul,
157
la alt pagin, 101
la alt seciune, 101
la bibliograe, 121
la guri, 165
la tabele, 146
unicod, 141, 175
Unix, 6, 19, vezi i GnuWin32
unelte, 20
Unruh, Dominique, 142
utilizare vs. programare, 94
185
INDICE
Vim
cutare, 52, 53
comenzi n linie, 27
congurare, 29
corectura sintactic, 31
cursorul, 40, 41
dialog, 98
instalare, 25
meniuri, 36, 37, 39
modicarea textului, 42
45
modul insert, 25, 26
modul normal, 25, 26
modul vizual, 27
scripturi, 30
semne de carte, 32
tastaturi, 131
Viton, Philip, 174
Volovich, Vladimir, 123
wget, 58, 59
Wilson, Peter, 143
Windows
ascuns, 18, 19
comenzi, 15
ghidul, 3, 5
windows-1250, 174
WindowsXP
variabile de mediu, 20
Word, 179
Yap, 75, 79, 96, 97, 169, 170
i Vim, 75
186