Mises en exposant

... ou correction typographique des abréviations courantes

Cet outil du Couteau Suisse améliore le rendu typographique des abréviations courantes, en mettant en exposant les éléments nécessaires (ainsi, Mme devient Mme) et en corrigeant les erreurs courantes (2ème ou 2me, par exemple, deviennent 2e, seule abréviation correcte).

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. Il se base sur les remplacements par expressions régulières précédemment publiés ici par Raphaël Meyssen.

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 :
-  , 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 MmesMmes, 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.

Les abréviations, dans cet article, sont mises en italique parce qu’elles sont citées (cas d’autonymie). Il va de soi que le plugin ne les met pas en italique dans le corps du texte.

Le logo a été créé sous GIMP au moyen d’une image publiée sous licence GFDL par Matthias Kabel pour Wikimedia Commons. Consulter cette page pour plus de détails.

Discussion

27 discussions

  • 1

    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

  • 6

    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, S, 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 ?

    • Olivier Miakinen

      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.

    • 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 (...)

      Que c’est une bonne idée.

      Le Lexique des règles typos donne bien « Éts » mais ne mentionne pas « S ». Lacroux donne « Éts » ou « Éts » et ne parle pas de « S ».

      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

  • 1

    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

  • 3
    Eric Luyckx

    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

    case 'nl':
    $texte = cs_echappe_balises('html|code|cadre|frame|script|acronym|cite', 'typo_exposants_nl', $texte);

    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 ;-)

    • Eric Luyckx

      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

  • 1

    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.

    Répondre à ce message

  • 12
    J Christophe

    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 ?

    • J Christophe

      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 ?

    • J Christophe

      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 ?

    • J Christophe

      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.

    • J Christophe

      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.

    • J Christophe

      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.

    • J Christophe

      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

  • 4
    Thibault

    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 :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

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.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom