No es fácil de hacer esto, el código para generar el calendario es:
(defun calendar-generate (month year)
"Generate a three-month Gregorian calendar centered around MONTH, YEAR."
;; A negative YEAR is interpreted as BC; -1 being 1 BC, and so on.
;; Note that while calendars for years BC could be displayed as it
;; stands, almost all other calendar functions (eg holidays) would
;; at best have unpredictable results for such dates.
(if (< (+ month (* 12 (1- year))) 2)
(error "Months before January, 1 AD cannot be displayed"))
(setq displayed-month month
displayed-year year)
(erase-buffer)
(calendar-increment-month month year -1)
(dotimes (i 3)
(calendar-generate-month month year
(+ calendar-left-margin
(* calendar-month-width i)))
(calendar-increment-month month year 1)))
Aquí, (dotimes (i 3) ...)
generan 3 meses seguidos.
Por lo tanto, si desea generar más de 3 meses en más de 1 fila, debe anular la función calendar-generate
usted mismo, al igual que @Luke dijo.
¿Parece que ha codificado el año como 2012? Algo como esto podría ser preferible: '(string-to-number (format-time-string"% Y "(current-time)))' – phils
Sí, siéntase libre de editar. –