Index: gc_lang/fr/rules.grx ================================================================== --- gc_lang/fr/rules.grx +++ gc_lang/fr/rules.grx @@ -542,54 +542,10 @@ TEST: __html__ des {{homme}} TEST: __html__ des [b]{{femme}}[/b] - -!! -!! -!!!! Cohérence des guillemets -!! -!! - -__/typo(typo_cohérence_guillemets1)__ - («)[^»“]+?(”) @@0,$ - <<- not before(r"\w$") -1>> “ # Guillemet ouvrant différent du guillemet fermant (”). - <<- not after(r"^\w") -2>> " »" # Guillemet fermant différent du guillemet ouvrant («). -__/typo(typo_cohérence_guillemets2)__ - (“)[^”«]+?(») @@0,$ - <<- not before(r"\w$") -1>> "« " # Guillemet ouvrant différent du guillemet fermant (»). - <<- not after(r"^\w") -2>> ” # Guillemet fermant différent du guillemet ouvrant (“). -__/typo(typo_cohérence_guillemets3)__ - (“)[^”’“«]+?(’)(?!\w) @@0,$ - <<- not before(r"\w$") -1>> "‘" # Guillemet ouvrant différent du guillemet fermant (’). - <<- -2>> ” # Guillemet fermant différent du guillemet ouvrant (“). -__/typo(typo_cohérence_guillemets4)__ - (‘)[^’“«]+?(”) @@0,$ - <<- not before(r"\w$") -1>> "“" # Guillemet ouvrant différent du guillemet fermant (”). - <<- not after(r"^\w") -2>> ’ # Guillemet fermant différent du guillemet ouvrant (‘). - -TEST: C’est {{«}}stupide{{”}}. -TEST: Quel {{“}}emmerdeur{{»}}, ce gars-là. -TEST: Tu sais, {{‘}}ton ami{{”}} est venu. -TEST: Oui, je vois, mais c’est quand même un {{“}}salopard{{’}}. -TEST: « Je suis là. -TEST: — Oui, nous t’avons vu arriver. » -TEST: « J’en suis “malade”. » - - -__[i]/typo(typo_guillemets_ouvrants_non_fermés)__ - (“)\w[^”"»]+$ @@0 - <<- -1>> _ # Guillemets fermants introuvables dans la suite du paragraphe. -__[i]/typo(typo_guillemets_fermants_non_ouverts)__ - ^[^“„«"]+\w(”) @@$ - <<- -1>> _ # Guillemets ouvrants introuvables dans ce paragraphe. - -TEST: C’était mon affaire{{”}}. -TEST: C’est {{“}}compliqué. - - !! !! !!!! Écritures épicènes dystypographiques !! @@ -1012,10 +968,66 @@ __[s]/chim(chim_molécules)__ (?:Ca(?:CO3|SO4)|CO2|(?:H2|Na2)(?:CO3|O|SO4)|[HNO]2|HNO3|Fe2O3|KMnO4|NO2|SiO2|SO[23]) <<- ->> =\0.replace("2", "₂").replace("3", "₃").replace("4", "₄") # Typographie des composés chimiques. [!] TEST: __chim__ les molécules {{CaCO3}} et {{H2O}}… + + + +!!!! Cohérence des guillemets + +__/typo(typo_cohérence_guillemets_chevrons_ouvrants)__ + («)[^»“]+?(”) @@0,$ + <<- not before(r"\w$") -1>> “ # Guillemet ouvrant différent du guillemet fermant (”). + <<- not after(r"^\w") -2>> " »" # Guillemet fermant différent du guillemet ouvrant («). +__/typo(typo_cohérence_guillemets_chevrons_fermants)__ + (“)[^”«]+?(») @@0,$ + <<- not before(r"\w$") -1>> "« " # Guillemet ouvrant différent du guillemet fermant (»). + <<- not after(r"^\w") -2>> ” # Guillemet fermant différent du guillemet ouvrant (“). + +TEST: C’est {{«}}stupide{{”}}. +TEST: Quel {{“}}emmerdeur{{»}}, ce gars-là. + + +__/typo(typo_cohérence_guillemets_doubles_ouvrants)__ + (“)[^”’“«]+?(’)(?!\w) @@0,$ + <<- not before(r"\w$") -1>> "‘" # Guillemet ouvrant différent du guillemet fermant (’). + <<- -2>> ” # Guillemet fermant différent du guillemet ouvrant (“). +__/typo(typo_cohérence_guillemets_doubles_fermants)__ + (‘)[^’“«]+?(”) @@0,$ + <<- not before(r"\w$") -1>> "“" # Guillemet ouvrant différent du guillemet fermant (”). + <<- not after(r"^\w") -2>> ’ # Guillemet fermant différent du guillemet ouvrant (‘). + +TEST: Tu sais, {{‘}}ton ami{{”}} est venu. +TEST: Oui, je vois, mais c’est quand même un {{“}}salopard{{’}}. + + +__[i]/typo(typo_guillemets_doubles_ouvrants_non_fermés)__ + (“)\w[^”"»]+$ @@0 + <<- -1>> _ # Guillemets fermants introuvables dans la suite du paragraphe. +__[i]/typo(typo_guillemets_doubles_fermants_non_ouverts)__ + ^[^“„«"]+\w(”) @@$ + <<- -1>> _ # Guillemets ouvrants introuvables dans ce paragraphe. + +TEST: C’était mon affaire{{”}}. +TEST: C’est {{“}}compliqué. + + +__[i]/typo(typo_guillemet_simple_ouvrant_non_fermé)__ + (‘)\w\w[^’']+$ @@0 + <<- before(r" $") or isStart() -1>> _ # Guillemet fermant introuvable dans la suite du paragraphe. +__[i]/typo(typo_guillemet_simple_fermant_non_ouvert)__ + ^[^‘']+\w\w(’) @@$ + <<- after("^ ") or isEnd() -1>> _ # Guillemet ouvrant introuvable dans ce paragraphe. + +TEST: ce {{‘}}test ne finira jamais. +TEST: ces actions ne représentent rien{{’}} pour moi. + +TEST: « Je suis là. +TEST: — Oui, nous t’avons vu arriver. » +TEST: « J’en suis “malade”. » + !!!! Espaces insécables avant unités de mesure __[s]/unit(unit_nbsp_avant_unités1)__