Previous Next Contents

4. Altre localizzazioni

Qui si volgiono trattare quelle localizzazioni che sono un po' piú hardware-dipendenti, e in particolar modo che riguardano i PC compatibili. Molto probabilmente molte di queste cose non si applicano alle altre piattaforme su cui gira Linux, ne chiedo venia.

Le cose sono due, o mi regalate un PPC, una Sparc, un Alpha, un A4000, un MAC, ... oppure se avete altre note per queste macchine da aggiungere fatemelo sapere. ;-)

4.1 Font in console

Linux permette di cambiare il font standard presente nella ROM della scheda video, in modo da avere il set di caratteri ISO-8859-1 completo a disposizione. La cosa può essere semplicemente ottenuta con :


        # carica il set di caratteri Latin1 (ISO-8859-1)
        setfont /usr/lib/kbd/consolefonts/lat1u-16.psf
        # attiva la mappa di traslazione nulla
        mapscrn /usr/lib/kbd/consoletrans/trivial
        # rende attiva la nuova mappa di traslazione nella console corrente.
        # andrebbe ripetuto per ogni console...
        echo -ne '\033(B'

Il primo comando carica un nuovo set di caratteri, il secondo permette di eseguire una traslazione ``al volo'' tra caratteri richiesti e voluti e il terzo rende attiva la nuova coppia tabella-tavola di traslazione.

Ad esempio di default non viene caricata nessuna tabella e viene eseguita la traslazione Latin1 (quello che Linux vuole) con CP437 (quello che il PC ha). Ovviamente le manpages di setfont(1) e mapscrn(1) sono utili letture.

Ovviamente, se la propria scheda video supporta modi testo diversi da 80x25, è anche conveniente caricare un font di dimensione diversa. Si possono controllare i font e le mappe di traduzione disponibile nelle directory /usr/share/consolefont e /usr/share/consoletrans.

Caricando un tipo di caratteri come lat1u-*.psf si ha anche il vantaggio di avere l'allocazione dei caratteri UNICODE, e non serve caricare nessuna tabella di traslazione. Ai fini pratici si può evitare di eseguire mapscrn e si ottengono contemporaneamente tutti i carateri accentati propri del set Latin1 e i caratteri semigrafici IBM che servono per disegnare correttamente le finestre di mc(1) e dialog(1).

Per avere tutto questo occorre però avere un kernel decentemente nuovo, una versione recente di ncurses (libncurses.so.3.x.y) e kbd-0.91, altrimenti è facile che l'abilitazione del set Latin1 completo elimini il supporto per i caratteri IBM semigrafici e viceversa.

SVGATextMode

Ma c'è una soluzione piú elegante. Esiste un programma che si chiama SVGATextMode(8) che fa tutta una serie di operazioni sulla console testo molto simpatiche.

Permette di definire dimensioni ``non standard'' per la console (diverse da 80x25, insomma), permette di alzare la frequenza di refresh del video di modo da stancare meno gli occhi, gestisce chipset avanzati...

Ha un file di configurazione, /etc/TextConfig che ha una sintassi molto simile al file di configurazione di XFree e che permette in un sol colpo di definire il font da caricare. Ci penserà poi il programma stesso ad attivare il font e renderlo disponibile.

Basta modificare leggermente il file, facendo in modo che si presenti all'incirca come:



        Option "LoadFont"
        FontProg "/usr/bin/setfont"
        FontPath "/usr/share/consolefonts"
        FontSelect "lat1u-16.psf"   8x16 9x16 8x15 9x15
        FontSelect "lat1u-14.psf"   8x14 9x14 8x13 9x13
        FontSelect "lat1u-12.psf"   8x12 9x12 8x11 9x11
        FontSelect "lat1u-08.psf"   8x8  9x8  8x7  9x7
        FontSelect "lat1u-08.psf"   8x32 9x32 8x31 9x31

E si ottengono magicamente tutte le cose volute.

4.2 Font in X

Buona parte dei caratteri installati con X seguono lo standard Latin1, e idem i font PostScript normalmente reperibili (come quelli dell'ATM). Quindi, nessun problema!!!

4.3 Stampante & DOS

Se stampate file DVI, PostScript o comunque in grafica, non ci sono problemi. Ci penserà il vostro programma per la stampa a convertire il vostro file nel formato matrice-di-punti più consono alla vostra stampante. Ma se volete stampare in puro testo, senza formattazioni? Resta, soprattutto per le stampanti ad aghi, il metodo più veloce. Ma quanto è standard il set ISO-8859-1?

ISO-8859-1 è il set di caratteri di Unix in generale, di Windows, Amiga, OS/2. Mancano all'appello il DOS e Macintosh. Ma in DOS la CP850 è in pratica il set Latin1, con i caratteri rimescolati un po' per essere compatibile verso il basso con la CP437. Sentitevi liberi quindi da qualsiasi ``sindrome da 8 bit'', e usate tranquillamente questo set di caratteri. Se dovete importare dei testi Linux in Macintosh, semplicemente usate il filtro per ``puro testo Windows'' o cose simili.

Se volete stampare puro testo con le accentate da Linux, a questo punto non vi resta che provare una delle soluzioni seguenti:

Un esempio di filtro

Per avere automaticamente la conversione, si può utilizzare questo filtro:


        #!/bin/sh
        if /usr/local/bin/recode latin1:cp850
        then
                exit 0
        else
                exit -1
        fi

potete salvare questo filtro come /usr/local/bin/iso2850 e poi dargli i permessi di esecuzione (chmod ugo+x /usr/local/bin/iso2850). ora non vi resta che aggiungere nel file di configurazione delle stampanti /etc/printcap:


        # esempio di filtro, sostituire ``lp2'' con il device corretto
        # i file log e acct vanno creati
        #
        cp850|dos:\
        :lp=/dev/lp2:\
        :sd=/var/spool/lp2:\
        :lf=/var/spool/lp2/log:\
        :af=/var/spool/lp2/acct:\
        :if=/var/local/bin/iso2850:\
        :sh:

Ora, se la stampante è impostata per usare la codepage 850, basta un bel lpr -Pcp850 nomefile per stampare un file latin1 con tutte le accentate al loro posto.

4.4 libpaper

Libpaper è una piccola libreria e un programmino che dovrebbe ``standardizzare'' la gestione dei formati di carta sotto linux. In pratica fornisce delle funzioni da linkare al proprio programma che permettono di usare delle informazioni sul formato di carta centralizzate (prese da /etc/papersize o dalla variabile d'ambiente PAPERSIZE.

In debian è installata di default e gs la usa. Potrebbe essere una cosa utile, e va incentivata.

Maggiori informazioni le potete trovare alla manpage di paperconf(1), ovviamente se avete libpaper installata nel vostro sistema.


Previous Next Contents