Diacritice Howto

Nagy Andrei 11 aug 2005

Deambiguizare

DIACRITC, diacritice, adj. (În sintagma) Semn diacritic = semn grafic care dă unei litere a alfabetului o valoare specială. [Pr. : di-a-] -- Din fr. diacritique.DEX 1983
character(en) = caracter(ro) = Simbol interpretabil fie de oamneni şi/sau aparate. Nu toate caracterele sunt litere.
letter(en) = literă(ro) = Simbol folosit de oameni pentru comunicarea scrisă. Toate literele sunt caractere.
character set(en) = alfabet(ro) = Sumă de caractere din memoria calculatorului a fi folosită de o limbă. Alfabetul limbii române vine din secolul XIX, iar calculatorul îl reprezintă folosind alfabetul ISO8859-1. ---------ASTA TREBE SCRISA ALTFEL
font(en) = scriere(ro) = Manieră de reprezentare a literelor.
keyboard map(en) = ??????? dispunerea tastelor. tot una cu layout???

Preambul

Acest howto se referă la folosirea diacriticelor în linux. Dacă sunteţi interesat de diacritice sub Windows, mergeţi aici.

Acest howto este sub licenţă FDL.

Cele prezentate aici sunt cu bună intenţie, dar în cazul nefericit în care pierdeţi date sau se produce orice defecţiune, nu îmi asum răspunderea.

Toate mărcile înregistrate numite în acest text sunt proprietatea proprietarilor lor.

Se va expune instalarea diacriticelor în BASH şi X Window System. De asemeni, se vor discuta chestiuni legate de folosirea diacriticelor.

Introducere

Dacă citiţi acest text, o explicaţie despre caracterele diacritice este de prisos.

Pe calculatoare, caracterele se stochează într-un fişier (sau mai multe), un alfabet, conform unor standarde. Dintre acestea:

Când utilizatorul apasă o tastă, tastatura (dispozitiv de intrare a datelor în calculator) trimite un semnal electric 'citit' de calculator. Sistemul de operare conţine un mecanism de atribuire unui astfel de cod un caracter. Caracterul este afişat mai departe pe monitor comform scrierii alese în prealabil.
Asemănător, dacă datele (caracterele) sunt extrase dintr-un fişier, se vor afişa pe monitor sau hârtia imprimată comform scrierii. Poate aţi observat o dată diferenţe minuscule între caracterele afişate de un editor de text şi caracterele de pe hârtie -- se poate întâmpla dacă imprimanta e configurată a folosi scrierea din fabricaţie şi nu cea de pe calculator.

Din aceasta, se înţelege că pentru folosirea diacriticelor din orice limbă avem nevoie de o dispunere a alfabetului corespunzător pe tastatură şi de cel puţin o scriere ce să reprezinte acel alfabet.

Instalarea şi utilizarea tastaturii
în bash

Se întâmplă să fim nevoiţi să lucrăm în consolă. De obicei modificăm fişiere de configurare, iar oricine cu o oarecare experienţă recunoaşte valoarea comentariilor. Acestea sunt deosebit de utile când sunt scrise în limba maternă su scrierea corespunzătoare.

Trebuie să avem în vedere că un terminal din X nu este acelaşi lucru cu consola. Deci, vom întra în consolă tastând Ctrl_stâng+Alt_stâng+F2, ne logăm, şi pentru ergonomie se poate folosi programul screen în care dechidem un browser text, links, cu acest howto: bash$ screen links http://diacritice.sf.net. Recomand insistent citirea paginilor de manual ale celor două programe.

În primul rând trebuie să verificăm dacă avem instalate dispunerea tastaturii şi scrierea aferentă:
bash$ ls /usr/share/kbd/keymaps/i386/qwerty/ |grep ro
bash$ ls /usr/share/kbd/consolefonts |grep lat2-16

Dacă nu sunt, le puteţi descărca de aici şi se instalează (ca root):
bash# tar -zxvf /ro_kbd_si_fonts_consola.tar.gz -P

Pentru a le folosi:
bash$ loadkeys ro_win
bash$ setfont lat2-16

„AltGr” înseamnă tasta „Alt” din dreapta:
AltGr + [ = ă
AltGr + ] = î
AltGr + \ = â
AltGr + ; = ş
AltGr + Shift + ' = Ţ

Combinaţia de taste Alt_stâng+Shift_stâng acţionează ca un lock. Astfel '[', ']', '\', ';' şi ''' devin 'â', 'î', 'â', 'ş' şi 'ţ', iar:
AltGr + [ = [
AltGr + ] = ]
AltGr + \ = \
AltGr + ; = \
AltGr + Shift + ' = "

Pentru ca schimbările să fie permanente, se vor adăuga loadkeys ro_win; setfont lat2-16;

la sfârşitul:

Instalarea şi utilizarea tastaturii româneşti
în X Window System

X Window System este interfaţa grafică utilizată pe majoritatea sistemelor de operare clone de UNIX, adică distribuţiile Linux, toate BSD, ar trebui să poată fi folosit şi pe Solaris, însă am citit şi despre o metodă de instalare dezvoltată de cei de la Gentoo Linux pe un sistem de operare Windows NT. Cele prezentate aici ar trebui să fie aplicabile pentru toate cele enumerate.

Când spun „Tastatura”, mă refer aici la dispunerea caracterelor pe tastatură (layout-ul). Dispunerea „US” o cunoaştem cu toţii, este cunoscută şi sub numele de 'sistem QWERTY'. Tastatura tradiţională românească, despre care ne abţinem să vorbim, este sistem QWERTZ şi pe lângă schimbarea între ele a literelor 'Y' şi 'Z' ne supune la alte diferenţe neplăcute, printre care şi dispariţia caracterului '\' -- în Microsoft Windows, lucru inacceptabil.

În primul rând facem o copie de siguranţă a fişierelor vechi. Tastatura nouă va suprascrie aceste fişiere, dacă ceva merge prost, măcar să le putem restaura. Deschidem terminalul preferat, de exemplu, „xterm”:
bash$ mkdir tastatura_x_veche
bash$ cp /etc/X11/xkb/symbols/pc/ro tastatura_x_veche/
bash$ cp /etc/X11/xkb/symbols/ro tastatura_x_veche/

Se copiază arhiva de pe site şi se dezarhivează folosind comanda (ca root):

bash# tar -zxvf <directorul_ce_contine_arhiva>/ro_xkb.tar.gz -P  

Pentru a încerca tastatura se va da comanda:
bash$ setxkbmap ro 

Dar avem nevoie de o metodă să informăm programele că folosim diacritice:
bash$ export LANG="ro_RO"

Pentru a folosi diacriticele (AltGr înseamnă tasta Alt din drapta):

AltGr+q = âAltGr+Shift+q = Â
AltGr+a = ăAltGr+Shift+a = Ă
AltGr+s = şAltGr+Shift+s = Ş
AltGr+t = ţAltGr+Shift+t = Ţ
AltGr+i = îAltGr+Shift+i = Î

Pentru a încerca tastatura, eu recomand programul „gedit” din motive scrise mai jos.

Ca tastatura românească să fie folosită implicit de toţi utilizatorii va trebui să modificăm fişierul de configurare al sistemului X (cu efect la următoarea logare).
Se editează fişierul /etc/X11/xorg.conf; la secţiunea „InputDevice”, la identificatorul „Keyboard0”, se modifică astfel încât Option "XkbLayout" "ro".

Pentru a încârca variabila bash $LANG la logare, se completează fie în ~/.bash_profile(pentru efect asupra utilizatorului respectiv) sau /etc/profile (pentru efect asupra tuturor conturile viitoare):
export LANG="ro_RO"

Alte dispuneri ale tastelor

Arhiva conţine mai multe dispuneri ale caracterelor, pentru a satisface o arie cât mai largă de utilizatori.

Acestea sunt:

bash$ setxkbmap ro
sau
bash$ setxkbmap ro basic

Cu observaţia că acestea folosesc „ş” şi „ţ” din alfabetul ISO8859-2, care sunt „s” şi „t” cu sedilă (caractere turceşti).

bash$ setxkbmap ro comma
rezultă în:

dispunerea tastelor ro, ro basic şi ro comma

Această variantă e comformă scrierii autentice româneşti, care reprezintă cele două litere ca „s” şi „t” cu o virgulă dedesupt; caractere din ISO8859-16.Comma înseamnă virgulă.

bash$ setxkbmap ro standard

Foloseşte „ş” şi „ţ” ISO8859-2.

bash$ setxkbmap ro academic
dispunerea tastaturii ro standard

Aceasta este dispunerea tastaturii comform standardului SR 13992:2004. Are „ş” şi „ţ” din ISO8859-16

bash$ setxkbmap ro ms
dispunerea compatibilă Microsoft

Dispunerea pentru menţinerea compatibilităţii cu sistemele de operare Windows. Cele două caractere intens discutate sunt din ISO8859-2.

Cu siguranţă s-au observat pe figuri diacriticele roşii. Acelea au roluri de „dead keys”, taste moarte. Se folosesc împreună cu alte litere pentru a le ataşa diacritice. Iată cum funcţionează cu toate dispunerile prezentate exceptând „ms” (în gedit):

AltGr + 3 + a = â
AltGr + 4 + A = Ă
AltGr + 5 + a = å
AltGr + - + u = ű
AltGr + 0 + O = Ő
AltGr + + + s = ş

Teoretic se pot compune toate literele limbilor bazate pe alfabet latin. Acestea trebuie să fie caractere 'valide', existente în vreo limbă (de exemplu, nu există „u” cu sedilă).

Diacritice în terminale

Terminalele de X emulează o consolă. De asemeni ele sunt scrise să interpreteze unele semnale trimise de sistemul de ferestre. Această implementare este mai mult sau mai puţin completă. Nu toate terminalele suportă diacritice.

numele terminaluluicompatibilitatea cu diacritice
xterm suportă diacritice cu excepţia 'ş' şi 'ţ'
gnome-terminalsuportă toate diacriticele
rxvt suportă toate diacriticele
xfterm4 nu suportă 'ş' şi 'ţ'
uxterm suportă toate diacriticele

Instalarea de scrieri noi

Sunt toate şansele să aveţi înstalate deja scrieri ce suportă caracterele diacritice româneşti.

Chestiuni de incompatibilitate

Nu toate programele pot interpreta diacriticele.

Nu toate serverele de mail, forum-urile suportă diacritice.

Resurse

http://www.tldp.org/HOWTO/Intkeyb/
http://www.xfree86.org/current/XKB-Enhancing.html
http://pascal.tsu.ru/en/xkb
http://bucovina.chem.tue.nl/fonturi/index.html
http://www.secarica.ro
http://diacritice.sourceforge.net