changelog.png
site-map.png
rss.png

Caratteri a larghezza piena e a mezza larghezza

Nell’ambito dell’informatica CJK (Cinese, Giapponese e Coreano), i caratteri grafici sono tradizionalmente classificati come caratteri a larghezza piena o a mezza larghezza. Nel contesto dei tipi di carattere a larghezza fissa, un glifo a mezza larghezza occupa la metà dello spazio orizzontale rispetto a un simbolo a larghezza piena, il che spiega la sua denominazione.

Nell’epoca dei terminali e della rappresentazione informatica in modalità testuale, i caratteri erano normalmente disposti all’interno di una griglia, spesso composta di 80 colonne su 24 o 25 righe. Ogni carattere veniva visualizzato sotto forma di una piccola matrice di punti, tipicamente della dimensione di circa 8 pixel, e l’adozione di un SBCS (set di caratteri a byte singolo) era generalmente invalsa per la codifica dei caratteri propri delle lingue occidentali.

Con l’avvento dello standard Unicode, se un dato grafema può essere rappresentato come carattere a larghezza piena o come carattere a mezza larghezza, quel simbolo si definisce dotato contemporaneamente di una forma a larghezza piena e di una forma a mezza larghezza.

Forme a mezza larghezza e a larghezza piena è il nome del blocco Unicode U+FF00–FFEF, che costituisce l’ultima sezione del Piano di base multilinguistico e che non comprende il breve blocco dei Caratteri speciali, compresi nell’intervallo U+FFF0–FFFF.

Fonte: Wikipedia

Perché utilizzarli in AncientGreek? ^

Legacy Ancient Greek encodings (such as Beta Code and SPIonic) use ASCII characters (Lettere occidentali, punctuation marks etc.) to represent AncientGreek text. Furthermore, SPIonic uses numbers (0-9) to represent AncientGreek punctuation marks. This means that documents written in any of these legacy Ancient Greek encodings simply cannot contain English text (or any text using ASCII characters), because that would be interpreted as Ancient Greek text.

The problem is much more intense when trying to convert Unicode text to any of these legacy Ancient Greek encodings, since ASCII character usually is present (for example the Editor's name). Converting such text would result to irrecoverably destroying that ASCII written English text.

L’unica soluzione consiste quindi nel “camuffare” i caratteri ASCII (il testo in alfabeto occidentale), così da evitare che una qualsiasi conversione li comprenda; ed è proprio in questi casi che entrano in gioco i caratteri a larghezza piena e a mezza larghezza: convertire i caratteri ASCII (il testo in alfabeto occidentale) in caratteri a larghezza piena o a mezza larghezza prima della conversione del testo in greco antico in Beta Code o SPIonic (o una qualsiasi delle altre codifiche obsolete) conserverà quelle stringhe in una forma ancora leggibile, come mostrato nell’immagine seguente.

fullwidth-text-ok.jpg

La prima riga è scritta in caratteri normali (ASCII), mentre la seconda è il risultato di una conversione in caratteri a larghezza piena.

Quali caratteri utilizzare ^

Quando un testo viene convertito in caratteri a larghezza piena, LibreOffice / OpenOffice è programmato per tentare di trovare un tipo di carattere che possa rappresentare i glifi utilizzati. La ricerca ha esito positivo o negativo in rapporto ai tipi di carattere installati e disponibili all’uso.

Se la ricerca di un tipo di carattere appropriato va a buon fine, si otterrà allora un risultato simile a quello rappresentato nell’immagine precedente; se fallisce, si otterrà invece un risultato simile a questo:

fullwidth-text-nok.jpg

In tal caso, occorrerà installare un tipo di caratteri appropriato.

Per esempio, su un sistema dotato di una versione Debian Linux nativa, non è disponibile alcun tipo di carattere appropriato per impostazione predefinita. Una ricerca per “CJK” e “font” offre come risultato il pacchetto chiamato “ttf-wqy-zenhei”: dopo averlo installato e aver riavviato LibreOffice / OpenOffice, il problema si può dire risolto.

La tabella seguente mostra i risultati delle mie ricerche a proposito della disponibilità dei tipi di carattere CJK sui sistemi operativi supportati da AncientGreek.

Sistema operativo Nome del tipo di carattere Funzionamento
Windows XP SP3 Arial Unicode MS Installazione manuale
Windows 7-8-8.1/10 SimSun/Source Han Sans CN Regular Automatico
Debian Linux WenQuanYi Zen Hei Installazione manuale
Debian sid AR PL SungtiL GB Installazione manuale
Mac OS Arial Unicode MS Automatico

Come funziona ^

Come chiarito in precedenza, i caratteri a larghezza piena si dimostrano pratici solo in caso di necessità di conversione di un testo Unicode in un testo greco dotato di una codifica obsoleta (Beta Code, SPIonic, ecc.).

The text to be converted is checked for ASCII characters (English text) and if found it will first be converted to fullwidth characters, and then the legacy Ancient Greek encoding will be performed.

In caso di conversione del testo da una codifica obsoleta a Unicode, avviene invece una conversione aggiuntiva in seguito a quella principale: tutti i caratteri a larghezza piena vengono automaticamente riconvertiti in Unicode.

La finestra di dialogo Conversione dei caratteri a larghezza piena e a mezza larghezza ^

AncientGreek fornisce uno strumento utile a convertire manualmente i caratteri ASCII in caratteri a mezza larghezza o a larghezza piena (e viceversa) attraverso la relativa finestra di dialogo (mostrata sotto), a cui si può accedere da “Menu di AncientGreek / Codifiche obsolete / Caratteri a mezza larghezza / larghezza piena” o facendo clic sull’icona hfw-16.png presente nella barra degli strumenti secondaria.

half-full-convert.jpg
La finestra di dialogo su Debian Linux

Le opzioni disponibili sono:

Attivando la casella “Da caratteri a mezza larghezza o larghezza piena in caratteri ASCII”, verrà eseguita una conversione inversa. Questa funzione in realtà è superflua, poiché qualunque conversione da codifica obsoleta in Unicode eseguirà l’azione suddetta per impostazione predefinita.

×

Informazionirmazioni

Se la tabella appare spezzata, è possibile visualizzare tutto il suo contenuto scorrendo verso destra e verso sinistra.