Archive Liste Typographie
Message : Re: [XP] Comments on Reflexions so far

(Emmanuel CURIS) - Vendredi 24 Septembre 1999
Navigation par date [ Précédent    Index    Suivant ]
Navigation par sujet [ Précédent    Index    Suivant ]

Subject:    Re: [XP] Comments on Reflexions so far
Date:    Fri, 24 Sep 1999 10:57:20 +0200
From:    Emmanuel CURIS <curis@xxxxxxxxxxxxxx>

	Bonjour,

Dans son courrier, Olivier RANDIER a écrit :

« >	Si ça vous intéresse et comme base de départ éventuelle de demandes
« >pour les recherches et remplacements, je peux vous faire un rapide topo de ce
« >qui existe dans Calamus, depuis le temps que j'en parle.
« >	Il y manque aussi des choses à mon goût, d'ailleurs.
« 
« Oui, ça peut être une idée. En n'oubliant pas de mentionner ce qu'il te
« manque encore.

	C'est parti alors :-)

	D'abord, un préliminaire : calamus fonctionne plutôt par « blocs »
comme Xpress, si ce n'est que ça s'appelle des cadres. Pour modifier le texte
d'un cadre texte, il y a deux méthodes : soit en corrigeant directement le
texte dans le cadre (comme Xpress si ma mémoire est bonne), soit en appelant
l'éditeur de texte intégré. Les recherches et remplacements ne peuvent se
faire que dans cet éditeur intégré (je ne suis pas très sûr que ce soit un
manque, mais ça a une conséquence : la recherche ne porte _que_ sur le texte
du cadre (ou de la chaîne de cadre) sélectionné, jamais sur tous les textes
d'un document).
	Dans cet éditeur, le texte n'apparaît pas du tout "mis en page" : il
utilise la fonte système, point. En revanche, tous les codes de contrôle
apparaissent : changement de style, de réglette, positions potentielles de
coupure d'un mot, différents types de fin de paragraphe, cadres ancrés,
approches modifiées, appels de note,... et peuvent être modifiés ou insérés.
	Le texte à chercher et le texte à remplacer sont en fait des textes
exactement comme les autres textes qui apparaissent dans cet éditeur, donc on
peut y mettre absolument n'importe quel code de contrôle - on peut ainsi
remplacer un mot par un cadre ancré sans problème, par exemple.
	Dans le masque à utiliser pour la recherche, il est possible de
rajouter deux types d'informations pour chercher des motifs généraux :

 - quels caractères ignorer.
	Exemple : si on cherche "automatique" mais qu'une coupure potentielle
a été indiquée, le texte réel en interne est "auto|matique" où | symbolise une
coupure potentielle. Si l'on ne précise pas que l'on ignore ce code de
contrôle, une recherche de "automatique" ne donnera rien, il faut chercher
"auto|matique". Heureusement, par défaut, il est ignoré :-) On peut choisir
absolument n'importe quelle combinaison de caractères ou de codes de contrôle
à ignorer.

 - des « jokers » de recherche.
	Un joker est défini comme un ensemble quelconque de caractères ou de
codes de contrôle répété au plus n fois, au moins m. Ainsi, un joker qui
contient les caractères X, V et I trouvera toute suite de au moins m et au
plus n X, V ou I uniquement.
	Exemple pratique : pour passer en petites capitales les numéros de
siècles supposés déjà écrits en chiffres romains, ça pourrait donner

Chercher

{joker : n'importe quel nombre de X, V ou I - nom : "siècle"}{joker : 0 ou plus e, m, è}{joker : espace, espace fine, espace fixe, espace de taille quelconque - en n'importe quel nombre}s.

et remplacer par

[Style : petites caps]{joker "siècle"}[Style : exposant]e[Style : normal]<espace fixe>s.

Cela trouverait dans le texte, par exemple :
XIVe s.
XIVème  s.
XIV s.
...
	et les mettrait tous comme il faut, soit "XIVe s." avec XIV en petites
caps et e en exposant.

	Bien sûr, il est possible de ne pas distinguer majuscules et
minuscules ; il est aussi possible de dire qu'une recherche doit être
récursive (méthode la plus simple pour éliminer les espaces multiples).
	Comme la mise au point d'un masque de recherche peut être un peu
délicate dès que ça devient subtil (l'exemple ci-dessus pour les siècles est
encore très simple...), il est possible de sauver les masques de recherche
pour usage ultérieur.
	Comme il peut être pratique de faire plusieurs recherches à la suite
pour mettre en forme un texte rapidement, il est possible d'avoir plusieurs
masques de recherche à la suite (la sauvegarde sauve alors l'ensemble).
	Application pratique : pour nettoyer un texte, il suffit de charger la
collection de masques de recherche appropriée (élimination des espaces
multiples, points multiples -> ..., mise en place des bons espaces avant/après
les ponctuations, - -> tiret ou trait d'union,... tout ce que l'on a eu le
courage ou l'occasion de préparer comme masque) puis de lancer la recherche et
hop, le travail est fait.

------- Ce qui manque

	Tout n'est pas rose, malheureusement. Essentiellement, le problème
vient des codes de style et des réglettes : la recherche dessus, et le
remplacement après, ne fonctionne que de façon soit très stricte, soit très
générale.
	Ainsi, on peut demander à chercher le style "fonte garamond, taille
10, noir, sans effet spécial" ou "n'importe quel style de texte", mais pas du
tout "tous les styles qui utilisent une fonte garamond". Même genre pour les
réglettes. Cela rend impossible, en particulier, la mise en italique
automatique - et, pour l'exemple des numéros de siècle, il faudrait deux
masques différents pour faire la mise en forme dans du texte normal ou dans
des notes par exemple. Ça complique l'utilisation...
	Autre inconvénient, mais moins grave parce qu'il est assez facile d'y
remédier, il n'est pas possible de chercher dans un texte et de stocker le
résultat dans un autre texte.
	Enfin, la recherche a tendance - pour autant que j'ai pu voir - à ne
pas ouvrir les codes de contrôle contenant d'autres textes, en particulier
donc les notes : il faut donc les ouvrir une à une après. D'après les auteurs
de la chose, c'est automatisable, mais je n'ai pas trouvé comment...

	Ce qui serait pas mal aussi, c'est de pouvoir appliquer une fonction à
un joker avant de le remplacer. Par exemple, faire un joker "tous chiffres" et
lui appliquer une fonction "convertir en chiffres romains".

-- 
                                Emmanuel CURIS
                                curis@xxxxxxxxxxxxxx

Page WWW: http://www.eleves.ens.fr:8080/home/curis/index.html