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's gravatar image

tignous
207513
Taux d'acceptation : 33%

Modifiée 06 Aoû '17, 16:11

Pathe's gravatar image

Pathe ♦♦
7.4k28196245

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 ?

(23 Nov '16, 20:17) Bernard Bernard's gravatar image

Pourquoi ne pas recourir à des outils dédiés tels que sed ou awk ? A priori, ils sont beaucoup plus puissants, documentés et utilisés que les scripts de TeXstudio.

(23 Nov '16, 20:27) denis ♦♦ denis's gravatar image

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

(23 Nov '16, 20:45) tignous tignous's gravatar image

ÀMHA, la syntaxe des scripts TeXstudio n'est pas plus digeste que celle de sed :) Et ce dernier étant très utilisé, trouver ou demander de l'information pertinente à son sujet est plus facile qu'avec les premiers.

(23 Nov '16, 21:06) denis ♦♦ denis's gravatar image

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 encore editor.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)

(23 Nov '16, 21:52) tignous tignous's gravatar image
Soyez le premier à répondre à cette question !
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.