Présentation
Cet outil est une fonctionnalité du plugin Le Couteau Suisse que vous pouvez trouver ici : Le Couteau Suisse. Pour avoir accès aux corrections typographiques des exposants, il vous faut donc avoir préalablement installé ce plugin.
Ensuite, une fois l’outil Mises en exposant activé sur la page d’administration du plugin en espace privé, vous avez donc la possibilité d’améliorer automatiquement le rendu typographique des abréviations courantes, en mettant en exposant les éléments nécessaires.
Facile à activer ou désactiver, son utilisation est transparente pour les éditeurs. L’outil se sert du pipeline (ou « point d’entrée ») : post_typo
.
Abréviations concernées
Dans l’état actuel, ce plugin remplace (singuliers et pluriels) :
- Melle ou Mlle par : Mlle ;
- Mme par : Mme ;
- 1ier, 1ière, 1ère ou Iier, Iière, Ière par : 1er (masculin) et 1re (féminin) ou Ier et Ire (chiffres romains) ;
- 2ième, 2ème, 2me ou IIième, IIème, IIme (fonctionne aussi avec les autres chiffres) par : 2e et IIe (seules formes correctes) ; 2nd par : 2nd.
Dans certaines conditions précises (abréviations suivies d’un espace, d’un point ou d’un tiret simple), sont également remplacés :
- Dr et Pr par : Dr et Pr (au singulier uniquement)
Ici seront remplacées les expressions suivantes si elle sont suivies par un espace puis une majuscule :
- Me par : Me (Maître, au singulier uniquement)
D’autres expressions (au singulier et parfois au pluriel) sont encore remplacées :
- m², m2, m3 par : m2 et m3 ;
- Mgr par : Mgr (Monseigneur, au singulier uniquement)
- Mn(s) et Md(s) par : Mn(s) et Md(s)
(Million(s), Milliard(s))
- Vve par : Vve (Veuve, au singulier uniquement)
- Cie(s), Sté(s) et Ets par : Cie(s), Sté(s) et Éts (Compagnie(s), Société(s), Établissements)
- ro, vo 1o, 2o, etc. par : ro (recto), vo (verso), 1o (primo), 2o (secundo), etc.
Les éventuelles formes plurielles sont traitées (soit intégrées dans le cas de Mmes → Mmes, soit annulées dans le cas de 2es — et autres variantes erronées — qui reste 2e) et les abréviations obtenues sont conformes à celles indiquées dans l’article « Abréviations » du Lexique des règles typographiques en usage à l’Imprimerie nationale (presses de l’Imprimerie nationale, Paris, 2002).
Le cas de Monsieur, que l’on devrait, d’après l’Imprimerie nationale, abréger en M. et non Mr ou Mr, n’est pas pris en charge par un remplacement de Mr en M., afin que l’on puisse écrire l’abréviation de Mister, soit Mr (usage anglais) ou Mr. (usage américain), sans mise en exposant (de même que Mrs ou Mrs.).
Pour les utilisateurs moins scrupuleux des règles, le plugin permet d’outrepasser les recommandations officielles en activant l’option de configuration dédiée, permettant de mettre en exposant les raccourcis suivants :
- Bd par : Bd (Boulevard), Fg par : Fg (Faubourg)
- St(e)(s), Bx et Bse(s) par : St(e)(s), Bx et Bse(s) (abréviations suivies d’un espace, d’un point ou d’un tiret simple)
Technique
Le remplacement de 1ers se traduit par le code HTML suivant :
1<sup class="typo_exposants">ers</sup>
Afin de lever toute ambiguïté, la balise <sup> (de classe "typo_exposants" ou non) est stylée comme ceci dans le fichier « config_outils.php » :
sup, sup.typo_exposants {
font-size:78%;
font-variant:inherit;
vertical-align:23%;
}
Ceci dit, d’autres styles sont possibles, comme :
sup, sup.typo_exposants {
top: -0.5em;
vertical-align: baseline;
position: relative;
}
Ce code suit les travaux et observations de frdm développés dans le forum ci-dessous.
Notes :
- Cette fonctionnalité sur les exposants ne fonctionne pour l’instant que sur les textes français, mais d’autres langues peuvent être intégrées facilement dans le fichier outils/typo_exposants.php.
- Les textes anglais bénéficient d’une mise en exposant des nombres ordinaux : 1st, 2nd, 3rd, 4th, etc.
- Le texte situé entre les balises <html> et </html>, <code> et </code>, <cadre> et </cadre>, <frame> et </frame>, <script> et </script>, <acronym> et </acronym>, <cite> et </cite> ou <math> et </math> est protégé : aucune modification d’exposant n’y sera faite.
- De la même façon, toutes les balises HTML contenant elles-même des guillemets (comme : <div id="mon_id">
) sont bien sûr protégées afin d’éviter tout remplacement intempestif du code.
- Cas des RSS. Pour éviter que les flux RSS ne recoivent des textes du genre "3<sup class="typo_exposants">e</sup> tour
", le filtre supprimer_tags pourra vous aider. Voici un exemple de code à utiliser dans vos squelettes backend :
[(#TITRE|supprimer_tags|supprimer_numero|texte_backend)]
. Ici, "2ème« sera bien remplacé par »2e", mais sans balise HTML.
Pour les spécialistes :
- Le pipeline utilisé est : post_typo
- Le fichier inclus est : outils/typo_exposants.php
Améliorations possibles
D’autres remplacements sont faciles à mettre en place : il faut pour cela connaître les expressions régulières et les ajouter au fichier outils/typo_exposants.php
.
Il serait possible un paramétrage sur l’interface de gestion privée permettant de choisir quels remplacements activer ou non.
Débat
Suite à une conversation de forum avec Jean-Christophe, je retranscris ici quelques remarques.
Un petit rappel : Le Couteau Suisse met à votre disposition une page de test accessible en partie privée grâce à l’url : ecrire/?exec=test_couteau_suisse
Les chiffres romains
Les petits chiffres romains (I, V & X) sont pris en compte, mais le cas de « Ire » ou « Ires » a été volontairement laissé pour cause de performance (les regexpr risquent de gonfler) et de confusion avec « Irez-vous » par exemple. Les chiffres romains s’emploient-ils si souvent au féminin ?
Quant aux 50, 100, 500 & 1000 (L, C, D & M), c’est un peu pareil. comment distinguer l’article « Le » de 50e : « Le » ? Je me disais que les chiffres romains s’emploient le plus souvent pour les siècles et qu’on était tranquille au moins jusque 21...
Ici doit-on choisir quelles sont les limites d’usage afin de ne pas grever les performances pour quelques cas particuliers, inusités la plupart du temps. Je veux bien ouvrir le débat.
Discussions par date d’activité
27 discussions
Et donc, « 2es » ne donne ni « 2^mes » ni « 2^me » mais bien « 2^es ». Ça me semble correct, non ?
Oups, erreur de ma part : « 2^mes » devrait donner « 2^e » ou « 2^es ». Je ne trouve, ni chez Lacroux ni dans l’IN, aucune référence à une mise au pluriel des ordinaux.
Répondre à ce message
Bonjour,
Le plugin s’occupe mal de saint et sainte. En effet, d’après l’Imprimerie française (Lexique des règles typographiques en usage à l’Imprimerie nationale) et Lacroux (Orthotypographie), ces deux mots ne peuvent être abrégés que dans le cas de noms propres (et, précise l’IN, qu’exceptionnellement ; pour Lacroux, toute abréviation est proscrite, sauf pour les toponymes en cas de manque de place — sur une carte ou un calendrier par exemple). Du reste, la forme abrégée — qui reste donc rarissime — se fait sans mise en exposant (St, Sts, Ste et Stes).
Lacroux cite les formes « St-Étienne » ou « St-Simon » comme des « fautes graves » ou des « graphies monstrueuses ».
Il faudrait donc désactiver ces modifications.
OK alors. Ne faudrait-il pas vérifier aussi les autres abréviations comme : Éts, Sté, bd ou fg ?
Je te laisse déposer ses corrections sur la zone ?
Pendant que j’y suis, je pensais ajouter à ce plugin la possibilité d’un raccourci rapide pour les exposants, du genre : « pouce^2 » pour « pouce2 ».
Si on étend aux indices ou si on accepte les expressions compliquées, pkoi pas : « pouce[^2] » et « H[2^]O » (ou « H[_2]O » ?) pour « pouce2 » et pour H2O...
Au lieu des crochets, peut-être des parenthèses...
Qu’en penses-tu ?
Bonjour,
En effet, il faudrait vérifier les autres abréviations. Ce qui personnellement m’a fait réagir, c’est « bd » et « fg » écrits avec la 2e lettre en lettre supérieure.
Concernant les abréviations par retranchement médian (c’est-à-dire conservant la première et la dernière lettre), Lacroux explique que les lettres supérieures sont nécessaires dans les abréviations qui peuvent être « lues au long » (no pour numéro, ro pour recto, Me pour maître, etc.). Pour les abréviations qui ne peuvent pas être lues au long, comme les quatre que tu cites, les lettres supérieures sont facultatives mais très recommandées après une majuscule initiale (Mlle) ; en revanche elles sont en principe proscrites s’il n’y a pas de majuscule initiale (bd ou fg).
Je le cite : « bd ou fg sont à la fois fautifs, cohérents et séduisants. »
Pour info, pour « boulevard » il donne comme abréviations possibles « bd » et « boul. », et pour « faubourg » il donne « fg » et « faub. ». Bien entendu, l’abréviation dans ce cas n’est jamais nécessaire.
Que c’est une bonne idée.
Le Lexique des règles typos donne bien « Éts » mais ne mentionne pas « Sté ». Lacroux donne « Éts » ou « Éts » et ne parle pas de « Sté ».
J’ajoute que les pluriels « D^rs », « P^rs », « M^es » et « V^ves » ne sont pas acceptés par Lacroux (qui ne cite que « M^lles », « M^mes », « MM. », « RR. PP. », « LL. AA. SS. », « f^os » et « sqq. ») et que « P^r », « V^ve », « M^n » et « M^d » ne sont pas non plus attestés, ni chez Lacroux ni dans le LRTUIN.
Je n’ai pas le temps, actuellement, d’opérer les modifications et de les mettre en ligne sur la zone.
OK, je viens de modifier l’article et de supprimer les pluriels : « D^rs », « P^rs », « M^es » et « V^ves ».
A voir donc quoi décider pour les autres raccourcis...
Je suis en train d’analyser en détail les modifications effectuées et de les comparer aux règles orthotypographiques courantes (dans le cadre d’un dossier en traitement automatisé des langues). Il y a encore d’autres erreurs, que je communiquerai dans quelques temps. Par exemple, « 2es » (et toute la clique) ne devrait pas donner « 2^mes » mais « 2^me ».
OK. Il existe un fichier de test qui analyse quelque cas :
/ecrire/?exec=test_couteau_suisse
Aujourd’hui, « 2e, 3e, 4e, 5es, 6es, 7es » donne : « 2^e, 3^e, 4^e, 5^es, 6^es, 7^es »
Répondre à ce message
Petit retour avec la dernière version du plugin :
le code source de ma boucle :
[code]
(#TITRE
[/code]
donne :
[code]
e tour « > Election municipale - Résultats du 2e tour
[/code]
Ce qui donne à l’écran :
e tour »> Election municipale - Résultats du 2e tour
Lorsque je désactive la lame exposant typographique l’affichage est plus compréhensible :
Election municipale - Résultats du 2e tour
... même si l’abréviation n’est pas correcte.
à part ça le couteau suisse c’est génial ! je m’en vais tester de ce pas les jolis coins..
Il faut que tu utilises la balise <code></code> pour tes exemples, là c’est pas compréhensible...
En tout cas, ta syntaxe :
<a title="#TITRE">
est dangeureuse car #TITRE passe par les fonctions de typographie et peut contenir des exposants. De plus une présence de guillemets mettrait ton code en défaut.Mets plutot :
#TITRE*
ou[(#TITRE|textebrut|attribut_html)]
...C’est peut-être ça l’erreur à toi de vérifier..
Répondre à ce message
oui oui, j’ai bien lu en FR uniquement
bon mais j’ai un site bilingue donc je cherche à modifier le code pour
- soit utiliser uniquement les fonctions multilingues m2, m3 (au passage j’ai ajouté une class sub pour CO2 NH4 etc)
- soit dupliquer texte_exposants_fr en texte_exposants_nl, y supprimer les corrections inutiles
j’essaie la 2e possibilité en ajoutant
avant le break mais ça ne fonctionne toujours qu’en FR
y-a-t’il d’autres scripts à modifier ?
merci d’avance
tiens je vois que spip-contrib n’utilise pas la fonction ;-)
oups
j’ai même été présomptueux, ça marche pour CO2 mais pas pour NH4 ( qui devient CO2)
là ça me dépasse, je crois que je vais trouver une solution css plus basique
Pour les formules chimiques, oui, c’est très intéressant de creuser l’idée et de penser à une intégration au Couteau Suisse. Pourrais-tu faire une liste de tous ces éléments, ou donner une page qui les recence ?
Pour le code php, c’est simple, il suffit de les ajouter (un par un dans un premier temps) dans le tableau $trouve sous la forme
'/\b(NH)(4)\b/', '/\b(CO)(2)\b/'
, puis de compléter $remplace avec :_TYPO_Dsup, _TYPO_Dsup
En ce qui concerne la langue, je ne sais pas exactement ce que fait SPIP, il faudrait gratter son code... Ce que je vois là, c’est qu’il semble que typo_exposants prends la langue de l’objet s’il la trouve, sinon la langue du site...
A titre d’info, la langue anglaise vient d’être mise en place (pour 1st, 2d, 3rd, etc.). Si ça t’ouvre des pistes...
Répondre à ce message
Merci pour ce service de correction typographique bien utile, cependant cet affichage d’exposant augmente la hauteur de ligne même si elle est précisée dans la feuille de style en em. Un décalage apparaît donc entre les lignes avec exposant et celle sans.
Tu peux essayer d’éviter cela en mettant ce style :
Répondre à ce message
Bonjour
plugin très intéressant pour corriger quelques fautes typographiques de mes rédacteurs ou de moi-même ;-)
Mais ça ne marche pas pour 1re ou 2e ?
Comme il s’agit d’un site de collège, c’est le genre d’erreurs qui risque d’arriver assez fréquemment.
(Je teste en 1.9.2)
normalement, si... tu as un lien public ? dans quel charset est réalisé ton site ?
Je suis encore en phase de tests donc pas en ligne.
Le site est en utf-8
Les autres corrections fonctionnent-elles ? le texte est-il tapé au clavier ? ou copié/collé ? Le squelette est-il celui de SPIP ?
Les autres corrections que j’ai testé oui (Mme Mmes Mlle m2 m3 1er) mais pas 2e ou 1re
J’ai tapé au clavier en passant par « crayons » ou en passant par l’interface SPIP.
Et le squelette est un squelette perso basé sur une ancienne version de DURZY mais complètement recodé (j’ai juste gardé l’aspect graphique) visible sous spip 1.9.1 ici
Il y a sans doute un pb avec les accents. en tapant l’url
ecrire/?exec=test_couteau_suisse
, remarques-tu des anomalies, notamment au paragraphe 9 ?Je viens de procéder à quelques aménagements du code. La version 1.7.17.00 du plugin règle-t-elle le problème ?
Je viens de regarder la page test du couteau suisse et oui j’ai quelques erreurs mais peu : STe, XLe L�me LIe, ainsi que le deuxième test sur le lien
Mais le reste fonctionne ; étonnant d’ailleurs que 3e, 4e soient corrigés alors que Lème donne L�me ?
Bon je teste la toute dernière version.
C’est nettement mieux avec cette dernière mouture. J’ai encore Ire et Dr(s) ou Pr(s) qui ne sont pas corrigés.
Dans la page test du couteau, j’ai les mêmes erreurs qu’avant sauf que l’encodage smble différent Lème est devenu Lème, en revanche le ? est redevenu è, autrement dit Lème est corrigé par Lème
L’affichage des $texte[xx] comportait un bug d’affichage : le test sur ’Lème’ correspond bien à ’Lème’. Je viens de mettre à jour le plugin, tout en explicitant mieux les exemples.
Je ne vois aucun pb avec les Dr(s) ou Pr(s) chez moi...
Le cas de Ire ou Ires a été volontairement laissé pour cause de performance (les regexpr risquent de gonfler) et de risque avec ’Irez-vous’ par exemple. Les chiffres romains s’emploient-ils si souvent au féminin ?
Quant au 50 (L), c’est pareil. comment distinguer l’article ’Le’ de 50e : ’Le’ ? Je me disais que les chiffres romains s’emploient le plus souvent pour les siècles, non ?
Ici doit-on choisir quelles sont les limites d’usage afin de ne pas grever les performances pour quelques cas particuliers, inusités la plupart du temps. Je veux bien ouvrir le débat.
Tout à fait d’accord avec toi mais je m’appuyais sur les exemples de la page de test.
En ce qui me concerne, les corrections qui fonctionnent suffisent amplement à mon bonheur.
Merci pour ce plugin et merci d’avoir solutionné mon petit problème.
Comme j’avais d’autres soucis, j’ai tout réinstallé bien propre et ... tout fonctionne.
Juste une dernière remarque 3e (pas d’accent) n’est pas pris en compte.
Une raison ?
non pas de raison a priori. je viens de mettre à jour les regexpr, merci.
Répondre à ce message
Ce module (j’utilise en fait la dernière version du couteau suisse) modifie malheureusement l’attribut « title= » de mes balises A qui reprennent les chapeaux de mes articles, ce qui a pour effet de casser le code pour la plupart des mises en pages.
Bonjour et merci pour ce retour d’expérience. Effectivement, l’intérieur des balises
<a>
n’étaient pas protégé. C’est maintenant chose faite (uniquement pour les balises en minuscules, par convention HTML) dans la version 1.7.2.13 du plugin.J’ai installé la Version : 1.7.7.05 | stable et je rencontre deux problèmes avec la mise en exposant, à chaque fois l’affichage est « explosé » :
1) dans un lien de type
<a href="mailto:#DESCRIPTIF">
avec une balise #DESCRIPTIF qui dans un article contient un email du type 2e-XXX.2) le titre de la rubrique, qui est aussi titre de la page, contient lui-même un caractère du type 1er
Que faire (sauf à virer l’option exposant du couteau suisse qui par ailleurs me donne satisfaction) ? Merci d’avance.
1. Ton utilisation très spécifique de la balise #DESCRIPTIF peut être résolu en utilisant la balise étoilée : #DESCRIPTIF* , donc non concernée par les traitements.
2. Quel est ton code HTML ? peut-être ce n’est qu’une question de CSS. Un lien à montrer ?
La balise étoilée résout parfaitement le problème. Un grand merci !
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |