Regex orthotypo sur libreoffice

On se servira des regex pour ne rien rater et on peut choisir la méthode : soit on corrige à la main et on peut chercher tous les cas a priori « défaillant », soit on cherche cas par cas avec un remplacement près à l’emploi a appliquer quand nécessaire.
L’idéal étant de ne jamais tout remplacer automatiquement mais de cliquer sur suivant et juger si le cas nécessite une correction. Tout remplacer à grande chance de supprimer ce qui serait intentionnel.

Notes :

Disposition de clavier

Certains caractères nécessaires à l’écriture du français sont absents des clavier azerty. Il est cependant possible de changer de disposition de clavier afin d’y avoir accès et le conseille vivement !

En principe (pas vérifié sur d’autres systèmes que Linux mais cela doit être possible) il suffit d’aller dans les paramètres système dédiés au clavier et changer la disposition, ou en ligne de commande sur linux : setxkbmap -layout fr -variant oss.

On aura alors accès à ces caractères par exemple :
espace fine insécable <==> AltGr+v
espace insécable   <==> Shift+AltGr+Space
« <==> AltGr+w
» <==> AltGr+x
<==> Shift+AltGr+,
<==> Shift+AltGr+'

Il y a moult autres caractères indispensables dont certaines lettres, accentuations et ponctuations pour d’autres langues :
“ ” ¿ × ⋅ ÷ ¡ − – ≠ ± ē ễ æ œ „ ß ‘ ’

Expressions régulières

Il peut être intéressant d’aller voir comment fonctionnent les opérateurs de base des regex auxquelles on peut rajouter celles-ci :

Caractères inutiles ou redondants

méthode 1 :

\.{2,}|\s\.|\s{2,}|^\s+

méthode 2 :

\.{2,} ==> || .
série de 2 points ou plus : remplacer par des points de suspension ou supprimer les points excédentaires.

\s([.,]) ==> $1
point ou virgule précédés d’une espace : supprimer l’espace.

\s… ==>
points de suspension précédés d’une espace : supprimer l’espace si points en fin d’énonciation, si les points indique une reprise il faudra remplacer l’espace suivant les points de suspension par une espace insécable.

\s{2,} ==>
série de 2 espaces ou plus : remplacer par une seule espace.

^\s+ ==> rien
paragraphe commençant par une ou plusieurs espaces : on peut probablement remplacer automatiquement par un vide.

Divers

\w$ ==> ???
paragraphe sans ponctuation finale : voir avec les coupables.

==>
tiret demi-quadratin : remplacer par un tiret quadratin à moins d’être dans une composition serrée.

' ==>
patte de mouche : remplacer par une vraie apostrophe.

(?! )\setc. ==>  etc.
etc. précédé d’une espace autre qu’insécable : remplacer l’espace par une espace insécable (rèf partie 4.).

[!?.,:;»>…—–]\S
ponctuations n’étant pas suivies d’une espace : permet de vérifier s’il ne manque pas une espace ainsi que le bon enchaînement de multiples ponctuation type !?, … ?, !…, —,, etc.

\S[«<]
ponctuations n’étant pas précédée d’une espace : ajouter une espace si besoin

Avec AltSearch rechercher style de caractère Appel de note [z] : ajouter ou remplacer l’espace par une espace fine.

Si l’on souhaite utiliser le style anglais qui supprime le premier alinéa d’un paragraphe précédé d’une ligne blanche on peut utiliser la regex \p{2,}^.* dans AltSearch. Je n’ai pas trouvé de manière moins rébarbative que de rechercher le suivant, cliquer dans le dit paragraphe, appliquer le style et ainsi de suite… Mais on peut en profiter pour supprimer les sauts de ligne excédentaires.

Espaces fines

méthode 2 :

(?! )\s([?!;]) ==>  $1 (espace fine + caractère capturé)
ponctuations hautes précédées par n’importe quelle espace autre que fine : remplacer l’espace par une espace fine.

(\w)([?!;]) ==> $1 $2 (capture1 + espace fine + capture2)
ponctuations hautes précédées par une lettre : insérer une espace fine entre le caractère et la ponctuation.

Espaces insécables

Selon la composition et l’envie, on peut décider d’insérer une espace fine après des guillemets ouvrantes et avant des guillemets fermantes plutôt que des espaces insécable comme c’est le cas ici.

(«)(?! )\s ==> $1  (capture1 + espace insécable)
guillemets ouvrante suivi d’une espace autre qu’une espace insécable.

(«)(\S) ==> $1 $2 (capture1 + espace insécable + capture2)
guillemets ouvrante suivi d’un caractère qui n’est pas une espace

(?! )\s([»:]) ==>  $1 (espace insécable + capture1)
guillemets fermantes ou deux-points précédées d’une espace autre qu’une espace insécable : remplacer l’espace par une espace insécable.

(\S)([»:]) ==> $1 $2 (capture1 + espace insécable + capture2)
guillemets fermantes ou deux-points précédés d’un caractère qui n’est pas une espace : insérer une espace insécable entre les deux.

^—(?! )\s ==> —  (tiret quadratin + espace insécable)
tiret cadratin en tout début d’alinéa (dialogue) suivie d’une espace autre qu’insécable : remplacer l’espace par une espace insécable.