Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

AucTeX : environnement à clefs

5 réponses
Avatar
Frédéric
Rebonsoir,

j'ai cod=E9 un environnement exercice dont le param=E8tre est une liste de
clefs :

\begin{exercice}[
id =3D <identifiant>
title=3D{Titre " de l'exercice}
difficulty =3D 3 % il est dur cet exo !
bareme =3D 5
]
D=E9montrer 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
=E0 la ligne entre chaque clef), en ne mentionnant que les clefs pour
lesquelles j'ai rentr=E9 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=E9sultat :

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

5 réponses

Avatar
JJ. Rétorré
Frédéric disait le 10/29/10 que :

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.
Avatar
JJ. Rétorré
JJ. Rétorré <jj.r&torr&@gmail.com> disait le 10/29/10 que :

Frédéric disait le 10/29/10 que :

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.
Avatar
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 :)
Avatar
JJ. Rétorré
Frédéric disait le 10/29/10 que :

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.
Avatar
JJ. Rétorré
Frédéric disait le 10/31/10 que :

Le 29/10/2010 12:40, JJ. Rétorré a écrit :
JJ. Rétorré<jj.r&torr&@gmail.com> disait le 10/29/10 que :
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.