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

[LaTeX] Ajouter des éléments à TeX-font-list

7 réponses
Avatar
e20100633
Bonjour,

j'utilise quotidiennement LaTeX gr=C3=A2ce =C3=A0 Emacs et notamment le paq=
uet
soulutf8 qui permet, via la commande \hl{} de surligner en jaune
certaines portions de texte. En ayant eu marre de devoir entourer =C3=A0 la
main lesdites portions par \hl{ puis }, j'ai cherch=C3=A9 =C3=A0 retrouver =
le m=C3=AAme
comportement que ce que propose la suite de commande C-c C-f C-e qui,
par exemple, permet d'entourer un texte s=C3=A9lectionn=C3=A9 par \emph{}.

En cherchant un peu j'ai trouv=C3=A9 ceci :

https://lists.gnu.org/archive/html/help-gnu-emacs/2003-02/msg00296.html

J'ai essay=C3=A9 de reproduire cet exemple avec ce que je veux faire en me
basant aussi sur le defcustom TeX-font-list du fichier tex.el :

--8<---------------cut here---------------start------------->8---
;; add C-h to C-c C-f (TeX-font-list) for hl{} (from soulutf8.sty)
(TeX-add-style-hook
"e201-hl-macros"
(lambda ()
(add-to-list 'TeX-font-list (?\C-h "{\\hl " "\\/}"))))
--8<---------------cut here---------------end--------------->8---

=C3=89videmment, je ne comprend pas grand chose =C3=A0 ce que je fais mais =
au
moins, quand j'/eval/ ce snippet, Emacs ne renvoie pas d'erreur. Par
contre, je n'ai pas le comportement que je souhaite...

Est-ce que quelqu'un aurait la gentillesse de me porter secours en me
corrigeant ? Merci par avance :)

e-

--=20
~ #ID: e20100633 <e20100633()inbox!lv> #TTY: 9-8M 4554
~ TYPE 1707-A3 S/N L3-M2812 SLACKWARE 13.0 RLU #527034
,------- They say that Nethack bugs are Seldon planned
`-----------------------{,_,"> http://porneia.free.fr/

7 réponses

Avatar
Paul Gaborit
À (at) Tue, 09 Oct 2012 19:18:33 +0200,
e20100633 écrivait (wrote):

j'utilise quotidiennement LaTeX grâce à Emacs et notamment le paquet
soulutf8 qui permet, via la commande hl{} de surligner en jaune
certaines portions de texte. En ayant eu marre de devoir entourer à la
main lesdites portions par hl{ puis }, j'ai cherché à retrouver le m ême
comportement que ce que propose la suite de commande C-c C-f C-e qui,
par exemple, permet d'entourer un texte sélectionné par emph{}.



Ça existe en tout prêt: la fonction s'appelle TeX-insert-macro et son
raccourci par défaut est C-c RET. Si un texte est sélectionné lorsqu' on
l'appelle, il deviendra automagiquement l'argument de la macro choisie.

--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
Avatar
Nicolas Richard
J'ai essayé de reproduire cet exemple avec ce que je veux faire en me
basant aussi sur le defcustom TeX-font-list du fichier tex.el :

;; add C-h to C-c C-f (TeX-font-list) for hl{} (from soulutf8.sty)
(TeX-add-style-hook
"e201-hl-macros"
(lambda ()
(add-to-list 'TeX-font-list (?C-h "{hl " "/}"))))



1. Je pense que TeX-add-style-hook permet d'ajout des hook qui seront
lancés lorsque le paquet nommé (ici e201-hl-macros) est appelà © via
usepackage. (Pas tout à fait sûr, mais je crois que c'est à ça que le
mot "style" se réfère dans AucTeX).

2. C-h est à mon avis un mauvais choix, car si tu essaye C-c C-f C-h
pour l'instant, tu vois que C-h montre la liste des touches disponibles,
ce qui peut être intéressant (cela dit tu peux aussi dire que tu t'en
fiches). Je propose donc C-c C-f h à tout hasard.


3. ce que tu as écris ne correspond pas à faire hl{...}, mais q uelque
chose comme {hl .../}, ce qui est légèrement différent (j e suppose
que c'était quelque chose prévu pour mettre de l'italique "à la TeX"
avec une correction d'italique à la fin.

4. Bref, je propose simplement (add-to-list 'TeX-font-list '(?h "hl{" "}" ))

Tout ceci étant dit, tu peux aussi faire M-x customize-variable RET
TeX-font-list RET, et chipoter dans l'interface de customize pour
ajouter ce dont tu as besoin. Seule chose à savoir : pour insérer un
caractère genre "control h", il faut taper C-q C-h (ce qui va afficher
^H).

--
Nico.
Avatar
e20100633
Bonjour,

tout d'abord merci d'avoir pris le temps de me répondre :)

"Nicolas Richard" writes:

1. Je pense que TeX-add-style-hook permet d'ajout des hook qui seront
lancés lorsque le paquet nommé (ici e201-hl-macros) est appel é via
usepackage. (Pas tout à fait sûr, mais je crois que c'est à   ça que le
mot "style" se réfère dans AucTeX).



Ok effectivement, je trouvais ça aussi bizarre mon truc (surtout avec
l'appel d'un nom de macro)... Avec ton explication tout devient
limpide. J'étais vraiment sur la mauvaise voie.

2. C-h est à mon avis un mauvais choix, car si tu essaye C-c C-f C-h
pour l'instant, tu vois que C-h montre la liste des touches disponibles,
ce qui peut être intéressant (cela dit tu peux aussi dire que t u t'en
fiches). Je propose donc C-c C-f h à tout hasard.



Ah tiens ! En fait j'ai choisi C-c C-f C-h car évidemment d'une part, ça
colle avec le hl mais surtout je pensais que la liste que me sort Emacs
des raccourcis possibles (Font list avec KEY TEXTFONT et MATHFONT) lors
de l'appui sur C-c C-f C-h était dû au fait qu'il propose la list e dès
qu'il rencontre des raccourcis inconnus --- je ne suis pas sûr que ma
phrase soit claire. Je n'avais pas fait le rapprochement avec le h de
help... Ceci dit C-c C-f C-o renvoie aussi vers la liste en question, ce
qui irai peut-être dans mon sens ?

3. ce que tu as écris ne correspond pas à faire hl{...}, mais quelque
chose comme {hl .../}, ce qui est légèrement différent (je suppose
que c'était quelque chose prévu pour mettre de l'italique "à   la TeX"
avec une correction d'italique à la fin.



Ah effectivement. Je me doutais bien que le {hl ... /} ne collait
pas. En réalité, ma première intuition avait été d e simplement mettre
hl{" "} ; mais comme ça ne marchait pas j'ai repris exactement ce que
j'ai pu trouver dans le fichier tex.el

4. Bref, je propose simplement (add-to-list 'TeX-font-list '(?h "hl{" " }"))



Ah alors là je dois avoir un problème. Après évaluation de cette portion
de texte, C-c C-f h me renvoie toujours vers la liste des raccourcis
disponibles. J'en déduis que ça ne fonctionne pas chez moi... Un conflit
spécifique avec "h" ? J'ai essayé avec "o" (et même ?C-o ou encore
?C-h) sans de meilleurs résultats. Ai-je manqué quelque chose ?

Tout ceci étant dit, tu peux aussi faire M-x customize-variable RET
TeX-font-list RET, et chipoter dans l'interface de customize pour
ajouter ce dont tu as besoin. Seule chose à savoir : pour insér er un
caractère genre "control h", il faut taper C-q C-h (ce qui va affich er
^H).



Alors c'est ce que j'ai commencé par faire à l'orgine : passer par
M-x customize-variable RET TeX-font-list RET ; je pensais avoir bien
rempli les champs mais, toujours, après avoir "set" mes changements,
rien ne fonctionne... Mystère...

--
~ #ID: e20100633 <e20100633()inbox!lv> #TTY: 9-8M 4554
~ TYPE 1707-A3 S/N L3-M2812 SLACKWARE 13.0 RLU #527034
,------- They say that Nethack bugs are Seldon planned
`-----------------------{,_,"> http://porneia.free.fr/
Avatar
e20100633
Bonjour,

tout d'abord, merci de m'avoir répondu :)

Paul Gaborit writes:

Ça existe en tout prêt: la fonction s'appelle TeX-insert-macro et son
raccourci par défaut est C-c RET. Si un texte est sélectionnà © lorsqu'on
l'appelle, il deviendra automagiquement l'argument de la macro choisie.



Oh alors ça ! Pas mal. En attendant d'arriver à effectivement à ©crire
quelque chose de correct dans mon latexconf.el, je vais utiliser cette
méthode qui va déjà me faire gagner un certain temps !

Merci beaucoup :)

--
~ #ID: e20100633 <e20100633()inbox!lv> #TTY: 9-8M 4554
~ TYPE 1707-A3 S/N L3-M2812 SLACKWARE 13.0 RLU #527034
,------- They say that Nethack bugs are Seldon planned
`-----------------------{,_,"> http://porneia.free.fr/
Avatar
Nicolas Richard
e20100633 writes:

. Ceci dit C-c C-f C-o renvoie aussi vers la liste en question, ce
qui irai peut-être dans mon sens ?



Tu as entièrement raison, je me suis laissé influencer par le fai t que
rajouter 'C-h' à une commande qui sert de préfixe donne en gà ©néral
toutes les commandes complètes possibles qui ont ce préfixe. Par exemple
C-c C-h, C-x C-h, C-x 4 C-h, etc. Dans le cas de C-c C-f, en réalità © ce
n'est pas un préfixe.

4. Bref, je propose simplement (add-to-list 'TeX-font-list '(?h "hl{" "}"))



Ah alors là je dois avoir un problème. Après évaluati on de cette portion
de texte, C-c C-f h me renvoie toujours vers la liste des raccourcis
disponibles.



Il est possible que la variable TeX-font-list soit locale au buffer ;
essaye "C-h v TeX-font-list" dans le buffer latex voir si c'est pris en
compte.

Autre possibilité : si tu fais du LaTeX, c'est probablement
LaTeX-font-list qu'il faut modifier. Mais pour que LaTeX-font-list soit
pris en compte, il faut recharger le buffer. Bref, je propose donc:
(add-to-list 'LaTeX-font-list '(?h "hl{" "}"))
puis faire C-c C-n dans le buffer .tex et essayer C-c C-f h.

--
N.
Avatar
e20100633
"Nicolas Richard" writes:

4. Bref, je propose simplement (add-to-list 'TeX-font-list '(?h "hl{" "}"))



Ah alors là je dois avoir un problème. Après évaluat ion de cette portion
de texte, C-c C-f h me renvoie toujours vers la liste des raccourcis
disponibles.



Il est possible que la variable TeX-font-list soit locale au buffer ;
essaye "C-h v TeX-font-list" dans le buffer latex voir si c'est pris en
compte.



J'avais commencé par faire C-h v pour TeX-font-list et LaTeX-font-list ;
je n'y voyais rien concernant hl. Après avoir évaluer le snippet
ci-dessous (avec LaTeX-font-list) puis C-c C-n et que ça a marché , j'ai
re-regardé ce que renvoyait C-h v pour les deux variables. En réa lité,
j'ai l'impression que LaTeX-font-list reprend TeX-font-list ; je vois
dans la description un /Original value was/ suite aux différentes
valeurs qui sont _exactement_ les mêmes que pour TeX-font-list. Un eff et
d'AUCTeX ? Ou peut-être d'une configuration particulières que j'a i dans
mon fichier de configuration ? Ou bien simplement l'évaluation de
l'add-to-list vient mettre les choses à égalité ? Je n'ai pa s cherché à
en savoir plus mais le fait est que, au final, les deux variables ont
exactement le même contenu.

Autre possibilité : si tu fais du LaTeX, c'est probablement
LaTeX-font-list qu'il faut modifier. Mais pour que LaTeX-font-list soit
pris en compte, il faut recharger le buffer. Bref, je propose donc:
(add-to-list 'LaTeX-font-list '(?h "hl{" "}"))
puis faire C-c C-n dans le buffer .tex et essayer C-c C-f h.



Bref, tout ça pour dire : ça marche parfaitement !

Merci beaucoup pour le grand coup de main :)

--
~ #ID: e20100633 <e20100633()inbox!lv> #TTY: 9-8M 4554
~ TYPE 1707-A3 S/N L3-M2812 SLACKWARE 13.0 RLU #527034
,------- They say that Nethack bugs are Seldon planned
`-----------------------{,_,"> http://porneia.free.fr/
Avatar
Nicolas Richard
e20100633 writes:
j'ai l'impression que LaTeX-font-list reprend TeX-font-list ;



Oui : AUCTeX définit TeX-font-list comme valant LaTeX-font-list au
moment de lancer le mode LaTeX (ça se passe dans la fonction
LaTeX-common-initialization).

--
N.