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

latex-calendar et les accents

15 réponses
Avatar
Jean Magnan de Bornier
Bonjour =E0 tous,

Je cherche =E0 utiliser la composition en LaTeX de mon calendrier en
utilisant les fonctions latex de calendar. Malheureusement ce latex-l=E0 ne
conna=EEt pas les caract=E8res accentu=E9s fran=E7ais. Le mois d'ao=FBt dev=
ient aot,
ce qui n'est pas id=E9al. Bien s=FBr je pourrais rajouter =E0 la main
\usepackage[latin1]{inputenc}
au fichier latex, mais je voudrais que cela soit automatique, bien s=FBr!

J'ai vu qu'il existe une option "cal-tex-hook", dont l'aide dit:

List of functions called after any LaTeX calendar buffer is generated.=20
You can use this to do postprocessing on the buffer. For example, to change
characters with diacritical marks to their LaTeX equivalents, use
(add-hook 'cal-tex-hook
'(lambda () (iso-iso2tex (point-min) (point-max))))

Cet exemple avait (de loin) l'air de me convenir, mais en l'essayant je
n'ai pas le r=E9sultat souhait=E9 :-(

Alors si quelqu'un a une id=E9e, elle est bienvenue...
merci
--=20
Jean Magnan de Bornier | Cours Victor Hugo
e-mots: jean at bornier.net | 13980 Alleins France
T 08 70 39 34 03 | P 06 09 17 35 87

10 réponses

1 2
Avatar
drkm
Jean Magnan de Bornier writes:

(add-hook 'cal-tex-hook
'(lambda () (iso-iso2tex (point-min) (point-max))))

Cet exemple avait (de loin) l'air de me convenir, mais en l'essayant je
n'ai pas le résultat souhaité :-(



Quel est le symptôme exact ? Cette fonction semble marcher
chez moi (je n'ai pas testé le hook, mais directement
'iso-iso2tex').

Peut-être peux-tu essayer ceci, pour ajouter le support Latin 1
en entrée de LaTeX :

(add-hook 'cal-tex-hook
(lambda ()
(save-excursion
(goto-char (point-min))
(search-forward-regexp "^\documentclass" 500)
(beginning-of-line 2)
(insert "usepackage[latin1]{inputenc}n"))))

--drkm
Avatar
Jean Magnan de Bornier
Le 28 juillet à 19:12:33 drkm écrit nota mment:

| Jean Magnan de Bornier writes:
|
| > (add-hook 'cal-tex-hook
| > '(lambda () (iso-iso2tex (point-min) (point-max))))
|
| > Cet exemple avait (de loin) l'air de me convenir, mais en l'essayant je
| > n'ai pas le résultat souhaité :-(
|
| Quel est le symptôme exact ? Cette fonction semble marcher
| chez moi (je n'ai pas testé le hook, mais directement
| 'iso-iso2tex').
|
| Peut-être peux-tu essayer ceci, pour ajouter le support Latin 1
| en entrée de LaTeX :
|
| (add-hook 'cal-tex-hook
| (lambda ()
| (save-excursion
| (goto-char (point-min))
| (search-forward-regexp "^\documentclass" 500)
| (beginning-of-line 2)
| (insert "usepackage[latin1]{inputenc}n"))))
|
Magnifique!

Non seulement ça marche (j'ai laissé l'autre hook, ils ont l'air de bien
s'entendre) mais c'est du code limpide; c'est ce que j'aurais rêvé de
faire, si je m'y connaissais en elisp

merci,
--
Jean Magnan de Bornier | Cours Victor Hugo
e-mots: jean at bornier.net | 13980 Alleins France
T 08 70 39 34 03 | P 06 09 17 35 87
Avatar
Matthieu Moy
drkm writes:

(add-hook 'cal-tex-hook
(lambda ()
(save-excursion
(goto-char (point-min))
(search-forward-regexp "^\documentclass" 500)
(beginning-of-line 2)
(insert "usepackage[latin1]{inputenc}n"))))




Ne vaudrait-il pas mieux tester la présence du usepackage avant de
l'insérer ?

(add-hook 'cal-tex-hook
(lambda ()
(save-excursion
(unless
(progn (goto-char (point-min))
(search-forward "usepackage[latin1]{inputenc}" nil t))
(goto-char (point-min))
(search-forward-regexp "^\documentclass" 500)
(beginning-of-line 2)
(insert "usepackage[latin1]{inputenc}n")))))

--
Matthieu
Avatar
drkm
Matthieu Moy writes:

Ne vaudrait-il pas mieux tester la présence du usepackage avant de
l'insérer ?

(add-hook 'cal-tex-hook
(lambda ()
(save-excursion
(unless
(progn (goto-char (point-min))
(search-forward "usepackage[latin1]{inputenc}" nil t))
(goto-char (point-min))
(search-forward-regexp "^\documentclass" 500)
(beginning-of-line 2)
(insert "usepackage[latin1]{inputenc}n")))))



Oui, bien vu. Je ne sais pas si cela influe sur le code LaTeX
(d'avoir deux 'usepackage' identiques). Mais je limiterais alors
également la recherche à 500 ou 1000 caractères (valeur magique
déduite du code LaTeX produit).

Le buffer produit n'est typiquement pas très grand, mais on ne
sait jamais.

--drkm
Avatar
drkm
Jean Magnan de Bornier writes:

Non seulement ça marche (j'ai laissé l'autre hook, ils ont l'air de bien
s'entendre)



Regarde quand même la réponse de Matthieu. Et quel est le
symptôme exact avec ta solution précédente ? Histoire de ne pas
laisser traîner quelque chose qui ne te sert plus (ça te retombe
souvent dessus plus tard ...).

--drkm
Avatar
Jean Magnan de Bornier
Le 29 juillet à 03:15:41 drkm écrit nota mment:

| Jean Magnan de Bornier writes:
|
| > Non seulement ça marche (j'ai laissé l'autre hook, ils ont l'air de bien
| > s'entendre)
|
| Regarde quand même la réponse de Matthieu.

Oui je vais rajouter le nécessaire

| Et quel est le
| symptôme exact avec ta solution précédente ?

Le symptôme exact c'était d'avoir dans le .dvi final "août" qui devie nt
"aot"; je n'ai pas été plus loin dans la recherche de symptômes, mais bien
sûr j'avais constaté l'absence de "usepackage[latin1]{inputenc}" dans le
fichier source calendar.tex

j'ai ça dans mons .emacs:
(setq
calendar-month-name-array
["janvier" "février" "mars" "avril"
"mai" "juin" "juillet" "août" "septembre"
"octobre" "novembre" "décembre"])

| Histoire de ne pas
| laisser traîner quelque chose qui ne te sert plus (ça te retombe
| souvent dessus plus tard ...).

Tu veux dire le premier hook?
à+,
--
Jean Magnan de Bornier | Cours Victor Hugo
e-mots: jean at bornier.net | 13980 Alleins France
T 08 70 39 34 03 | P 06 09 17 35 87
Avatar
drkm
Jean Magnan de Bornier writes:

Le 29 juillet à 03:15:41 drkm écrit notamment:

| Histoire de ne pas laisser traîner quelque chose qui ne te
| sert plus (ça te retombe souvent dessus plus tard ...).

Tu veux dire le premier hook?



Oui. La commande que tu as utilisé, 'iso-iso2tex', remplace
dans la région les caractères Latin 1 en leur échappement TeX :

àéèêö
{`a}{'e}{`e}{^e}{"o}

Il faut donc commencer par voir si c'est bien le cas dans le
source LaTeX. A priori, je dirais qu'ajouter le bon encodage
d'entré est plus simple encore. Mais je ne laisserais pas les
deux (bien qu'en l'occurrence, il s'agisse d'un double-emploi
non-conflictuel).

--drkm
Avatar
Jean Magnan de Bornier
Le 29 juillet à 11:09:39 drkm écrit nota mment:

| Oui. La commande que tu as utilisé, 'iso-iso2tex', remplace
| dans la région les caractères Latin 1 en leur échappement TeX :
|
| àéèêö
| {`a}{'e}{`e}{^e}{"o}
|
| Il faut donc commencer par voir si c'est bien le cas dans le
| source LaTeX.
Non, il n'y a pas de remplacement

à+,
--
Jean Magnan de Bornier | Cours Victor Hugo
e-mots: jean at bornier.net | 13980 Alleins France
T 08 70 39 34 03 | P 06 09 17 35 87
Avatar
drkm
Jean Magnan de Bornier writes:

Non, il n'y a pas de remplacement



A priori, si tu es satisfait du second hook, supprime le
premier. Mais si tu veux absolument le premier, on peut essayer
de voir ce qui cloche.

--drkm
Avatar
Jean Magnan de Bornier
Le 29 juillet à 19:03:44 drkm écrit nota mment:

| Jean Magnan de Bornier writes:
|
| > Non, il n'y a pas de remplacement
|
| A priori, si tu es satisfait du second hook, supprime le
| premier. Mais si tu veux absolument le premier, on peut essayer
| de voir ce qui cloche.
|
Bon, je l'ai supprimé, son absence ne semble rien modifier, donc j'en
reste là, c'est-à-dire ton bout de code avec l'ajout de Matthieu.

Ceci dit les fonctions latex-calendar ont encore du mystère pour moi, je
vais peut-être lancer un autre fil...

merci encore à tous les deux
--
Jean Magnan de Bornier | Cours Victor Hugo
e-mots: jean at bornier.net | 13980 Alleins France
T 08 70 39 34 03 | P 06 09 17 35 87
1 2