tuteurs.ens.fr/unix/editeurs/unicode.tml

240 lines
7.8 KiB
Text
Raw Normal View History

<?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<61>te, et
<EFBFBD>ut-<2D>tre m<>me d'au del<65> (l'int<6E>gration du Tengwar est en discussion).
</p>
</div>
<h2>Se pr<70>parer</h2>
<h3>Bien comprendre ce que <20>a veut dire</h3>
<p>
Unicode, c'est une collection de caract<63>res utilis<69>s dans toutes les langues
du monde, avec un num<75>ro pour chaque caract<63>re. Ce qu'on entend par <20><>taper
de l'Unicode<64><65>, c'est taper un fichier texte qui utilise ces caract<63>res,
probablement au del<65> de simplement les caract<63>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<74>orique sur les
encodages</a>.
</p>
<p>
Les difficult<6C>s qui se pr<70>sentent sont principalement de mettre en place un
environnement permettant de taper et d'afficher ces caract<63>res, de choisir
et configurer un <20>diteur pour travailler en Unicode, et de taper des
caract<EFBFBD>res qui ne sont pas disponibles sur le clavier.
</p>
<h3>Choisir un <20>diteur</h3>
<p>
La gestion d'Unicode demande un boulot non trivial de la part de l'<27>diteur,
c'est pourquoi la plupart n'en sont h<>las pas capables.
</p>
<div class="ens">
<p>
Parmi les <20>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 <20>diteurs, et vous avez tout int<6E>r<EFBFBD>t <20> choisir l'un
d'eux m<>me sans <20>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<74>e de menu <20><>terminal Unicode<64><65> si on a une
config assez r<>cente. Pour le moment, <20>a ne marche que sur les Sun, mais il
est possible que <20>a marche <20>galement sur les PC dans un avenir proche<68>; en
attendant il est possible de le lancer en affichage distant.
</p>
</div>
<p>
Si on n'a pas <20> sa disposition le script uxterm, mais qu'on est sous Unix,
on peut quand m<>me lancer xterm avec les bonnes options<6E>:
</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<71>es sont fournies avec le projet
<a href="http://www.xfree86.org/">XFree86</a>, et sont des polices Unicode
relativement compl<70>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 <20> distance</strong>,
une commande est n<>cessaire pour informer les applications distantes que le
terminal est en Unicode<64>:
</p>
<pre><span class="prompt">drakkar ~ $</span> export LC_CTYPE=en_US.UTF-8</pre>
<p>
Note<EFBFBD>: 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 <20>galement d'obtenir un terminal en Unicode quand on est
connect<EFBFBD> depuis windows ou macos. Mais je ne sais pas comment on fait.
</p>
<h3>Un <20>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 <20> distance), il n'y a quasiment
rien <20> faire.
</p>
<p>
<strong>Avec Vim</strong>, apr<70>s avoir lanc<6E> normalement votre <20>diteur, vous
pouvez v<>rifier qu'il est a bien d<>tect<63> que vous <20>tiez en Unicode avec<65>:
</p>
<pre>:set encoding
encoding=utf-8</pre>
<p>
Si quand vous ouvrez un fichier, Vim <20>crit <code>[converted]</code> <20> c<>t<EFBFBD>
du nom, c'est qu'il a d<>tect<63> que ce fichier n'<27>tait pas en Unicode<64>; il
note quel <20>tait le codage de ce fichier, et l'utilisera pour sauver (et se
plaindra s'il y a des caract<63>res impossibles <20> sauver). On peut changer <20>a
avec l'option <code>fileencoding</code>.
</p>
<p>
<strong>Avec Emacs</strong>, je n'ai aucune id<69>e de comment on proc<6F>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<74>, taper un &#x03A9;, un &#x04B3;, un
&#x05E4;, un &#x0E06; ou un &#x9C3B;, ce n'est pas facile. Le probl<62>me se
r<EFBFBD>sout avec ce qu'on appelle des <em>m<>thodes d'entr<74>e</em>. Vous connaissez
certainement d<>j<EFBFBD> celle qui utilise la touche Compose pour taper les accents
sur les claviers am<61>ricains.
</p>
<h3>Les m<>thodes d'entr<74>e d'UXTerm</h3>
<p>
Si vous lancez <code>uxterm</code> sur (ou depuis) une station Sun, vous
remarquerez en bas <20> gauche une petite fen<65>tre o<> est <20>crit
<EFBFBD><EFBFBD>English/European<61><6E>. Cette fen<65>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<74>e sont disponibles, en tapant directement le num<75>ro
Unicode du caract<63>re ou en choisissant dans des tables th<74>matiques. Il est
normalement possible d'utiliser cette fen<65>tre comme un menu pour changer le
mode, mais <20>a marche tr<74>s mal. Ce syst<73>me n'est h<>las pas disponible sur les
PC.
</p>
<h3>Les m<>thodes d'entr<74>e d'Emacs</h3>
<p>
Emacs poss<73>de lui-m<>me un nombre assez important de m<>thodes d'entr<74>e.
Celles-ci sont plus confortables et plus puissantes que celles d'uxterm<72>;
en particulier elles affichent en bas d'Emacs le caract<63>re en cours de
construction et/ou les diff<66>rents choix possibles. Le d<>faut est que ces
m<EFBFBD>thodes ne sont disponibles que dans Emacs lui-m<>me, donc ni dans un autre
<EFBFBD>diteur, ni dans d'autres logiciels.
</p>
<h3>Termim</h3>
<p>
Termim est un programme qui permet de donner des m<>thodes d'entr<74>e <20> presque
n'importe quel terminal. Ces m<>thodes sont elles aussi capables d'afficher
le caract<63>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<73>cifique <20> l'ENS, mais comme il a <20>t<EFBFBD> d<>velopp<70> par
d'anciens <20>l<EFBFBD>ves, il est probable qu'il soit rarement install<6C> 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)<29>:
</p>
<ul>
<li><strong>F1</strong><3E>: clavier sans transformation.</li>
<li><strong>F2 e</strong><3E>: caract<63>res occidentaux, avec Ctrl-K comme
touche compose.</li>
<li><strong>F2 a</strong><3E>: arabe.</li>
<li><strong>F2 c</strong><3E>: cyrillique.</li>
<li><strong>F2 g</strong><3E>: grec.</li>
<li><strong>F2 h</strong><3E>: h<>breu.</li>
<li><strong>F2 t</strong><3E>: thai.</li>
<li><strong>F3 c</strong><3E>: chinois simplifi<66> (m<>thode tonepy).</li>
<li><strong>F3 k</strong><3E>: cor<6F>en (phon<6F>tique).</li>
<li><strong>F3 h</strong><3E>: cor<6F>en (clavier avec voyelles et consonnes).</li>
<li><strong>F3 j</strong><3E>: 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<EFBFBD>: Nicolas George.
Derni<EFBFBD>re modification le <date value="$Date: 2003-06-12 14:58:36 $"/>.
</div>
</body>
</html>