Correction typographique des guillemets

Ce plugin remplace les paires de guillemets droits (ou « chiures de mouches »), c’est-à-dire ‹"›, par les guillemets typographiques (« », “”, etc.), lesquels dépendent de la langue dans laquelle on rédige.

Ce plugin remplace les paires de guillemets droits (ou « chiures de mouches »), c’est-à-dire ‹"›, par les guillemets typographiques (« », “”, etc.), lesquels dépendent de la langue dans laquelle on rédige.

Cette fonctionnalité est également reprise dans le plugin Ortho-typographie plus complet que l’on préfèrera utiliser.

Présentation

Tous les claviers ne permettent pas de taper directement les guillemets : en effet, la touche <"> [1] n’insère pas un guillemet mais un symbole utilisé en informatique ; ce symbole, dans les textes en langues naturelles [2], doit être remplacé par les guillemets typographiques voulus par la langue dans laquelle on rédige. Ainsi, en français de France, les guillemets sont représentés par <« > pour l’ouvrant et < »> pour le fermant et en anglais par <“> et <”>.

En aucun cas <"> ne devrait, dans une bonne typographie, être employé : son principal défaut (outre sa forme droite) est en effet qu’il ne permet pas de distinguer le début et la fin d’une citation. Or, l’œil, déjà peu habitué à la lecture verticale qu’imposent les écrans, se repère mal lorsque les citations dépassent les quelques mots. Le confort de lecture est ainsi gêné.

L’absence des guillemets sur certains claviers informatiques [3] a cependant conduit de nombreux rédacteurs à ignorer ces règles autant typographiques que visuelles. De plus, rares sont les rédacteurs actuels à posséder des connaissances typographiques.

SPIP, pour pallier cette absence, propose un bouton permettant de mettre des mots sélectionnés entre guillemets. Ce bouton n’est cependant pas accessible pour tous les champs de saisie (ainsi, il n’y a pas de barre d’insertion de caractères spéciaux pour les rubriques) et de nombreux rédacteurs, par méconnaissance de la typographie ou par « paresse », ne s’en servent pas. D’autre part, s’il existe des raccourcis claviers pour entrer les guillemets à la main (dépendant du système d’exploitation utilisé), il est parfois fastidieux de les utiliser [4].

Ce plugin permet donc de remplacer automatiquement les guillemets droits par les guillemets corrects, et ce de manière transparente pour le rédacteur, de la même manière que les apostrophes droites <'> sont remplacées par les apostrophes courbes <’> ou que les espaces insécables sont introduites automatiquement devant les ponctuations hautes (< ?! : ;>). Il va de soi que le texte entre les balises <code> et <cadre> n’est pas touché.

Fonctionnement

Le fichier le plus important est typo_guillemets_fonctions.php. Il contient une fonction qui :

  1. Vérifie la langue dans laquelle effectuer le remplacement ;
  2. Échappe dans un premier temps les guillemets à ne pas toucher (ceux à l’intérieur de balises HTML) ;
  3. Remplace les paires de guillemets restantes par la version voulue selon les règles typographiques de la langue de composition (et supprime éventuellement l’espace après le guillemet ouvrant et celle avant le fermant : " mot ") ;
  4. Restitue les guillemets échappés.

Le plugin n’agit qu’à partir du pipeline post_typo : le texte original n’est donc pas touché. Seul l’affichage l’est.

Voici quelques exemples, selon la langue concernée :

  • "français" → « français » ;
  • "hongrois" → „hongrois” ;
  • "anglais" → “anglais” ;
  • "danois" → »danois« ;
  • "bulgare" → „bulgare“.

De plus, depuis la version 1.2 ce plugin guillemette correctement la balise HTML <q>, en CSS, sur les navigateurs modernes, selon la langue de composition et en tenant compte des imbrications (cf. : fichier typo_guillemets.css).

Limitations

Pour l’instant, ce plugin ne gère pas le remplacement les guillemets de second rang, c’est-à-dire ceux qu’on emploie dans un texte déjà guillemeté. Ainsi, en typographie française :

« Il dit : “Bonjour” »
« Il dit : “Bonjour” d’une voix chevrotante »

ou, d’après la marche typographique de l’Imprimerie nationale :

« Il dit : « Bonjour » [5]
« Il dit « Bonjour » d’une voix chevrotante ».

Dans tous les cas, des guillemets droits enchâssés seront mal rendus. Par exemple, "Il dit : "Bonjour" d'une voix chevrotante." sera rendu par :

« Il dit : »Bonjour« d’une voix chevrotante. »

Par contre, depuis la version 1.2, l’emploi de la balise HTML <q> dédiée aux citations en ligne sera correctement guillemetée par ce plugin, en respect de la langue de composition. Par exemple, <q>Il dit : <q>Bonjour</q> d'une voix chevrotante et Ursula lui répond enjouée : <q lang="de">Guten Tag!</q></q> sera rendu par :

« Il dit : “Bonjour” d’une voix chevrotante » et Ursula lui répond enjouée : >Guten Tag !< »

De plus, depuis la version 1.1, Les liens automatiques [->1] vers des articles dont le titre contient des « guillemets français » passent en guillemets “de second niveau”.

Notes

[1Ou « chiures de mouche » en jargon typographique. Cf. cette page.

[2Français, anglais, catalan, basque, etc.

[3Héritée du temps des machines à écrire, où, par économie de place, une seule touche avait été consacrée aux deux formes du guillemet.

[4Quand ce n’est tout bonnement pas impossible de le faire : sous MS Windows et Firefox, entrer les caractères étendus au moyen d’ALT suivi du code voulu conduit le navigateur, en raison de l’existence de touches d’accès rapides propres à SPIP, à quitter la page en cours.

[5Le guillemet fermant de premier rang est absorbé par le fermant de second rang, les deux ayant la même forme : « Il dit : « Bonjour » » n’est donc pas admis.

Discussion

8 discussions

  • 4

    pour information, la correction automatique ne s’applique pas à l’intérieur des notes de bas de page :

    [["dd"]]

    Répondre à ce message

  • Merci pour ce formidable plugin. Petite question : ce n’est pas très clair dans la description si le plugin insère un espace insécable après les guillemets ouvrants par exemple ?

    Répondre à ce message

  • 2

    Question : y a-t-il une quelconque différence entre ce plugin et son homonyme du même auteur disponible avec le couteau suisse ?

    • A priori, la tâche centrale est la même, pas de différence majeure. Les codes sont très proches.

    • Merci c’est bon à savoir

    Répondre à ce message

  • 1

    Depuis la mise à jour en 1.5 j’ai le message d’erreur suivant dans l’espace privé : « Erreur dans les plugins : /var/alternc/html/q/quefaire/plugins/auto/typo_guillemets/typo_guillemets_pipelines.php ».

    Répondre à ce message

  • 1

    J’ai observé un phénomène étrange en SPIP 2.1.8 avec la version 1.3 du plugin : si une des citations dans le texte est correctement « guillemetée » mais pas "les autres", alors le remplacement des guillemets ne se fait pas.

    • Ici j’ai saisi des guillemets droits seulement et tout est ok :

      J’ai observé un phénomène étrange en SPIP 2.1.8 avec la version 1.3 du plugin : si une des citations dans le texte est correctement « guillemetée » mais pas « les autres », alors le remplacement des guillemets ne se fait pas.

      Dans le commentaire précédent j’avais saisi des guillemets typographiques sur le premier mot et des guillemets droits sur le second.

    Répondre à ce message

  • 2

    Dans la version 1.1 j’ai fait deux modifications :

    1) lorsque le texte contient déjà des guillemets élaborés, on ne fait rien ; ça permet de ne pas déformer un texte écrit par exemple sous la forme

    « -- "Bonjour", dit-il », c'est banal

    2) Lorsqu’un lien automatique pointe sur un article dont le titre contient des « guillemets français », on les trnsforme directement en guills de “second niveau”, ceci afin de gérer l’écriture suivante :

    «[->1]»

    Je pense qu’on peut faire encore mieux, à suivre peut-être si quelqu’un en a le courage :-)

    • Il semble que cette modification ait entraîné d’étranges comportements : apparition de caractères bizarres, « ��Z », par endroits, en particulier dans les notes de bas de page du site public, mais aussi en certains endroits de l’espace privé, avec « disparition » de certaines pages, dont le contenu n’est plus visible qu’en mode édition...
      Tout rentre dans l’ordre lorsque le plugin est désactivé.

    • Pour avoir une chance de débug, il faudrait des infos plus précises.

    Répondre à ce message

  • 1

    Ce plugin me réjouit grandement !

    Je me propose de le compléter par des styles CSS des balises de citation, <q> notamment (cf. Des citations bien balisées), lesquels s’ajusteraient selon la langue et laes imbrications. C’est toujours bon à prendre, non ?

    Répondre à ce message

  • 2

    L’absence des guillemets sur les claviers a cependant conduit de nombreux rédacteurs à ignorer ces règles autant typographiques que visuelles. De plus, rares sont les rédacteurs actuels à posséder des connaissances typographiques.

    Les rédacteurs de Spip-contrib ne dérogeant pas à ce triste constat, ce plugin vient d’être mis en service sur le site, et semble bien fonctionner .... Merci Vincent

    • Quel succès ! Mais il me semble qu’il faudrait bien vérifier que ce plugin ne génère pas de bogues d’affichage. Pour l’instant, il n’a été testé que sur un seul site dans ses seuls squelettes.

      Noter cependant que j’ai simulé le plus de situations possibles, avec des balises SPIP entremêlées, des guilles à l’intérieur / à l’extérieur des balises, des guilles qui se promènent n’importe où...

      Bref, j’ai mis le plugin comme stable mais on n’est pas à l’abri de problèmes qui n’auraient pas encore été rendus visibles.

    • Je viens justement d’en voir un : dans des textes en arabe, les guillemets remplacés automatiquement autour de mots écrits dans l’alphabet latin sont inversés. Je pense qu’il s’agit là d’un problème d’orientation du texte propre à Unicode.

      On peut voir ce que cela donne .

      Un test (en <multi>) :
      français : « livre », « كتاب ».

    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