240 lines
7.8 KiB
Text
240 lines
7.8 KiB
Text
|
<?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 Ω, un ҳ, un
|
|||
|
פ, un ฆ ou un 鰻, 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>
|