Page sur la saisie de texte en Unicode.

This commit is contained in:
george 2003-06-12 14:58:36 +00:00
parent c81efa4731
commit e253a1f6a3

239
unix/editeurs/unicode.tml Normal file
View file

@ -0,0 +1,239 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html
PUBLIC "-//ENS/Tuteurs//DTD TML 1//EN"
"tuteurs://DTD/tml.dtd">
<html>
<head>
<title>Unicode</title>
</head>
<body>
<h1>Taper de l'Unicode</h1>
<div class="resume">
<p>
Nous allons voir ici comment taper de l'Unicode, ce qui recouvre plus ou
moins toutes les langues et tous les alphabets bizarres de la planète, et
êut-être même d'au delà (l'intégration du Tengwar est en discussion).
</p>
</div>
<h2>Se préparer</h2>
<h3>Bien comprendre ce que ça veut dire</h3>
<p>
Unicode, c'est une collection de caractères utilisés dans toutes les langues
du monde, avec un numéro pour chaque caractère. Ce qu'on entend par « taper
de l'Unicode », c'est taper un fichier texte qui utilise ces caractères,
probablement au delà de simplement les caractères latins. Pour bien
comprendre tout ce qui va suivre, il est probablement utile d'avoir lu
<a href="../../theorie/encodages.html">notre page théorique sur les
encodages</a>.
</p>
<p>
Les difficultés qui se présentent sont principalement de mettre en place un
environnement permettant de taper et d'afficher ces caractères, de choisir
et configurer un éditeur pour travailler en Unicode, et de taper des
caractères qui ne sont pas disponibles sur le clavier.
</p>
<h3>Choisir un éditeur</h3>
<p>
La gestion d'Unicode demande un boulot non trivial de la part de l'éditeur,
c'est pourquoi la plupart n'en sont hélas pas capables.
</p>
<div class="ens">
<p>
Parmi les éditeurs disponibles ici, seuls <a href="vim.html">Vim</a> et
<a href="emacs.html">Emacs</a> en sont capables. Par chance, ce sont, de
loin, les deux meilleurs éditeurs, et vous avez tout intérêt à choisir l'un
d'eux même sans ça.
</p>
</div>
<h2>Un environnement pour travailler</h2>
<h3>Un terminal Unicode</h3>
<p>
Sauf si vous comptez utiliser exclusivement Emacs en mode graphique, vous
avez besoin d'un terminal capable d'afficher de l'Unicode et d'en recevoir
de l'utilisateur.
</p>
<div class="ens">
<p>
Pour obtenir un terminal en Unicode, il suffit d'utiliser la commande
<code>uxterm</code>, ou l'entrée de menu « terminal Unicode » si on a une
config assez récente. Pour le moment, ça ne marche que sur les Sun, mais il
est possible que ça marche également sur les PC dans un avenir proche ; en
attendant il est possible de le lancer en affichage distant.
</p>
</div>
<p>
Si on n'a pas à sa disposition le script uxterm, mais qu'on est sous Unix,
on peut quand même lancer xterm avec les bonnes options :
</p>
<pre>
<span class="prompt">drakkar ~ $</span> LC_CTYPE=en_US.UTF-8 xterm \
-fn -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso10646-1 \
-fw -misc-fixed-medium-r-normal-ja-18-120-100-100-c-180-iso10646-1 -u8
</pre>
<p>
Les deux polices indiquées sont fournies avec le projet
<a href="http://www.xfree86.org/">XFree86</a>, et sont des polices Unicode
relativement complètes. Il est possible d'en utiliser d'autres, mais il faut
les choisir en <code>-iso10646-1</code>.
</p>
<p>
<strong>Attention</strong>, si vous vous <strong>loguez à distance</strong>,
une commande est nécessaire pour informer les applications distantes que le
terminal est en Unicode :
</p>
<pre><span class="prompt">drakkar ~ $</span> export LC_CTYPE=en_US.UTF-8</pre>
<p>
Note : inutile d'essayer de changer le <code>en_US</code> en autre chose,
c'est le <code>.UTF-8</code> qui est important ici, pour le reste il suffit
que ce soit un code qui existe.
</p>
<p>
Il est possible également d'obtenir un terminal en Unicode quand on est
connecté depuis windows ou macos. Mais je ne sais pas comment on fait.
</p>
<h3>Un éditeur au courant</h3>
<p>
Si vous avez correctement mis en place votre terminal (en particulier le
<code>LC_CTYPE</code> si vous vous connectez à distance), il n'y a quasiment
rien à faire.
</p>
<p>
<strong>Avec Vim</strong>, après avoir lancé normalement votre éditeur, vous
pouvez vérifier qu'il est a bien détecté que vous étiez en Unicode avec :
</p>
<pre>:set encoding
encoding=utf-8</pre>
<p>
Si quand vous ouvrez un fichier, Vim écrit <code>[converted]</code> à côté
du nom, c'est qu'il a détecté que ce fichier n'était pas en Unicode ; il
note quel était le codage de ce fichier, et l'utilisera pour sauver (et se
plaindra s'il y a des caractères impossibles à sauver). On peut changer ça
avec l'option <code>fileencoding</code>.
</p>
<p>
<strong>Avec Emacs</strong>, je n'ai aucune idée de comment on procède.
</p>
<h2>Taper ce qu'on veut</h2>
<p>
C'est bien d'avoir un terminal qui affiche de l'Unicode, mais sur un clavier
occidental normalement constitué, taper un &#x03A9;, un &#x04B3;, un
&#x05E4;, un &#x0E06; ou un &#x9C3B;, ce n'est pas facile. Le problème se
résout avec ce qu'on appelle des <em>méthodes d'entrée</em>. Vous connaissez
certainement déjà celle qui utilise la touche Compose pour taper les accents
sur les claviers américains.
</p>
<h3>Les méthodes d'entrée d'UXTerm</h3>
<p>
Si vous lancez <code>uxterm</code> sur (ou depuis) une station Sun, vous
remarquerez en bas à gauche une petite fenêtre où est écrit
« English/European ». Cette fenêtre indique que le clavier est en mode
occidental, il est possible de changer de mode.
</p>
<ul>
<li>Avec <code>Compose-a-a</code>, on passe en <strong>arabe</strong>.</li>
<li>Avec <code>Compose-c-c</code>, on passe en <strong>cyrillique</strong>.</li>
<li>Avec <code>Compose-g-g</code>, on passe en <strong>grec</strong>.</li>
<li>Avec <code>Compose-h-h</code>, on passe en <strong>hébreu</strong>.</li>
<li>Avec <code>Compose-t-t</code>, on passe en <strong>thai</strong>.</li>
<li>Avec <code>Control-espace</code>, on revient en occidental.</li>
</ul>
<p>
D'autres méthodes d'entrée sont disponibles, en tapant directement le numéro
Unicode du caractère ou en choisissant dans des tables thématiques. Il est
normalement possible d'utiliser cette fenêtre comme un menu pour changer le
mode, mais ça marche très mal. Ce système n'est hélas pas disponible sur les
PC.
</p>
<h3>Les méthodes d'entrée d'Emacs</h3>
<p>
Emacs possède lui-même un nombre assez important de méthodes d'entrée.
Celles-ci sont plus confortables et plus puissantes que celles d'uxterm ;
en particulier elles affichent en bas d'Emacs le caractère en cours de
construction et/ou les différents choix possibles. Le défaut est que ces
méthodes ne sont disponibles que dans Emacs lui-même, donc ni dans un autre
éditeur, ni dans d'autres logiciels.
</p>
<h3>Termim</h3>
<p>
Termim est un programme qui permet de donner des méthodes d'entrée à presque
n'importe quel terminal. Ces méthodes sont elles aussi capables d'afficher
le caractère en cours de construction en bas, et sont disponibles pour
n'importe quel programme tournant dans le terminal.
</p>
<p>
Termim n'est pas spécifique à l'ENS, mais comme il a été développé par
d'anciens élèves, il est probable qu'il soit rarement installé ailleurs.
</p>
<p>
Pour utiliser termim, il suffit de taper <code>termim</code> dans un
terminal Unicode. On a alors la configuration par défaut (qu'il est possible
de changer) :
</p>
<ul>
<li><strong>F1</strong> : clavier sans transformation.</li>
<li><strong>F2 e</strong> : caractères occidentaux, avec Ctrl-K comme
touche compose.</li>
<li><strong>F2 a</strong> : arabe.</li>
<li><strong>F2 c</strong> : cyrillique.</li>
<li><strong>F2 g</strong> : grec.</li>
<li><strong>F2 h</strong> : hébreu.</li>
<li><strong>F2 t</strong> : thai.</li>
<li><strong>F3 c</strong> : chinois simplifié (méthode tonepy).</li>
<li><strong>F3 k</strong> : coréen (phonétique).</li>
<li><strong>F3 h</strong> : coréen (clavier avec voyelles et consonnes).</li>
<li><strong>F3 j</strong> : japonais (utiliser la touche ` pour taper des
kanji).</li>
</ul>
<p>
Pour plus de détails, consulter la page de man de termim, ainsi que les
documentations dans <code>/usr/local/util/packages/termim/doc/</code>.
</p>
<div class="metainformation">
Auteur : Nicolas George.
Dernière modification le <date value="$Date: 2003-06-12 14:58:36 $"/>.
</div>
</body>
</html>