Function: cal-tex-weekly-common

cal-tex-weekly-common is a byte-compiled function defined in cal-tex.el.gz.

Signature

(cal-tex-weekly-common N EVENT &optional FILOFAX)

Documentation

Common code for weekly calendars.

Source Code

;; Defined in /usr/src/emacs/lisp/calendar/cal-tex.el.gz
(defun cal-tex-weekly-common (n event &optional filofax)
  "Common code for weekly calendars."
  (or n (setq n 1))
  (with-suppressed-warnings ((lexical date))
    (defvar date))                      ;For `cal-tex-daily-string'.
  (let* ((date (calendar-gregorian-from-absolute
                (calendar-dayname-on-or-before
                 1
                 (calendar-absolute-from-gregorian
                  (calendar-cursor-to-date t event)))))
         ;; (month (calendar-extract-month date))
         ;; (year (calendar-extract-year date))
         ;; (day (calendar-extract-day date))
         (d1 (calendar-absolute-from-gregorian date))
         (d2 (+ (* 7 n) d1))
         (holidays (if cal-tex-holidays
                       (holiday-in-range d1 d2)))
         (diary-list (if cal-tex-diary
                         (cal-tex-list-diary-entries d1 d2))))
    (if filofax
        (progn
          (cal-tex-preamble "twoside")
          (cal-tex-filofax-paper)
          (insert cal-tex-righthead)
          (cal-tex-longday "rightday" "1.85in")
          (cal-tex-longday "weekend" "0.8in")
          (insert cal-tex-lefthead)
          (cal-tex-longday "leftday" "1.85in"))
      (cal-tex-preamble "twoside,12pt")
      (insert "\\textwidth 7in
\\textheight 10.5in
\\oddsidemargin 0in
\\evensidemargin 0in
\\topmargin 0pt
\\headheight -0.875in
\\headsep 0.125in
\\footskip .125in
")
      (insert cal-tex-righthead)
      (cal-tex-longday "rightday" "2.75in")
      (cal-tex-longday "weekend" "1.8in")
      (insert cal-tex-lefthead)
      (cal-tex-longday "leftday" "2.75in"))
    (cal-tex-b-document)
    (cal-tex-cmd "\\pagestyle" "empty")
    ;; Let's assume this is something to do with twopage documents.
    ;; It has the downside that we start with a blank page.
    ;; It doesn't make obvious sense when oddside and evenside margins
    ;; are the same (non-filofax), but consider the left and right
    ;; versions of various functions as applicable to even and odd pages.
    (cal-tex-newpage)
    (dotimes (i n)
      (insert "\\lefthead")
      (cal-tex-arg
       (let ((d (cal-tex-incr-date date 2)))
         (if (= (calendar-extract-month date)
                (calendar-extract-month d))
             (format "%s %s"
                     (cal-tex-month-name (calendar-extract-month date))
                     (calendar-extract-year date))
           (if (= (calendar-extract-year date)
                  (calendar-extract-year d))
               (format "%s---%s %s"
                       (cal-tex-month-name (calendar-extract-month date))
                       (cal-tex-month-name (calendar-extract-month d))
                       (calendar-extract-year date))
             (format "%s %s---%s %s"
                     (cal-tex-month-name (calendar-extract-month date))
                     (calendar-extract-year date)
                     (cal-tex-month-name (calendar-extract-month d))
                     (calendar-extract-year d))))))
      (insert "%\n")
      (dotimes (_jdummy 3)
        (insert "\\leftday")
        (cal-tex-arg (cal-tex-LaTeXify-string (calendar-day-name date)))
        (cal-tex-arg (number-to-string (calendar-extract-day date)))
        (cal-tex-arg (cal-tex-latexify-list diary-list date))
        (cal-tex-arg (cal-tex-latexify-list holidays date))
        (cal-tex-arg (eval cal-tex-daily-string t))
        (insert "%\n")
        (setq date (cal-tex-incr-date date)))
      (insert "\\noindent\\rule{\\textwidth}{0.3pt}\\\\%\n")
      (unless filofax
        (cal-tex-nl)
        (insert (cal-tex-mini-calendar
                 (calendar-extract-month (cal-tex-previous-month date))
                 (calendar-extract-year (cal-tex-previous-month date))
                 "lastmonth" "1.1in" "1in"))
        (insert (cal-tex-mini-calendar
                 (calendar-extract-month date)
                 (calendar-extract-year date)
                 "thismonth" "1.1in" "1in"))
        (insert (cal-tex-mini-calendar
                 (calendar-extract-month (cal-tex-next-month date))
                 (calendar-extract-year (cal-tex-next-month date))
                 "nextmonth" "1.1in" "1in"))
        (insert "\\hbox to \\textwidth{")
        (cal-tex-hfill)
        (insert "\\lastmonth")
        (cal-tex-hfill)
        (insert "\\thismonth")
        (cal-tex-hfill)
        (insert "\\nextmonth")
        (cal-tex-hfill)
        (insert "}"))
      (cal-tex-newpage)
      (insert "\\righthead")
      (cal-tex-arg
       (let ((d (cal-tex-incr-date date 3)))
         (if (= (calendar-extract-month date)
                (calendar-extract-month d))
             (format "%s %s"
                     (cal-tex-month-name (calendar-extract-month date))
                     (calendar-extract-year date))
           (if (= (calendar-extract-year date)
                  (calendar-extract-year d))
               (format "%s---%s %s"
                       (cal-tex-month-name (calendar-extract-month date))
                       (cal-tex-month-name (calendar-extract-month d))
                       (calendar-extract-year date))
             (format "%s %s---%s %s"
                     (cal-tex-month-name (calendar-extract-month date))
                     (calendar-extract-year date)
                     (cal-tex-month-name (calendar-extract-month d))
                     (calendar-extract-year d))))))
      (insert "%\n")
      (dotimes (_jdummy 2)
        (insert "\\rightday")
        (cal-tex-arg (cal-tex-LaTeXify-string (calendar-day-name date)))
        (cal-tex-arg (number-to-string (calendar-extract-day date)))
        (cal-tex-arg (cal-tex-latexify-list diary-list date))
        (cal-tex-arg (cal-tex-latexify-list holidays date))
        (cal-tex-arg (eval cal-tex-daily-string))
        (insert "%\n")
        (setq date (cal-tex-incr-date date)))
      (dotimes (_jdummy 2)
        (insert "\\weekend")
        (cal-tex-arg (cal-tex-LaTeXify-string (calendar-day-name date)))
        (cal-tex-arg (number-to-string (calendar-extract-day date)))
        (cal-tex-arg (cal-tex-latexify-list diary-list date))
        (cal-tex-arg (cal-tex-latexify-list holidays date))
        (cal-tex-arg (eval cal-tex-daily-string))
        (insert "%\n")
        (setq date (cal-tex-incr-date date)))
      (unless (= i (1- n))
        (run-hooks 'cal-tex-week-hook)
        (cal-tex-newpage)))
    (cal-tex-end-document)
    (run-hooks 'cal-tex-hook)))