AucTeX : environnement à clefs

Le
Frédéric
Rebonsoir,

j'ai codé un environnement exercice dont le paramètre est une liste de
clefs :

begin{exercice}[
id = <identifiant>
title={Titre " de l'exercice}
difficulty = 3 % il est dur cet exo !
bareme = 5
]
Démontrer que tout entier pair est somme de deux nombres premiers !
end{exercice}

Comment faire en sorte que C-c C-e exercice me demande successivement
les valeurs des clefs, et mette en page l'environnement (avec retour
à la ligne entre chaque clef), en ne mentionnant que les clefs pour
lesquelles j'ai rentré une valeur non-vide ?

Exemple : C-c C-e exercice
(emacs)id : (moi) pipo <RET>
(emacs)title : (moi) <RET>
(emacs)difficulty : (moi)<RET>
(emacs)bareme : (moi) 6 <RET>

Résultat :

begin{exercice}[
id = pipo,
bareme = 6
]
<curseur>
end{exercice}
;
Ce qui se rapproche le plus dans la doc semble être p72 (listings.el)
mais je galère un peu. Merci pour toute aide.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JJ. Rétorré
Le #22732771
Frédéric
Rebonsoir,

j'ai codé un environnement exercice dont le paramètre est une liste de
clefs :

begin{exercice}[
id = <identifiant>
title={Titre " de l'exercice}
difficulty = 3 % il est dur cet exo !
bareme = 5
]
Démontrer que tout entier pair est somme de deux nombres premiers !
end{exercice}

Comment faire en sorte que C-c C-e exercice me demande successivement
les valeurs des clefs, et mette en page l'environnement (avec retour
à la ligne entre chaque clef), en ne mentionnant que les clefs pour
lesquelles j'ai rentré une valeur non-vide ?

Exemple : C-c C-e exercice
(emacs)id : (moi) pipo <RET>
(emacs)title : (moi) <RET>
(emacs)difficulty : (moi)<RET>
(emacs)bareme : (moi) 6 <RET>

Résultat :

begin{exercice}[
id = pipo,
bareme = 6
]
<curseur> end{exercice} ; Ce qui se rapproche le plus dans la doc
semble être p72 (listings.el) mais je galère un peu. Merci pour toute
aide.



Dans l'info d'AUCTeX
F1 i d m Auctex m Style file m Adding environnement

Supposons que tu aie créé ton environnement exercice dans un fichier de
style /monstyle.sty/, tu peux créer un fichier de style dans
~/texmf/tex/auctex/monstyle.el (TeXLive à adapter pour une autre
distribution)

8<---------------------------------
;;; monstyle.el ---
;;;

(TeX-add-style-hook
"monstyle"
(lambda ()
(LaTeX-add-environments
'("exercice" "id" "title" "difficulty" "bareme"))))
8<----------------------------------

Je n'ai pas testé, mais celui que j'ai fait pour l'environnement
wrapfigure du package wrapfig marche, tu peux t'en inspirer. Entre
crochet signifie que l'argument est optionnel.

8<-------------------------------------
;;; wrapfig.el ---
;;; Commentary:
;;; fichier de style pour wrapfig
;;

;;; Code:

(TeX-add-style-hook
"wrapfig"
;;;; begin{wrapfigure}[12]{r}[34pt]{5cm} <figure>
;;;; end{wrapfigure}
;;; == = ==== ===
;;;; [number of narrow lines] {placement} [overhang] {width}"
(lambda ()
(LaTeX-add-environments
'("wrapfigure" ["Nb lignes"] "Position" ["overhang"] "Largeur" ))))


;;;;##########################################################################
;;;; User Options, Variables
;;;;##########################################################################


;;; wrapfig.el ends here
8<-------------------------------------

--
JJR.
JJ. Rétorré
Le #22733171
JJ. Rétorré
Frédéric
Rebonsoir,



Supposons que tu aie créé ton environnement exercice dans un fichier de
style /monstyle.sty/, tu peux créer un fichier de style dans
~/texmf/tex/auctex/monstyle.el (TeXLive à adapter pour une autre
distribution)



J'ai simplement oublié que si les fichiers de style sont à cet endroit,
c'est que j'ai modifié la variable TeX-style-local :
M-x customize-variable TeX-style-local
Dans la foulée, j'ai également redéfini les variables TeX-macro-private
et TeX-style-private.

--
JJR.
Frédéric
Le #22733731
Le 29/10/2010 10:21, JJ. Rétorré a écrit :
Dans l'info d'AUCTeX
F1 i d m Auctex m Style file m Adding environnement

Supposons que tu aie créé ton environnement exercice dans un fichier de
style /monstyle.sty/, tu peux créer un fichier de style dans
~/texmf/tex/auctex/monstyle.el (TeXLive à adapter pour une autre
distribution)

8<---------------------------------
;;; monstyle.el ---
;;;

(TeX-add-style-hook
"monstyle"
(lambda ()
(LaTeX-add-environments
'("exercice" "id" "title" "difficulty" "bareme"))))
8<----------------------------------



Je n'ai pas encore testé (je n'ai pas mon PC sous les doigts) mais à vue
de nez, ça ne tient pas compte des clefs. D'ailleurs, à ma connaissance,
wrapfig ne prend pas ses arguments avec une syntaxe type clefs (je n'en
suis pas sûr, il y a longtemps que je n'ai pas utilisé wrapfig).

Ce que j'appelle une syntaxe type clefs, c'est ce qu'on peut faire avec
les package xkeyval (ou l3keys, dans mon cas), qui est assez populaire
avec pstricks ou tiks : mamacro{param1=val1, param2=val2, etc.}

Ta solution ne doit pas non plus mettre en forme le résultat (passage à
la ligne entre chaque clef).

Je testerai bien sûr, mais j'y crois moyen :)
JJ. Rétorré
Le #22734711
Frédéric
Le 29/10/2010 10:21, JJ. Rétorré a écrit :
Dans l'info d'AUCTeX
F1 i d m Auctex m Style file m Adding environnement

Supposons que tu aie créé ton environnement exercice dans un fichier de
style /monstyle.sty/, tu peux créer un fichier de style dans
~/texmf/tex/auctex/monstyle.el (TeXLive à adapter pour une autre
distribution)

8<---------------------------------
;;; monstyle.el ---
;;;

(TeX-add-style-hook
"monstyle"
(lambda ()
(LaTeX-add-environments
'("exercice" "id" "title" "difficulty" "bareme"))))
8<----------------------------------



Je n'ai pas encore testé (je n'ai pas mon PC sous les doigts) mais à
vue de nez, ça ne tient pas compte des clefs. D'ailleurs, à ma
connaissance, wrapfig ne prend pas ses arguments avec une syntaxe type
clefs (je n'en suis pas sûr, il y a longtemps que je n'ai pas utilisé
wrapfig).

Ce que j'appelle une syntaxe type clefs, c'est ce qu'on peut faire
avec les package xkeyval (ou l3keys, dans mon cas), qui est assez
populaire avec pstricks ou tiks : mamacro{param1=val1, param2=val2,
etc.}

Ta solution ne doit pas non plus mettre en forme le résultat (passage
à la ligne entre chaque clef).

Je testerai bien sûr, mais j'y crois moyen :)



Effectivement, ma réponse ne correspond pas à ton problème.
Je n'ai rien vu non plus dans la doc qui ressemble à ton problème.

Il y a des spécialistes de pstricks qui ont fait des tas de choses, tu
cherches pstricks.el sur le web. Chais pas si ça peut t'être utile.

--
JJR.
JJ. Rétorré
Le #22742961
Frédéric
Le 29/10/2010 12:40, JJ. Rétorré a écrit :
JJ. Rétorré J'ai simplement oublié que si les fichiers de style sont à cet endroit,
c'est que j'ai modifié la variable TeX-style-local :
M-x customize-variable TeX-style-local



OK. Question : est-ce que les fichiers perso monstyle.el sont chargés
automatiquement à l'ouverture d'emacs ou d'auctex ? Y'a-t-il moyen de
le faire (autre variable à customizer ?) ?



Ils sont chargés lors de l'appel de usepackage{monstyle}, je crois que
c'est dans la doc.
Ça doit bien être possible de déclencher le chargement manuellement,
tout est possible en elisp, mais je ne me suis jamais posé la question.


--
JJR.
Publicité
Poster une réponse
Anonyme