Utiliser l'UTF-8 avec Gentoo
1.
Encoder les caractères
Qu'est-ce que l'encodage de caractère ?
Les ordinateurs ne comprennent pas le texte en soi. En fait, chaque caractère
est représenté par un nombre. Traditionnellement, chaque jeu de nombres utilisé
pour représenter un alphabet et des caractères (appelé un système de codage
ou encore un jeu d'encodage ou de caractères) est limité par la taille à cause
de la limitation matérielle de la machine.
L'histoire de l'encodage des caractères
Le jeu de caractères le plus commun, ou du moins le plus universellement
accepté, est l'ASCII (American Standard Code for Information
Interchange). Il est universellement reconnu comme étant le standard le plus
abouti pour les logiciels. La version moderne de l'ASCII a été standardisée en
1986 (ANSI X3.4, RFC20, ISO/IEC 646:1991, ECMA-6) par l'institut national
américain des standards.
L'ASCII est du 7-bit strict, ce qui signifie qu'il utilise une table de
correspondance entre les caractères et des nombres binaires à 7 chiffres, ce qui
donne un échantillon de 0 à 127, en décimal. Cela inclut 32 caractères de
contrôle non visibles aux positions de 0 à 31, ainsi que le caractère Suppr à
la position 127. Les caractères de 32 à 126 sont des caractères visibles :
un espace, un signe de ponctuation, des lettres latines ou des nombres.
Le huitième bit en ASCII a été utilisé au départ comme un bit de parité pour
permettre des vérifications d'erreur. S'il n'est pas nécessaire, il est laissé
à 0. Cela qui signifie que, en ASCII, chaque caractère est représenté par un
seul octet.
Si l'ASCII suffit aux conversations en anglais moderne, dans d'autres
langues européennes qui incluent des caractères accentués, les choses ne
semblent pas aussi évidentes. Les standards ISO 8859 ont été développés pour
répondre à ces besoins. Ils assurent une compatibilité ascendante avec l'ASCII,
mais au lieu de laisser le huitième bit à 0, il est utilisé pour permettre de
coder 127 autres caractères dans chaque encodage. Les limitations de l'ISO 8859
vont vite être mises à jour et il y a actuellement quinze variantes du standard
ISO 8859 (depuis le 8859-1 jusqu'au 8859-15). Il y a souvent des conflits entre
les lettres qui peuvent être représentées par un octet, malgré la compatibilité
avec l'ASCII. Pour compliquer encore l'interopérabilité entre les différents
encodages de caractères, Windows-1252 est utilisé dans certaines versions de
Microsoft Windows pour certaines langues d'Europe occidentale. C'est un jeu
dérivant de l'ISO 8859-1, mais avec de nombreuses différences. Ces jeux gardent
cependant tous une compatibilité avec l'ASCII.
La nécessité du développement d'un encodage complètement différent, pour des
alphabets non latins, comme l'EUC (Extended Unix Coding), qui est utilisé pour
le japonais et le coréen (et également un peu pour le chinois), a créé plus de
confusion encore. Différents systèmes d'exploitation utilisaient encore
différents jeux de caractère pour une même langue, par exemple Shift-JIS et
ISO-2022-JP. Les utilisateurs voulant lire des glyphes cyrilliques devaient
choisir entre les jeux KOI8-R pour le russe ou le bulgare ou KOI8-U pour
l'ukrainien. Ou encore d'autres encodages du cyrillique, comme l'ISO 8859-5,
lequel n'a pas eu beaucoup de succès, ou le jeu Windows-1251. Tous ces jeux de
caractères cassent souvent la compatibilité avec l'ASCII (même si l'emplacement
des caractères cyrilliques dans le KOI8 permet, si on s'affranchit du huitième
bit, d'assurer une possible lecture du texte sur un terminal ASCII, moyennant
quelques adaptations).
Tout cela mène à une certaine confusion, mais aussi une incapacité totale de
communiquer entre les langues et, tout particulièrement, entre différents
alphabets. C'est alors qu'est arrivé l'Unicode.
Qu'est-ce que l'Unicode ?
L'Unicode laisse de côté la représentation traditionnelle et limitée d'un octet
pour un caractère. Il utilise 17 « plans » de 65536 éléments,
permettant ainsi de décrire un maximum de 1114112 caractères. Le premier plan
nommé BMP (pour Basic Multilingual Plane, ou plan multi-langue de base)
contient presque tous les caractères que vous pourriez utiliser. C'est pour ça
que beaucoup croient à tort que l'Unicode est un jeu de caractères 16-bits.
L'Unicode a été représenté de différentes manières, mais les deux plus communes
sont l'UTF (Unicode Transformation Format) et l'UCS (Universal
Character Set). Après le terme UTF, suit un nombre indiquant le nombre de bits
dans une unité. Dans le cas de l'UCS, il représente le nombre d'octets. L'UTF-8
est devenu le moyen d'échange le plus répandu pour les échanges de texte en
Unicode, grâce à ses propriétés (clair, représenté par 8 bits) et il est
l'encodage dont fait l'objet notre document.
UTF-8
UTF-8 est un encodage de caractère à longueur variable et peut utiliser entre
1 et 4 octets par symbole. Le premier octet est utilisé pour encoder les
symboles ASCII, ce qui permet une compatibilité complète avec l'ASCII. Les
caractères latins et ASCII sont interchangeables avec l'UTF-8 sans trop
augmenter la taille des données, puisque seul le premier octet est utilisé.
Les utilisateurs d'alphabets exotiques comme le japonais n'ont pas cette chance,
dans la mesure où ils obtiendront en gros 50% de redondance dans leurs données.
Ce qu'UTF-8 peut faire pour vous
UTF-8 vous permet de travailler dans un environnement multilingue conforme aux
standards et universellement reconnu, avec une redondance de donnée relativement
faible. L'UTF-8 est le meilleur moyen de transmettre des caractères non-ASCII
sur Internet, par courrier électronique, IRC ou la plupart des autres moyens
de communication. Malgré cela, de nombreuses personnes considèrent comme
abusive l'utilisation de l'UTF-8 pour les communications. Il est toujours
préférable de se tenir au courant de l'attitude des uns et des autres à propos
de l'UTF-8 sur certains canaux de discussion, listes de diffusion ou groupes
de discussion avant d'utiliser de l'UTF-8 non-ASCII.
2.
Mise en place de l'UTF-8 avec Gentoo Linux
Trouver ou créer les localisations UTF-8
Maintenant que vous avez compris les principes de base de l'Unicode, vous allez
pouvoir commencer à utiliser l'UTF-8 sur votre système.
Il vous faudra avant toute chose disposer d'une version de glibc qui supporte
les langues nationales. Le moyen recommandé pour l'obtenir est d'utiliser le
fichier /etc/locale.gen. L'objet de ce document n'est pas de vous
expliquer l'utilisation de ce fichier. Vous trouverez de la documentation dans
le Guide de localisation de
Gentoo Linux.
Ensuite, vous devrez vérifier si oui ou non UTF-8 est déjà disponible pour
votre langue ou si vous devrez créer une localisation.
Exemple de code 2.1 : Vérifier l'existence d'une localisation pour UTF-8 |
# locale -a | grep 'fr_FR'
fr_FR
fr_FR.UTF-8
|
Nous constatons ici que nous avons un suffixe en .UTF-8, ce qui est une
bonne chose. Si vous n'avez pas de résultat avec un suffixe similaire à celui-ci
vous devez créer une localisation compatible UTF-8.
Note :
Il vous suffit de lancer la commande suivante si vous n'avez pas de localisation
UTF-8 pour votre langue.
|
Exemple de code 2.2 : Créer une localisation UTF-8 |
# localedef -i fr_FR -f UTF-8 fr_FR.UTF-8
|
Une autre façon d'ajouter une localisation UTF-8 est de l'ajouter au fichier
/etc/locale.gen et de regénérer les localisations nécessaires avec
la commande locale-gen.
Exemple de code 2.3 : Exemple de /etc/locale.gen |
fr_FR.UTF-8 UTF-8
|
Mise en place de la localisation
Vous devez configurer une variable d'environnement pour pouvoir utiliser vos
nouvelles localisations UTF-8 : LC_CTYPE (ou facultativement
LANG si vous voulez changer le langage du système aussi). Il existe
plusieurs manières différentes de la configurer. Certains préfèrent n'avoir un
environnement UTF-8 que pour un utilisateur spécifique. Dans ce cas, il faudra
la configurer dans le fichier ~/.profile (si vous utilisez
/bin/sh), ~/.bash_profile ou ~/.bashrc (si
vous utilisez /bin/bash). Vous trouverez plus de détails et des bonnes
pratiques dans notre guide de
localisation.
D'autres préféreront configurer la localisation de manière globale. Un cas pour
lequel vous devrez probablement agir ainsi est si vous utilisez
/etc/init.d/xdm. En effet, ce script d'initialisation démarre un
gestionnaire d'affichage et un bureau avant que les fichiers d'initialisation
des terminaux ne soient exécutés.
Note :
Pour configurer de manière globale la localisation, il vous faut éditer le
fichier /etc/env.d/02locale qui doit alors contenir les lignes
suivantes :
|
Exemple de code 2.4 : /etc/env.d/02locale |
LANG="fr_FR.UTF-8"
|
Note :
Vous pouvez également mettre LC_CTYPE à la place de LANG. Pour
plus d'informations sur les catégories affectées par la variable
LC_CTYPE, lisez la documentation
GNU sur la localisation.
|
Il vous faut maintenant mettre à jour l'environnement pour valider la
modification.
Exemple de code 2.5 : Mise à jour de l'environnement |
# env-update
>>> Regenerating /etc/ld.so.cache...
* Caching service dependencies ...
# source /etc/profile
|
Maintenant, lancez la commande locale sans argument pour voir si les
variables sont correctement initialisées sur votre environnement :
Exemple de code 2.6 : Vérifier la nouvelle localisation |
# locale
LANG=fr_FR.UTF-8
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL=
|
C'est tout. Vous utilisez maintenant une localisation UTF-8. La prochaine étape
est la configuration des applications que vous utilisez quotidiennement.
3.
Support des applications
Quand l'Unicode a commencé à prendre de l'ampleur dans le monde logiciel, les
jeux de caractères à plusieurs octets n'étaient pas très bien supportés par des
langages comme le C, langages dans lesquels de nombreux programmes utilisés
quotidiennement étaient écrits. Encore maintenant, certains programmes ne sont
toujours pas capables de gérer l'UTF-8 correctement. Heureusement, la plupart
le sont.
Noms de fichiers, NTFS et FAT
Il y a de nombreuses options NLS (Native Language Support, pour support des
langues natif) dans la configuration du noyau Linux et le plus important est de
ne pas se tromper. Dans la plupart des cas, la seule chose à faire est de mettre
le support NLS de l'UTF-8 dans le noyau et de changer le NLS par défaut à utf8.
Exemple de code 3.1 : Configuration du noyau pour les NLS UTF-8 |
File Systems -->
Native Language Support -->
(utf8) Default NLS Option
<*> NLS UTF8
|
Si vous pensez avoir à monter des partitions NTFS, vous devrez spécifier une
option nls= au montage. Si vous souhaitez monter des partitions FAT,
vous devrez spécifier une option codepage= au montage. Vous avez
également la possibilité de préciser un codepage par défaut pour les
partitions FAT dans la configuration du noyau. Remarquez que l'option
codepage au montage remplace la configuration du noyau.
Exemple de code 3.2 : Configuration pour FAT dans le noyau |
File Systems -->
DOS/FAT/NT Filesystems -->
(437) Default codepage for fat
|
Vous devez éviter de définir Default iocharset for fat à UTF-8. Au lieu
de cela, vous pouvez passer l'option utf8=true au montage des partitions FAT.
Pour plus d'informations, lisez man mount et la documentation du noyau
dans /usr/src/linux/Documentation/filesystems/vfat.txt.
Pour changer l'encodage des noms de fichiers, vous pouvez utiliser
app-text/convmv.
Exemple de code 3.3 : Exemple d'utilisation de convmv |
# emerge --ask app-text/convmv
# convmv -f <encodageActuel> -t utf-8 <nomDeFichier>
# convmv -f iso-8859-1 -t utf-8 nomDuFichier
|
Pour changer le contenu des fichiers, utilisez l'utilitaire iconv
proposé avec glibc :
Exemple de code 3.4 : Exemple d'utilisation d'iconv |
# iconv -f iso-8859-1 -t utf-8 nomDeFichier
# iconv -f iso-8859-1 -t utf-8 nomDeFichier > nouveauFichier
|
Vous pouvez aussi utiliser app-text/recode pour cela.
La console système
Important :
Vous devez avoir >=sys-apps/baselayout-1.11.9 pour pouvoir utiliser l'Unicode
dans une console.
|
Pour activer l'UTF-8 en mode console, vous devez éditer le fichier
/etc/rc.conf et mettre UNICODE="yes". Lisez au passage
les commentaires dans ce fichier : il est important d'avoir une police de
caractères qui convienne si vous souhaitez utiliser correctement l'Unicode.
Assurez-vous également d'avoir bien créé une locale Unicode comme expliqué au
chapitre 1.
La variable KEYMAP, définie dans le fichier
/etc/conf.d/keymaps, doit spécifier une configuration clavier
Unicode.
Exemple de code 3.5 : Exemple du fichier /etc/conf.d/keymaps |
KEYMAP="fr"
|
Ncurses et Slang
Note :
Ignorez simplement toutes les mentions de Slang dans cette section si vous
ne l'avez pas installé ou si vous ne l'utilisez pas.
|
Il vous faut cette fois ajouter unicode à vos paramètres USE globaux dans
/etc/make.conf, puis vous devez installer à nouveau
sys-libs/ncurses et sys-libs/slang, si nécessaire. Portage s'en
occupera automatiquement lorsque vous mettrez à jour votre système :
Exemple de code 3.6 : Mise à jour du système |
# emerge --update --deep --newuse world
|
Nous devons également reconstruire les paquets qui leur sont liés, maintenant
que les changements de la variable USE ont été appliqués. L'outil utilisé
(revdep-rebuild) fait partie du paquet gentoolkit.
Exemple de code 3.7 : Reconstruire les programmes liés à ncurses ou slang |
# revdep-rebuild --soname libncurses.so.5
# revdep-rebuild --soname libslang.so.1
|
KDE, GNOME et Xfce
Tous les environnements de bureaux importants supportent complètement l'Unicode
et n'auront pas besoin de configuration supplémentaire à celle présentée dans ce
guide. Cela est dû au fait que les kits d'interface graphique (Qt ou GTK2)
fonctionnent très bien en UTF-8. De ce fait, tous les programmes utilisant ces
kits devraient pouvoir supporter l'UTF-8 de manière naturelle, sans modification
supplémentaire.
Les exceptions à cette règle sont liées à Xlib et GTK+1. GTK+1 nécessite une
spécification de police iso10646-1 dans le fichier ~/.gtkrc. Par exemple,
-misc-fixed-*-*-*-*-*-*-*-*-*-*-iso10646-1. De même, les applications
utilisant Xlib ou Xaw devront utiliser une spécification de police similaire
ou elles ne pourront pas fonctionner.
Note :
Si vous disposez du centre de contrôle de gnome1 dans un coin, utilisez-le.
Récupérez une police iso10646-1 dans le lot proposé.
|
Exemple de code 3.8 : Exemple de ~/.gtkrc (pour GTK+1) qui définit une police compatible avec l'Unicode |
style "user-font"
{
fontset="-misc-fixed-*-*-*-*-*-*-*-*-*-*-iso10646-1"
}
widget_class "*" style "user-font"
|
Si une application dispose du support de Qt et de GTK2, la version GTK2 aura
en général de meilleurs résultats que la version Qt pour l'Unicode.
X11 et les polices de caractères
Les polices TrueType supportent l'Unicode et la plupart des polices fournies
avec Xorg disposent d'un très bon support des caractères, même si, évidemment,
tous les glyphes disponibles dans l'Unicode n'ont pas été créés. Pour construire
des polices (notamment le jeu BitStream Vera) avec le support pour les lettres
d'Asie de l'Est sous X, assurez-vous d'avoir ajouté le paramètre cjk dans
vos paramètres USE. De nombreuses autres applications utilisent ce paramètre,
donc c'est une bonne idée de l'ajouter dans les paramètres USE permanents.
Plusieurs paquets sont également disponibles dans Portage, qui sont compatibles
avec l'Unicode.
Exemple de code 3.9 : Optionnel : Installer plus de polices compatibles Unicode |
# emerge terminus-font intlfonts freefonts cronyx-fonts corefonts
|
Gestionnaires de fenêtres et émulateurs de terminaux
Les gestionnaires de fenêtres qui ne sont pas construits avec GTK ou Qt
disposent généralement d'un très bon support de l'Unicode, dans la mesure où ils
utilisent souvent la bibliothèque Xft pour exploiter les polices. Si votre
gestionnaire de fenêtres n'utilise pas Xft pour les polices, vous pouvez
toujours utiliser la spécification de police mentionnée dans la section
précédente pour utiliser une police Unicode.
Les émulateurs de terminaux utilisant Xft et supportant l'Unicode sont plus
difficiles à trouver. À part Konsole et gnome-terminal, les meilleures options
dans Portage sont x11-terms/rxvt-unicode, xfce-extra/terminal,
gnustep-apps/terminal, x11-terms/mlterm ou
x11-terms/xterm, quand il est compilé avec le paramètre USE
unicode et qu'il est lancé avec uxterm. app-misc/screen
supporte l'UTF-8 également, si vous le lancez avec un screen -U ou si
vous mettez la ligne suivante dans votre fichier
~/.screenrc :
Exemple de code 3.10 : ~/.screenrc pour l'UTF-8 |
defutf8 on
|
Vim, Emacs, Xemacs et Nano
Vim fournit un support complet de l'UTF-8 et contient un mécanisme de
reconnaissance des fichiers UTF-8. Pour plus d'informations, utilisez :help
mbyte.txt dans Vim.
Emacs 22.x et ultérieurs contiennent également le support complet de l'UTF-8.
Xemacs 22.x ne gère pas encore les caractères combinés.
Les versions inférieures d'Emacs ou Xemacs nécessitent l'installation des
paquets app-emacs/mule-ucs ou app-xemacs/mule-ucs et l'ajout du
code suivant dans votre ~/.emacs pour supporter les langues CJK en
UTF-8 :
Exemple de code 3.11 : Support CJK UTF-8 dans Emacs |
(require 'un-define)
(require 'jisx0213)
(set-language-environment "Japanese")
(set-default-coding-systems 'utf-8)
(set-terminal-coding-system 'utf-8)
|
Nano supporte l'UTF-8 depuis la version 1.3.6.
Les shells
Actuellement, bash propose un support complet de l'Unicode, grâce à la
bibliothèque GNU readline. Z Shell (zsh) supporte l'Unicode via l'option USE unicode.
Le C shell, tcsh et ksh ne fournissent absolument aucun support
de l'UTF-8.
Irssi
Irssi supporte complètement de l'UTF-8, même si cela nécessite que
l'utilisateur active une option.
Exemple de code 3.12 : Activer l'UTF-8 dans Irssi |
/set term_charset UTF-8
|
Pour les canaux de discussions où les caractères non-ASCII sont fréquemment
utilisés dans des jeux de caractères non-UTF-8, la commande recode peut
servir à convertir les caractères. Tapez /help recode pour plus
d'informations.
Mutt
Le client mail Mutt supporte très bien l'Unicode. Pour utiliser l'UTF-8 avec
Mutt, il n'est pas nécessaire de le configurer pour. Mutt fonctionne sans
problèmes dans un environnement unicode si vos fichiers de configuration
(signature comprise) sont encodés en UTF-8.
Note :
Vous verrez probablement encore des « ? » quand vous lirez votre
courrier avec Mutt. Cela provient des personnes dont le client de messagerie
n'indique pas le codage utilisé. Vous ne pouvez pas y faire grand chose, à
part leur dire de configurer leur logiciel correctement.
|
Plus d'informations sont disponibles sur le
Wiki de Mutt.
Man
Les pages de manuel font partie intégrante d'une machine Linux. Pour vous
assurer que tous les caractères Unicode s'afficheront correctement, éditez le
fichier /etc/man.conf. il vous faudra remplacer une ligne, comme
indiqué ci-dessous :
Exemple de code 3.13 : Modification de man.conf pour le support de l'Unicode |
NROFF /usr/bin/nroff -Tascii -c -mandoc
NROFF /usr/bin/nroff -mandoc -c
|
Elinks et links
Ces navigateurs Web textes sont communément utilisés, voyons comment activer
leur support UTF-8. Dans elinks et links, il y a deux méthodes
pour activer ce support. La première est d'utiliser le menu de configuration du
navigateur, l'autre est de modifier le fichier de configuration. Pour activer
cette option dans le navigateur, allez sur un site avec elinks ou
links, puis faites Alt-S pour entrer dans le menu de
configuration. Sélectionnez « Terminal options », descendez et
sélectionnez la dernière ligne UTF-8 I/O en faisant Entrée. Ensuite,
sauvez et quittez le menu. Dans links, vous devrez refaire Alt-S
et taper S pour sauver. Pour la deuxième solution, voici le fichier de
configuration.
Exemple de code 3.14 : Activer UTF-8 dans elinks/links |
set terminal.linux.utf_8_io = 1
terminal "xterm" 0 1 0 us-ascii utf-8
|
Samba
Samba est une suite logicielle qui implémente le protocole SMB (Server Message
Block) pour les systèmes UNIX, tels que Mac OS X, Linux et FreeBSD. Ce protocole
est souvent également appelé CIFS (Common Internet File System). Samba inclut
aussi le système NetBIOS, utilisé par le partage de fichiers sur des réseaux
Windows.
Exemple de code 3.15 : Activer UTF-8 pour Samba |
dos charset = 1255
unix charset = UTF-8
display charset = UTF-8
|
Tester l'ensemble
Il existe de nombreux sites de test pour l'UTF-8. net-www/w3m,
net-www/links, net-www/elinks, net-www/lynx et tous les
navigateurs dérivés de Mozilla (notamment Firefox) supportent l'UTF-8. Konqueror
et Opera supportent également l'UTF-8.
Quand vous utilisez un navigateur en mode texte, assurez-vous que vous utilisez
bien un terminal supportant l'Unicode.
Si vous voyez certains caractères affichés comme des carrés avec des lettres ou
des nombres à l'intérieur, cela signifie que votre police ne dispose pas du
caractère pour le symbole ou le glyphe que l'UTF-8 attend d'elle. À la place,
elle affichera une boîte avec le code hexadécimal du symbole UTF-8.
Méthodes d'écriture
Note :
Cette section a été enrichie par les traducteurs pour parler aussi des claviers
français, mais cela concerne surtout les claviers américains qui restent
fortement utilisés partout dans le monde.
|
Les touches mortes de votre clavier peuvent être utilisées pour écrire
des caractères sous X qui ne sont pas disponibles sur votre clavier. On les
obtient en appuyant en même temps sur la touche AltGr et une touche optionnelle
dans la partie non alphabétique de votre clavier (à gauche de la touche Entrée).
Puis, vous les relâchez et appuyez sur une lettre. La touche morte devrait la
modifier. Vous disposez d'autres caractères avec la touche Shift appuyée en même
temps que les touches AltGr et le modificateur.
Pour activer les touches mortes sur le serveur X, vous devez disposer d'un
clavier qui les supporte. La plupart des claviers européens disposent déjà des
touches mortes avec la variante par défaut. Cela dit, ce n'est pas le cas pour
les claviers nord-américains. Même s'il existe quelques petites différences entre
les claviers, la meilleure solution est d'utiliser un « en_US » à la
place de « us » par exemple. Cela se fait dans le fichier
/etc/X11/xorg.conf :
Exemple de code 3.16 : extrait de /etc/X11/xorg.conf |
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbLayout" "en_US"
EndSection
|
Ce changement prendra effet lorsque vous relancerez le serveur X. Pour appliquer
les changements dès à présent, utilisez l'outil setxkbmap avec, par
exemple, setxkbmap en_US (toujours pour les claviers nord-américains).
Il est probablement plus facile de faire comprendre le fonctionnement des
touches mortes par l'exemple. Même si les résultats dépendent de la localisation
les idées devraient rester les mêmes, quelque soit la localisation. Les exemples
contiennent des caractères UTF-8, donc pour les visualiser, vous devrez indiquer
à votre navigateur de visualiser la page en UTF-8, ou avoir la localisation
UTF-8 déjà configurée.
Pour les claviers US
En reprenant la configuration proposee plus haut, si je tape AltGr-[, que je
relâche les deux touches, puis tape un a, j'aurai écrit un « ä ». En
faisant AltGr-[ puis e, j'obtiendrai un « ë ». Avec AltGr-; puis a,
j'aurai un « á ». Et ainsi de suite.
En appuyant simultanément sur AltGr, Maj et [, puis en les libérant et en tapant
un a, on obtiendra le caractère scandinave « å ». De la même manière,
avec AltGr, Maj et [, puis en ne relâchant que le [, puis en le
tapant de nouveau, on obtiendra un « ˚ ». Même s'il y ressemble, ce
caractère (U+02DA) n'est pas le même que le symbole utilisé pour les degrés
(U+00B0). Le même principe peut être appliqué avec les autres accents, par
exemple avec AltGr et [, en ne relâchant que le [ puis en le tapant de nouveau,
vous aurez un « ¨ ».
On peut aussi n'utiliser AltGr qu'avec des caractères alphabétiques du clavier.
Par exemple, AltGr et m formera la lettre minuscule grecque mu :
« µ ». AltGr et s produira la lettre esszet ou scharfes :
« ß ». Comme de nombreux utilisateurs européens s'en doutent (parce
que la touche est indiquée sur leur clavier) AltGr et 4 (ou e dépendamment de
la disposition du clavier) produira le symbole de l'Euro :
« € ».
Pour les claviers francophones
Xorg offre plusieurs dispositions pour les claviers francophones. Nous
discuterons ici de trois d'entre elles. Les deux premières (« fr »
et « fr-latin9 ») sont des dispositions françaises AZERTY.
La troisième (« ca_enhanced ») est une disposition QWERTY.
« fr » est généralement la disposition installée par défaut. Elle
permet d'utiliser la touche AltGr, éventuellement en combinaison avec la
touche Majuscule, sur pratiquement toutes les lettres afin de produire des
nouveaux symboles, comme æ, «, ¶, ©, ß, ð.
La seconde, « fr-latin9 », est une réorganisation de la disposition
des touches sur les claviers français et a été introduite à l'époque de la
création du jeu de caractères ISO 8859-15. Les touches AltGr et AltGR+Maj
permettent maintenant d'accéder facilement à tous les symboles accentuées, les
caractères « et » sont placés à côté ainsi que ¹, ² et ³, il y a une touche
pour taper œ directement, les guillements anglais sont présents (” et “)...
Voici la disposition, issue du fichier
/usr/X11R6/lib/X11/xkb/symbols/pc/fr-latin9.
Exemple de code 3.17 : La disposition fr-latin9 |
Les accents circonflexes des principales voyelles sont obtenus avec
la touche Alt_Gr, les trémas sont obtenus par Alt_Gr + Shift.
____ _________ _____________ _______
| S A| S = Shift, A = AltGr + Shift | Imprime | Arrêt défil | Pause |
| s a| s = normal, a = AltGr | Exec | | Halte |
¯¯¯¯ ¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯
____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ _______
| Œ ”| 1 ·| 2 É| 3 ,| 4 ´| 5 "| 6 || 7 È| 8 ¯| 9 Ç| 0 À| ° ÿ| + °| <-- |
| œ “| & ´| é ~| " #| ' {| ( [| - || è `| _ \| ç ^| à @| ) ]| = }| |
========================================================================
| |<- | A ä| Z Å| E ¢| R Ç| T Þ| Y Ý| U ü| I ï| O ö| P '| " `| $ ë| |
| ->| | a â| z å| e €| r ç| t þ| y ý| u û| i î| o ô| p ¶| ^ ~| £ ê| <-' |
===================================================================¬ |
| | Q Ä| S Ø| D Ë| F ª| G Æ| H Ð| J Ü| K Ï| L Ö| M º| % Ù| µ ¥| |
| MAJ | q Â| s ø| d Ê| f ±| g æ| h ð| j Û| k Î| l Ô| m ¹| ù ²| * ³| |
========================================================================
| ^ | > | W <| X >| C | V `| B '| N | ? º| . | / | § ˙| ^ |
| | | < || w «| x »| c ©| v ®| b ß| n ¬| , ¿| ; ×| : ÷| ! ¡| | |
========================================================================
| | | | | | | | |
| Ctrl | Meta | Alt | Space Nobreakspace | AltGr | Multi|Menu | Ctrl |
¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯ ¯¯¯¯¯¯
Si les touches mortes fonctionnent, utiliser les accents dits
« morts », i.e. fonctionnant comme l'accent circonflexe & le
tréma des machines à écrire ; sont disponibles :
(^) : accent circonflexe,
Shift (^) : tréma,
AltGr (^) : tilde,
AltGr (1) : accent aigu,
AltGr (7) : accent grave
Pour s'en servir, procéder comme avec l'accent circonflexe & le tréma
sur les vielles machines à écrire :
AltGr (1) puis e : é
AltGr (^) puis n : ñ...
|
La troisième disposition (« ca_enhanced »), dite « canadienne
française », est de type QWERTY, comme les claviers américains
standards. Elle permet de taper les caractères diacritiques français avec un
minimum d'effort. Les quatre touches nécessaires sont situées à gauche de la
touche Retour. En plus de la touche É, qui permet de taper un
« e » accent aigu directement, trois touches mortes permettent de
générer les autres diacritiques, soit une pour l'accent grave, une pour
l'accent circonflexe et une pour la cédille et le tréma. Ces touches mortes
peuvent être suivies d'une lettre minuscule ou majuscule. Par exemple,
^ (la touche morte pour l'accent circonflexe) suivie de E donne
« Ê ». Il n'est donc jamais nécessaire d'utiliser la touche
AltGr pour taper les diacritiques françaises.
Sur les claviers à 105 touches (par opposition aux 104 touches classiques), la
touche supplémentaire permet de taper les accents français (« ») et le symbole
degré (« ° »). La disposition canadienne française proposée par Xorg a
été étendue considérablement par Éric Moreau par rapport à la version originale
disponible sur certains autres systèmes d'exploitation. On peut donc aussi
utiliser le clavier canadien français pour taper une variété de symboles en
utilisant des combinaisons impliquant la touche AltGr, tels que :œ,
æ, µ, Ω, ×, ÷, etc. Le diagramme ci-dessous illustre la disposition canadienne
française sous Linux dans ses détails.
Exemple de code 3.18 : La disposition ca_enhanced |
____ _________ _____________ _______
| S A| S = Shift, A = AltGr + Shift | Imprime | Arrêt défil | Pause |
| s a| s = normal, a = AltGr | Exec | | Halte |
¯¯¯¯ ¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯
____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ _______
| | ¡| ! ¹| " | / | $ ¤| % | ? | & | * ™| ( ±| ) )| _ ¿| + ˛| <-- |
| # \| 1 ±| 2 @| 3 £| 4 ¢| 5 ¤| 6 ¬| 7 ¦| 8 ²| 9 ³| 0 ¼| - ½| = ¾| |
========================================================================
| |<- | Q Ø| W Ł| E Œ| R Þ| T Ŧ| Y ¥| U ↑| I ı| O Ω| P ®| ^ °| ¨ ─| |
| ->| | q ø| w ł| e œ| r þ| t ŧ| y ←| u ↓| i →| o §| p ¶| ^ [| ¸ ]| <-' |
===================================================================¬ |
| Verr. | A Æ| S §| D Đ| F ª| G Ŋ| H Ħ| J | K &| L Ł| : ˝| ` ˇ| > ˘| |
| Maj. | a æ| s ß| d ð| f đ| g ŋ| h ħ| j | k ĸ| l ł| ; ~| ` {| < }| |
========================================================================
| | » | Z | X | C ©| V ‘| B ’| N | M º| ' ×| . ÷| É | |
| Maj.| « °| z | x | c ¢| v “| b ”| n | m µ| , ¯| . ·| é ´| Maj. |
========================================================================
| | | | | | | | |
| Ctrl | Méta | Alt | Espace |AltGr |Multi | Menu | Ctrl |
¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯¯ ¯¯¯¯¯
(Les touches mortes sont indiquées dans le diagramme.)
Touches mortes pour les diacritiques de la langue française :
` Accent grave (`) +e = è
^ Accent circonflexe (^) +a = â
¸ Cédille (¸) +c = ç
Maj+¸ Tréma (¨) +i = ï
AltGr+é Accent aigu* (´) +u = ú
* Cette touche morte n'est pas nécessaire pour écrire en français puisqu'une
touche permet de taper « é » et « É » directement et que l'accent aigu
n'est utilisé en français que sur la lettre « e ».
Touches mortes pour d'autres diacritiques :
AltGr+, Macron (¯) +u = ū
AltGr+Maj+< Brève (˘) +a = ă
AltGr+Maj+= Ogonek (˛) +a = ą
AltGr+Maj+^ Rond en chef (°) +a = å
AltGr+Maj+; Double accent aigu (˝) +o = ő
AltGr+Maj+` Hatchek (ˇ) +s = š
|
Cette disposition est très pratique pour ceux qui veulent taper des textes
français et qui sont habitués aux dispositions QWERTY. Toutefois, il est
difficile de trouver des claviers dont les étiquettes des touches correspondent
à la disposition canadienne française en dehors du Québec.
Ressources
Ce document est protégé par la licence Creative
Commons : Paternité - Partage des Conditions Initiales à
l'Identique 2.5.
|