GNT sans publicité, site mobile, fonctionnalitées exclusives...

Pb avec calendar

Le
Blue.Dian
Bonjour à tous,

Bien cela fait maintenant qq temps que j'essaye de franciser mon
calendrier et que j'y arrive pas ou pas complétement. De plus mon
niveau en Lisp est proche du néant et je ne comprend pas certaines
erreurs.
J'utilise une version Emacs 21.1.4 (Debian testing).
Sinon, j'ai consulté le news group mais les info dispo ne sont plus
bonnes :
http://groups.google.fr/group/fr.co...read/thre=
ad/ed077968989c393f/1dfc0718c786aa70?q=calendrier&rnum=10#1dfc0718c786a=
a70
http://groups.google.fr/group/fr.co...read/thre=
ad/3a933e465fcb18eb/8fc7ab5af7cd0cfd?q=calendrier&rnum=7#8fc7ab5af7cd0c=
fd


Bon, voici la liste de mes pb :

Probleme n°1

1) Je n'arrive pas à virer les vacances américaines pourtant j'ai
cela :
; on efface les jours feries non français
(setq general-holidays nil)
(setq christian-holidays nil)
(setq hebrew-holidays nil)
(setq islamic-holidays nil)
(setq oriental-holidays nil)
(setq solar-holidays nil)
; on ajoute les jours de vacances franchouillards
(setq other-holidays
'((holiday-fixed 1 1 "Nouvel an")
(holiday-fixed 5 1 "Fête du travail")
(holiday-fixed 5 8 "Victoire 1945")
;(feries-paques)
(holiday-fixed 7 14 "Fête nationale")
(holiday-fixed 8 15 "Assomption")
(holiday-fixed 11 11 "Armistice 1918")
(holiday-fixed 11 1 "Toussaint")
(holiday-fixed 12 25 "Noël")
;; fetes a date variable
(holiday-float 5 0 2 "Fête des mères")
(holiday-float 6 0 3 "Fête des pères")
))


Pourtant, dans calendrier, si je vais sur le 11 novembre, j'ai droit à
un Veteran's day comme description !


Probléme n°2
2) Pourquoi, pour avoir un format de date européen partout, il faut
que je fasse :
; on utilise le format européen (Jour Mois Année) et non américain
(M J A)
(european-calendar) ; apparement cela marche mieux comme cela
; (setq european-calendar-style t)

car le setq ne semble pas fonctionner, pourquoi ?

Problême n°3
3)
Pour franciser les dates, pourquoi faut il que je passe par un setq et
non par un defvar (qui ne marche pas) dans la ligne suivante ?

Par exemple :

; Traduction des jours et mois apparaissant dans le calendrier
; j'utilisais avant defvar mais cela ne marche plus pourquoi ?
(setq calendar-day-abbrev-array
["dim" "lun" "mar" "mer" "jeu" "ven" "sam"])

Problême n°4
4)
J'avais récupéré cette fonction, mais displayed year n'est plus une
variable reconnue dans calendar et je n'ai pas réussi à trouver la
variable qui renvoit maintenant l'année actuelle, des idées ?
un "apropos-variable year" ne m'a pas donné grand chose !

;; **********************
;; Calculer les jours de fêtes
;; **********************
;; Trouvé chez Philippe Dumont
;; http://pro.dumontweb.com/pages/emac...drier.html


;; Gestion des fêtes religieuses
;; **********************
(defun feries-paques ()
"Liste des jours de vacances relatifs a paques."
(let* ((century (1+ (/ displayed-year 100)))
(shifted-epact ;; Age of moon for April 5
(% (+ 14 (* 11 (% displayed-year 19));; by Nicaean rule
(- ;; corrected for the Gregorian century rule
(/ (* 3 century) 4))
(/ ;; corrected for Metonic cycle inaccuracy.
(+ 5 (* 8 century)) 25)
(* 30 century));; Keeps value positive.
30))
(adjusted-epact ;; Adjust for 29.5 day month.
(if (or (= shifted-epact 0)
(and (= shifted-epact 1) (< 10 (% displayed-year 19))))
(1+ shifted-epact)
shifted-epact))
(paschal-moon ;; Day after the full moon on or after March 21.
(- (calendar-absolute-from-gregorian (list 4 19 displayed-year))
adjusted-epact))
(abs-easter (calendar-dayname-on-or-before 0 (+ paschal-moon 7)))
(day-list
(list
(list (calendar-gregorian-from-absolute abs-easter)
"Pâques")
(list (calendar-gregorian-from-absolute (+ abs-easter 1))
"Lundi de Pâques")
(list (calendar-gregorian-from-absolute (+ abs-easter 39))
"Jeudi de l'ascension")
(list (calendar-gregorian-from-absolute (+ abs-easter 49))
"Pentecôte")
(list (calendar-gregorian-from-absolute (+ abs-easter 50))
"Lundi de Pentecôte")))
(output-list
(filter-visible-calendar-holidays day-list)))
output-list))


Problême n°5
5)
Bon, c'est pas spécifique à calendar, c'est juste peut être un pb de
lisp, si une bonne ame veut bien m'aider :

Pourquoi cette commande ne fonctionne pas ?
(setq diary-file (concat BLD-repertoire-cfg "/BLD-diary"))
alors que celle-ci, oui
(setq diary-file "/home/BlueDian/personnel/plans/diary")

et que BLD-repertoire-cfg a été défini par un :
(defconst BLD-repertoire-emacs (expand-file-name "~/.dir-emacs"))
(defconst BLD-repertoire-cfg (concat BLD-repertoire-emacs "/cfg"))


Bon, dsl c'etait un peu long !

BlueDian
Lire les 47 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 10
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Sébastien Kirche
Le #21755431
Le 16 novembre 2005 à 10:11, Blue s'est exprimé ainsi :

Bonjour à tous,

Bien cela fait maintenant qq temps que j'essaye de franciser mon
calendrier... et que j'y arrive pas ou pas complétement. De plus mon
niveau en Lisp est proche du néant et je ne comprend pas certaines
erreurs.
[...]
Bon, voici la liste de mes pb :

Probleme n°1

1) Je n'arrive pas à virer les vacances américaines pourtant j'ai
cela :
; on efface les jours feries non français
(setq general-holidays nil)
(setq christian-holidays nil)
(setq hebrew-holidays nil)
(setq islamic-holidays nil)
(setq oriental-holidays nil)
(setq solar-holidays nil)
; on ajoute les jours de vacances franchouillards
(setq other-holidays


^^^^^^^^^^^^^^
Essaie de remplacer par local-holidays

'((holiday-fixed 1 1 "Nouvel an")
(holiday-fixed 5 1 "Fête du travail")
(holiday-fixed 5 8 "Victoire 1945")
;(feries-paques)
(holiday-fixed 7 14 "Fête nationale")
(holiday-fixed 8 15 "Assomption")
(holiday-fixed 11 11 "Armistice 1918")
(holiday-fixed 11 1 "Toussaint")
(holiday-fixed 12 25 "Noël")
;; fetes a date variable
(holiday-float 5 0 2 "Fête des mères")
(holiday-float 6 0 3 "Fête des pères")



Ah, je n'avais jamais fait gaffe aux fêtes flottantes. J'ai récupéré ça :)

))
[...]

Probléme n°2
2) Pourquoi, pour avoir un format de date européen partout, il faut
que je fasse :
; on utilise le format européen (Jour Mois Année) et non américain
(M J A)
(european-calendar) ; apparement cela marche mieux comme cela
; (setq european-calendar-style t)

car le setq ne semble pas fonctionner, pourquoi ?



,----[ C-h v european-calendar-style RET ]
| european-calendar-style is a variable defined in `calendar.el'.
| Its value is nil
|
| Documentation:
| [...]
| To take effect,
| this variable should be set before the calendar package and its associates
^^^^^^
| are loaded. Otherwise, use one of the functions `european-calendar' or
| `american-calendar' to force the appropriate update.
| [...]
`----
Donc il faut positionner la variable *avant* de charger calendar.el *ou*
utiliser la fonction (european-calendar)

Perso je n'avais jamais creusé l'utilisation du calendrier mais j'avais
redéfini le format de date avec
(setq calendar-date-display-form '(dayname " " day " " monthname " " year))
Ce qui doit revenir au même.

Problême n°3
3)
Pour franciser les dates, pourquoi faut il que je passe par un setq et
non par un defvar (qui ne marche pas) dans la ligne suivante ?

Par exemple :

; Traduction des jours et mois apparaissant dans le calendrier
; j'utilisais avant defvar mais cela ne marche plus pourquoi ?
(setq calendar-day-abbrev-array
["dim" "lun" "mar" "mer" "jeu" "ven" "sam"])



Chez moi ça marche © :

;; Nom en clair des jours et mois apparaissant dans le calendrier
(defvar calendar-day-abbrev-array
["dim" "lun" "mar" "mer" "jeu" "ven" "sam"])
(defvar calendar-day-name-array
["dimanche" "lundi" "mardi" "mercredi" "jeudi" "vendredi" "samedi"])
(defvar calendar-month-abbrev-array
["jan" "fév" "mar" "avr" "mai" "jun"
"jul" "aoû" "sep" "oct" "nov" "déc"])
(defvar calendar-month-name-array
["janvier" "février" "mars" "avril" "mai" "juin"
"juillet" "août" "septembre" "octobre" "novembre" "décembre"])


Problême n°4
[...]
Problême n°5



Là je ne sais pas.

--
Sébastien Kirche
Blue.Dian
Le #21755421
Re,

Merci pour ces réponses, Sébastien.

Bon, le remplacement de
(setq other-holidays
'((holiday-fixed 1 1 "Nouvel an")..
par
(setq local-holidays
'((holiday-fixed 1 1 "Nouvel an")..
ne change pas mon pb (en fait j'avais cela avant).

Mais ta réponse au pb 2 me fait m'interroger sur la notion de
chargement de calendar.
En fait, je ne le charge jamais, le mode calendar, un (require
calendar) me renvoit une erreur (fonctionnement apparaissant depuis
emaces 21.1.4), donc je supposais qu'il était maintenant intégré
directement dans Emacs !
Ou alors, c'est Debian qui le fait pour moi ?
Sébastien Kirche
Le #21755411
Le 16 novembre 2005 à 12:11, Blue vraute :

Re,

Merci pour ces réponses, Sébastien.

Bon, le remplacement de
(setq other-holidays
'((holiday-fixed 1 1 "Nouvel an")..
par
(setq local-holidays
'((holiday-fixed 1 1 "Nouvel an")..
ne change pas mon pb (en fait j'avais cela avant).



Ah ? Bizarre c'est pourtant ce que j'ai changé chez moi pour avoir mes
éphémérides locales.

Si le courage t'en dit, tu peux jeter un oeil sur ma config complète
(mais en chantier) :
http://sebastien.kirche.free.fr/ema...emacs.html

Mais ta réponse au pb 2 me fait m'interroger sur la notion de
chargement de calendar.
En fait, je ne le charge jamais, le mode calendar, un (require
calendar) me renvoit une erreur (fonctionnement apparaissant depuis
emaces 21.1.4),



Encore plus bizarre. Quoi que chez moi il est chargé avec un
load-library, mais ça fait partie des scories qui traînent dans ma
config que je nettoie doucement.

donc je supposais qu'il était maintenant intégré directement dans
Emacs ! Ou alors, c'est Debian qui le fait pour moi ?



Intégré, et depuis longtemps quand on regarde la révision du fichier
dans le cvs (1.178)

Tu es sûr de ne pas avoir un problème de version ?
M-x locate-library RET calendar RET => indique le fichier
lisp/calendar/calendar.elc *de la version actuelle* d'Emacs.

Regarde si tu n'as pas calendar en double avec
M-x list-load-path-shadows


--
Sébastien Kirche
Denis Bitouzé
Le #21755401
Le 16 nov 2005 à 14h02
Sébastien Kirche a écrit :

Si le courage t'en dit, tu peux jeter un oeil sur ma config complète
(mais en chantier) :
http://sebastien.kirche.free.fr/ema...emacs.html



J'en ai drôlement envie, d'un .emacs aussi beau, propre, bien rangé et
dont la configuration pour Gnus me permette de, enfin, m'y mettre !
Sébastien, y aurait-il un moyen (simple, qui ne te coûte pas de temps),
de faire ressortir les éléments qui te sont propres et qui serait à
modifier dans ce .emacs pour qu'il soit adapté à quelqu'un d'autre ?

En tous cas, merci !
--
Denis
Sébastien Kirche
Le #21755391
Le 16 novembre 2005 à 14:11, Denis Bitouzé a formulé :

Le 16 nov 2005 à 14h02
Sébastien Kirche a écrit :

> Si le courage t'en dit, tu peux jeter un oeil sur ma config complète
> (mais en chantier) :
> http://sebastien.kirche.free.fr/ema...emacs.html

J'en ai drôlement envie, d'un .emacs aussi beau, propre, bien rangé et
dont la configuration pour Gnus me permette de, enfin, m'y mettre !



Oulà. Tu n'as pas dû dépasser la première page pour parler de bien
rangé :p

Il y a pas mal de code mort en commentaires résultant d'essais
successifs depuis 2 ans.

Sébastien, y aurait-il un moyen (simple, qui ne te coûte pas de
temps), de faire ressortir les éléments qui te sont propres et qui
serait à modifier dans ce .emacs pour qu'il soit adapté à quelqu'un
d'autre ?



Beaucoup des réglages persos sont en haut des fichiers (j'essaie).

Une particularité de me config c'est que je la partage entre deux Macs
(goudurix et zebigbos (x86)), une Sun (falbala) et un ou deux pécés
(idefix, bonnemine) et que je positionnes certains réglages spécifique à
une machine en testant le nom ou le type de plate-forme.

Et j'essaie le plus possible de placer des require qui ne provoquent pas
d'erreur si la lib est absente (require 'truc nil t) pour ne pas bloquer
le chargement car elles ne sont pas installées toutes sur chaque
machine.

Il faudrait que je regarde pour regrouper tous les réglages persos a
début mais d'un autre côté le tuning d'un emacs est assez personnel.

C'est comme les goûts et les couleurs : certains de mes réglages peuvent
ne pas plaire à d'autres.

En tous cas, merci !



--
Sébastien Kirche
Publicité
Suivre les réponses
Poster une réponse
Anonyme