• 08.10.2020
  • 56 de minute de citit

In acest articol

Tabelul OS / 2 consta dintr-un set de valori si alte date care sunt necesare in fonturile OpenType.

Au fost definite sase versiuni ale tabelului OS / 2: versiunile 0 la 5. Toate versiunile sunt acceptate, dar se recomanda insistent utilizarea versiunii 4 sau ulterioare.

OS / 2 Formate de tabel

Versiunea 5

Versiunea 5 a fost definita in OpenType 1.7. Versiunea 5 are doua campuri suplimentare dincolo de cele din versiunea 4. Formatul versiunii 5 este dupa cum urmeaza:

Versiunea 4

Versiunea 4 a fost definita in OpenType 1.5. Versiunea 4 are doua campuri mai putine decat versiunea 5 si aceleasi campuri ca in versiunea 3. Desi campurile noi nu au fost adaugate dincolo de cele din versiunea 3, specificatia anumitor campuri a fost revizuita. Formatul versiunii 4 este dupa cum urmeaza:

Versiunea 3

Versiunea 3 a fost definita in OpenType 1.4. Versiunea 3 are aceleasi campuri ca in versiunea 4 si ca in versiunea 2. Desi campurile noi nu au fost adaugate dincolo de cele din versiunea 2, specificatia anumitor campuri a fost revizuita pentru a reflecta modificarile din Unicode 3.2. Formatul versiunii 3 este identic cu formatul pentru versiunea 4, dat mai sus.

Versiunea 2

Versiunea 2 a fost definita in OpenType 1.1. Versiunea 2 are aceleasi campuri ca in versiunea 3 si cinci campuri suplimentare dincolo de cele din versiunea 1. Formatul versiunii 2 este identic cu formatul pentru versiunea 4, dat mai sus.

Versiunea 1

Versiunea 1 a fost definita in versiunea TrueType 1.66. Versiunea 1 are cinci campuri mai putine decat versiunea 2 si doua campuri suplimentare dincolo de cele din versiunea 0. Formatul versiunii 1 este dupa cum urmeaza:

Versiunea 0

Versiunea 0 a fost definita in TrueType revizuirea 1.5. Formatul versiunii 0 este dupa cum urmeaza:

Nota: Documentatia pentru OS / 2 versiunea 0 din Manualul de referinta TrueType de la Apple se opreste in campul usLastCharIndex si nu include ultimele cinci campuri ale tabelului asa cum a fost definit de Microsoft. Este posibil ca unele fonturi TrueType vechi sa fi fost construite cu o versiune scurtata 0 OS / 2 tabel. Aplicatiile ar trebui sa verifice lungimea tabelului pentru o versiune 0 OS / 2 tabel inainte de a citi aceste campuri.

Detalii camp OS / 2

Aceasta sectiune ofera detalii care acopera toate versiunile tabelului OS / 2.

versiune

Format: uint16 Unitati: n / a Titlu: Numar versiune tabel OS / 2. Descriere: numarul versiunii pentru tabelul OS / 2: de la 0x0000 la 0x0005. Comentarii: Numarul versiunii permite identificarea continutului si a aspectului precis pentru tabelul OS / 2.

xAvgCharWidth

Format: int16 Unitati: Unitati de proiectare a fontului Titlu: Esapament mediu ponderat. Descriere: Parametrul Latimea medie a caracterelor specifica media aritmetica a scaparii (latimii) tuturor glifelor cu latime diferita de zero din font. Comentarii: Valoarea pentru xAvgCharWidth este calculata prin obtinerea mediei aritmetice a latimii tuturor glifelor cu latime diferita de zero din font. In plus, se recomanda insistent ca implementatorii sa nu se bazeze pe aceasta valoare pentru calculul aspectului pentru liniile de text, in special pentru cazurile in care sunt utilizate scripturi complexe. Diferente de versiune: Versiuni 0 la 2: Cand a fost definita prima data, specificatia a fost orientata spre caractere latine de baza si s-a crezut ca valoarea xAvgCharWidth ar putea fi utilizata pentru a estima lungimea medie a liniilor de text. O formula pentru calcularea xAvgCharWidth a fost furnizata utilizand factorii de ponderare a frecventei de utilizare pentru litere mici – a. Aceasta metoda de calcul al valorii acestui camp a fost inlocuita in OpenType 1.4 odata cu introducerea versiunii 3 a tabelului OS / 2.

usWeightClass

Format: uint16 Titlu: Clasa de greutate. Descriere: indica greutatea vizuala (gradul de negru sau grosimea loviturilor) caracterelor din font. Valorile de la 1 la 1000 sunt valabile. Comentarii: valorile usWeightClass folosesc aceeasi scara ca axa „wght” care este utilizata in tabelul „fvar” al fonturilor variabile si in tabelul STAT. In timp ce valorile intregi de la 1 la 1000 sunt acceptate, unele platforme vechi pot avea limitari asupra valorilor acceptate. Urmatoarele sunt valorile utilizate in mod obisnuit: Valoare Descriere C Definitie (de la windows.h) 100 Subtire FW_THIN 200 Extra-usoara (Ultra-usoara) FW_EXTRALIGHT 300 Light FW_LIGHT 400 Normal (Regular) FW_NORMAL 500 Medium FW_MEDIUM 600 Semi-bold (Demi- bold) FW_SEMIBOLD 700 Bold FW_BOLD 800 Extra-bold (Ultra-bold) FW_EXTRABOLD 900 Negru (greu) FW_BLACK

usWidthClass

Format: uint16 Titlu: Clasa latime. Descriere: indica o modificare relativa de la raportul de aspect normal (raportul latime la inaltime), asa cum este specificat de un proiectant de fonturi pentru glifele dintr-un font. Comentarii:

Desi fiecare glif dintr-un font poate avea un raport numeric diferit, fiecare glif dintr-un font cu latime normala este considerat a avea un raport de aspect relativ de unul. Cand se creeaza un stil de tip nou dintr-o clasa de latime diferita (fie de un proiectant de fonturi, fie de unele mijloace automate), raportul de aspect relativ al caracterelor din noul font este cu un procent mai mare sau mai mic decat aceleasi caractere din fontul normal – aceasta diferenta este specificata de acest parametru.

Valorile valide usWidthClass sunt prezentate in tabelul urmator. Retineti ca valorile usWidthClass sunt legate de, dar distincte de scala pentru axa „wdth” care este utilizata in tabelul „fvar” al fonturilor variabile si in tabelul STAT. Coloana „% din normal” din tabelul urmator ofera o mapare de la valorile usWidthClass 1 – 9 la valorile „wdth”.

Valoare Descriere C Definitie% din normal 1 Ultra-condensat FWIDTH_ULTRA_CONDENSED 50 2 Extracondensat FWIDTH_EXTRA_CONDENSED 62,5 3 Condensat FWIDTH_CONDENSED 75 4 Semi-condensat FWIDTH_SEMI_CONDENSED 87,5 5 Mediu (normal) FWIDTH_NORMAL 100_SEM FWIDTH_EXTRA_EXPANDED 150 9 Ultra-extins FWIDTH_ULTRA_EXPANDED 200

fsType

Format: uint16 Titlu: Tastati steaguri. Descriere: indica drepturile de licentiere pentru incorporarea fontului. Interpretarea steagurilor este urmatoarea: Bit (e) Masca Descriere 0 – 3 0x000F Permisiuni de utilizare. Fonturile valide trebuie sa seteze cel mult unul dintre bitii 1, 2 sau 3; bitul 0 este rezervat permanent si trebuie sa fie zero. Valorile valide pentru acest subcamp sunt 0, 2, 4 sau 8. Sensul acestor valori este dupa cum urmeaza:

0: incorporare instalabila: fontul poate fi incorporat si poate fi instalat permanent pentru utilizare pe sisteme la distanta sau pentru utilizare de catre alti utilizatori. Utilizatorul sistemului la distanta dobandeste drepturile, obligatiile si licentele identice pentru acel font ca si cumparatorul original al fontului si este supus aceluiasi acord de licenta pentru utilizator final, drepturi de autor, brevet de proiectare si / sau marca comerciala ca si originalul cumparator.

2: Incorporarea licentei restrictionate: fontul nu trebuie modificat, incorporat sau schimbat in nici un fel fara a obtine in prealabil permisiunea explicita a proprietarului legal.

4: Previzualizare si incorporare tiparire: fontul poate fi incorporat si poate fi incarcat temporar pe alte sisteme in scopul vizualizarii sau imprimarii documentului. Documentele care contin fonturi Preview & Print trebuie sa fie deschise „numai in citire”; nu se pot aplica modificari documentului.

8: Incorporare editabila: fontul poate fi incorporat si poate fi incarcat temporar pe alte sisteme. Ca si in cazul incorporarii Preview & Print, documentele care contin fonturi editabile pot fi deschise pentru citire. In plus, editarea este permisa, inclusiv posibilitatea de a formata text nou folosind fontul incorporat, iar modificarile pot fi salvate.

4-7 Rezervat, trebuie sa fie zero. 8 0x0100 Fara subsetare: Cand acest bit este setat, fontul nu poate fi subsetat inainte de incorporare. Se aplica si alte restrictii de incorporare specificate in bitii 0 la 3 si bitul 9. 9 Numai incorporarea 0x0200 Bitmap: Cand acest bit este setat, pot fi incorporate numai bitmap-urile continute in font. Nu pot fi incorporate date de schita. Daca nu exista bitmapuri disponibile in font, atunci fontul este considerat de neincorporat si serviciile de incorporare vor esua. Se aplica si alte restrictii de incorporare specificate in bitii 0-3 si 8. 10 – 15 Rezervat, trebuie sa fie zero. Comentarii: Fonturile incorporabile pot fi stocate intr-un document. Cand un document cu fonturi incorporate este deschis pe un sistem care nu are fontul instalat (sistemul de la distanta), fontul incorporat poate fi incarcat temporar (si, in unele cazuri, permanent) utilizarea pe acel sistem de catre o aplicatie constienta de incorporare. Drepturile de licenta de incorporare sunt acordate de catre furnizorul fontului.

Aplicatiile care implementeaza suport pentru incorporarea fonturilor nu trebuie sa incorporeze fonturi care nu sunt autorizate sa permita incorporarea. De asemenea, atunci cand incorporeaza un font intr-un document, aplicatiile nu trebuie sa modifice permisiunile si restrictiile de incorporare indicate in acest camp. In plus, aplicatiile care incarca fonturi incorporate pentru utilizare temporara (Preview & Print sau Editable embedded ) trebuie sa stearga fonturile atunci cand documentul care contine fontul incorporat este inchis.

Bitii de la 0 la 3 (subcampul de permisiuni de incorporare) se exclud reciproc: fonturile nu ar trebui sa aiba niciodata mai mult decat acesti biti setati. Retineti ca, daca sunt setati doi sau mai multi biti, unele aplicatii ar putea accepta permisiunea cea mai putin restrictiva indicata . (A se vedea diferentele de versiune pentru mai multe discutii.) Atentie: furnizorii de fonturi sunt responsabili sa seteze corect acesti biti pentru a obtine comportamentele dorite ale aplicatiei. Pentru ca incorporarea licentei restrictionate sa aiba efect, subcampul Permisiuni de incorporare trebuie sa aiba valoarea 2 (adica este setat doar bitul 1).

Nota: Manualul de referinta TrueType de la Apple specifica bitul 1 al campului fsType si numai bitul 1, ca avand o semantica atribuita. Acest lucru provine dintr-o specificatie preliminara pentru tabelul OS / 2. Cu toate acestea, specificatia finala pentru versiunea 0 a tabelului OS / 2 a definit bitii de la 0 la 3. De asemenea, unele implementari timpurii ale fonturilor au folosit gresit valoarea 1 (setul de biti 0), ducand la probleme de non-interoperabilitate. Din acest motiv, bitul 0 a fost specificat ca rezervat in specificatia finala pentru versiunea 0. Bitul 0 este rezervat permanent, iar utilizarea sa este depreciata.

Diferente de versiune: Versiunile 0 la 1: au fost atribuiti doar bitii 0 la 3. Aplicatiile trebuie sa ignore bitii de la 4 la 15 atunci cand cititi un tabel versiunea 0 sau versiunea 1.

Versiunile 0 la 2: specificatiile pentru versiunile 0 la 2 nu au specificat faptul ca bitii 0 la 3 trebuie sa se excluda reciproc. Mai degraba, aceste specificatii au afirmat ca, in cazul in care mai mult de unul din bitii 0 la 3 sunt setati intr-un anumit font, atunci permisiunea cea mai putin restrictiva indicata are prioritate . In special, unele fonturi care utilizeaza o tabela OS / 2 de la versiunea 0 la versiunea 2 au setate atat bitul 2, cat si bitul 3 cu intentia de a indica atat permisiunile de previzualizare / imprimare, cat si de editare. Aplicatiile au permisiunea de a utiliza acest comportament pentru fonturi cu un tabel OS / 2 versiunea 0 pana la versiunea 2.

Versiunile 3 si ulterioare: Specificatia pentru versiunea 3, adaugata in OpenType 1.4, a introdus cerinta explicita conform careia bitii de la 0 la 3 trebuie sa se excluda reciproc.

ySubscriptXSize

Format: int16 Unitati: Unitati de proiectare a fontului Titlu: Dimensiune font orizontala a indicelui. Descriere: dimensiunea orizontala recomandata in unitatile de proiectare a fonturilor pentru indicii pentru acest font. Comentarii: Daca un font are doua dimensiuni recomandate pentru indici, de exemplu, numerice si altele, dimensiunile numerice ar trebui subliniate. Acest camp de dimensiuni se mapeaza cu dimensiunea em a fontului utilizat pentru un indice. Dimensiunea orizontala a fontului specifica dimensiunea orizontala recomandata de un proiectant de font pentru glifele de indice asociate cu acest font. Daca un font nu include toti glifurile de indice necesare pentru o aplicatie, iar aplicatia poate inlocui glifele prin scalarea glifelor unui font sau prin inlocuirea glifelor dintr-un alt font, acest parametru specifica latimea nominala recomandata pentru acele glifuri de indice.

De exemplu, daca em-ul pentru un font este de 2048 unitati si ySubScriptXSize este setat la 205, atunci dimensiunea orizontala pentru un glif de indice simulat ar fi 1/10 de dimensiunea glifului normal.

ySubscriptYSize

Format: int16 Unitati: Unitati de proiectare a fontului Titlu: Dimensiune verticala a fontului. Descriere: dimensiunea verticala recomandata in unitatile de proiectare a fonturilor pentru indicii pentru acest font. Comentarii: Daca un font are doua dimensiuni recomandate pentru indici, de exemplu numerice si altele, dimensiunile numerice ar trebui subliniate. Acest camp de dimensiuni se mapeaza cu dimensiunea em a fontului utilizat pentru un indice. Dimensiunea fontului vertical specifica recomandarea unui proiectant de font pentru dimensiunea verticala a glifelor de indice asociate cu acest font. Daca un font nu include toti glifurile de subindice necesare pentru o aplicatie, iar aplicatia poate substitui glifele prin scalarea glifelor intr-un font sau prin inlocuirea glifelor dintr-un alt font, acest parametru specifica inaltimea nominala recomandata pentru acele glifuri de subindice.

De exemplu, daca em-ul pentru un font este 2048 de unitati si ySubScriptYSize este setat la 205, atunci dimensiunea verticala pentru un glif de indice simulat ar fi 1/10 de dimensiunea glifului normal.

ySubscriptXOffset

Format: int16 Unitati: Unitati de proiectare a fonturilor Titlu: Indice x offset. Descriere: Decalajul orizontal recomandat in unitatile de proiectare a fonturilor pentru indicii pentru acest font. Comentarii: Parametrul Offset X Offset specifica un offset orizontal recomandat de un proiectant de fonturi – de la originea glifului la originea glifului glifului subscriptului – pentru glifele de indice asociate cu acest font. Daca un font nu include toate glifele de indice necesare pentru o aplicatie, iar aplicatia poate inlocui glifele, acest parametru specifica pozitia orizontala recomandata din punctul de evacuare a glifului ultimului glif inainte de primul glif de indice. Pentru glifele verticale, aceasta valoare este de obicei zero; totusi, daca glifele unui font au o inclinatie (cursiv sau inclinat),

ySubscriptYOffset

Format: int16 Unitati: Unitati de proiectare a fonturilor Titlu: Indice y offset. Descriere: Offsetul vertical recomandat in unitatile de proiectare a fonturilor de la linia de baza pentru indicii pentru acest font. Comentarii: Parametrul Offset Y al indicelui specifica un offset vertical recomandat de un proiectant de font de la linia de baza a glifului la linia de baza a glifelor pentru glifele de indice asociate cu acest font. Valorile sunt exprimate ca un decalaj pozitiv sub linia de baza a glifului. Daca un font nu include toate glifele de indice necesare pentru o aplicatie, acest parametru specifica distanta verticala recomandata sub linia de baza a glifului pentru acele glifuri de indice.

ySuperscriptXSize

Format: int16 Unitati: Unitati de proiectare a fonturilor Titlu: Dimensiune font orizontala cu indicativ. Descriere: dimensiunea orizontala recomandata in unitatile de proiectare a fontului pentru indicele superioare pentru acest font. Comentarii: Daca un font are doua dimensiuni recomandate pentru indicele superioare, de exemplu, numerice si altele, dimensiunile numerice ar trebui subliniate. Acest camp de dimensiuni se mapeaza cu dimensiunea em a fontului utilizat pentru un supercript. Dimensiunea orizontala a fontului specifica dimensiunea orizontala recomandata de un proiectant de font pentru glifele superscript asociate cu acest font. Daca un font nu include toate glifele supercript necesare pentru o aplicatie, iar aplicatia poate inlocui glifele prin scalarea glifelor unui font sau prin inlocuirea glifelor dintr-un alt font, acest parametru specifica latimea nominala recomandata pentru acele glifuri supercript.

De exemplu, daca em-ul pentru un font este de 2048 de unitati si ySuperScriptXSize este setat la 205, atunci dimensiunea orizontala pentru un glif superscript simulat ar fi 1/10 de dimensiunea glifului normal.

ySuperscriptYSize

Format: int16 Unitati: Unitati de proiectare a fonturilor Titlu: Dimensiune verticala a fontului. Descriere: dimensiunea verticala recomandata in unitatile de proiectare a fontului pentru indicele superioare pentru acest font. Comentarii: Daca un font are doua dimensiuni recomandate pentru indicele superioare, de exemplu, numerice si altele, dimensiunile numerice ar trebui subliniate. Acest camp de dimensiuni se mapeaza cu dimensiunea em a fontului utilizat pentru un supercript. Dimensiunea verticala a fontului specifica dimensiunea verticala recomandata de un proiectant de font pentru glifele superscript asociate cu acest font. Daca un font nu include toate glifele supercript necesare pentru o aplicatie, iar aplicatia poate inlocui glifele prin scalarea glifelor unui font sau prin inlocuirea glifelor dintr-un alt font, acest parametru specifica inaltimea nominala recomandata pentru acele glifuri supercript.

De exemplu, daca em pentru un font este de 2048 de unitati si ySuperScriptYSize este setat la 205, atunci dimensiunea verticala pentru un glif superscript simulat ar fi 1/10 de dimensiunea glifului normal.

ySuperscriptXOffset

Format: int16 Unitati: Unitati de design font Titlu: Superscript x offset. Descriere: Decalajul orizontal recomandat in unitatile de proiectare a fontului pentru indicele superioare pentru acest font. Comentarii: Parametrul Superscript X Offset specifica un offset orizontal recomandat de un proiectant de fonturi – de la originea glifului pana la originea glifului superscript pentru caracterele supercript asociate cu acest font. Daca un font nu include toate caracterele supercript necesare pentru o aplicatie, acest parametru specifica pozitia orizontala recomandata din punctul de evacuare al caracterului inainte de primul caracter supercript. Pentru caracterele verticale, aceasta valoare este de obicei zero; totusi, daca caracterele unui font au o inclinatie (caractere cursive), punctul de referinta pentru caracterele cu supercript este de obicei ajustat pentru a compensa unghiul de inclinare.

ySuperscriptYOffset

Format: int16 Unitati: Unitati de design font Titlu: Superscript y offset. Descriere: Offsetul vertical recomandat in unitatile de proiectare a fonturilor de la linia de baza pentru supercriptele pentru acest font. Comentarii: Parametrul Superscript Y Offset specifica un offset vertical recomandat de un proiectant de font – de la linia de baza a glifului pana la linia de baza a glifului superscript asociata acestui font. Valorile pentru acest parametru sunt exprimate ca un decalaj pozitiv peste linia de baza a caracterelor. Daca un font nu include toate caracterele supercript necesare pentru o aplicatie, acest parametru specifica distanta verticala recomandata deasupra liniei de baza a caracterelor pentru acele caractere supercript.

yStrikeoutSize

Format: int16 Unitati: Unitati de proiectare a fontului Titlu: Dimensiune de eliminare. Descriere: Grosimea liniei de atac in unitatile de proiectare a fonturilor. Comentarii: Acest camp ar trebui sa fie in mod normal grosimea liniei em pentru fontul curent si ar trebui sa se potriveasca si cu grosimea subliniata, care este specificata in tabelul „post”.

yStrikeoutPosition

Format: int16 Unitati: Unitati de proiectare a fonturilor Titlu: Pozitie de eliminare. Descriere: Pozitia din partea de sus a liniei de atac in raport cu linia de baza in unitatile de proiectare a fontului. Comentarii: Valorile pozitive reprezinta distante deasupra liniei de baza; valorile negative reprezinta distante sub linia de baza. Se sugereaza alinierea pozitiei de extragere cu liniuta em. Retineti, totusi, ca pozitia de extragere nu ar trebui sa interfereze cu recunoasterea caracterelor standard si, prin urmare, nu ar trebui sa se alinieze cu bare transversale in font.

sFamilyClass

Format: int16 Titlu: Clasa si subclasa familiei de fonturi. Descriere: Acest parametru este o clasificare a designului familiei de fonturi. Comentarii: Clasa de fonturi si subclasa de fonturi sunt valori inregistrate atribuite de IBM fiecarei familii de fonturi. Acest parametru este destinat utilizarii la selectarea unui font alternativ atunci cand fontul solicitat nu este disponibil. Clasa de fonturi este cea mai generala, iar subclasa de fonturi este cea mai specifica. Octetul mare al acestui camp contine clasa familiei, in timp ce octetul mic contine subclasa familiei. Mai multe informatii despre acest camp.

panose

Format: uint8 [10] Titlu: Numar de clasificare PANOSE International: sunt necesare specificatii suplimentare pentru ca PANOSE sa clasifice seturile de caractere non-latine. Descriere: Aceasta serie de 10 octeti de numere este utilizata pentru a descrie caracteristicile vizuale ale unui tip de caractere dat. Aceste caracteristici sunt apoi utilizate pentru a asocia fontul cu alte fonturi cu aspect similar cu nume diferite. Variabilele pentru fiecare cifra sunt enumerate mai jos. Valorile Panose sunt descrise pe deplin in Ghidul de masurare a clasificarii PANOSE, detinut in prezent de Monotype Imaging si mentinut la https://monotype.github.io/panose/. Comentarii: Definitia PANOSE contine zece octeti, fiecare dintre acestia putand avea mai multe valori posibile. Retineti ca primul octet este utilizat pentru o clasificare la nivel inalt, „Family Kind”, si ca interpretarea restului de octeti este conditionata de valoarea primului octet. De exemplu, daca valoarea Family Kind este 2 (Text latin), atunci urmatorul octet specifica „Serif Style”; dar daca valoarea Family Kind este 3 (Latin Hand Written), atunci urmatorul octet specifica „Tool Type”. Este posibil ca unele aplicatii sa accepte numai anumite valori de tip familial. Urmatorul tabel ofera interpretarea matricei panose atunci cand genul familial este latin Text: Tip Nume uint8 bFamilyType; uint8 bSerifStyle; uint8 bGreutate; uint8 bProportie; uint8 bContrast; uint8 bStrokeVariation; uint8 bArmStyle; uint8 bLetterform; uint8 bMidline; uint8 bXHeight; apoi urmatorul octet specifica „Instrument de tip”. Este posibil ca unele aplicatii sa accepte numai anumite valori de tip familial. Urmatorul tabel ofera interpretarea matricei panose atunci cand genul familial este latin Text: Tip Nume uint8 bFamilyType; uint8 bSerifStyle; uint8 bGreutate; uint8 bProportie; uint8 bContrast; uint8 bStrokeVariation; uint8 bArmStyle; uint8 bLetterform; uint8 bMidline; uint8 bXHeight; apoi urmatorul octet specifica „Instrument de tip”. Este posibil ca unele aplicatii sa accepte numai anumite valori de tip familial. Urmatorul tabel ofera interpretarea matricei panose atunci cand genul familial este latin Text: Tip Nume uint8 bFamilyType; uint8 bSerifStyle; uint8 bGreutate; uint8 bProportie; uint8 bContrast; uint8 bStrokeVariation; uint8 bArmStyle; uint8 bLetterform; uint8 bMidline; uint8 bXHeight;

Unele aplicatii pot utiliza valorile panose pentru selectarea fontului, pentru a selecta un font care sa corespunda anumitor parametri. De exemplu, Proportia (pentru tip familial = text latin) ar putea fi utilizata pentru a determina daca un font este monospatiat; sau Serif Style ar putea fi folosit pentru a determina daca un font se incadreaza in clasele generice serif sau sans serif . Unele aplicatii vor utiliza Family Kind = 5 (simbol latin) pentru a identifica fonturile simbol, care ar putea afecta selectarea fontului sau comportamentele de rezerva. Nu exista cerinte pentru modul in care aplicatiile ar trebui sa utilizeze valorile panose.

Intr-un font variabil care utilizeaza mecanisme de variatie a fontului OpenType, nu exista nicio modalitate de a reprezenta diferite valori PANOSE pentru diferite instante acceptate de font. Valorile PANOSE pot fi setate pe baza instantei implicite.

Diferente de versiune: primele versiuni ale acestei specificatii au furnizat mai multe detalii cu privire la valorile PANOSE. Cu toate acestea, specificatia externa citata mai sus este sursa normativa si ar trebui mentionata pentru astfel de detalii.

ulUnicodeRange1 (Bits 0-31)

ulUnicodeRange2 (Bits 32-63)

ulUnicodeRange3 (Bits 64-95)

ulUnicodeRange4 (Bits 96-127)

Format: uint32 [4] – total 128 de biti. Titlu: Gama de caractere Unicode Descriere: Acest camp este utilizat pentru a specifica blocurile sau intervalele Unicode cuprinse de fisierul fontului in tabelele „cmap” pentru platforma 3, codarea ID 1 (platforma Microsoft, Unicode BMP) si platforma 3, codarea ID 10 ( Platforma Microsoft, repertoriu complet Unicode). Daca este setat un bit (1), atunci intervalele Unicode atribuite acelui bit sunt considerate functionale. Daca bitul este clar (0), atunci domeniul nu este considerat functional. Fiecare dintre biti este tratat ca un indicator independent si bitii pot fi setati in orice combinatie. Determinarea „functionala” este lasata la latitudinea proiectantului de fonturi, desi selectia setului de caractere ar trebui sa incerce sa fie functionala pe intervale, daca este posibil.

Toate campurile rezervate trebuie sa fie zero. Fiecare uint32 este in forma Big-Endian.

Bit Unicode Range Gama de blocuri Note 0 Basic Latin 0000-007F 1 Latin-1 Supliment 0080-00FF 2 Latin Extended-A 0100-017F 3 Latin Extended-B 0180-024F 4 Extensii IPA 0250-02AF Extensii fonetice 1D00-1D7F Adaugat in OpenType 1.5 pentru versiunea OS / 2 4. Supliment extensii fonetice 1D80-1DBF Adaugat in OpenType 1.5 pentru versiunea OS / 2 4. 5 Litere modificatoare de spatiu 02B0-02FF Litere de ton modificator A700-A71F Adaugat in OpenType 1.5 pentru versiunea OS / 2 4. 6 Combinarea marcajelor diacritice 0300-036F Suplimentul combinarii marcilor diacritice 1DC0-1DFF Adaugat in OpenType 1.5 pentru versiunea OS / 2 4. 7 greaca si copta 0370-03FF 8 Copt 2C80-2CFF Adaugat in OpenType 1.5 pentru versiunea OS / 2 4. Consultati mai jos pentru alte diferente de versiune. 9 Cirilic 0400-04FF Supliment chirilic 0500-052F Adaugat in OpenType 1.4 pentru versiunea OS / 2 3. Cirilic Extended-A 2DE0-2DFF Adaugat in OpenType 1. 5 pentru versiunea OS / 2 4. Cirilic Extended-B A640-A69F Adaugat in OpenType 1.5 pentru versiunea OS / 2 4. 10 Armeana 0530-058F 11 Ebraica 0590-05FF 12 Vai A500-A63F Adaugat in OpenType 1.5 pentru versiunea OS / 2 4. Vezi mai jos pentru alte diferente de versiune. 13 Arab 0600-06FF Supliment arab 0750-077F Adaugat in OpenType 1.5 pentru OS / 2 versiunea 4. 14 NKo 07C0-07FF Adaugat in OpenType 1.5 pentru OS / 2 versiunea 4. Vedeti mai jos pentru alte diferente de versiune. 15 Devanagari 0900-097F 16 Bengali 0980-09FF 17 Gurmukhi 0A00-0A7F 18 Gujarati 0A80-0AFF 19 Oriya 0B00-0B7F 20 Tamil 0B80-0BFF 21 Telugu 0C00-0C7F 22 Kannada 0C80-0CFF 23 Malayalam 0D00-0D7F 24 Thai 0E00-0E 25 Lao 0E80-0EFF 26 Georgian 10A0-10FF Supliment Georgian 2D00-2D2F Adaugat in OpenType 1.5 pentru versiunea OS / 2 4. 27 Balinez 1B00-1B7F Adaugat in OpenType 1.5 pentru OS / 2 versiunea 4. Vezi mai jos pentru alte diferente de versiune. 52 Compatibilitate Hangul Jamo 3130-318F 53 Phags-pa A840-A87F Adaugat in OpenType 1.5 pentru OS / 2 versiunea 4. Vedeti mai jos pentru alte diferente de versiune. 54 Litere si luni CJK anexate 3200-32FF 55 Compatibilitate CJK 3300-33FF 56 Silabe Hangul AC00-D7AF 57 Non-Plan 0 10000-10FFFF Implica cel putin un caracter dincolo de Planul de baza multilingv. Prima atribuita in OpenType 1.3 pentru versiunea OS / 2 2. 58 Phoenician 10900-1091F Prima atribuita in OpenType 1.5 pentru versiunea OS / 2 4. 59 CJK Unified Ideographs 4E00-9FFF CJK Radicals Supplement 2E80-2EFF Adaugat in OpenType 1.3 pentru OS / 2 versiunea 2. Kangxi Radicals 2F00-2FDF Adaugat in OpenType 1.3 pentru versiunea OS / 2 2. Descriere ideografica Caracterele 2FF0-2FFF Adaugat in OpenType 1.3 pentru versiunea OS / 2 2. CJK Unified Ideographs Extension A 3400-4DBF Adaugat in OpenType 1.3 pentru OS / 2 versiunea 2. 5 pentru versiunea OS / 2 4. Lycian 10280-1029F Adaugat in OpenType 1.5 pentru versiunea OS / 2 4. Lydian 10920-1093F Adaugat in OpenType 1.5 pentru versiunea OS / 2 4. 122 Placi Domino 1F030-1F09F Atribuit mai intai in OpenType 1.5 pentru OS / 2 versiunea 4. Mahjong Tiles 1F000-1F02F Atribuit pentru prima data in OpenType 1.5 pentru versiunea OS / 2 4. 123-127 Rezervat pentru utilizare interna a procesului Comentarii: Toti bitii disponibili au fost epuizati incepand cu Unicode 5.1. Alocarile de biti au fost actualizate ultima data pentru OS / 2 versiunea 4 in OpenType 1.5. Exista multe game suplimentare acceptate in versiunea curenta a Unicode care nu sunt acceptate de aceste campuri in tabelul OS / 2. Consultati etichetele „dlng” si „slng” din tabelul „meta” pentru un mecanism alternativ care sa declare pentru ce scripturi sau limbi poate fi acceptat sau pentru care este conceput un font. Diferente de versiune: Diferite versiuni ale tabelului OS / 2 au fost create atunci cand diferite versiuni Unicode erau actuale, iar specificatiile initiale pentru o versiune data au definit mai putine alocari de biti decat pentru versiunile ulterioare. Este posibil ca unele aplicatii sa nu accepte toate atributiile pentru fonturile care au versiuni OS / 2 anterioare.

Toate atributiile de biti enumerate mai sus sunt valabile pentru orice versiune a tabelului OS / 2, desi versiunile OS / 2 1 si 2 au fost specificate cu unele atribuiri care nu corespundeau unor intervale Unicode bine definite si care intra in conflict cu atributiile ulterioare – consultati detaliile de mai jos. Daca un font are o tabela OS / 2 versiunea 1 sau versiunea 2 cu unul dintre acesti biti setat, atribuirea invechita poate fi interpretarea dorita. Deoarece aceste atributii nu corespund unor intervale bine definite, cu toate acestea, acoperirea implicita a caracterelor este neclara.

Versiunea 0: Cand a fost specificata prima data versiunea 0, nu au fost definite atribuiri de biti. Unele aplicatii pot ignora aceste campuri intr-un tabel OS / 2 versiunea 0.

Versiunea 1:

Versiunea 1 a fost specificata mai intai concomitent cu Unicode 1.1, iar setarile de biti au fost definite numai pentru bitii 0 pana la 69. Cu fonturile care au un tabel versiunea 1, unele aplicatii ar putea recunoaste doar bitii de la 0 la 69.

De asemenea, versiunea 1 a fost specificata cu cateva atribuiri de biti care nu corespundeau unui interval Unicode bine definit:

  • Bit 8: „Simboluri grecesti si copte” (bitul 7 a fost specificat ca „Grec de baza”)
  • Bit 12: „Hebrew Extended” (bitul 11 ​​a fost specificat ca „Basic Hebrew”)
  • Bit 14: „Arabic Extended” (bitul 13 a fost specificat ca „Arabic Arabic”)
  • Bit 27: „Georgian Extended” (bitul 26 a fost specificat ca „Georgian de baza”)

Aceste misiuni au fost intrerupte de la versiunea 2.

In plus, versiunile 1 si 2 au fost definite cu bitul 53 specificat ca „CJK Diverse”, care, de asemenea, nu corespunde niciunei game Unicode bine definite. Aceasta misiune a fost intrerupta de la versiunea 3.

Versiunea 2:

Versiunea 2 a fost definita in OpenType 1.1, care era concurenta cu Unicode 2.1. In acel moment, atributiile de biti erau definite numai pentru bitii de la 0 la 69. Alocarile de biti pentru versiunea 2 au fost actualizate in OpenType 1.3, adaugand atributii pentru bitii de la 70 la 83 corespunzatoare blocurilor noi atribuite in Unicode 2.0 si Unicode 3.0. Cu fonturile care au un tabel versiunea 2, unele aplicatii ar putea recunoaste numai acei biti atribuiti in OpenType 1.2 sau OpenType 1.3.

De asemenea, specificatia pentru versiunea 2 a continuat sa utilizeze o atribuire problematica pentru bitul 53 – consultati detaliile pentru versiunea 1. Aceasta atribuire a fost intrerupta incepand cu versiunea 3.

Versiunea 3: Versiunea 3 a fost definita in OpenType 1.4 cu atributii pentru bitii 84 pana la 92 care corespund unor intervale suplimentare in Unicode 3.2. In plus, unii biti deja atribuiti au fost extinsi pentru a acoperi intervale suplimentare Unicode pentru caracterele inrudite; vezi detalii in tabelul de mai sus.

Versiunea 4: Versiunea 4 a fost definita in OpenType 1.5 cu atributii pentru bitul 58 si bitii 93 pana la 122 care corespund unor intervale suplimentare in Unicode 5.1. De asemenea, bitii 8, 12, 14, 27 si 53 au fost realocati (a se vedea versiunea 1 pentru sarcini anterioare). In plus, unii biti deja atribuiti au fost extinsi pentru a acoperi intervale suplimentare Unicode pentru caracterele conexe; vezi detalii in tabelul de mai sus.

achVendID

Format: Titlu eticheta: Identificare furnizor font Descriere: Identificatorul cu patru caractere pentru furnizorul fetei de tip date. Comentarii: Acesta nu este proprietarul redeventei pentru opera de arta originala. Aceasta este compania responsabila de comercializarea si distributia tipului de caractere care este clasificat. De exemplu, pot exista mai multi furnizori de ITC Zapf Dingbats, unii furnizori oferind beneficii diferentiate in fonturile lor (mai multe perechi de kern, date nereglementate, sugestii de mana etc.). Acest identificator va permite ca tipul corect al furnizorului sa fie utilizat peste un alt fisier de font, posibil inferior.

Microsoft mentine un registru de ID-uri de furnizor. ID-urile inregistrate trebuie sa fie unice pentru un singur furnizor. ID-urile neinregistrate pot fi de asemenea folosite, dar sunt descurajate: furnizorii sunt incurajati sa inregistreze un ID pentru a se asigura ca nu exista conflicte intre diferiti furnizori in utilizarea unui ID dat si ca clientii pot gasi informatii de contact ale furnizorului pentru font dat. Acest camp poate fi, de asemenea, lasat necompletat (setat la nul sau o eticheta formata din patru caractere spatiale).

Toate ID-urile furnizorului utilizeaza tipul de date Tag, care este echivalent cu un sir de patru caractere compus dintr-un set limitat de caractere ASCII. Pentru detalii privind tipul de date Tag, consultati Tipuri de date. Prin conventie, numai etichetele inregistrate ar trebui sa cuprinda numai litere mari (sau spatiu).

Pentru o lista a ID-urilor de furnizor inregistrate sau pentru detalii despre inregistrarea unui ID de furnizor sau actualizarea informatiilor despre furnizor, consultati Furnizori de tipografie inregistrati.

fsSelection

Format: uint16 Titlu: Steaguri de selectare a fontului. Descriere: Contine informatii referitoare la natura modelelor de font, dupa cum urmeaza: Bit # macStyle bit C definitie Descriere 0 bit 1 Font ITALIC contine glifuri italice sau oblice, altfel sunt verticale. 1 glifurile UNDERSCORE sunt subliniate. 2 glifele NEGATIVE au prim-planul si fundalul inversat. 3 CONTURATE Contureaza (gol) glifele, altfel sunt solide. 4 glifele STRIKEOUT sunt suprasolicitate. 5 bit 0 glifele BOLD sunt imboldite. 6 glife REGULARE sunt in greutatea / stilul standard pentru font. 7 USE_TYPO_METRICS Daca este setat, se recomanda insistent ca aplicatiile sa utilizeze OS / 2.sTypoAscender – OS / 2.sTypoDescender + OS / 2.sTypoLineGap ca spatiere implicita a liniei pentru acest font. 8 WWS Fontul are „nume” siruri de tabel in concordanta cu o familie de greutate / latime / panta fara a necesita utilizarea ID-urilor de nume 21 si 22. (Va rugam sa consultati descrierea mai detaliata mai jos.) 9 Font OBLIQUE contine glifuri oblice. 10–15 <rezervat> Rezervat; setat la 0. Comentarii: Toti bitii nedefiniti trebuie sa fie zero.

Bit 0: Setarea bitilor 0 trebuie sa se potriveasca cu setarea bitului 1 in campul macStyle al tabelului „head”.

Biti 1 – 4: Bitii 1 – 4 sunt biti folositi rar, care indica faptul ca fontul este in principal un font decorativ sau special.

Bit 5: Setarea bitului 5 trebuie sa se potriveasca cu setarile bitului 0 in campul macStyle al tabelului „head”.

Bit 6: Daca bitul 6 este setat, atunci bitii 0 si 5 trebuie sa fie clari, altfel comportamentul este nedefinit. Retineti ca, daca bitul 0 si bitul 5 sunt clare, acest lucru nu ofera nicio indicatie daca bitul 6 va fi sau nu clar. De exemplu, Arial Light nu este stilul obisnuit al Arial si ar avea toti bitii sterse.

Bit 7:

Bit 7 a fost definit in versiunea 4. Pentru fonturi noi, furnizorii sunt incurajati sa utilizeze o versiune 4 sau o versiune ulterioara a tabelului OS / 2 si sa aiba bitul 7 setat.

Daca un font a fost creat cu o versiune anterioara a tabelului OS / 2 si este actualizat la versiunea curenta a tabelului OS / 2, atunci setarea bitului 7 ar putea crea potentialul de reflux al documentelor existente care utilizeaza fonturile. Pentru a minimiza un astfel de risc, bitul ar fi setat numai daca utilizarea valorilor OS / 2.usWin * pentru inaltimea liniei ar produce rezultate semnificativ inferioare fata de utilizarea valorilor OS / 2.sTypo *.

Bit 8:

Daca bitul 8 este setat, atunci sunt furnizate siruri de tabele „nume” pentru familie si subfamilie care sunt in concordanta cu un model de familie de greutate / latime / panta fara a necesita utilizarea ID-urilor de nume 21 sau 22.

Multe familii tipografice contin fete care difera doar intr-unul sau mai multe dintre atributele greutate, latime si panta. Chiar daca o familie ar putea avea un numar mare de fete de membru, daca variatiile sunt numai in aceste atribute, atunci numele de familie si subfamilii furnizate in tabelul „nume” folosind ID-urile 1 si 2 sau 16 si 17 vor fi in concordanta cu o pondere / modelul familiei latime / panta. In acest caz, bitul 8 ar trebui setat, iar intrarile „nume” pentru ID-urile de nume 21 si 22 nu ar trebui incluse.

Unele familii tipografice includ fete care difera in atribute altele decat greutatea, latimea sau panta. De exemplu, o familie ar putea include variatii pentru „scriere de mana”, „subtitrare”, „afisaj”, „dimensiune optica” etc. In acest caz, unele dintre fetele membre pot diferi de fata obisnuita doar in ceea ce priveste greutatea, latimea sau panta atribute, in timp ce alti membri vor diferi in raport cu alte atribute. Fonturile pentru acele fete membre care difera de Regular doar in ceea ce priveste greutatea, latimea sau panta ar trebui sa aiba bitul 8 setat si nu ar trebui sa foloseasca numele ID 21 sau 22. Dar fonturile pentru acele fete membre care difera de Regular in ceea ce priveste alte atribute nu ar trebui au setat bitul 8 si ar trebui sa utilizeze ID-urile de nume 21 si 22 pentru a mapa aceste fete intr-un model de familie conform WWS.

Astfel, daca un font are o tabela OS / 2 versiunea 4 sau mai recenta, bitul 8 ar trebui setat daca si numai daca intrarile „nume” pentru ID-urile 16 si 17 sunt in concordanta cu modelul WWS si intrarile pentru ID-urile 21 si 22 nu sunt incluse . In schimb, daca bitul 8 nu este setat, acesta va fi interpretat in sensul ca numele furnizate de ID-urile 16 si 17 nu sunt in concordanta cu modelul WWS si ca sunt incluse intrarile „nume” pentru ID-urile 21 si 22.

In acest context, „familie tipografica” este sirul Microsoft Unicode pentru numele ID 16, daca este prezent, altfel sirul Microsoft Unicode pentru numele ID 1; „Greutate” este OS / 2.usWeightClass; „Latimea” este OS / 2.usWidthClass; „Panta” este OS / 2.fsSelectia bit 0 (ITALIC) si bitul 9 (OBLIQUE).

Bit 9:

Daca bitul 9 este setat, atunci acest font trebuie considerat un stil „oblic” prin procese care fac o distinctie intre stilurile oblice si italice, cum ar fi potrivirea fontului Cascading Style Sheets. De exemplu, un font creat prin inclinarea algoritmica a unei fete verticale va seta acest bit.

Daca un font are o versiune 4 sau o versiune ulterioara a tabelului OS / 2 si acest bit nu este setat, atunci acest font nu trebuie considerat un stil „oblic”. De exemplu, un font care are un design italic clasic nu va seta acest bit.

Acest bit, spre deosebire de bitul ITALIC (bitul 0), nu este legat de legarea stilului in aplicatiile care presupun un model de familie de fonturi format din patru membri, compus din regular, italic, bold si italic bold. Poate fi setat sau dezactivat independent de bitul ITALIC. In majoritatea cazurilor, daca este setat OBLIQUE, atunci va fi setat si ITALIC, desi acest lucru nu este necesar.

Bit 15: Bitul 15 este rezervat permanent. A fost utilizat in unele implementari vechi si poate avea ca rezultat un comportament special in unele implementari. Utilizarea acestui bit este depreciata.

Diferente de versiune: Versiunile 0 la 3: Se atribuie doar bitul 0 (cursiv) la bitul 6 (regulat). Bitii de la 7 la 15 sunt rezervate si trebuie setate la 0. Aplicatiile ar trebui sa ignore bitii de la 7 la 15 intr-un font care are o tabela OS / 2 de la versiunea 0 la versiunea 3.

Versiunea 4-5: Bits 7-9 au fost definite in versiunea 4 (OpenType 1.5). Bitii de la 10 la 15 sunt rezervati si trebuie setati la 0. Aplicatiile ar trebui sa ignore bitii de la 10 la 15 intr-un font care are o tabela OS / 2 versiunea 4 sau versiunea 5.

usFirstCharIndex

Format: uint16 Descriere: indexul Unicode minim (cod de caractere) din acest font, conform tabelului „cmap” pentru ID-ul platformei 3 si ID-ul de codificare specific 0 0 sau 1. Pentru majoritatea fonturilor care accepta Win-ANSI sau alte seturi de caractere, aceasta valoare ar fi 0x0020. Acest camp nu poate reprezenta valori de caractere suplimentare (puncte de cod mai mari de 0xFFFF). Fonturile care accepta caractere suplimentare ar trebui sa seteze valoarea in acest camp la 0xFFFF daca valoarea minima a indexului este un caracter suplimentar.

usLastCharIndex

Format: uint16 Descriere: indexul Unicode maxim (cod de caractere) din acest font, conform tabelului „cmap” pentru ID-ul platformei 3 si codarea ID-ului 0 sau 1. Aceasta valoare depinde de caracterul care seteaza fontul. Acest camp nu poate reprezenta valori de caractere suplimentare (puncte de cod mai mari de 0xFFFF). Fonturile care accepta caractere suplimentare ar trebui sa seteze valoarea in acest camp la 0xFFFF.

sTypoAscender

Format: int16 Descriere: Ascendentul tipografic pentru acest font. Acest camp ar trebui sa fie combinat cu valorile sTypoDescender si sTypoLineGap pentru a determina spatierea implicita a liniilor.

Acest camp este similar cu campul ascendent din tabelul „hhea”, precum si cu campul usWinAscent din acest tabel. Cu toate acestea, implementarile de platforme vechi au folosit acele campuri cu comportamente specifice platformei. Ca rezultat, acele campuri sunt constranse de cerinte de compatibilitate inversa si nu asigura un aspect consecvent intre implementari. Campurile sTypoAscender, sTypoDescender si sTypoLineGap sunt destinate sa permita aplicatiilor sa intocmeasca documente intr-un mod tipografic corect si portabil.

Steagul USE_TYPO_METRICS (bitul 7) al campului fsSelection este utilizat pentru a alege intre utilizarea valorilor sTypo * sau valorile usWin * pentru valorile implicite ale liniei. Consultati fsSelection pentru detalii suplimentare.

Nu este o cerinta generala ca sTypoAscender – sTypoDescender sa fie egal cu unitsPerEm. Aceste valori trebuie setate pentru a oferi spatierea implicita a liniilor adecvata pentru limbile principale pe care fontul este conceput sa le accepte.

Pentru fonturile CJK (chineza, japoneza si coreeana) care sunt destinate a fi utilizate atat pentru dispunerea verticala (cat si pentru cea orizontala), valoarea necesara pentru sTypoAscender este cea care descrie partea de sus a casetei em ideografice. De exemplu, daca caseta emografica ideografica a fontului se extinde de la coordonatele 0, -120 la 1000,880 (adica un set de cutii 1000 × 1000 120 de unitati de proiectare sub linia de baza latina), atunci trebuie setata valoarea sTypoAscender pana la 880. Nerespectarea acestor cerinte va duce la un aspect vertical incorect.

Consultati si sectiunea Recomandari pentru mai multe despre acest camp.

sTypoDescender

Format: int16 Descriere: Descendentul tipografic pentru acest font. Acest camp ar trebui sa fie combinat cu valorile sTypoAscender si sTypoLineGap pentru a determina spatierea implicita a liniilor.

Acest camp este similar cu campul descendent din tabelul „hhea”, precum si cu campul usWinDescent din acest tabel. Cu toate acestea, implementarile de platforme vechi au folosit acele campuri cu comportamente specifice platformei. Ca rezultat, acele campuri sunt constranse de cerinte de compatibilitate inversa si nu asigura un aspect consecvent intre implementari. Campurile sTypoAscender, sTypoDescender si sTypoLineGap sunt destinate sa permita aplicatiilor sa intocmeasca documente intr-un mod tipografic corect si portabil.

Steagul USE_TYPO_METRICS (bitul 7) al campului fsSelection este utilizat pentru a alege intre utilizarea valorilor sTypo * sau valorile usWin * pentru valorile implicite ale liniei. Consultati fsSelection pentru detalii suplimentare.

Nu este o cerinta generala ca sTypoAscender – sTypoDescender sa fie egal cu unitsPerEm. Aceste valori trebuie setate pentru a oferi spatierea implicita a liniilor adecvata pentru limbile principale pe care fontul este conceput sa le accepte.

Pentru fonturile CJK (chineza, japoneza si coreeana) care sunt destinate a fi utilizate atat pentru aspectul vertical (cat si pentru orizontal), valoarea necesara pentru sTypoDescender este cea care descrie partea de jos a casetei em ideografice. De exemplu, daca caseta emografica ideografica a fontului se extinde de la coordonatele 0, -120 la 1000.880 (adica un set de cutii 1000 × 1000 120 de unitati de proiectare sub linia de baza latina), atunci trebuie setata valoarea sTypoDescender pana la -120. Nerespectarea acestor cerinte va duce la un aspect vertical incorect.

Consultati si sectiunea Recomandari pentru mai multe despre acest camp.

sTypoLineGap

Format: int16 Descriere: Decalajul de linie tipografica pentru acest font. Acest camp ar trebui sa fie combinat cu valorile sTypoAscender si sTypoDescender pentru a determina spatierea implicita a liniilor.

Acest camp este similar cu campul lineGap din tabelul „hhea”. Cu toate acestea, implementarile de platforme vechi trateaza acest camp cu comportamente specifice platformei. Ca rezultat, acel camp este constrans de cerintele de compatibilitate cu versiunile anterioare si nu asigura un aspect consecvent intre implementari. Campurile sTypoAscender, sTypoDescender si sTypoLineGap sunt destinate sa permita aplicatiilor sa intocmeasca documente intr-un mod tipografic corect si portabil.

Steagul USE_TYPO_METRICS (bitul 7) al campului fsSelection este utilizat pentru a alege intre utilizarea valorilor sTypo * sau valorile usWin * pentru valorile implicite ale liniei. Consultati fsSelection pentru detalii suplimentare.

usWinAscent

Format: uint16 Descriere: Valoarea „Windows ascender”. Aceasta trebuie utilizata pentru a specifica inaltimea deasupra liniei de baza pentru o regiune de taiere.

Acest lucru este similar cu campul sTypoAscender si, de asemenea, cu campul ascendent din tabelul „hhea”. Cu toate acestea, exista diferente importante intre acestea.

In implementarea Windows GDI, valorile usWinAscent si usWinDescent au fost utilizate pentru a determina dimensiunea suprafetei bitmap din rasterizatorul TrueType. Windows GDI va taia orice portiune dintr-un contur glif TrueType care apare deasupra valorii usWinAscent. Daca orice decupare este inacceptabila, atunci valoarea trebuie setata mai mare sau egala cu yMax.

Nota: Aceasta se refera la pozitia implicita a glifelor, nu la pozitia lor finala in aspect dupa ce datele din tabelul GPOS sau „kern” au fost aplicate. De asemenea, acest comportament de taiere interactioneaza si cu tabelul VDMX: daca este prezent un tabel VDMX si exista date pentru raportul de aspect al dispozitivului si dimensiunea rasterizarii curente, atunci datele VDMX vor inlocui valorile usWinAscent si usWinDescent.

Unele aplicatii vechi folosesc valorile usWinAscent si usWinDescent pentru a determina distanta implicita a liniilor. Acest lucru este puternic descurajat. Campurile sTypo * ar trebui utilizate in acest scop.

Retineti ca unele aplicatii utilizeaza fie valorile usWin *, fie valorile sTypo * pentru a determina distanta implicita a liniilor, in functie de setarea USE_TYPO_METRICS (bitul 7) al campului fsSelection. Acest lucru poate fi util pentru a asigura compatibilitatea cu documentele vechi folosind fonturi mai vechi, oferind in acelasi timp un aspect mai bun si mai portabil folosind fonturi mai noi. Consultati fsSelection pentru detalii suplimentare.

Aplicatiile care utilizeaza campurile sTypo * pentru spatierea implicita a liniilor pot utiliza valorile usWin * pentru a determina dimensiunea unei regiuni de taiere. Unele aplicatii utilizeaza o regiune de decupare pentru editarea scenariilor pentru a determina ce portiune a suprafetei de afisare sa deseneze din nou cand textul este editat sau cat de mare este un dreptunghi de selectie care trebuie desenat atunci cand este selectat textul. Aceasta este o utilizare adecvata pentru valorile usWin *.

Primele versiuni ale acestei specificatii au sugerat ca valoarea usWinAscent sa fie calculata ca yMax pentru toate caracterele din setul de caractere Windows „ANSI”. Pentru fonturile noi, valoarea trebuie determinata in functie de limbile principale pe care fontul este conceput sa le suporte si ar trebui sa ia in considerare inaltimea suplimentara care ar putea fi necesara pentru a gazdui glifele inalte sau pentru a marca pozitionarea.

usWinDescent

Format: uint16 Descriere: Valoarea „Descendent Windows”. Aceasta ar trebui utilizata pentru a specifica intinderea verticala sub linia de baza pentru o regiune de taiere.

Acest lucru este similar cu campul sTypoDescender si, de asemenea, cu campul descendent din tabelul „hhea”. Cu toate acestea, exista diferente importante intre acestea. Unele dintre aceste diferente sunt descrise mai jos. In plus, valoarea usWinDescent trateaza distantele sub linia de baza ca valori pozitive; astfel, usWinDescent este de obicei o valoare pozitiva, in timp ce sTypoDescender si hhea.descender sunt de obicei negative.

In implementarea Windows GDI, valorile usWinDescent si usWinAscent au fost utilizate pentru a determina dimensiunea suprafetei bitmap din rasterizatorul TrueType. Windows GDI va taia orice portiune dintr-un contur de glif TrueType care apare mai jos (-1 × usWinDescent). Daca orice decupare este inacceptabila, atunci valoarea trebuie setata mai mare sau egala cu (-yMin).

Nota: Aceasta se refera la pozitia implicita a glifelor, nu la pozitia lor finala in aspect dupa ce datele din tabelul GPOS sau „kern” au fost aplicate. De asemenea, acest comportament de taiere interactioneaza si cu tabelul VDMX: daca este prezent un tabel VDMX si exista date pentru raportul de aspect al dispozitivului si dimensiunea rasterizarii curente, atunci datele VDMX vor inlocui valorile usWinAscent si usWinDescent.

Unele aplicatii vechi folosesc valorile usWinAscent si usWinDescent pentru a determina distanta implicita a liniilor. Acest lucru este puternic descurajat. Campurile sTypo * ar trebui utilizate in acest scop.

Retineti ca unele aplicatii utilizeaza fie valorile usWin *, fie valorile sTypo * pentru a determina distanta implicita a liniilor, in functie de setarea USE_TYPO_METRICS (bitul 7) al campului fsSelection. Acest lucru poate fi util pentru a asigura compatibilitatea cu documentele vechi folosind fonturi mai vechi, oferind in acelasi timp un aspect mai bun si mai portabil folosind fonturi mai noi. Consultati fsSelection pentru detalii suplimentare.

Aplicatiile care utilizeaza campurile sTypo * pentru spatierea implicita a liniilor pot utiliza valorile usWin * pentru a determina dimensiunea unei regiuni de taiere. Unele aplicatii utilizeaza o regiune de decupare pentru editarea scenariilor pentru a determina ce portiune a suprafetei de afisare sa deseneze din nou cand textul este editat sau cat de mare este un dreptunghi de selectie care trebuie desenat atunci cand este selectat textul. Aceasta este o utilizare adecvata pentru valorile usWin *.

Primele versiuni ale acestei specificatii au sugerat ca valoarea usWinDescent sa fie calculata ca -yMin pentru toate caracterele din setul de caractere Windows „ANSI”. Pentru fonturile noi, valoarea trebuie determinata in functie de limbile principale pe care fontul este conceput sa le accepte si ar trebui sa ia in considerare extinderea verticala suplimentara care ar putea fi necesara pentru a gazdui glifele cu descendenti mici sau pozitionarea marcajului.

Format: uint32 [2] – total 64 de biti. Titlu: Gama de caractere a paginii de cod Descriere: Acest camp este utilizat pentru a specifica paginile de cod cuprinse de fisierul fontului in tabelul „cmap” pentru platforma 3, codarea ID-ului 1 (platforma Microsoft, Unicode BMP). Daca fisierul fontului codifica ID 0, atunci ar trebui setat bitul Set de caractere simbol.

Daca este setat un bit dat (1), atunci pagina de cod este considerata functionala. Daca bitul este clar (0), atunci pagina de cod nu este considerata functionala. Fiecare dintre biti este tratat ca un indicator independent si bitii pot fi setati in orice combinatie. Determinarea „functionala” este lasata la latitudinea proiectantului de fonturi, desi selectia setului de caractere ar trebui sa incerce sa fie functionala de paginile de cod, daca este posibil.

Seturile de caractere cu simboluri au o semnificatie speciala. Daca bitul de simbol (31) este setat, iar fisierul de font contine o tabela „cmap” pentru platforma de 3 si codul ID de 1, atunci toate caracterele din intervalul Unicode 0xF000 – 0xF0FF (inclusiv) vor fi utilizate pentru enumerarea setul de caractere simbol. Daca bitul nu este setat, orice caractere prezente in acea gama nu vor fi enumerate ca un set de caractere simbol.

Toate campurile rezervate trebuie sa fie zero. Fiecare uint32 este in forma Big-Endian.

Cod biti Descriere pagina 0 1252 latina 1 1 1250 latina 2: Europa de Est 2 1251 chirilica 3 1253 greaca 4 1254 turca 5 1255 ebraica 6 1256 araba 7 1257 Windows baltica 8 1258 vietnameza 9–15 rezervata pentru ANSI alternativ 16 874 thailandez 17 932 JIS / Japonia 18 936 chineza: caractere simplificate – RPC si Singapore 19 949 coreeana Wansung 20 950 chineza: caractere traditionale – Taiwan si Hong Kong 21 1361 coreeana Johab 22-28 rezervat pentru ANSI alternativ sau OEM 29 set de caractere Macintosh (US Roman) 30 OEM Set de caractere 31 Set de caractere cu simboluri 32–47 Rezervat pentru OEM 48 869 IBM Grecesc 49 866 MS-DOS Rusa 50 865 MS-DOS Nordic 51 864 Araba 52 863 MS-DOS Canadiana Franceza 53 862 Ebraica 54 861 MS-DOS Islandeza 55 860 MS -DOS portughez 56 857 IBM turc 57 855 IBM chirilic; in primul rand rusa 58 852 latina 2 59 775 MS-DOS Baltic 60 737 greaca; fost 437 G 61 708 arab;Versiunea 0: Aceste campuri nu au fost definite in versiunea 0. Daca dimensiunea unui tabel OS / 2 versiunea 0 se extinde dincolo de campul usWinDescent, datele suplimentare dincolo de campul usWinDescent ar trebui ignorate.

Versiunea 1: Bitul 8 nu a fost atribuit in versiunea 1. Toti ceilalti biti atribuiti in prezent au fost definiti in versiunea 1.

Versiunea 2 si mai recenta: Toti bitii atribuiti in prezent au fost definiti in versiunea 2.

sxHeight

Format: int16 Descriere: Aceasta valoare specifica distanta dintre linia de baza si inaltimea aproximativa a literelor minuscule non-ascendente masurate in FUnits. Aceasta valoare ar fi in mod normal specificata de un proiectant de tip, dar in situatii in care acest lucru nu este posibil, de exemplu atunci cand un font mostenit este convertit, valoarea poate fi setata egala cu partea de sus a casetei de limitare a glifului nescalat si neintins al glifului codificat la U + 0078 (LITERA MICA LATINA X). Daca nu se codifica glif in aceasta pozitie, campul trebuie setat la 0.

Aceasta valoare, daca este specificata, poate fi utilizata pentru inlocuirea fontului: valoarea xHeight a unui font poate fi scalata pentru a aproxima dimensiunea aparenta a altuia.

Diferente de versiune: Versiunea 0, versiunea 1: Acest camp nu a fost definit in versiunea 0 sau versiunea 1. Daca dimensiunea unui tabel OS / 2 versiunea 0 se extinde dincolo de campul usWinDescent sau daca dimensiunea unui tabel OS / 2 versiunea 1 se extinde dincolo de campurile intervalului de pagini de coduri, aceste date suplimentare ar trebui ignorate.

Versiunea 2 si mai recenta: acest camp a fost definit in versiunea 2 a tabelului OS / 2.

sCapHeight

Format: int16 Descriere: Aceasta valoare specifica distanta dintre linia de baza si inaltimea aproximativa a literelor majuscule masurate in FUnits. Aceasta valoare ar fi in mod normal specificata de un proiectant de tip, dar in situatii in care acest lucru nu este posibil, de exemplu atunci cand un font mostenit este convertit, valoarea poate fi setata egala cu partea de sus a casetei de limitare a glifului nescalat si neintins al glifului codificat la U + 0048 (LITERA CAPITALA LATINA H). Daca nu se codifica glif in aceasta pozitie, campul trebuie setat la 0.

Aceasta valoare, daca este specificata, poate fi utilizata in sisteme care specifica dimensiunea tipului in functie de inaltimea capitalului masurata in milimetri. Poate fi folosit si ca metrica de aliniere; partea de sus a unei majuscule, de exemplu, poate fi aliniata la metrica sCapHeight a primei linii de text.

Diferente de versiune: Versiunea 0, versiunea 1: Acest camp nu a fost definit in versiunea 0 sau versiunea 1. Daca dimensiunea unui tabel OS / 2 versiunea 0 se extinde dincolo de campul usWinDescent sau daca dimensiunea unui tabel OS / 2 versiunea 1 se extinde dincolo de campurile intervalului de pagini de coduri, aceste date suplimentare ar trebui ignorate.

Versiunea 2 si mai recenta: acest camp a fost definit in versiunea 2 a tabelului OS / 2.

usDefaultChar

Format: uint16 Descriere: Acesta este punctul de cod Unicode, in codificare UTF-16, a unui caracter care poate fi folosit pentru un glif implicit daca un caracter solicitat nu este acceptat in font. Daca valoarea acestui camp este zero, gliful ID 0 trebuie utilizat pentru caracterul implicit. Acest camp nu poate reprezenta valori ale caracterelor planului suplimentar (puncte de cod mai mari de 0xFFFF), astfel incat aplicatiile sunt puternic descurajate sa foloseasca acest camp. Diferente de versiune: Versiunea 0, versiunea 1: Acest camp nu a fost definit in versiunea 0 sau versiunea 1. Daca dimensiunea unui tabel OS / 2 versiunea 0 se extinde dincolo de campul usWinDescent sau daca dimensiunea unui tabel OS / 2 versiunea 1 se extinde dincolo de campurile intervalului de pagini de coduri, aceste date suplimentare ar trebui ignorate.

Versiunea 2 si mai recenta: acest camp a fost definit in versiunea 2 a tabelului OS / 2.

usBreakChar

Format: uint16 Descriere: Acesta este punctul de cod Unicode, in codificare UTF-16, a unui caracter care poate fi folosit ca caracter de pauza implicit. Caracterul de pauza este folosit pentru a separa cuvintele si a justifica textul. Majoritatea fonturilor specifica U + 0020 SPACE ca caracter de pauza. Acest camp nu poate reprezenta valori ale caracterelor planului suplimentar (puncte de cod mai mari de 0xFFFF), astfel incat aplicatiile sunt puternic descurajate sa foloseasca acest camp. Diferente de versiune: Versiunea 0, versiunea 1: Acest camp nu a fost definit in versiunea 0 sau versiunea 1. Daca dimensiunea unui tabel OS / 2 versiunea 0 se extinde dincolo de campul usWinDescent sau daca dimensiunea unui tabel OS / 2 versiunea 1 se extinde dincolo de campurile intervalului de pagini de coduri, aceste date suplimentare ar trebui ignorate.

Versiunea 2 si mai recenta: acest camp a fost definit in versiunea 2 a tabelului OS / 2.

usMaxContext

Format: uint16 Descriere: Lungimea maxima a unui context glif tinta pentru orice caracteristica din acest font. De exemplu, un font care are doar o caracteristica de kerning in pereche ar trebui sa seteze acest camp la 2. Daca fontul are si o caracteristica de ligatura in care secventa glifului „ffi” este substituita de ligatura „ffi”, atunci acest camp ar trebui sa fie setat la 3. Acest camp ar putea fi util pentru motoarele sofisticate de rupere de linie pentru a determina cat de departe ar trebui sa priveasca inainte pentru a testa daca s-ar putea schimba ceva care afecteaza ruptura de linie. Pentru inlantuirea cautarilor contextuale, ar trebui luata in considerare lungimea sirului (glif acoperit) + (secventa de intrare) + (secventa lookahead). Diferente de versiune: Versiunea 0, versiunea 1: Acest camp nu a fost definit in versiunea 0 sau versiunea 1. Daca dimensiunea unui tabel OS / 2 versiunea 0 se extinde dincolo de campul usWinDescent sau daca dimensiunea unui tabel OS / 2 versiunea 1 se extinde dincolo de campurile intervalului de pagini de cod, datele suplimentare ar trebui ignorate.

Versiunea 2 si mai recenta: acest camp a fost definit in versiunea 2 a tabelului OS / 2.

usLowerOpticalPointSize

Format: uint16 Unitati: TWIPs Descriere: Acest camp este utilizat pentru fonturi cu stiluri optice multiple.

Aceasta valoare este valoarea inferioara a intervalului de dimensiuni pentru care a fost conceput acest font. Unitatile pentru acest camp sunt TWIP (o douazecime dintr-un punct sau 1440 pe inch). Valoarea este inclusiva – ceea ce inseamna ca respectivul font a fost conceput pentru a functiona cel mai bine la aceasta dimensiune a punctului, dar fara a include dimensiunea punctului indicata de usUpperOpticalPointSize. Cand este utilizat cu alte fonturi variante de dimensiune optica dintr-o familie tipografica care specifica si valorile usLowerOpticalPointSize si usUpperOpticalPointSize, ar fi de asteptat ca un alt font sa aiba campul usUpperOpticalPointSize setat la aceeasi valoare ca si valoarea din acest camp, cu exceptia cazului in care acest font este proiectat pentru intervalul de dimensiuni cel mai mic dintre fonturile din familie. Cel mai mic font dintr-un set de dimensiuni optice ar trebui sa seteze aceasta valoare la 0.

Valoarea usLowerOpticalPointSize trebuie sa fie mai mica decat usUpperOpticalPointSize. Valoarea maxima valida este 0xFFFE.

Pentru fonturile care nu au fost proiectate pentru mai multe variante de dimensiuni optice, acest camp ar trebui sa fie setat la 0 (zero), iar usUpperOpticalPointSize ar trebui sa fie setat la 0xFFFF.

Nota: Utilizarea acestui camp a fost inlocuita de tabelul STAT. Consultati sectiunea Recomandari pentru mai multe informatii.

Diferente de versiune: Versiuni 0 – 4: Acest camp nu a fost definit in versiunile 0 – 4. Daca dimensiunea unui tabel OS / 2 depaseste ultimul camp definit pentru versiunea data, aceste date suplimentare ar trebui ignorate.

Versiunea 5: Acest camp a fost definit in versiunea 5 a tabelului OS / 2.

usUpperOpticalPointSize

Format: uint16 Unitati: TWIPs Descriere: Acest camp este utilizat pentru fonturi cu stiluri optice multiple.

Th

Explorarea Azure SQL Managed Instance Management Pack

Recent, am lansat System Center Operations Manager Management Pack pentru Azure SQL Managed Instance. Ofera capacitati de monitorizare cuprinzatoare pentru instanta gestionata SQL. Daca aveti un mediu de date hibrid, puteti utiliza o singura solutie de monitorizare, SCOM, pentru a va monitoriza toate activel