Les accents avec StarOffice Writer

' A F6 --> Á

English version

Nouvelle version du 8/11/2001 (presque tous les car. ISO-8859-1)
Ajout des tirets cadratin et demi-cadratin le 22/3/02.

Important : cette macro a été écrite avant que j'aie connaissance du RFC 1345 portant sur le sujet. Voir ce paragraphe

Ce document décrit une méthode qui permet à un utilisateur de StarOffice Writer d'obtenir facilement n'importe quelle lettre accentuée (ou caractère spécial) avec n'importe quel clavier, sous n'importe quel système. Toutes les caractères existant dans le code ISO-8859-1 (appelé également Latin-1) sont accessibles par ce moyen. Les utilisateurs de Windows ont en plus quelques caractères spécifiques à MS-Windows. Cette macro ne fonctionne pas avec du texte dans les autres modules de StarOffice comme Impress ou Draw, je ne sais pourquoi.

Note La macro décrite dans ce document fonctionne sous StarOffice 5.x, pas sous StarOffice 6.0, ni OpenOffice. L'API a changé dans ces nouvelles versions, et la macro nécessite une réécriture que je n'ai pas eu le temps de faire.

Les utilisateurs de Windows peuvent utiliser AllChars de préférence à cette macro, car AllChars est plus simple à installer et fonctionne dans toutes les applications. La macro s'adresse donc plus particulièrement aux utilisateurs de StarOffice sous Unix/Linux.

La justification de cette méthode est que la frappe de certaines lettres accentuées est parfois un problème. Selon les systèmes et les claviers, c'est facile ou compliqué, ou parfois impossible. Le meilleur cas est certainement quand le système d'exploitation prend en compte ce problème parfaitement avec les touches mortes (touches d'accent modifiant la lettre tapée à la suite), mais c'est rarement le cas. Voici quelques exemples qui peuvent poser problème :

  • vous avez un clavier QWERTY (anglais sans lettres accentuées), les touches mortes ne fonctionnent pas, et voulez taper du français,
  • sur certains systèmes, même avec un clavier français, quelques lettres comme æ ou É sont difficiles à obtenir,
  • vous avez un clavier français et tapez un texte espagnol, contenant des í, et ó,
  • etc.

Dans de nombreux cas, la frappe d'un accent suivi d'une lettre donne directement la lettre accentuée (la touche d'accent fonctionne alors en touche morte). Dans ce cas, la fonction présentée ici n'est pas nécessaire. Malheureusement les accents ne fonctionnent pas toujours comme cela.

L'accent aigu pose un problème particulier, il n'existe pas en tant que caractère dans le code ASCII, contrairement aux autres accents, grave, circonflexe, et tilde. Dans la plupart des cas, il n'y a pas de touche correspondant à cet accent (l'apostrophe a un rôle différent). MacOS est une exception, pour lequel il existe une solution, mais peu commode. Même si on utilise un système gérant les touches mortes, on n'a donc pas de solution pour l'accent aigu.

Fonctionnement

Ce système ne nécessite pas de mémoriser des séquences compliquées telles que ALT+0201 ni d'appeler de menu spécial. On obtient la lettre accentuée en tapant un caractère représentant l'accent (' ` ^ " ~ / .), la lettre, et F6. Tous ces caractères font partie du standard ASCII et sont disponibles sur tous les claviers. L'apostrophe joue le rôle de l'accent aigu ; la double apostrophe, celui du tréma. L'accent circonflexe permet d'obtenir la cédille ou le caron sur certaines lettres.

Les combinaisons de touches sont définies dans les tableaux ci-dessous. Certains des caractères, mis sur fond rouge, ne font pas partie du code ISO-8859-1, standard sur de nombreuses machines et Internet. Ils peuvent être mal affichés par des logiciels sur Mac, Linux ou Unix. Ces caractères ne devraient pas être utilisés dans les messages ni dans les pages HTML sans précaution.

Note aux utilisateurs de Linux : Sur Linux, ces caractères sont correctement affichés (au moins lors d'un test avec Mozilla 6 sur une Debian), mais je ne sais pas si on peut les utiliser sous StarOffice Linux. On ne peut pas les copier depuis Mozilla, qui les remplace par des équivalents. Pour les utiliser, il faut vraisemblablement choisir une police TrueType. Si vous avez accès à ces caractères sous StarOffice, remplacer dans la macro les équivalents de Mozilla par les bons caractères.

 
acei nosu yzAC EINO SUYZ
' á éí  ó ú ý Á  ÉÍ Ó  ÚÝ 
` à èì  ò ù   À  ÈÌ Ò  Ù  
^ âçêî  ôšû  žÂÇ ÊÎ Ô ŠÛ Ž
" ou : ä ëï  ö ü ÿ Ä  ËÏ Ö  ÜŸ 
~ ã    ñõ     Ã    ÑÕ     
/       ø           Ø     
. ou ° å           Å           
Caractères spécifiques à MS-Windows ne faisant pas partie de ISO-8859-1

En prime, certaines combinaisons donnent d'autres caractères spéciaux décrits dans le tableau ci-dessous.

miµle préfixe micro
aeæ
AEÆ
oeœe dans l'o
OEŒE dans l'O
pmpour mille
co©copyright
re®marque enregistrée
tmtrade mark
sp espace insécable
etðeth (islandais)
ETÐETH (islandais)
thþthorn (islandais)
THÞTHORN (islandais)
szßsz (allemand)
!!¡point d'exclamation inverse
??¿point d'interrogation inverse
ma¯macron
no¬négation
..trois points
eule symbole euro
mo¤symbole monétaire
ye¥yen
po£livre
ce¢cent
se§section
paparagraphe
+-±
xx×symbole de multiplication
:-÷
-ntiret demi-cadratin
-mtiret cadratin
ofªordinal féminin (espagnol)
omºordinal masculin (espagnol)
e1¹exposant 1
e2²exposant 2
e3³exposant 3
14¼
12½
34¾
Caractères spécifiques à MS-Windows ne faisant pas partie de ISO-8859-1

Il n'est pas obligatoire de taper F6 juste après les deux caractères, la macro agit simplement sur les deux caractères qui précèdent le curseur. Dans le cas où les deux caractères ne sont pas une séquence reconnue, la macro ne modifie rien.

Bien évidemment, si votre système gère correctement les touches d'accent (` puis a donne à), l'utilisation de la macro n'est pas nécessaire. La macro sert si vous avez `a à l'écran.

Cette fonction me semble très utile et même indispensable. Elle devrait être incluse dans StarOffice, à mon humble avis. Elle consiste en une macro StarBasic et une touche (F6) affectée à son exécution. Elle a été testée avec StarOffice 5.1a et 5.2 sous Windows et Solaris (depuis un terminal X NCD à clavier QWERTY).

La première fois qu'on l'appelle dans une session, la fonction prend quelques secondes (StarOffice compile la fonction). Elle est ensuite instantanée.

Note sur les guillemets typographiques

Si vous utilisez les guillemets typographiques, juste après la frappe, la double apostrophe est remplacée par un guillemet typographique et un espace insécable. Pour obtenir un caractère accentué avec un tréma, il faut annuler la dernière opération (control-z). Ainsi on récupère la double apostrophe normale, et on peut taper la lettre et F6. Autre possiblilité, utiliser deux points à la place de la double apostrophe. Il n'y a pas de problème avec l'apostrophe simple.

Installation

Pour installer cette fonction, il faut créer un module contenant une macro en StarBasic, et assigner son exécution à une touche de fonction. Bien entendu, la macro est du logiciel libre, vous pouvez l'utiliser comme vous voulez. Vous pouvez effacer de la macro les lignes de code donnant des combinaisons qui vous sont inutiles. Elle sera plus rapide à compiler.

Création de la macro

Pour ceux qui ne connaissent pas les macros, voici comment faire en détail. Ouvrir un document texte, faire Outils/Macro..., Gérer. Cela ouvre une nouvelle boîte de dialogue. Sélectionner Standard sous soffice, faire Gérer, Nouveau module, donner le nom Accent, fermer (on revient à l'outil macro). Sélectionner Accent, faire Modifier. Le nouveau module s'ouvre dans l'environnement de développement de macros, remplacer les quelques lignes existantes par le texte Basic de la macro (copier/coller). Revenir au document de texte, normalement la macro doit fonctionner.

Assignation de la touche F6

Faire Outils/Macro..., sélectionner accent dans la deuxième colonne. Faire Assigner, onglet Clavier, choisir F6, faire Modifier (F6 est alors assignée à [(Main(standard.accent)]) puis Fermer.

Nouvelle version de StarOffice

Lors du passage à la version 5.2, il n'y a pas besoin de réinstaller la macro, car elle est en fait installée dans les documents. Il suffit donc de reprendre un document créé avec SO5.1, cette macro étant alors active, pour la retrouver dans SO5.2. Par contre, il faut à nouveau assigner la touche de fonction.

Cas des serveurs

Dans le cas d'un serveur multi-utilisateurs, il peut être souhaitable de mettre cette fonction à disposition de chaque utilisateur. Faire l'installation réseau, l'installation d'un utilisateur et installer la fonction pour cet utilisateur. Ensuite remplacer le fichier basic/standard.new de l'installation partagée, par le fichier basic/standard.sbl de l'utilisateur. Dans mon cas, j'ai fait (sur Solaris):

cp ~/Office51/basic/standard.sbl \
  /usr/local/so51/basic/standard.new

Dorénavant, chaque installation personnelle contiendra la macro. Malheureusement, chaque utilisateur doit encore assigner la touche F6 à cette macro (Si quelqu'un sait comment modifier l'installation partagée pour que ça se fasse tout seul, je suis interessé)

Le RFC 1345

Le RFC 1345 définit un sous-ensemble limité de 83 caractères (lettres, chiffres et quelques caractères spéciaux de base) qu'on trouve dans tous les codages. Puis il définit des codes mnémotechniques de deux caractères (de ce sous-ensemble) pour tous les autres caractères. En particulier tous les caractères accentués et caractères spéciaux du codage ISO-8859-1 ont un code mnémonique. Je pense que la macro définie ici devrait utiliser ces codes, plutôt que ceux que j'ai imaginés (certains sont identiques). J'implanterai ces codes mnémoniques quand j'en aurai le temps, s'il y a une demande.


Ce document est disponible à <http://www.cict.fr/app/soffice/accentSO.html>.
Auteur : Jean-Pierre Gallou
Mis à jour le 03/10/02
[Sommaire CICT] CICT
Vos commentaires sur ce serveur : www@cict.fr