Cherchant à traiter des centaines de pages de données transcrites avec LibreOffice, j'ai pu basculer vers des documents tex avec le module writer2latex
. S'il prend en compte les styles et les formats de paragraphe (pour utiliser des commandes latex), il semblerait que le remplacement de texte, signes ou expressions régulières, ne soit pas opérationnel. Néanmoins, TexStudio peut le faire de manière relativement puissante et automatisée via des macros.
Le manuel m'a renseigné sur les commandes utiles (editor.replace) mais l'écriture du script m'est particulièrement obscure. Après plusieurs tentatives et recherches, j'en appelle à vos connaissances. L'idée est de commencer avec des signes simples (guillemets, points de suspension, etc.) pour les remplacer par les commandes adéquates (ou personnalisées) avant de passer à des expressions plus complexes (pour respecter, autant que faire se peut, les règles typographiques françaises).
Selon le manuel (par ici), le format standard est : editor.replace(searchFor, [options], [scope], [replaceWith])
avec les informations suivantes :
- searchFor is the text which is searched. It can be either a string
(e.g. "..") or a regexp (e.g.
/[.]{2}/).
- options is a string and a combination of "i", "g", "w" to
specify a case-insensitive search, a
global search (continue after the
first match) or a whole-word-only
search.
- scope is a cursor constraining the search scope (see
editor.document().cursor).
- callback is a function which is called for every match. A cursor
describing the position of the match
is passed as first argument.
Mes essais renvoient régulièrement la même erreur de syntaxe.
Posée
23 Nov '16, 12:58
tignous
217●5●13
Taux d'acceptation :
33%
Excusez-moi, mais qu'est-ce que des guillemets ou des points de suspension ont de gênant dans un code-source latex de nos jours ?
Pourquoi ne pas recourir à des outils dédiés tels que
sed
ouawk
? A priori, ils sont beaucoup plus puissants, documentés et utilisés que les scripts deTeXstudio
.Les deux premiers exemples ne sont pas "gênants", en soi. Mais, étudiant en SHS, il s'agit d'un premier pas pour mieux appréhender la suite (locutions latines, anglaises, citations différenciées) et tenter d'avoir un code propre. Ce qui répond aussi à la question de sed ou awk (que je ne connaissais pas) ; quitte à apprendre (et maîtriser un temps soit peu) un outil, je préfère commencer "petit bras" ! :-D
ÀMHA, la syntaxe des scripts
TeXstudio
n'est pas plus digeste que celle desed
:) Et ce dernier étant très utilisé, trouver ou demander de l'information pertinente à son sujet est plus facile qu'avec les premiers.Un peu têtu! J'ai rajouté quelques précisions et voici deux exemples a priori fonctionnels :
editor.replace(/\s(text)([\.,\s])/g, ' \\mbox{\\1}\\2')
ou encoreeditor.replace(/[0-9A-Fa-f]{2}/, "g", function(c){returnString.fromCharCode(1*("0x"+c.selectedText()));})
(tirés des seules discussions que j'ai pu dégotter)