Page suivante Page précédente Table des matières
6. Réglage du clavier pour les applications en mode texte
6.1 Tout d'abord
Le huitième bit doit survivre à l'entrée du noyau, assurez-vous-en donc avec :
stty cs8 -istrip -parenbEnsuite, il convient de s'assurer que l'application est apte à supporter les caractères 8 bits : par exemple, ispell n'est pas compilé pour des caractères 8 bits par défaut : il faut le recompiler sans l'option :
-NO8BIT
6.2 Appeler la police
Charger une police de caractères adaptées :
setfont /usr/lib/kbd/consolefonts/xxx-NNN
- xxx repésente le type de police ; il doit s'agir d'une iso01/lat1 ou iso15/lat0 pour les francophones sinon il n'y a plus de caractères «étendus» (voyelles accentués, symboles de ponctuation comme paragraphe... )
- NNN représente la taille individuelle de chaque caractère ; 08 est presque illisible mais 16 est un peu gros... À régler selon les goûts de chacun.
6.3 Une police, des polices...
De nous jours, une nouvelle norme latin0 (iso-8859-15) vient d'apparaître, destinée à remplacer l'ensemble des polices européennes par une seule.
Son but est voisin de l'unicode, mais elle à l'avantage d'être plus légère que celui-ci et d'être applicable tout de suite.
Elle apporte notamment des caractères qui manquaient beaucoup pour les français et les finlandais :
- «e dans l'o» en majuscule et minuscule pour les français, par exemple pour les mots oeuf, coeur, boeuf, oeil ...
- «s chapeau inversé» en majuscule et minuscule pour les finlandais
- «z chapeau inversé» en majuscule et minuscule pour les finlandais
- «l'EURO» pour tous les pays européens
Cette nouvelle norme, iso-8859-15 latin9 aussi connue sous le nom générique latin0, reste cependant encore très peu répendue par rapport à la norme actuelle iso-8859-1 latin1.
Pour l'utiliser, vous devez télécharger les fichiers correspondants sur par ftp.
Tapez donc :
ftp ftp.linux.france.com cd pub/ cd french get latin0.tgz exitVous trouverez dans l'archive latin0.tgz :
- des polices .psf à mettre dans
/usr/lib/kbd/consolefonts/, que l'on peut essayer avec setfont- des polices .pcf à mettre dans
/usr/X11R6/lib/X11/fonts/misc/, que l'on peut utiliser en tapant sous root :Puis en choissant dans xfontsel les polices d'«encdng» (encodage) 15 à utiliser avec ses diverses applications.cd /usr/X11R6/lib/X11/fonts/misc/ mkfontdir xset +fp /usr/X11R6/lib/X11/fonts/misc/- de nouvelles tables de clavier pour linux-console et X supportant les nouveaux caractères latin9
En attendant, Éric Dubreuil (ericdub à club-internet.fr) nous conseille la police
lat1u-16.psf, permettant d'avoir tous les caractères accentuées sans pour autant enlaidirmc, un gestionnaire de fichier très populaire mais très sensible à la police utilisée !Une alternative est l'unicode, mais les programmes l'utilisant sont encore trop peu nombreux pour qu'elle soit valable.
Citons quand même yuedit et le projet «9» (9term, 9wm...) qui utilisent l'unicode sous X, avec plus ou moins de succès.
En revanche, sous linux-console, tout programme peut utiliser l'unicode.
Mais, hélas!, aussi grande que soit la mémoire des cartes vidéos actuelles, elle ne peut charger l'intégralité des caractères d'une police unicode.
Il existe donc des «jeux de caractères» limités mais bien utiles pour les langues baltiques, asiatiques, est-africaines...
Essayez par exemple ce fichier
unicode-lancepour passer en mode unicode:
#!/bin/sh echo -e '\033%8' kbd_mode -u loadkeys french-unicode.map setfont lat1u-16.psf -m nullet ce fichier
latin-retournepour revenir en mode latin normal:
#!/bin/sh echo -e '\033%@' kbd_mode -a loadkeys french.map setfont lat1u-16.psf -m null
6.4 Les messages en français
Linux en 'version française' existe... mais ne semble pas facile à obtenir.
La librairie locale(7) utilisée par la librairie C se sert de variables d'environnement pour définir les préférences linguistiques et nationales
- LC_COLLATE équivalence de caractères pour les comparaisons. (ex: æ peut être équivalent à ae)
- LC_CTYPE caractères affichables
- LC_MONETARY monnaie utilisée
- LC_MESSAGES langue des messages
- LC_TIME format de la date
- LC_ALL valeur par défaut des variables précedentes
- LANG surpasse les variables précédentes.
Les valeurs utilisables pour le français sont:
- fr français générique
- fr_FR français de France
- fr_BE français de Belgique
- fr_CH français de Suisse
- fr_LU français du Luxembourg
- fr_CA français du Canada
Par exemple, si la monnaie vous importe peu, vous pouvez indiquer
export LANG=frLes données correspondantes aux préférences se trouvent généralement dans
/usr/share/locale. S'ils manquent, vous pouvez récuperer leur source surftp://dkuug.dk/i18n/WG15-collectionPour se faire
SONlinux en français il faut en pratique disposer des sources de la libc et d'un minimum de compétences (langage C).Voici donc, pour la bonne bouche, quelques renseignements collectés...
Laurent Chemla nous pilote : « Si j'ai suivi, il y a deux trucs qui font la meme chose, d'ou embrouille, les locales et un truc appelé nls.
Les locales, sous Linux, ça va par défaut dans /usr/lib/locale, et ça contient de quoi préciser entre autres le format des nombres (LC_NUMERIC), les retours des fonctions ctype (isalpha etc) (LC_CTYPE), le format des sommes d'argent (LC_MONETARY), le format des dates (LC_TIME) et encore d'autres détails. Sur certains Unix, il y a aussi LC_MESSAGES, qui contient les messages de l'OS dans la langue choisie par la variable d'environnement LC_MESSAGES. Pas sous Linux. Sous Linux, c'est nls qui fait ça, et de fait, nls gêre un fichier qui est dans /etc/locale/. (NDG : De nos jours, ils se trouvent plutôt dans /usr/lib/locale) D'où l'embrouille. Ils auraient mis ça dans /usr/lib/nls, comme tout le monde, ça aurait evite la confusion. Mais bon.
Donc, si l'on veut se tenir à jour d'nls, il suffit d'aller dans les sources de libc/nls, faire 'make french' et copier libc.dat dans /etc/locale/C/libc.dat et toc, tous les messages sont en francais. Y compris ceux des programmes qui n'utilisent pas setlocale(): c'est perror() qui fait le boulot (du moins je suppose).
Si l'on veut en plus que les programmes qui utilisent setlocale() utilisent nos règles françaises, là il faut aller dans les sources de libc/locale et dans chacun des sous-répertoires jeter un oeil sur le fichier exemple, le modifier pour le français (c'est des tout petits fichiers), et faire 'make', avant de copier le résultat dans /usr/lib/local/fr/ et de faire un 'export LC_ALL=fr'. »
Autre astuce pour ménager les vieux logiciels :
cd /usr/lib ln -s /usr/share/localeNat Makarévitch rapelle à juste titre que site FTP du LIP6 offre de nombreux documents et fichiers utiles, en particulier :
- Les pages de manuel en français (archive man-fr-*) adaptées par C. Blaess. Il suffit d'extraire le contenu de l'archive dans le répertoire /usr/man/fr.
- Une intéressante documentation technique : locale.fr (P. D'Cruze, adaptée par É. Dumas)
Pour en apprendre davantage lire la page de manuel de «locale» (bibliothèque de pages de manuel 5 ou 7).
6.5 Les variables
Ces variables doivent être exportées à chaque login : mettez les donc dans
.bashrcet.bash_profile,.tcshrcou /etc/profile :
# pour tcsh, utiliser setenv au lieu de export, par exemple «setenv LANG fr» # Les locales LC_CTYPE=ISO-8859-1 LANGUAGE=fr LC_MESSAGES=fr LC_ALL=fr LANG=fr LESSCHARSET=latin1 export LC_CTYPE LANGUAGE LC_MESSAGES LC_ALL LANG LESSCHARSET # Les raccourcis : sans ll ou d, impossible de voir les fichiers comprenant des # caractères 8 bits ... alias q="cd .." alias ll="ls --color=auto -a -N -l" alias d="ls --color=auto -a -N" alias indent="indent -kr" alias netscape="export LC_ALL=en_EN ; netscape $* ; LC_ALL=fr_FR" # Au cas où del/backspace ne fonctionne pas, essayez l'un des deux : #stty erase ^? #stty erase ^HN'oubliez pas : tous les fichiers ici cités dont le nom commence par «.» doivent se trouver dans votre répertoire maison !
6.6 Les caractères 8 bits dans les programmes utilisant readline tels bash ou ncftp...
Readline est une librairie de saisie de caractères avec historique et completion ; elle est utilisée par de nombreux programmes (bash, ncftp, gnuplot...).
Par défaut, le 8 ème bit sert à coder la touche Meta.
Elle est utilisée pour coder certaines commandes mais la touche Escape (ou Echap) peut la remplacer.
Si vous souhaitez voir et saisir des accents avec les applications compliées avec readline, comme bash pour les versions supérieures à 1.13, ajoutez ceci dans votre fichier $INPUTRC (par défaut
~/.inputrc) :
# Permettre de rentrer & recevoir des caractères accentués set meta-flag on set convert-meta off set input-meta on set output-meta on # Pas de bip audible mais visible # set bell-style visible # Pour faire marcher Home, End, Delete, Esc + Delete & Esc + Backspace "\e[1~":beginning-of-line "\e[3~":delete-char "\e[4~":end-of-line "\e\C-h": backward-kill-word "\e\e[3~": kill-wordCelà vous permettra d'effacer des caractères vers l'avant avec Delete et vers l'arrière avec Backspace, ceci n'étant pas prévu sur les tables de clavier par défaut «mimant» le comportement d'un clavier de console VT100 .
Les deux dernières options vous permettront d'utiliser Home et End pour aller au début et à la fin de la ligne en cours d'édition.
Pour pouvoir employer une touche il suffit d'obtenir son code et l'associer à une fonction grâce à ce fichier ; pour obtenir le code d'une touche invoquer cat puis appuyer sur la touche : son code apparaît.
Le code physique :
^[correspond à la séquence d'échappement.
Par exemple, si le code de «Home» est ^[[7 il suffit d'ajouter une ligne
"\e[7~": beginning-of-lineau
.inputrc.Plus de documentation est disponible sur la page de manuel de bash, section
READLINE.On peut aussi, grâce à la variable d'environnement
INPUTRC, utiliser un fichier commun à tous les utilisateurs.Enfin, je vous recommande d'utiliser ce fichier
.bashrc(à placer dans votre répertoire maison) :
# ~/.bashrc : executé par bash(1) pour les shells lancés après le login. # Le path PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin:/usr/local/bin" # Le prompt PS1="(\u@\h:\W)$ " # L'utilisateur ENV=$HOME/.bashrc USERNAME="votre nom" # Les locales _CTYPE=ISO-8859-1 LANGUAGE=fr LC_MESSAGES=fr LC_ALL=fr LANG=fr LESSCHARSET=latin1 export LC_CTYPE LANGUAGE LC_MESSAGES LC_ALL LANG LESSCHARSET # Les raccourcis alias q="cd .." alias ll="ls --color=auto -a -N -l" alias d="ls --color=auto -a -N" alias indent="indent -kr" alias elm-box="elm -f ~/Mail/Inbox" alias ftp=ncftp alias tin=rtin alias netscape="export LC_ALL=en_EN ; netscape $* ; LC_ALL=fr_FR" # Au cas où del/backspace ne fonctionne pas, essayez l'un des deux : #stty erase #stty erase ^H # Refuser le talk & le write #mesg n # Permettre les coredumps #ulimit -c nombre_max_de_Ko #Fixer le masque de creation de fichiers #umask 022Le fichier .bash_profile executé par bash(1) lors les logins, y est strictement identique mais peut, si vous le voulez, présenter des différences pour afficher par exemple une citation en laçant le programme «fortune».
6.7 zsh
Celui-ci se contente d'un
stty pass8.
6.8 tcsh
Pour tcsh, placer, dans le fichier
/etc/csh.login(ou dans les fichiers.tcshrcdes utilisateurs concernés) les variables indiquées plus haut en remplaçant export par setenv:
setenv LC_CTYPE=ISO-8859-1 setenv LANGUAGE=fr setenv LC_MESSAGES=fr setenv LC_ALL=fr setenv LANG=fr setenv LESSCHARSET=latin1
6.9 Pour tous les shells
Remplacer 'iso_8859_1' par 'iso-8859-1' si cela ne fonctionne pas, voire french.iso88591.fr_FR (ou fr_BR, fr_CA, fr_CH, fr_LU ...)
À propos de LANG, Pablo Saratxaga signale qu'il vaut mieux éviter fr_FR : «Par ailleurs je conseille un simple "fr" plutôt que fr_FR etc. Certains programmes n'aiment pas trop (ils ne passent pas vraiment par la resolution de locales mais lisent LANG directemment...)»
Si nls est installé, les routines correspondantes sont utilisées, sinon tcsh agit en iso_8859_1, quelle que soit les valeurs données à LANG et LC_CTYPE : cf. la section NATIVE LANGUAGE SYSTEM de tcsh(1).
Selon le Danish-HOWTO, utiliser :
(guylhem@barberouge:tcsh)# setenv LC_CTYPE ISO-8859-1 (guylhem@barberouge:tcsh)# stty pass8
6.10 L'heure
Rien n'est plus facile que de laisser à Linux le soin de passer de l'heure d'été à l'heure d'hiver et réciproquement...
a) D'abord, quelle heure est-il :-) ?
Après avoir regardé sur la pendule la plus proche de vous, tapez :
clockpuis
dateLa première heure est celle du bios, la seconde celle calculée par Linux à partir de
/etc/zoneconfig.Pour peu que vous ayez installé timezone, votre machine peut jongler aisément entre les différents fuseaux horaires... ce que les DOS ou Windows ne permettent pas !
b) L'heure du choix !
De là, deux possibilitées : soit vous décidez de laisser l'heure système à l'heure locale (peu pratique, excepté si vous hébergez aussi sur votre disque dur ces systèmes d'exploitation peu évolué, ne sachant même pas exploiter les fuseaux horaires), soit vous passez à l'heure de Greenwich, Linux se chargeant de l'adapter à votre fuseau horaire.
Dans ce cas, les grands voyages à l'étranger avec un portable tout neuf équipé de Linux se feront en toute simplicité : le dernier pargraphe vous expliquera comment changer de fuseau horaire facilement...
c) Le réglage
Pour procéder, regardez d'abord si l'heure système retournée par clock est l'heure locale ou l'heure de Greenwich (vous avez bien regardé une pendule comme je vous le conseille plus haut, n'est-ce pas ?).
Si clock vous retourne l'heure locale, il va falloir jongler un peu avec les fuseaux horaires, sinon passez directement à l'étape «réglage du fuseau».
- Pour les français, belges wallons et suisses romands :
Vous êtes normalement dans une zone horaire MET (Medium European Time, soit GMT+1).
La zone «MET DST» correspond elle à l'heure d'été active (GMT + 2).
Selon les décisions futures de la cour européenne, l'heure d'été (daylight savings) risque d'être abandonné... ce qui compliquera cette explication !
- Pour les canadiens français :
Vous êtes dans une zone horaire GMT-4 si vous habitez autour de Montréal .
Pour les autres provinces, consulter un dictionnaire !
Premièrement, effacez le fichier /etc/localtime ou /usr/lib/zoneinfo/localtime (l'emplacement varie selon les distributions ; si vous avez les deux fichiers, effacez /etc/localtime : l'autre fichier doit certainement être un lien vers /etc/localtime).
Dès lors, clock et date doivent vous retourner la même heure...
- Pour les canadiens français : utilisez GMT+4
- Pour les français, belges wallons et suisses romands :
Si vous lisez ce document en été, le décalage de l'heure locale par rapport à l'heure de Greenwich est de deux heures, on va donc mettre temporairement le fuseau en GMT-2, soit vous lisez ce document en hiver et il convient de remplacer tous les «2» par des «1» dans les exemples suivants...
GMT-2 ?!!? Alors que le fuseau est GMT+2 ?
Ceci va vous retourner l'heure de Greenwich dont on a besoin pour régler le système : tapez :
ln -sf /usr/lib/zoneinfo/Etc/GMT-2 /etc/zoneconfig
clock
dateL'heure calculée correspond donc à l'heure de Greenwich, l'heure système à l'heure locale... soit l'inverse de ce que l'on veut.
Un simple :
clock -wVa alors mettre l'heure du système en heure de Greenwich, utilisant pour celà l'heure locale inversée volontairement avec l'heure système.
d) Régler le fuseau horaire :
Tapez alors :
ln -sf /usr/lib/zoneinfo/Europe/Votre-ville /etc/zoneconfigEt voilà ! Le système est à l'heure de Greenwich, la conversion vers le fuseau horaire local et l'heure d'été se faisant automatiquement.
Si vous habitez hors Europe, procédez de même en remplaçant les «-2» par «X», X représentant l'opposé de votre décalage horaire (par exemple -4 au Québec, donc X=+4...)
e) Modifier le fuseau horaire :
Si vous partez à l'étranger, il est alors simple de modifier l'heure locale de votre portable : par exemple si vous partez pour Moscou :
ln -sf /usr/lib/zoneinfo/Europe/Moscow /etc/zoneconfigTrès simple et très utile : plus besoin de se souvenir du décalage horaire (plus ou moins X heures) puisque Linux se charge désormais de tout !
6.11 vi
Normalement, aucune modification n'est nécessaire à part l'utilisation de loadkyes (détaillée plus haut).
Ce fichier
.vimrcpourrait toutefois vous être utile si vous utilisezvimau lieu d'elvis:
" Les guillemets anglais «"» signifient «mis en commentaire» " Éviter un avertissement «version incorrecte» : version 4.0 " Police à utiliser sous X11 : "set guifont=-misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-1 " Fixer la césure automatique de la ligne à N caractères : set tw=79 " Indentation (pour les programmeurs) : " set cindent " Réglages souris : "set mouse=a " Ligne set nowrapscan " Montrer les correspondances : set showmatch " Montrer le mode set showmode " Indentation intelligente (pour les programmeurs) : " set uc=0 " Faire fonctionner backspace : set t_kD=^? " Doit se trouver après map ^H X " Faire fonctionner delete : map \e[3~ x " Cacher la souris lorsqu'on tape : set mousehide " Faire voir les correspondances lors de recherches : " set hlsearch " Colorer à l'intérieur des commentaires en C : let c_comment_strings=1 " Couleur pour xiterm, rxvt, nxterm, color-xterm : if has("terminfo") set t_Co=8 set t_Sf=\e[3%p1%dm set t_Sb=\e[4%p1%dm else set t_Co=8 set t_Sf=\e[3%dm set t_Sb=\e[4%dm endif " Coloration syntaxique : if ett_Co > 1 syntax on endif " Autoriser l'édition de fichiers gzippés augroup gzip " Supprimer toutes les autocommandes au! autocmd BufReadPre,FileReadPre *.gz set bin autocmd BufReadPost,FileReadPost *.gz '[,']!gunzip autocmd BufReadPost,FileReadPost *.gz set nobin autocmd BufReadPost,FileReadPost *.gz execute ":doautocmd BufReadPost " . expand("%:r") autocmd BufWritePost,FileWritePost *.gz !mv <afile> <afile>:r autocmd BufWritePost,FileWritePost *.gz !gzip <afile>:r autocmd FileAppendPre *.gz !gunzip <afile> autocmd FileAppendPre *.gz !mv <afile>:r <afile> autocmd FileAppendPost *.gz !mv <afile> <afile>:r autocmd FileAppendPost *.gz !gzip <afile>:r augroup END
6.12 Emacs
Voici un fichier de configuration de base pour employer les accents. XEmacs les accepte lui par défaut sans broncher :-)
;; ;; Fichier .emacs: initialisation d'emacs ;; Tiré du Guide du Rootard ;; (display-time) ;; Pour avoir l'heure dans la barre d'état (setq display-time-24hr-format t) ;; Format 24 heures ;; Nouveaux modes (autoload 'c++-mode "cplus-md" "C++ Editing Mode" t) (autoload 'perl-mode "perl-mode" "Perl Editing Mode" t) (autoload 'c-mode "c-mode" "C Editing Mode" t) ; mieux vaudrait utiliser le "cc-mode" (autoload 'jargon-mode "jargon" "Jargon Mode" t) ;; Auto-Mode Settings : positionne le mode selon l'extension (setq auto-mode-alist (append '(("\.c$" . c-mode) ;; utilise le mode C++ même pour C ("\.h$" . c-mode) ("\.C$" . c++-mode) ("\.H$" . c++-mode) ("\.cc$" . c++-mode) ("\.C$" . c++-mode) ("\.pl$" . perl-mode) ;; Perl ("/tmp/snd\.[0-9]*" . text-mode);; Text (pour le mail) ("[Rr][Ee][0-9]*" . text-mode) ("\.ada$" . ada-mode) ;; Ada ("\.spec$" . ada-mode) ("\.body$" . ada-mode) ("makefile$" . makefile-mode) ;; Makefile ("Makefile$" . makefile-mode) ("Imakefile$" . makefile-mode)) auto-mode-alist)) ; Remapes varies a mettre ici (global-set-key "\eg" 'goto-line) ;; ESC G = Aller à une ligne (put 'eval-expression 'disabled nil) ;; Accents... (standard-display-european 1) (load-library "iso-syntax") (set-input-mode (car (current-input-mode)) (nth 1 (current-input-mode)) 0) ;; Sous X-Window, texte en couleurs (C/C++/Shell/Makefile,etc) (cond (window-system (setq hilit-mode-enable-list '(not text-mode) hilit-background-mode 'light hilit-inhibit-hooks nil hilit-inhibit-rebinding nil) (require 'hilit19) )) (if (not (equal window-system "")) (global-set-key "\C-?" 'delete-char)) ))Le Keyboard-HOWTO conseille quand à lui :
(standard-display-european t) (set-input-mode nil nil 1) (require 'iso-syntax) (load-library "iso-insert.el") (define-key global-map [?\C-.] 8859-1-map)Nat Makarévitch suggère d'utiliser une version au moins égale à 19.27, modifier le fichier global (commun à tous les utilisateurs)
/usr/lib/emacs/site-lisp/site-start.elou le./emacsde chaque utilisateur concerné pour y ajouter :
(standard-display-european t) (set-input-mode (car (current-input-mode)) (nth 1 (current-input-mode)) 0) (global-set-key [delete] 'delete-char) (global-set-key [home] 'beginning-of-line) (global-set-key [end] 'end-of-line) (global-set-key [prior] 'scroll-down) (global-set-key [next] 'scroll-up) (global-set-key [C-right] 'forward-word) (global-set-key [C-left] 'backward-word) (global-set-key [C-prior] 'beginning-of-buffer) (global-set-key [C-next] 'end-of-buffer) (global-set-key "\033[A" 'previous-line) (global-set-key "\033[B" 'next-line) (global-set-key "\033[C" 'forward-char) (global-set-key "\033[D" 'backward-char) (global-set-key "\033[H" 'beginning-of-line) (global-set-key "\033[Y" 'end-of-line) (global-set-key "\033[1~" 'beginning-of-line) (global-set-key "\033[2~" 'overwrite-mode) ;; le delete-char peut correspondre à \004 ou à \033[3~ (global-set-key "\033[3~" 'delete-char) (global-set-key "\033[4~" 'end-of-line) (global-set-key "\033[5~" 'scroll-down) (global-set-key "\033[6~" 'scroll-up)Pour les autres versions :
- 19.19 :
Lire à ce propos le fichier emacs.info.(standard-display-european 1) (set-input-mode (car (current-input-mode)) (nth 1 (current-input-mode)) 0)- 19.22 :
(load-library "iso-transl") (standard-display-european t)- Autres :
(standard-display-european 1) (load-library "iso-transl")Le mode ispell d'emacs a un certain nombre de dictionaires prédéfinis qui ne sont pas forcement ceux qui sont en place sur le système.
Si vous constatez des problèmes, vous devez redéfinir la liste ispell-dictionary-alist des dictionnaires.
Cette liste contient :
- le nom du dictionnaire
- la liste des caractères composant un mot
- la lise opposée des caractères ne composant pas un mot
- les caractères de liaison à l'interieur des mots ("-", "'"...)
- vrai ou faux si ces caractères peuvent être présents en plusieurs exemplaire dans le mot
- une liste d'arguments pour ispell
- le mode d'ispell (tex, nroff..)
Par exemple, dans le fichier
.emacs:
(setq ispell-dictionary-alist '((nil ; francais.aff "[A-Za-zÀÂÇ-ËÎÏÔÙÛÜàâç-ëîïôùûü]" "[^A-Za-zÀÂÇ-ËÎÏÔÙÛÜàâç-ëîïôùûü]" "[---']" nil ("-n") "~nroff") ("english" ; rosbif "[A-Za-z]" "[^A-Za-z]" "[---']" nil ("-B") nil) ("american" ; yankee "[A-Za-z]" "[^A-Za-z]" "[---']" nil nil nil) ("francais" ; français "[A-Za-zÀÂÇ-ËÎÏÔÙÛÜàâç-ëîïôùûü]" "[^A-Za-zÀÂÇ-ËÎÏÔÙÛÜàâç-ëîïôùûü]" "[---']" nil ("-n") "~nroff") ("francais-TeX" ; français "[A-Za-zÀÂÇ-ËÎÏÔÙÛÜàâç-ëîïôùûü\\]" "[^A-Za-zÀÂÇ-ËÎÏÔÙÛÜàâç-ëîïôùûü\\]" "[---'^`\"]" t nil "~tex") ("espanol" ; espa~nol.aff "[A-Za-záéíóúüñÁÉÍÓÚÜÑ]" "[^A-Za-záéíóúüñÁÉÍÓÚÜÑ]" "[---'^`\"]" t nil "~nroff") ("dansk" ; danois et norvégien "[A-Za-zåÅøØæÆéÉèÈ]" "[^A-Za-zåÅøØæÆéÉèÈ]" "[---'^`\"]" t nil "~nroff") ))Le dictionnaire "francais-TeX" est un lien symbolique sur "francais" qui permet d'ajouter une entrée pour les accents à la TeX (ex: \'e).
Si vous utilisez X11, vous voudrez peut-être reconstruire les menus et il vous faudra recharger une partie de lisp/loaddefs.el dans votre
.emacs:
(setq ispell-menu-map nil) (if ispell-menu-map-needed (let ((dicts (reverse (cons (cons "default" nil) ispell-dictionary-alist))) name) ;; Can put in defvar when external defines are removed. (setq ispell-menu-map (make-sparse-keymap "Spell")) (while dicts (setq name (car (car dicts)) dicts (cdr dicts)) (if (stringp name) (define-key ispell-menu-map (vector (intern name)) (cons (concat "Select " (capitalize name)) (list 'lambda () '(interactive) (list 'ispell-change-dictionary name)))))))) (if ispell-menu-map-needed (progn ;; Define commands in opposite order you want them to appear in menu. (define-key ispell-menu-map [ispell-change-dictionary] '("Change Dictionary" . ispell-change-dictionary)) (define-key ispell-menu-map [ispell-kill-ispell] '("Kill Process" . ispell-kill-ispell)) (define-key ispell-menu-map [ispell-pdict-save] '("Save Dictionary" . (lambda () (interactive) (ispell-pdict-save t)))) (define-key ispell-menu-map [ispell-complete-word] '("Complete Word" . ispell-complete-word)) (define-key ispell-menu-map [ispell-complete-word-interior-frag] '("Complete Word Frag" . ispell-complete-word-interior-frag)) (define-key ispell-menu-map [ispell-continue] '("Continue Check" . ispell-continue)) (define-key ispell-menu-map [ispell-region] '("Check Region" . ispell-region)) (define-key ispell-menu-map [ispell-word] '("Check Word" . ispell-word)) (define-key ispell-menu-map [ispell-buffer] '("Check Buffer" . ispell-buffer)) (define-key ispell-menu-map [ispell-message] '("Check Message" . ispell-message)) (define-key ispell-menu-map [ispell-help] '("Help" . (lambda () (interactive) (describe-function 'ispell-help)))) (put 'ispell-region 'menu-enable 'mark-active))) (fset 'ispell-menu-map (symbol-value 'ispell-menu-map))
6.13 less
/etc/profileou les fichiers de démarrage du shell (comme.bashrcet.bash_profiledans votre répertoire maison) doivent contenir :
export LESSCHARSET=latin1Comme fichier
.lessrcje vous recommande :
\e[B forw-line \e[A back-line \e[6~ forw-scroll \e[5~ back-scroll \e[1~ goto-line \e[4~ goto-end \e[C next-file \e[D prev-file \eOA back-line \eOB forw-linePour rentrer un Esc (parfois nommé échap) taper «\e» ou, sous vi, mettez vous en mode insertion avec i puis tapez ctrl+v et enfin esc.
Ce fichier permet d'utiliser les touches «Home», «End,», «PagerUp» & «PageDown».
Pour s'en servir, taper :
lesskey -o .less .lessrcN'oubliez pas de mettre le fichier .less dans votre répertoire maison : il permet d'employer les touches fléchées, Page_up, Page_down, Home et End.
Ne pas négliger la page de manuel de less car il peut être intéressant de changer la valeur de sa variable d'environnement de configuration ("LESS").
J'utilise : '-C -M -i -x2'
6.14 ls
Utilisez les options :
-N --color=autoou, plus simplement, définissez dans les fichiers de démarrage de votre shell les alias suivants permettant de voir les fichiers dont le nom comprend des caractères 8 bits :
alias ll="ls --color=auto -N -l -a" alias d="ls --color=auto -N"Un simple
dremplacera le classiquels, en y ajoutant la couleur, alors quellvous offrira une liste complète de tous les fichiers présents dans le répertoire, avec leurs attributs, leurs tailles...Pablo Saratxaga conseille d'utiliser --color=auto car «--color=yes fera avoir des codes escape ansi même lorsqu'on redirige vers un pipe un fichier où que le terminal ne supporte pas la couleur... ce n'est pas ce qu'on voudrait.»
6.15 flex
Donnez l'option :
-8si l'analyseur généré doit accepter les entrees 8-bits (bien sur qu'il doit le faire !).
6.16 elm
Rajoutez ces trois lignes dans votre
.elm/elmrc:
charset = iso-8859-1 displaycharset = iso-8859-1 textencoding = 8bit
6.17 col
Assurez-vous :
1) qu'il a été corrigé et fasse un
setlocale(LC_CTYPE,"");2) de définir
LC_CTYPE=ISO-8859-1dans l'environment.
6.18 rlogin
Utilisez l'option :
-8
6.19 joe
Utiliser
ftp://sunsite.unc.edu:/pub/Linux/apps/editors/joe-2.8.tar.gzou plus récent qui devraient fonctionner après édition du fichier de configuration : placer l'option -asis dans/usr/lib/joercen première colonne.
6.20 TeX et LaTeX
Le plus simple consiste à employer GuTemberg, une distribution de LaTeX avec tous les défauts réglés pour des francophones par des francophones !
Mais si vous préférez une version
standardnon modifiée, il suffit d'ajouter au début de chaque fichier :
- Pour LaTeX:
\documentstyle[isolatin]{article}- Pour LaTeX2e:
ou alors :\documentclass[12pt,a4paper]{letter} \usepackage{isolatin1} \usepackage[french]{babel} \usepackage{t1enc}\usepackage[latin1]{inputenc} \usepackage[T1]{fontenc}Au cas où votre distribution soit trop vieille pour l'inclure,
isolatin.styest disponible séparément sur :ftp.vlsivie.tuwien.ac.at/pub/8bitPour gs et xdvi, il faut utiliser des options speciales (sur ma machine, ce sont des alias). En effet, ils sont souvent configurés pour un papier de taille anglo-saxonne.
Ces options sont les suivantes :
gs -sPAPERSIZE=a4 xdvi -paper a4 ghostview -a4Pour que dvips convertisse les documents dans un format papier a4, il faut specifier dans le fichier config.ps (le chemin varie en fonction des versions de LaTeX) : /usr/lib/texmf/dvips/config.ps ou
.dvipsrc
@ a4 210mm 297mm @+ ! %%DocumentPaperSizes: a4 @+ %%PaperSize: a4 @+ %%BeginPaperSize: a4 @+ a4Sinon ajoutez à votre
.Xresources:
XDvi.paper: a4 Ghostview.pageMedia: A4
6.21 Manuel
Tout d'abord, il faut vous procurer les pages de manuel Linux traduites en français sur
ftp.lip6.fr/pub/linuxSi vous utilisez une distribution RedHat ou Debian, celles-ci sont présentes sur le cédérom : il suffit de les sélectionner lors de l'installation.
De là, deux possibilitées :
- soit vous ne voulez que des manuels en français, auquel cas il faut faire un :
NB: fr_FR se remplace par fr_BE, fr_CA, fr_CH ou fr_LU selon le pays concerné.export MANPATH=/usr/man/fr_FR- soit vous préférez par défaut des manuels en français et si la page n'existe pas, vous vous rabattez vers l'anglais, il suffir alors de taper :
export LANG=fr
manira chercher dans le «MANPATH» des pages en «LANG» par défaut et se rabattra sinon sur des pages en anglais.
6.22 Correcteur orthographique ispell
Vous pouvez vous le procurer sur son site original
HYDRO-QUÉBEC:ftp.ireq-robot.hydro.qc.ca:/pub/ispell/francais-IREQ-1.3.tar.gzou sur :
ftp.lip6.fr/pub/ispell/francaisUn fichier LISEZMOI explique pas à pas et en français l'installation.
6.23 Les claviers 105 touches
Aussi appelés «claviers Microsoft (tm)», ils ont trois touches de plus que les claviers normaux.
Comment s'en servir ?
En mode console, éditer
french.mapet décommenter les lignes en parlant !De même pour
french(pour Xwindow).
6.24 PGP
Tout d'abord, un avertissement : ce paragraphe n'est destiné qu'aux francophones ne vivant pas en France, même malgré les modifications récentes de la loi !
En effet, en France, en Iran, en Irak et dans quelques autres pays totalitaires, l'utilisation de logiciels de cryptographie est considérée comme usage d'armes de guerre, ce qui est punissable par la loi !
Donc sautez ce paragraphe si votre législation locale ne permet pas d'utiliser des logiciels de cryptographie.
Premièrement, il faut se procurer pgp-international (à cause de problèmes de patentes et de législation sur l'export d'armes de guerre, il existe pgp-us et pgp-international, ce dernire étant doté d'un algorythme encore plus puissant) sur :
ftp://ftp.ifi.uio.no/pub/pgp/Ensuite, mettre dans votre répertoire maison, dans un sous répertoire .pgp les fichiers :
config.txt language.idx pgpdoc1.txt pgpdoc2.txt language.txt fr.hlp en.hlp pgp.hlpEnfin, éditer le fichier
.pgp/config.txtpour y rajouter :
Language = fr CharSet = latin1Lisez ensuite
.pgp/fr.hlppour apprendre à vous servir de pgp !
6.25 Impression en mode ascii
Pierre-Charles David (pcdavid à club-internet.fr) vous donne ce truc :
Pour l'impression de texte simple, beaucoup d'imprimantes attendent des lettres en codage IBM (celui utilisé par MS-DOS).
Si le fichier est codé en latin1, on doit utiliser 'recode latin1:ibmpc' (à placer dans les filtres lpr de /etc/ par exemple), sous peine de voir imprimer des 'alpha' à la place de 'à', et autres choses du même genre.
Il existe d'autres utilisation au programme
recode: «ibmpc:lat1» ou «lat1:ibmpc» (de ou vers MS-DOS) ou «applemac» pour Macintosh (tm).
6.26 unicode/latin/cp... je n'ai pas compris ce dernier paragraphe !
Voici donc plus d'explications grâce à Pablo Sartxaga (srtxg à chanae.alphanet.ch) dans un message explicant la différence unicode/latin/cp :
DB> quand on lance "setfont" sans argument DB> il semble qu'on obtienne le meme effet que setfont -u none Normal et logique. DB> --> en un mot la table de conversion "unicode" est desactivee DB> ce qui transforme le "e accent aigu (dec 130)" en "théta (dec 233)" Non. Il ne transforme rien du tout, il affiche tout simplemment sans *aucune* transformation au contraire, à toi de t'assurer que la fonte que tu charges possèdes les glyphes à la bonne place par rapport au codage de caractères que tu utilsies (iso-8859-1). Autremment dit si ta fonte n'est pas iso-8859-1 tu dois dire à setfont de faire des mappings; en particulier s ic'est une fonte qui utilise l'encodage DOS cp437 tu fais "setfont -u cp437 nomdelafonte". Moi par exemple j'aime beaucoup la fonte t.fnt de la Slackware, et j'ai donc quelque part dans /etc/rc.d/* une ligne "setfont -u cp437 t.fnt" Ou alors tu modifies la fonte (il y a un soft qui fait cela avec interface svgalib, et un autre qui permet de créer des images an ascii-art, un fichier par caractère (256 fichiers donc), il te suffit alors de jongler avec les fichiers pour les changer de place et régénerer la fonte). Note cependant que le codage cp437 n'inclus pas tous les caractères de iso-8859-1, notamment manquent quasi toutes les majuscules accentuées, et les lettres ãõ necessaires en portguais. Tu peux toujours modifier la fonte pour créer ces caractères manquants. DB> sur ma slackware 3.2, a aucun moment setfont n'apparait dans les scripts DB> de demarrage ni dans les ~/profiles et autres ~/.bashrc Donc c'est la fonte dans la ROM de la carte video qui est utilisée. DB> et pourtant cette DB> conversion est effectuee correctement puisque j'ai les accents a l'ecran. Je suppose que le kernel presupose (à juste titre) que la fonte en ROM video est au codage cp437. DB> une fois que je lance "setfont -u none" je perds donc les accents. Normal, car dès lors que tu charges une fonte t uest supposée savoir ce que tu veux (au contraire de la fonte en ROM où tu n'as pas le choix). Autrefois (du temps des 1.2.* et avant) le défaut de setfont était cp437 (et il n'utilsiait pas encore des tables unicode, mais on pouvait switcher par \e(B et \e(K entre codage cp437 et iso (on peut toujours d'ailleurs)), mais maintenant le défaut est "straight to font", pas de conversion. DB> j'en conclue que linuX utilise la police residente par defaut de DB> la carte EGA/VGA DB> [Q] --> comment retrouver cette police ? il y a un programme (don't j'ai oublié malheureusement le nom) qui est assez populaire auprès des possesseurs de certaines cartes graphiques chez qui le switch X11 -> console bousille les fontes; il permet de faire un dump sur un fichier; il faudrait donc que tu le lances avant de modifier la fonte avec setfont. Le paquetage s'appelle quelque chose comme SVGATextMode ou quelque chose d'approchant. DB> [Q] --> quelle table appeler pour la remapper et ravoir les accents ? setfont -u cp437 fontedos ou sinon, si tu ne veux pas lancer setfont et tu veux donc garder la fonte de la carte graphique; essaye un "echo -e \033(B" (l'ennuyant c'est que tu dois le faire dans chaque console) DB> (en general setfont -u def.uni (par exemple) renvoie une DB> erreur : PIO_UNIMAPCLR: Invalid argument et je reste DB> en caracteres "graphiques") Ah ? Chez moi ça marche; quels kernel et kbd as-tu ? Sinon je te conseille "cp437" plutôt que "def", ils font _presque_ la même chose, mais "cp437" est visuellement plus agreable car il remplace les caractères non présents dans la fonte par les lettres non accentuées si c'est des lettres, C pour © et R pour ® et par un carré blanc pour le reste, ce qui permtes de garder le formatage et la lecture agreables; "def" lui ne mets totu simplement rien pour les caractères manquants, si bien que tu te trouves avec des trous, ce qui est l'horreur si tu édites un texte par exemple avec vi, puisque le curseur est affiché plusieurs caractères à gauche à cause des caractères de largeur nulle :) Essaye aussi la fonte "t.fnt", elle est assez jolie, totue en rondeurs, je la trouve réposante, et quand je dois utiliser un PC avec les fontes style courier par défaut je trouve ça très agressif je me demande comment ils peuvent travailler avec :)Lire aussi les articles de news : "FAQ - les accents français et Usenet" de F. Yergeau dans groupes fr.usenet.reponses et fr.usenet.8bits "ISO 8859-1 National Character Set FAQ" de mike à vlsivie.tuwien.ac.at dans comp.answers .
6.27 ncurses
Rappellons que ncurses est un librairie C qui permet de manipuler facilement l'affichage en mode console texte : fenêtrage, lignes de saisie, édition de formulaires, couleurs, caractères «ALT» ascii semi-graphique ibm, comme sous dos...
Introduction
Pour les programmes utilisant curses (comme lynx) David Sibley dit:
«La version standard de curses utilise le huitième bit pour la vidéo inversee (voir le flag _STANDOUT défini dans /usr/include/curses.h). Cependant, ncurses semble fonctionner en 8-bits et affiche le iso-latin-8859-1 correctement.»
Les accents
Alors Denis BRAUSSEN (PostOffice à mail.dotcom.fr) répond à cette question :
«Pourquoi en utilisant ncurses 4.2 je n'arrive pas à saisir les accents français dans les formulaires ?»
Remarque: les distrib LinuX sont livrées en général avec la version 1.9.9e de ncurses, or il se trouve que la librairie form de cette version est BUGGÉE (problèmes de rafraichissement des fenêtres).
Ne pas utiliser la 1.9.9e donc si on veut travailler avec 'form' : ce bug est d'ailleurs clairement énoncé sur le site de nucurses, et je m'étonne que ce soit justement cette version qui soit encore livrée sur la plupart des distributions (RedHat 4.2, 5.0, 5.1, SlackWare 3.2, Debian 1.9) en tout cas.
Symptôme : la fonction wgetch() de ncurses renvoie les codes suivants :
- je tape 'é' et wgetch retourne «meta-i» code 233 (decimal)
- " " 'è' " " " «meta-h» code 234 (decimal)
- etc
C'est normal avec les polices iso-8859-1 !
Il faut installer les "locale" (ben oui, allez savoir pourquoi, sur la slackware 3.2 elles ne sont pas installées !).
Note: les 'locales' sont des fichiers qui vont modifier le comportement de certains programmes pour qu'ils s'adaptent aux «spécificités culturelles du pays ».
- récupererer :
- pour la libc5 la collection de locales POSIX : ftp://ftp.lip6.fr/pub/linux/GCC/WG15-collection.linux.tar.gz
- pour la libc6, elle est dans l'ajout «localedata» : ftp://ftp.lip6.fr/pub/gnu/glibc-localedata-2.0.6.tar.gz
- copier dans le répertoire /usr/share/locale les fichiers fr_FR et en_DK (qui est inclus dans fr_FR)
- créer le répertoire /usr/share/i18n/charmap et copier le fichier ISO_8859-1:1987
- faire man localedef et lancer la commande :
Ceci créera l'entrée fr dans /usr/share/locale soit :localedef -f ISO_8859-1:1987 -i fr_FR frCe répertoire devrait maintenant contenir les fichiers/usr/share/locale/frLC_COLLATE LC_CTYPE LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME- lire le fichier «locale.fr» que l'on peut trouver sur le serveur ftp.lip6.fr (chercher sous doc, linux...) et dont la traduction française a été faite par Éric DUMAS (hélas ce doc ne traite principalement que de LC_MESSAGES. À quand la suite Éric ? ;-) )
- compléter éventuellement l'intitialisation des variables du shell comme décrit dans la section sur bash ou tcsh
- dans un programme, utilisez la fonction setlocale() (man setlocale.3) pour fixer les paramêtres locaux CAR le noyau linux initialise toujours cette fonction avec l'argument une locale «C» (POSIX) donc sans accents !
setlocale(LC_CTYPE,"fr_FR");- Hop !! On a nos accents dans ncurses, le plus simplement du monde.
6.28 Divers
Pour les programmes utilisant groff (comme man), utilisez le avec :
-Tlatin1au lieu de :
-TasciiLes vieilles versions de man utilisent aussi col, et le point suivant s'applique aussi.
Une belle discussion sur le thème de l'ISO-8859-1 et sur «comment manipuler les caractères 8-bits» est disponible sur
ftp://grasp.insa-lyon.fr/pub/faq/fr/accentsPour perl, si tout d'un coup après une mise à jour il raconte :
(guylhem@barberouge:guylhem)$ perl perl: warning: Setting locale failed for the categories: LC_CTYPE LC_COLLATE perl: warning: Please check that your locale settings: LC_ALL = "fr_FR", LC_CTYPE = "ISO-8859-1", LC_COLLATE = (unset), LANG = "fr" are supported and installed on your system. perl: warning: Falling back to the "C" locale. (guylhem@barberouge:guylhem)$Essayez cette solution de Thomas Parmelan (Thomas.Parmelan à efrei.fr) :
En libc6 le format des fichiers binaires de définition des locales a (encore) changé : il faut les régénérer à partir des sources (WG15collection.tar.tz sur ftp.lip6.fr:/pub/linux/GCC par exemple) et des programmes "locale" et "localedef" qui sont fournis dans les sources de la libc.
Sinon tu peux également essayer ceci (c'est comme cela que ça fonctionne chez moi en libc-5.4.x) : »
unset LANG unset LC_CTYPE unset LC_COLLATE export LC_ALL=fr_FR.ISO-8859-1
Page suivante Page précédente Table des matières