Éditeur LaTeX

Bonjour,

Une question technique... j’imagine que je ne suis pas le seul à me la poser...

Lorsque j’utilise des textes écrits par d’autres auteurs (sujets de concours...) je trouve le texte très peu aéré.... je suis obligé d’aérer le texte en produisant des sauts de ligne (que le compilateur ne prend pas en compte) ou bien je suis obligé de remplacer des bouts de codes pour les \item des enumerate ....

Plutôt que de le faire à la main je le fais avec Ctrl + H sur Texniccenter
Sauf qu’il ne gère pas (je n’ai pas trouvé) les sauts de ligne imposés...

Comment faites vous de votre côté ? Avec quel traitement de texte ? (Si possible qui permet aussi de compiler en latex)
Merci !

Réponses

  • Comme je ne suis pas sûr de comprendre ce que tu fais quand tu dis « je le fais », voici à tout hasard deux types de choses que l'on peut faire sans control-h :
    • régler les espaces par défaut :
      • soit avec le paquet setspace ou ses cousins singlespace, onehalfspace et doublespace ;
      • soit plus ou moins à la main : avec enumitem pour les listes ; en modifiant les longueurs comme \parsep, \topsep, \itemsep, \partopsep (expliquées ici) ;
    • faire des remplacements automatiques sur Linux (et donc Mac OS) :
  • Mon propos n'était sans doute pas très clair, c'était plus le deuxième point sur les remplacements automatiques...

    apparemment ça s'appelle les "expressions régulières" mais je ne trouve pas sur TeXniccenter...
  • Le petit nom des expressions régulières, c'est regex ou regexp. Voici par exemple une discussion qui suggère que ce n'est pas très bien pris en charge par TeXnicCenter.
  • Merci !

    je vais donc essayer sur un autre traitement de texte...
  • Bonsoir
    Si tu veux faire des remplacements dans le fichier .tex (donc le code source), ce n'est pas un logiciel de traitement de texte que tu cherches, mais un éditeur de texte (text editor). Parmi ceux qui gèrent les regexps, il y a GNU Emacs. Il fonctionne sous pas mal d'OS, dont au moins Windows, Unix/Linux et OS X. Il y a un tutoriel en français ici.

    Sinon, comme l'a dit Math Coss, on peut manipuler les regexps avec des langages de programmation tels que Python (le support des regexps y est excellent). Ce n'est pas la même approche[1].

    Cela dit, si le code LaTeX est bien fait, il devrait a priori être plus simple de régler quelques paramètres ou macros au début du document... Tu as une base de sujets en .tex, c'est ça ?

    [1] Avec Emacs, les deux approches sont possibles car on peut aussi programmer des « rechercher/remplacer » interactifs ou non, se basant éventuellement sur des regexps — ceci car Emacs est entièrement programmable en Emacs Lisp. Je préfère la syntaxe des regexps Python, mais l'édition programmatique sous Emacs présente plein d'aspects assez pratiques. Notamment, la fonctionnalité des macros clavier (keyboard macros) permet d'automatiser des choses assez complexes sans écrire une seule ligne de code. Mais il y a aussi le fait qu'on peut « facilement » insérer du texte, regarder en avant, en arrière, se limiter à une région particulière pour telle ou telle opération... Bref, l'aspect éditeur de texte programmable peut être intéressant pour des manipulations automatisées allant de simples à un peu complexes (pour des choses très complexes, je crois que je préférerais Python).
  • En fait je récupère des fichiers provenant de plusieurs auteurs qui ont tous leurs "macros personnelles" qui sont souvent illisibles... donc je préfère pouvoir écrire du "code LaTeX" un peu plus "pur" afin de le partager avec mes collègues...

    par exemple au lieu d'écrite \item.... j'ai des \question \squestion (sous-question)... et j'aurais aimé automatiser les changements... dans le source...
  • Je vois un peu. La tâche semble donc être en partie manuelle, n'est-ce pas ? Si la quantité de modifications à faire par document et la récurrence de la tâche ne sont pas trop importantes, je dirais que cela se prête bien à une réalisation sous un éditeur comme Emacs (ou Vim, ou Kile ou autres — je ne suis pas sectaire).

    Comme je l'ai évoqué, on peut déjà automatiser un peu avec Emacs sans se fatiguer, grâce aux macros. On peut enregistrer les macros, les affecter à des touches, les répéter $n$ fois avec $n$ arbitraire. On peut faire un query-replace-regexp sur un ensemble de fichiers déterminés par une commande 'find'. Ou encore, on peut appliquer une macro ou une commande quelconque à une liste de fichiers obtenue comme on veut, il suffit par exemple de mettre un chemin par ligne et d'utiliser 'M-x ffap' (find-file-at-point). Mais si les traitements à effectuer sur chaque fichier sont assez compliqués, le système des macros risque de montrer ses limites ; il faudra alors programmer (Emacs Lisp, Python ou autre langage).

    Si tu es dans Emacs, tu peux commencer en interactif (M-% pour un rechercher-remplacer simple, C-M-% pour un query-replace-regexp[1]), voir si c'est satisfaisant et si ça peut bien s'automatiser avec des macros.

    [1] Les notations des raccourcis clavier dans Emacs sont expliquées dans le tutoriel que j'ai indiqué plus haut. En l'occurrence, C-M-% est certainement un des raccourcis qui nécessite le plus de doigts (!), mais comme tout ce qui contient le préfixe M-, on peut le faire en deux temps : touche Meta pressée et relâchée, puis C-%. Sur un clavier de PC, cela signifie en général Echap puis Control-% (oui, il faut presser trois touches en même temps pour Control-%). Cela dit, les raccourcis sont totalement paramétrables sous Emacs ; on peut donc très bien faire en sorte, par exemple, qu'un appui sur F1 fasse la même chose que ce C-M-% (sinon, la fonction est aussi dans le menu Edit !).
  • Merci je vais regarder Emacs alors !
Connectez-vous ou Inscrivez-vous pour répondre.