Par Larry Ayers layers@marktwain.net
Lire des textes électroniques avec XEmacs
L'hiver dernier, alors que la neige tombait et que le vent soufflait, j'ai soudain ressenti le besoin d'un nouveau livre à lire. Aucun des nombreux livres de la maison ne me paraissait tentant et la perspective d'aller en ville pour emprunter un livre à la bibliothèque m'était pénible, connaissant l'état des routes avec toute cette neige.
J'avais vaguement entendu parler du Projet Gutenberg, un effort de coopération pour rendre accessible les textes littéraire du domaine public sous forme numérique, mais n'avais jamais eu l'occasion de manipuler l'un de ces livres électroniques. Une rapide recherche sur le réseau me fit aboutir au site web du Gutenberg Project, ( http://www.gutenberg.net), où je fus surpris de découvrir une liste très complète de romans et autres oeuvres littéraires, lesquelles avaient été entièrement retappées ou bien numérisées à partir d'éditions papier, et rendues ainsi disponibles grâce au travail de nombreux volontaires. Alors que le vent continuait à souffler autour de la maison, j'entrepris de lire un de ces fichiers-livres, me demandant si la fatigue visuelle allait ou non me poser problème.
Les fichiers texte disponibles sont compressés avec zip. En les décompressant sur une machine Linux, on obtient les inévitables ^M de fin de ligne caractéristiques des fichiers DOS. Fort heureusement, ils peuvent être supprimés lors de la décompression en utilisant l'option -a de unzip, soit unzip -a [fichier]. Ceci n'est pas vraiment utile pour ceux qui utilisent la fonction jka-compress d'Emacs, qui exécute zip et unzip à la volée, compressant et décompressant le fichier au moment de l'ouvrir et de le fermer. Dans ce cas, le moyen le plus facile que je connaisse pour convertir les fin-de-ligne au format DOS en des fin-de-ligne au format Unix est cette paire de fonction Lisp qu'Earl Stutes a publié dans le numéro 10 de la Linux Gazette et que je répète ici :
(defun dos-unix () (interactive) (goto-char (point-min)) (while (search-forward "\r" nil t) (replace-match ""))) (defun unix-dos () (interactive) (goto-char (point-min)) (while (search-forward "\n" nil t) (replace-match "\r\n")))
Avec ces deux fonctions dans votre .emacs, convertir un
fichier se résume à taper M-x dos-unix
sous Emacs.Vous pouvez même lier cette commande à
une touche de fonction si vous l'utilisez souvent.
Bien, ce fichier est déjà plus présentable mais il reste quelques problèmes qui en compliquent la lecture. Il est par exemple ardu de retrouver votre position dans le fichier après avoir interrompu votre lecture et il serait agréable de pouvoir charger le fichier sans avoir à donner son chemin complet. Deux modes d'Emacs peuvent résoudre ces difficultés.
La manière évidente de sauver votre emplacement dans
un fichier est d'utiliser l'équivalent du marque-page
papier, à savoir le marque-page Emacs (Emacs
bookmark). Malheureusement, le marque-page d'Emacs ne se met pas
à jour automatiquement, défaut que corrige la
petite base de donnés Where-was-i
(Où-en-étais-je) de Karl Hegbloom.
Ce mode n'est actif que pour les fichiers uniques, puisque quand
vous chargez plusieurs fichiers en même temps, votre
emplacement n'importe en général pas. Ce mode est
activé en tappant M-x toggle
where-was-i
. Lorsque ce mode est actif, fermer le
fichier sauvegarde la position du curseur dans une petite base
de données dans votre répertoire racine. Quand
vous rouvrirez le fichier, vous retrouverez le curseur à
l'endroit même où vous l'avez laissé. Ceci
est particulièrement utile pour des fichiers de la
longueur d'un livre, dont la taille dépasse souvent le méga-octet.
Le mode de Karl Hegbloom est inclus dans les versions
récentes de XEmacs. Dans les dernières betas qui
utilisent le nouveau système de paquetages, il fait
partie des edit-utils.
L'autre mode XEmacs que je vous recommanderais aussi bien pour lire des livres que pour votre utilisation quotidienne est recent-files.el de Juergen Nickelsen's, qui est lui aussi inclus dans la distribution de XEmacs et fait partie de edit-utils. Pour l'activer, insérez ces lignes dans votre .emacs :
(load "recent-files") (recent-files-initialize)
Ce mode ajoute à votre barre de menu un nouvel élément composé de deux sous-menus. Le premier sous-menu est une liste des derniers fichiers que vous avez chargés dans XEmacs. Le second sous-menu est une liste "permanente" à laquelle vous pouvez ajouter ce que vous désirez : les fichiers que vous modifiez souvent, certains fichiers de configuration ou encore votre journal intime. Il existe aussi des options dans le menu pour rendre un élément permanent temporaire et inversement.
Avec ces deux modes actifs, XEmacs devient un outil confortable
pour la lecture de livre électroniques. Une
dernière possibilité consiste à utiliser un
serveur de polices de caractères proportionnelles
TrueType comme xfstt
. Je trouve en effet ces polices plus
faciles à lire pour des textes longs.
Un autre mode qui pourrait se révéler utile est l'un des dictionnaires disponibles pour Emacs. Dictionnaires que j'ai décrit dans la Linux Gazette numéro 34. J'ai en effet remarqué qu'il était plus tentant de vérifier la signification d'un mot peu familier avec un dictionnaire en ligne, car une seule touche suffit.
En attendant que la qualité d'affichage des ordinateurs s'améliore très nettement, la lecture d'un long texte sur papier reste préférable. Cependant, je dois reconnaître avoir apprécié plusieurs des textes du projet Gutenberg, alors que je n'aurais probablement jamais pensé à chercher certains d'entre eux dans une bibliothèque. La possibilité de coupier-coller depuis un livre peut même se révéler utile et en plus vous pouvez corriger les fautes !
Copyright © 1999, Larry Ayers, Published in Issue 39 ofLinux Gazette, April 1999
Adaptation française, Nicolas Chauvat.
NdT: renseignement pris et contrairement à ce que le nom pourrait laisser croire, la très grande majorité des textes du projet Gutenberg sont en anglais, puisque la liste des oeuvres disponibles n'en compte que treize en français, deux en allemand et quatre en espagnol, mais peut-être un aimable lecteur pourra-t-il nous indiquer un projet équivalent pour la littérature en langue française.