In che modo Linux gestisce i caratteri?


11

Quando utilizzavo Windows (molto tempo fa!) E Mac OS X, c'era sempre un "repository" centrale di caratteri condivisi e accessibili dal sistema operativo e da tutti i programmi (la cartella dei caratteri in Windows e il Libro dei caratteri in Mac OS X).

Come vengono gestiti i caratteri in Linux? Esiste anche un archivio centrale per i caratteri che tutti i programmi (la shell senza X, con X, i gestori di finestre, altri software con interfaccia grafica) possono usare? O i caratteri sono gestiti separatamente? Cosa posso fare per gestire in modo efficiente e semplice i miei caratteri in Linux?

Risposte:


13

Esistono due meccanismi per i caratteri in X land: lato server e lato client.

Il modo tradizionale di rendere i caratteri è per il client dire al server "render fooin posizione (x, y) nel carattere F" (dove una specifica del carattere include una faccia, dimensione, codifica e altri attributi). Il server X stesso, o un programma specializzato chiamato font server , apre il file font per creare la descrizione di ciascun glifo. I caratteri possono essere bitmap o caratteri vettoriali, ma i caratteri vettoriali vengono convertiti in bitmap prima del rendering.

La maggior parte dei programmi moderni utilizza il rendering dei font lato client, spesso tramite xft e fontconfig . Era necessario un nuovo meccanismo perché il rendering dei caratteri sul lato server non supportava l'antialiasing.

Al di fuori di X (cioè su una console VGA), ci sono caratteri VGA, che sono caratteri bitmap di dimensioni specifiche. Ma rispetto a X11, nessuno usa la console VGA, quindi non si spende molto su di loro.

In pratica, ti consigliamo di configurare i caratteri in due modi:

  • Per programmi di vecchio stile: le directory dei caratteri sono elencate tramite FontPathdirettive in xorg.confe possono essere manipolate con i xset fpcomandi dall'utente che esegue X. Se si installano nuovi caratteri, potrebbe essere necessario eseguirli mkfontdir.
  • Per i programmi più recenti, inclusi tutti i programmi Gtk (Gnome, ecc.) E Qt (KDE, ecc.): I caratteri sono nelle directory indicate dalle <dir>direttive in /etc/fonts/fonts.conf, ~/.fonts.confe in alcuni altri posti. Vedere la documentazione di fontconfig per ulteriori informazioni. Se si installano nuovi caratteri, potrebbe essere necessario eseguire fc-cache.

3

I caratteri console e i caratteri X sono due cose separate in Linux. Usa il comando setfontper cambiare il carattere e showconsolefontvedere come appare. Ogni distribuzione ha il suo modo di impostare il carattere predefinito della console. Leggi la setfontpagina man per l'ubicazione dei caratteri della console. Per il mio sistema Fedora 14, è / lib / kbd / consolefonts /. I caratteri della console sono un formato di file che definisce i caratteri della console EGA / VGA.

I caratteri X hanno un formato diverso rispetto ai caratteri console. In genere sono gestiti da definizioni nella tua configurazione X (con FontPath nella sezione File) o tramite un server Font (xfs), che è anche impostato nella sezione File con FontPath. Puoi anche aggiungere FontPaths eseguendo xset +fp path. Il mio sistema ha tutti i suoi caratteri X in / usr / share / X11 / fonts.


Quindi questo significa che tutti i programmi della GUI che girano su X useranno i caratteri X?
hpy

1
@penyuan: non necessariamente, ma per la maggior parte dei casi, sì. Molti programmi GUI utilizzano librerie di livello superiore (come GTK o Qt) che gestiscono i caratteri per te.
jsbillings,

Si noti che i documenti (ad esempio (La) TeX) usano ancora un altro set di caratteri.
vonbrand,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.