Ceci n'est pas une question, juste le partage d'une macro que j'utilise couramment, publié ici: debian-fr.org

:call IMAP('FTN', "\<ESC>mma%\<CR>\\footnote{%\<ESC>V<V<V<V<\<CR>i<++>\<CR>}
<++>\<CR><++>\<ESC>`m", 'tex')

Qui imprime:

     Un test%
 \footnote{%
 []
 }<++>
 <++>

et place le curseur au bon endroit : []

Pourquoi cette macrocommande?

Elle facilite une présentation des notes de bas de page qui rend le source *tex plus facile à lire en séparant facilement les notes du texte principal.

  1. l’appel de la note (taper FTN juste à la fin du mot, ici test),

  2. la commande \footnote{% seule sur une ligne, facilite le repérage des notes,

  3. Le curseur en mode insertion, il suffit d’insérer directement le contenu de la note,

  4. Fermeture de la note sur une ligne séparée, vide, très repérable pour marquer la fin de la note. Cette ligne est limitée à l’accolade fermante suivie seulement d’une éventuelle ponctuation, qui (en LaTeX) doit suivre le mot sans espace. La commande Ctrl-J envoi directement le curseur au premier place-holder ( <++> ), en mode insertion, pour y écrire l’éventuelle ponctuation,

  5. Retour par une deuxième frappe Ctrl-J au début de la ligne qui reprend le fil du texte principal, toujours en mode insertion.

La commande de mappage IMAP est fournie par la suite vim-latex, avec l'avantage suivant: la macro fonctionne quel que soit le délai de frappe de la commande.

Posée 29 Oct '25, 12:33

joseph-tux's gravatar image

joseph-tux
53945085
Taux d'acceptation : 6%

Modifiée 29 Oct '25, 14:07

Pathe's gravatar image

Pathe ♦♦
7.9k78221267

À l'usage cette commande est beuguée. Dans certaines conditions que je n'ai pas encore identifiées, elle s'interrompt après la ligne \footnote{%

Probablement lorsqu'elle est lancée avant un caractère qui n'est pas fin de ligne? Si quelqu'un a une explication elle sera évidemment bienvenue ici.

(12 Nov '25, 19:47) joseph-tux joseph-tux's gravatar image

Cette macro, plus simple est efficace:

:call IMAP('ftn', "%\<CR>\<ESC>0\\footnote{%\<CR><++>\<CR>}\<CR><++>", 'tex')

Il suffit après le retour à la ligne (éventuellement indenté) de faire <ESC>0 La commande 0 va en début de ligne sans prendre en compte l'indentation.

Il a aussi fallu remplacer <NL> par <CR> (je ne maîtrise pas cette nuance)

Lien permanent

Publiée 18 Fév, 13:56

joseph-tux's gravatar image

joseph-tux
53945085
Taux d'acceptation : 6%

Modifiée 21 Fév, 13:35

Deux dernières versions:

"\footnote bien formatée:

" ftn formate \footnote, sans modifier cette commande:
:call IMAP('ftn',
     \ "%\<CR>\<Esc>" .
     \ "O\<Esc>0i\\footnote{%\<CR>" .
     \ "<++>\<CR>" .
     \ "}<++>\<CR>" .
     \ "<++>",
     \ 'tex')

" FTN formate \footnote, et ajoute un space-holder pour y mettre un titre affiché en gras:
:call IMAP('FTN',
     \ "%\<CR>\<Esc>" .
     \ "O\<Esc>0i\\footnote{%\<CR>" .
     \ "\\textbf{<++>}\<CR>\<NL>" .
     \ "<++>\<CR>" .
     \ "}<++>\<CR>" .
     \ "<++>",
     \ 'tex')
Lien permanent

Publiée hier

joseph-tux's gravatar image

joseph-tux
53945085
Taux d'acceptation : 6%

Pour info, voici comment faire un truc similaire pour Emacs :

Ajouter à votre fichier d'init

(define-skeleton ltx-nbp-skel
  "Note en bas de page LaTeX" ()
  "\\footnote{%\n" _ "}")

Et ensuite dans un fichier LaTeX définissez FTN comme abréviation de xxx, puis éditez les abréviations avec M-x edit-abbrevs, et remplacez la ligne

 "FTN" 1  "xxx"

par :

 "FTN" 1 ""  ltx-nbp-skel

À noter le nombre entier (1 ou 0 après "FTN") n'a aucune importance, c'est juste un compteur d'usage.

Lien permanent

Publiée 22 heures auparavant

vincentb1's gravatar image

vincentb1
2424
Taux d'acceptation : 2%

Votre réponse
(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.