Stéphane Dutailly
2019-12-29 18:05:09 UTC
Bonjour à tous,
J'ai une fonction maj-fin-theoreme que j'utilise beaucoup et que
plusieurs ici m'avaient aidé à créer. Elle me permet de compter le
nombre d'occurences d'un environnement «thm» dans un fichier tex et
d'afficher après chacun le numéro correspondant. Concrètement, si j'ai:
\begin{thm}
bla bla
\end{thm}
\begin{thm}
blo blo
\end{thm}
\begin{thm}
bli bli
\end{thm}
et que je lance ma fonction maj-fin-theoreme, j'obtiens ceci:
\begin{thm}
bla bla
\end{thm}
% 1
\begin{thm}
blo blo
\end{thm}
% 2
\begin{thm}
bli bli
\end{thm}
% 3
(et si je rajoute ou supprime un environnement thm, que je relance ma
fonction, tous les numéros sont remis à jour).
La fonction est la suivante:
(defun maj-fin-theoreme ()
"écris le numéro du theoreme"
(interactive)
(save-excursion
(goto-char (point-min))
(let ((compteur 1))
(while (re-search-forward "\\\\end{thm" nil t)
(beginning-of-line 2)
(if
(looking-at "%\\s-+[0-9]+$")
(replace-match (format "%% %d" compteur) t)
(insert (format "%% %d\n" compteur)))
(setq compteur (1+ compteur)))
)))
Il y a deux choses en plus que j'aimerais rajouter à cette fonction:
- plutôt que d'afficher % 1, j'aimerais que cela affiche % thm 1 (ou % 1
thm); j'ai essayé des choses du type (insert (format "%% %d\n thm"
compteur)) ou (insert (format "%% %d\n" "thm" compteur)) ou (insert
(format "%% %d\n" compteur) "thm") mais ça ne marche pas.
- j'aimerais que le compteur ne tienne pas seulement compte de
l'environnement «thm» dans sa recherche, mais aussi d'un environnement
«prop» par exemple de façon à avoir ceci après l'exécution de la fonction:
\begin{thm}
bla bla
\end{thm}
% 1
\begin{prop}
blo blo
\end{prop}
% 2
\begin{thm}
bli bli
\end{thm}
% 3
J'ai essayé des choses du type (re-search-forward "\\\\end{thm"
"\\\\end{thm" nil t) mais ça ne donne rien.
Voila, si certains parmi vous ont des idées de comment modifier la
fonction, je leur en serai très reconnaissant.
Merci de m'avoir lu jusqu'au bout et bonnes fêtes à tous!
Stéphane
J'ai une fonction maj-fin-theoreme que j'utilise beaucoup et que
plusieurs ici m'avaient aidé à créer. Elle me permet de compter le
nombre d'occurences d'un environnement «thm» dans un fichier tex et
d'afficher après chacun le numéro correspondant. Concrètement, si j'ai:
\begin{thm}
bla bla
\end{thm}
\begin{thm}
blo blo
\end{thm}
\begin{thm}
bli bli
\end{thm}
et que je lance ma fonction maj-fin-theoreme, j'obtiens ceci:
\begin{thm}
bla bla
\end{thm}
% 1
\begin{thm}
blo blo
\end{thm}
% 2
\begin{thm}
bli bli
\end{thm}
% 3
(et si je rajoute ou supprime un environnement thm, que je relance ma
fonction, tous les numéros sont remis à jour).
La fonction est la suivante:
(defun maj-fin-theoreme ()
"écris le numéro du theoreme"
(interactive)
(save-excursion
(goto-char (point-min))
(let ((compteur 1))
(while (re-search-forward "\\\\end{thm" nil t)
(beginning-of-line 2)
(if
(looking-at "%\\s-+[0-9]+$")
(replace-match (format "%% %d" compteur) t)
(insert (format "%% %d\n" compteur)))
(setq compteur (1+ compteur)))
)))
Il y a deux choses en plus que j'aimerais rajouter à cette fonction:
- plutôt que d'afficher % 1, j'aimerais que cela affiche % thm 1 (ou % 1
thm); j'ai essayé des choses du type (insert (format "%% %d\n thm"
compteur)) ou (insert (format "%% %d\n" "thm" compteur)) ou (insert
(format "%% %d\n" compteur) "thm") mais ça ne marche pas.
- j'aimerais que le compteur ne tienne pas seulement compte de
l'environnement «thm» dans sa recherche, mais aussi d'un environnement
«prop» par exemple de façon à avoir ceci après l'exécution de la fonction:
\begin{thm}
bla bla
\end{thm}
% 1
\begin{prop}
blo blo
\end{prop}
% 2
\begin{thm}
bli bli
\end{thm}
% 3
J'ai essayé des choses du type (re-search-forward "\\\\end{thm"
"\\\\end{thm" nil t) mais ça ne donne rien.
Voila, si certains parmi vous ont des idées de comment modifier la
fonction, je leur en serai très reconnaissant.
Merci de m'avoir lu jusqu'au bout et bonnes fêtes à tous!
Stéphane