Page suivante - Page précédente - Table des matières

2. Configuration de l'affichage

Nous supposons que vous avez déjà adapté votre console Linux et la configuration de X11 à votre clavier et avez positionné correctement la variable de localisation LANG. Ceci est expliqué dans le Danish/International HOWTO, et dans les autres HOWTOS nationaux : Finish, French, German, Italian, Polish, Slovenian, Spanish, Cyrillic, Hebrew, Chinese, Thai, Esperanto. Mais, s'il vous plaît, ne suivez pas le conseil donné dans le Thai-HOWTO vous disant de faire croire que vous utilisez des caractères ISO-8859-1 (U0000..U00FF) alors que vous tapez des caractères Thai (U0E01..U0E5B). Faire cela ne vous causera que des problèmes lorsque vous passerez à Unicode.

2.1 La console Linux

Je ne parle pas tellement de la console ici, parce que je ne l'utilise que pour rentrer mon login, password, et taper xinit sur les machines dépourvues de xdm.

Mais revenons à nos moutons : le package kbd-0.99 ftp://sunsite.unc.edu/pub/Linux/system/keyboards/kbd-0.99.tar.gz, et une version largement étendue, le package console-tools-0.2.2
ftp://sunsite.unc.edu/pub/Linux/system/keyboards/console-tools-0.2.2.tar.gz, contiennent dans le répertoire kbd-0.99/src/ (ou console-tools-0.22/screenfonttools/) deux programmes : «unicode_start» et «unicode_stop». Quand vous appelez «unicode_start», la sortie de la console est interprétée comme de l'UTF-8. De plus, le clavier est mis en mode Unicode (voir "man kbd_mode"). Dans ce mode, les caractères Unicode tapés par Alt-x1...Alt-xn (où x1...xn sont les chiffres de pavé numérique) seront émis en UTF-8. Si votre clavier, ou plus précisément, votre keymap a des touches correspondant à des caractères non ASCII(comme le Umlaute allemand), que vous souhaiteriez pouvoir «CapsLocker», vous devez appliquer au kernel le patch linux-2.2.9-keyboard.diff ou linux-2.3.12-keyboard.diff.

Vous voudrez probablement afficher des caractères de différents alphabets sur le même écran. Pour cela, vous aurez besoin d'une fonte Unicode pour la console.
Le package ftp://sunsite.unc.edu/pub/Linux/system/keyboards/console-data-1999.08.29.tar.gz contient une fonte (LatArCyrHeb-{08,14,16,19}.psf), qui couvre les lettres pour le latin, le cyrillique, l'hébreu, et l'arabe. Il supporte les parties 1, 2, 3, 4, 5, 6, 8, 9, 10 d'ISO-8859 à lui tout seul. Pour l'installer, copiez le dans /usr/lib/kbd/consolefonts/, et exécutez
/usr/bin/setfont /usr/lib/kbd/consolefonts/LatArCyrHeb-14.psf.

Si vous voulez que le copier-coller marche avec les consoles UTF-8, vous aurez besoin du patch linux-2.3.12-console.diff d'Edmund Thomas, Grimley Evans et Stanislav Voronyi.

2.2 Fontes étrangères pour X11

N'hésitez pas à installer des fontes cyrilliques, chinoises, japonaises, etc. Même si ce ne sont pas des fontes Unicodes, elles aideront à afficher des documents Unicode : au moins Netscape Communicator 4 et Java feront usage des fontes étrangères si elles sont disponibles.

Les programmes suivants sont utiles pour installer des fontes :

  • "mkfontdir répertoire" prépare un répertoire de fontes utilisables par le serveur X. Il doit être exécuté après avoir installé les fontes dans un répertoire.
  • "xset fp+ répertoire" ajoute un répertoire au chemin de fontes actuel du serveur X. Pour que ce soit permanent, ajoutez une ligne "FontPath" à votre fichier /etc/XF86Config, dans la section "Files".
  • "xset fp rehash" doit être exécuté après avoir appelé mkfontdir sur un répertoire qui est déjà contenu dans le chemin de fontes actuel du serveur X.
  • "xfontsel" vous permet de parcourir les fontes installées en filtrant selon les diverses propriétés des fontes.
  • "xlsfonts -fn motif-de-recherche" liste toutes les fontes qui correspondent à un motif de recherche. Il affiche aussi diverses propriétés des fontes. En particulier, "xlsfonts -ll -fn fonte" liste les propriétés de la fonte CHARSET_REGISTRY et CHARSET_ENCODING, qui ensemble déterminent l'encodage de la fonte.
  • "xfd -fn fonte" affiche une fonte page par page.

Les fontes suivantes sont disponibles gratuitement (liste non exhaustive) :

  • Celle contenues dans XFree86, quelquefois contenues dans un package séparé. Par exemple, la SuSE a seulement les fontes 75 dpi normales dans le package "xf86" de base. Les autres fontes sont dans les packages "xfnt100", "xfntbig", "xfntcyr", "xfntscl".
  • Les fontes internationales pour Emacs,  ftp://ftp.gnu.org/pub/gnu/intlfonts/intlfonts-1.1.tar.gz. Comme il a été mentionné précédemment, elles sont utiles même si vous préférez XEmacs à GNU Emacs, ou même si vous n'utilisez pas Emacs du tout.

2.3 Les fontes Unicode pour X11

Les applications qui souhaitent pouvoir afficher du texte utilisant différentes alphabets (comme le cyrillique et le grec) en même temps, peuvent le faire en utilisant les différentes fontes X pour chaque partie de texte. C'est ce que font Netscape Communicator et Java. Cependant, cette approche est plus compliquée, parce que au lieu de travailler avec "Font" et "XFontStruct", le programmeur devra utiliser "XFonSet", et aussi parce que toutes les fontes dans le jeu de fontes doivent avoir les mêmes dimensions.

  • Markus Kuhn a assemblé des fontes à largeur fixe (fixed width) de 75 dpi avec Unicode couvrant le latin, le grec, le cyrillique, l'arménien, le géorgien, l'hébreu, et les écritures symboliques. Elles couvrent les parties 1 à 10 et 13 à 15 de ISO-8859 en un seul jeu de fontes. Cette fonte est nécessaire pour utiliser un xterm en mode UTF-8. http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts.tar.gz
  • Roman Czyborra a assemblé une fonte 8x16/16x16 75 dpi avec l'encodage Unicode couvrant une partie énorme d'Unicode. Teléchargez unifont.hex.gz et hex2bdf depuis http://czyborra.com/unifont/ Elle n'est pas à largeur fixe : 8 pixels de large pour les caractères européens, 16 pour les caractères chinois. Instructions d'installation :
    $ gunzip unifont.hex.gz
    $ hex2bdf < unifont.hex> unifont.bdf
    $ bdftopcf -o unifont.pcf unifont.bdf
    $ gzip -9 unifont.pcf
    $ cp unifont.pcf.gz /usr/X11R6/lib/X11/fonts/misc
    $ cd usr/X11R6/lib/X11/fonts/misc
    $ mkfontdir
    $ xset fp rehash
    
  • Primoz Peterlin a assemblé un famille de fontes ETL couvrant le latin, le grec, le cyrillique, l'arménien, le géorgien, et l'hébreu. ftp://ftp.x.org/contrib/fonts/etl-unicode.tar.gz. Utilisez le programme "bdftopcf" pour l'installer.

2.4 Unicode xterm

xterm fait partie de X11R6 et XFree86, mais il est maintenu séparément par Tom Dickey.
http://www.clark.net/pub/dickey/xterm/xterm.html. Les nouvelles versions (patch niveau 109 et plus) supportent la conversion des touches (keystrokes) en UTF-8 avant de les envoyer à l'application qui tourne dans le xterm, et l'affichage des caractères Unicode que l'application renvoie comme une séquence d'octets UTF-8.

Pour obtenir un xterm UTF-8 fonctionnel, vous devez :

  • Rapatrier http://www.clark.net/pub/dickey/xterm/xterm.tar.gz.
  • Le configurer en exécutant "./configure -enable-wide-chars...", puis le compiler et l'installer.
  • Avoir une fonte Unicode à largeur fixe installée. ucs-fonts.tar.gz de Markus Kuhn (voir ci-dessus) est fait pour ça.
  • Lancer "xterm -u8 -fn fixed". L'option "-u8" enclenche le support d'Unicode et d'UTF-8. La fonte "fixed" est celle de Markus Khun.
  • Jeter un oeil aux fichiers-exemples contenus dans le package ucs-fonts de Markus Khun : 
    $ cd .../ucs-fonts
    $ cat quickbrown.txt
    $ cat utf-8-demo.txt
    
    Vous devriez voir (entre autre) des caractères grecs et cyrilliques.
  • Pour configurer xterm pour qu'il utilise le support UTF-8 dès le lancement, ajoutez la ligne "XTerm*utf8:1" à votre $HOME/.Xdefaults (pour vous seul). Je ne recommande pas de changer directement /usr/X11R6/lib/X11/app-defauts/XTerm, parce que vos changements seront effacés lorsque vous installerez une nouvelle version de XFree86.
  • Si vous avez aussi changé le nom de la fonte, vous aurez besoin d'une ligne "*VT100*font: votre-fonte" dans votre fichier $HOME/.Xdefaults. Pour les fontes "fixes" ce n'est pas nécessaire, puisque "fixed" est la valeur par défaut de toute façon.

2.5 Divers

Un petit programme qui teste si une console Linux est en mode UTF-8 peut être trouvé dans le package ftp://sunsite.unc.edu/pub/Linux/system/keyboards/x-lt-1.18.tar.gz de Ricardas Cepas. Ce sont les fichiers testUTF-8.c et testUTF8.c.


Page suivante - Page précédente - Table des matières