Page sur les langues exotiques en LaTeX.
This commit is contained in:
parent
19cbcc3e45
commit
e21ad368bb
5 changed files with 788 additions and 4 deletions
|
@ -11,6 +11,14 @@
|
|||
|
||||
<h1>Le grec ancien sous LaTeX</h1>
|
||||
|
||||
<div class="attention">
|
||||
<p>
|
||||
La méthode décrite ici fonctionne encore très bien, mais de nouveaux outils
|
||||
sont maintenant disponibles, qui peuvent sembler plus confortables à
|
||||
utiliser. Pour apprendre à s'en servir, allez voir la page sur
|
||||
<a href="langues.html">langues exotiques</a> (oui, le grec, c'est exotique).
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<h2>Avant toute chose...</h2>
|
||||
|
||||
|
@ -205,7 +213,7 @@ syst
|
|||
|
||||
<div class="metainformation"> Auteurs : Éveline Prioux (1998),
|
||||
adaptation en HTML : Marie-Lan Nguyen (2000).
|
||||
Dernière modification : le <date value="$Date: 2004-02-24 22:00:29 $" />.
|
||||
Dernière modification : le <date value="$Date: 2004-04-12 17:58:01 $" />.
|
||||
</div>
|
||||
|
||||
</body> </html>
|
||||
|
|
|
@ -64,6 +64,7 @@ qu'un sujet important a
|
|||
<li> <a href="macros.html">Faire des macros</a></li>
|
||||
<li> <a href="references.html">Faire des références</a></li>
|
||||
<li> <a href="maths.html">Mathématiques élémentaires</a></li>
|
||||
<li> <a href="langues.html">Les langues exotiques</a></li>
|
||||
<li> <a href="grec.html">Le grec ancien sous LaTeX</a></li>
|
||||
<li> <a href="lettre.html">Écrire une lettre</a></li>
|
||||
<li> <a href="polices.html">Utiliser différentes polices</a></li>
|
||||
|
@ -161,7 +162,7 @@ href="mailto:tuteurs@clipper.ens.fr">mail</a>
|
|||
|
||||
<div class="metainformation">
|
||||
Auteur : François-Xavier Coudert. Dernière modification le
|
||||
2003-02-05.
|
||||
<date value="$Date: 2004-04-12 17:58:01 $" />.
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
|
355
logiciels/latex/langues.tml
Normal file
355
logiciels/latex/langues.tml
Normal file
|
@ -0,0 +1,355 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE html
|
||||
PUBLIC "-//ENS/Tuteurs//DTD TML 1//EN"
|
||||
"tuteurs://DTD/tml.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Langues exotiques</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>Langues exotiques</h1>
|
||||
|
||||
<div class="resume">
|
||||
<p>
|
||||
Dans cette page, nous allons voir comment utiliser LaTeX pour taper des
|
||||
langues « exotiques ». Par là, nous entendons des langues qui s'écrivent
|
||||
avec autre chose que l'alphabet latin, comme le russe ou le japonais.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<h2>Le point sur la situation</h2>
|
||||
|
||||
<h3>Anciennes et nouvelles méthodes</h3>
|
||||
|
||||
<p>
|
||||
LaTeX a été conçu avant tout par des Américains, et à ce titre, prévu pour
|
||||
taper de l'anglais. Comme l'auteur principal est quelqu'un de soigneux, il
|
||||
est assez facile de rajouter des accents, et même de taper autre chose que
|
||||
de l'alphabet latin. Mais facile ne veut pas dire pratique : avec la manière
|
||||
directe de procéder, le code source d'un mot en grec ancien risque d'être
|
||||
moins lisible que les jurons de Fantasio.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Heureusement, LaTeX est programmable, et des extensions ont été écrites pour
|
||||
permettre plus de confort. Hélas, ces extensions sont toutes plus ou moins
|
||||
incompatibles entre elles, et souvent plutôt plus que moins. Par exemple, si
|
||||
vous voulez taper du français et du grec, vous avez un choix exclusif entre
|
||||
taper confortablement les caractères accentués français et taper
|
||||
confortablement les mots grecs.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Plus récemment, l'informatique a vu le développement d'Unicode, un système
|
||||
qui résout les problèmes de langues dans les fichiers textes (un fichier
|
||||
<code>.tex</code> est un fichier texte. L'architecture de LaTeX ne l'a pas
|
||||
rendu facile, mais petit a petit, il est devenu possible de bénéficier de ce
|
||||
progrès.
|
||||
</p>
|
||||
|
||||
<h3>Difficultés encore présentes</h3>
|
||||
|
||||
<p>
|
||||
Unicode résout certains problèmes, mais ne les résout pas tous. Le principal
|
||||
est bien sûr celui des polices : votre texte aura beau contenir,
|
||||
informatiquement parlant, des idéogrammes chinois, si ces idéogrammes ne
|
||||
sont disponibles dans aucune police que connaît LaTeX, vous n'irez pas loin.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Ensuite, Unicode est conçu pour la <em>saisie</em> du texte, pas son rendu :
|
||||
Unicode traite des entités plus ou moins abstraites appelées caractères, qui
|
||||
n'ont pas nécessairement un rapport direct avec les glyphes qu'on veut voir
|
||||
dans un document imprimé. Pour les langues européennes, ça se passe plutôt
|
||||
bien, mais certaines langues, l'arabe et surtout les langues indiennes, ont
|
||||
des interactions entre caractères très complexes : ligatures,
|
||||
réordonnancement, combinaisons, etc. Unicode n'aplanit pas ces difficultés,
|
||||
il se contente de fournir un point d'entrée confortable à une extension qui
|
||||
le fait — si elle existe.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Enfin, LaTeX est conçu presque exclusivement pour l'écriture de gauche à
|
||||
droite. Ses algorithmes sont incapables de gérer l'écriture de droite à
|
||||
gauche de l'arabe et de l'hébreu, et l'écriture en colonnes.
|
||||
</p>
|
||||
|
||||
<h3>Finalement, qu'est-ce qui marche ?</h3>
|
||||
|
||||
<p>
|
||||
Après toutes ces considérations défaitistes, on en vient à se demander s'il
|
||||
est possible de taper autre chose que de l'anglais. Voici une petite liste
|
||||
de ce qui marche bien.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>les langues occidentales, avec des extensions de l'alphabet latin
|
||||
(accents, ligatures, ponctuations bizarres, etc.) ;</li>
|
||||
<li>le grec, moderne et ancien ;</li>
|
||||
<li>le cyrillique</li>
|
||||
<li>le chinois, simplifié et traditionnel, écrit de gauche à droite ;</li>
|
||||
<li>le japonais, écrit de gauche à droite.</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
La distribution standard de LaTeX comporte des polices latines, grecques et
|
||||
cyrilliques. Des polices chinoises et japonaises sont également disponibles,
|
||||
mais parfois plus techniques à installer. Il y en a installées à l'ENS.
|
||||
</p>
|
||||
|
||||
<h2>Comment faire</h2>
|
||||
|
||||
<h3>Préparation</h3>
|
||||
|
||||
<p>
|
||||
Avant de commencer, il y a un pré-requis qui n'est pas spécifique à LaTeX :
|
||||
savoir taper un texte quelconque, dans la langue qui vous intéresse, en
|
||||
Unicode. Heureusement, nous avons une documentation sur les
|
||||
<a href="&url.tuteurs;unix/editeurs/unicode.html">éditeurs en Unicode</a>,
|
||||
que nous vous invitons à lire avant d'aller plus loin si ce n'est déjà fait.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Tout ce que vous avez à faire maintenant, c'est de créer votre fichier LaTeX
|
||||
avec votre éditeur en Unicode. Nous allons voir dans un instant ce qu'il
|
||||
faut mettre dans le préambule.
|
||||
</p>
|
||||
|
||||
<div class="ens">
|
||||
<p>
|
||||
<strong>Attention,</strong> sur certains PC FreeBSD, c'est une ancienne
|
||||
version de LaTeX qui est installée. Si vous éprouvez des problèmes, regardez
|
||||
la deuxième ligne des messages lors de la compilation : si elle indique
|
||||
« <code>LaTeX2e <1999/12/01> patch level 1</code> », changez de
|
||||
machine (en vous loguant à distance, c'est le plus simple).
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<h3>Ce qu'il faut écrire</h3>
|
||||
|
||||
<p>
|
||||
Dans le cas général, il n'y a quasiment rien à changer. Il suffit d'avoir la
|
||||
ligne suivante dans le préambule :
|
||||
</p>
|
||||
<pre>\usepackage[utf8]{inputenc}</pre>
|
||||
<p class="continue">
|
||||
(à la place de l'habituel <code>latin1</code>). Avec cette ligne, un texte
|
||||
en alphabet latin étendu (y compris <code>œ</code>,
|
||||
<code>“</code>, <code>”</code>, <code>‘</code>,
|
||||
<code>’</code>, <code>€</code>, <code>…</code>,
|
||||
<code>—</code>, etc., tapés directement) fonctionne directement.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Pour d'autres langues, il faut quelques options supplémentaires, et en
|
||||
particulier informer babel du changement de langue.
|
||||
</p>
|
||||
|
||||
<h3>Babel polyglotte</h3>
|
||||
|
||||
<p>
|
||||
Jusqu'a présent, vous n'avez probablement utilisé du package babel que la
|
||||
ligne <code>\usepackage[francais]{babel}</code>. Il est temps d'apprendre à
|
||||
l'utiliser pour d'autres langues. Par chance, c'est assez simple. La
|
||||
première chose à faire est de charger les bons modules :
|
||||
</p>
|
||||
<pre>\usekackage[greek,russian,francais]{babel}</pre>
|
||||
<p class="continue">
|
||||
La dernière langue mentionnée est la langue « principale » du document,
|
||||
celle qui est sélectionnée s'il n'y a pas d'indication contraire. L'ordre
|
||||
des autres langues n'a pas d'importance.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Il faut ensuite, tout au long du texte, indiquer les changements de langue.
|
||||
Trois commandes permettent de faire ça :
|
||||
</p>
|
||||
<pre>\selectlanguage{<var>langue</var>}</pre>
|
||||
<p class="continue">
|
||||
sélectionne une nouvelle langue pour tout le reste du texte, ou jusqu'à la
|
||||
prochaine rencontre avec la même commande. De manière surprenante, cette
|
||||
commande s'échappe des groupes et des environnements ; à utiliser avec
|
||||
prudence donc.
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
\begin{otherlanguage}{<var>langue</var>}
|
||||
\end{otherlanguage}
|
||||
</pre>
|
||||
<p class="continue">
|
||||
sélectionne une langue pour l'étendue de l'environnement. Aucune surprise
|
||||
ici.
|
||||
</p>
|
||||
|
||||
<pre>\foreignlanguage{<var>langue</var>}{<var>blabla</var>}</pre>
|
||||
<p class="continue">
|
||||
sélectionne une langue pour le texte « blabla », et s'utilise de la même
|
||||
manière que <code>\emph</code>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Souvent, des commandes plus compactes sont disponibles spécifiquement pour
|
||||
une langue donnée (comme <code>\textgreek</code> pour
|
||||
<code>\foreignlanguage{greek}</code>).
|
||||
</p>
|
||||
|
||||
<div class="attention">
|
||||
<p>
|
||||
<strong>Attention,</strong> il est souvent <strong>nécessaire</strong> de
|
||||
bien informer LaTeX du changement de langue. En effet, le changement de
|
||||
langue s'accompagne d'un changement de police (plus précisément,
|
||||
d'<em>encodage</em> de police), ce dont LaTeX ne prend pas l'initiative tout
|
||||
seul.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
Dans le cas d'un texte comportant beaucoup de mots étrangers, par exemple le
|
||||
commentaire en français d'un texte grec, changer sans arrêt de langue est
|
||||
fastidieux, même en ayant défini une macro très courte. Il est possible
|
||||
d'automatiser ça en utilisant le package <code>autofe</code>. Attention
|
||||
cependant si vous optez pour cette solution : si dans un mot certains
|
||||
caractères sont disponibles dans la police actuelle et d'autres pas, ce mot
|
||||
sera rendu avec un mélange de polices, ce qui peut être très laid, et vous
|
||||
n'aurez aucun avertissement. De plus, au delà de quelques mots, il faut
|
||||
quand même expliciter le changement de langue, faute de quoi la typographie
|
||||
et, plus grave, la césure ne respecteront pas les règles spécifiques.
|
||||
</p>
|
||||
|
||||
<h2>Langue par langue, en détail</h2>
|
||||
|
||||
<h3>Le grec</h3>
|
||||
|
||||
<p>
|
||||
Le nom pour babel est simplement <code>greek</code>. La commande
|
||||
<code>\textgreek{<var>blabla</var>}</code> est définie pour avoir le même
|
||||
effet que <code>\foreignlanguage{greek}{<var>blabla</var>}</code>. Le
|
||||
changement de langue est nécessaire pour que la police soit disponible.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Quand le grec est actif, LaTeX utilise une sorte de translittération depuis
|
||||
l'alphabet latin, avec des conventions pour les accents et les esprits. Mais
|
||||
comme nous travaillons en UTF-8, c'est inutile et nous n'en parlons pas.
|
||||
</p>
|
||||
|
||||
<h3>Le cyrillique</h3>
|
||||
|
||||
<p>
|
||||
Le nom pour babel est <code>russian</code>, et le changement de langue est
|
||||
nécessaire pour que la police soit disponible. Rien d'autre à signaler.
|
||||
</p>
|
||||
|
||||
<h3>Le chinois</h3>
|
||||
|
||||
<p>
|
||||
Là, ça se complique un peu, il faut quelques packages supplémentaires. Voici
|
||||
ce qu'il faut mettre dans le préambule pour du chinois traditionnel :
|
||||
</p>
|
||||
<pre>
|
||||
\usepackage[cjkbg5]{ucs}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage[C00,T1]{fontenc}
|
||||
\DeclareFontSubstitution{C00}{sng}{m}{n}
|
||||
</pre>
|
||||
<p class="continue">
|
||||
et pour du chinois simplifié :
|
||||
</p>
|
||||
<pre>
|
||||
\usepackage[cjkgb]{ucs}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage[C10,T1]{fontenc}
|
||||
\DeclareFontSubstitution{C10}{sng}{m}{n}
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
Les deux ont la même structure. La première ligne indique quelle
|
||||
interprétation choisir pour un caractère qui aurait le mauvais goût d'être
|
||||
commun au chinois simplifié, au chinois traditionnel et au japonais. La
|
||||
troisième ligne charge l'encodage nécessaire (C00 pour le chinois
|
||||
traditionnel, C10 pour le simplifié), ainsi que l'encodage occidental (faute
|
||||
de quoi ça ne marche pas). Enfin, la dernière ligne indique quelle famille
|
||||
de police employer par défaut pour cet encodage, ici Arphic SungtiL
|
||||
(<code>sng</code>). Deux autres polices sont disponibles ici, Arphic KaitiM
|
||||
(<code>kai</code>), très ornée, et Bitstream Cyberbit (<code>cyb</code>),
|
||||
qui n'est pas libre. Il est possible de changer de police en modifiant la
|
||||
ligne <code>\DeclareFontSubstitution</code> ou en utilisant la commande
|
||||
<code>\fontfamily</code>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Quelques points supplémentaires à savoir. D'abord, babel n'a pas de mode
|
||||
pour le chinois. Pour éviter des bizarreries typographiques, il peut être
|
||||
bon de passer babel en mode anglais pour un bout de chinois. Ensuite, ce
|
||||
mode de saisie n'est pas capable de couper automatiquement entre les
|
||||
idéogrammes ; il est nécessaire d'insérer des espaces à la main. Peut-être
|
||||
dans un avenir proche un package résoudra-t-il le problème.
|
||||
</p>
|
||||
|
||||
<div class="ens">
|
||||
<p>
|
||||
L'installation de polices chinoises pour LaTeX est assez acrobatique, et
|
||||
pas complètement standard. Les indications ci-dessus fonctionneront
|
||||
normalement sur l'installation LaTeX de l'ENS, mais il n'est pas sûr du tout
|
||||
que ce soit le cas ailleurs ; en particulier, les noms des polices (pour le
|
||||
<code>\DeclareFontSubstitution</code>) peuvent varier considérablement.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<h3>Le japonais</h3>
|
||||
|
||||
<p>
|
||||
Là, ça se complique un peu, il faut quelques packages supplémentaires. Voici
|
||||
ce qu'il faut mettre dans le préambule :
|
||||
</p>
|
||||
<pre>
|
||||
\usepackage[cjkjis]{ucs}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage[C42,T1]{fontenc}
|
||||
\DeclareFontSubstitution{C42}{dg}{m}{n}
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
La première ligne indique quelle
|
||||
interprétation choisir pour un caractère qui aurait le mauvais goût d'être
|
||||
commun au japonais et au chinois. La
|
||||
troisième ligne charge l'encodage nécessaire (C42 pour le japonais), ainsi
|
||||
que l'encodage occidental (faute de quoi ça ne marche pas). Enfin, la
|
||||
dernière ligne indique quelle famille de police employer par défaut pour cet
|
||||
encodage, ici Wadalabe DG (<code>dg</code>). Trois autres polices Wadalabe
|
||||
sont disponibles ici, <code>dm</code>, <code>mc</code> et <code>mr</code>.
|
||||
Il est possible de changer de police en modifiant la ligne
|
||||
<code>\DeclareFontSubstitution</code> ou en utilisant la commande
|
||||
<code>\fontfamily</code>. La police (non-libre) Bitstream Cyberbit est
|
||||
également disponible sous le nom <code>cyb</code>, mais il faut dans ce cas
|
||||
remplacer partout C42 par C40, et donc exclure d'utiliser les polices
|
||||
Wadalabe.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Quelques points supplémentaires à savoir. D'abord, babel n'a pas de mode
|
||||
pour le japonais. Pour éviter des bizarreries typographiques, il peut être
|
||||
bon de passer babel en mode anglais pour un bout de japonais. Ensuite, ce
|
||||
mode de saisie n'est pas capable de couper automatiquement entre les
|
||||
caractères ; il est nécessaire d'insérer des espaces à la main. Peut-être
|
||||
dans un avenir proche un package résoudra-t-il le problème.
|
||||
</p>
|
||||
|
||||
<div class="ens">
|
||||
<p>
|
||||
L'installation de polices japonaises pour LaTeX est assez acrobatique, et
|
||||
pas complètement standard. Les indications ci-dessus fonctionneront
|
||||
normalement sur l'installation LaTeX de l'ENS, mais il n'est pas sûr du tout
|
||||
que ce soit le cas ailleurs ; en particulier, les noms des polices (pour le
|
||||
<code>\DeclareFontSubstitution</code>) peuvent varier considérablement.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="metainformation">
|
||||
Auteur : Nicolas George.
|
||||
Dernière modification le <date value="$Date: 2004-04-12 17:58:02 $" />.
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
Loading…
Add table
Add a link
Reference in a new issue