comparison lisp/calendar/cal-tex.el @ 93809:3ff2b47de8f2

Update for calendar.el name changes.
author Glenn Morris <rgm@gnu.org>
date Mon, 07 Apr 2008 01:59:37 +0000
parents 6076b35285b8
children bf9ef749c23e
comparison
equal deleted inserted replaced
93808:2c72483f42c9 93809:3ff2b47de8f2
95 At present, this only affects the daily filofax calendar." 95 At present, this only affects the daily filofax calendar."
96 :type 'boolean 96 :type 'boolean
97 :group 'calendar-tex) 97 :group 'calendar-tex)
98 98
99 (defcustom cal-tex-daily-string 99 (defcustom cal-tex-daily-string
100 '(let* ((year (extract-calendar-year date)) 100 '(let* ((year (calendar-extract-year date))
101 (day (calendar-day-number date)) 101 (day (calendar-day-number date))
102 (days-remaining (- (calendar-day-number (list 12 31 year)) day))) 102 (days-remaining (- (calendar-day-number (list 12 31 year)) day)))
103 (format "%d/%d" day days-remaining)) 103 (format "%d/%d" day days-remaining))
104 "Lisp expression giving the date format to use in the LaTeX calendars. 104 "Lisp expression giving the date format to use in the LaTeX calendars.
105 This should be an expression involving the variable `date'. When 105 This should be an expression involving the variable `date'. When
240 (autoload 'calendar-holiday-list "holidays") 240 (autoload 'calendar-holiday-list "holidays")
241 241
242 (defun cal-tex-list-holidays (d1 d2) 242 (defun cal-tex-list-holidays (d1 d2)
243 "Generate a list of all holidays from absolute date D1 to D2." 243 "Generate a list of all holidays from absolute date D1 to D2."
244 (let* ((start (calendar-gregorian-from-absolute d1)) 244 (let* ((start (calendar-gregorian-from-absolute d1))
245 (displayed-month (extract-calendar-month start)) 245 (displayed-month (calendar-extract-month start))
246 (displayed-year (extract-calendar-year start)) 246 (displayed-year (calendar-extract-year start))
247 (end (calendar-gregorian-from-absolute d2)) 247 (end (calendar-gregorian-from-absolute d2))
248 (end-month (extract-calendar-month end)) 248 (end-month (calendar-extract-month end))
249 (end-year (extract-calendar-year end)) 249 (end-year (calendar-extract-year end))
250 (number-of-intervals 250 (number-of-intervals
251 (1+ (/ (calendar-interval displayed-month displayed-year 251 (1+ (/ (calendar-interval displayed-month displayed-year
252 end-month end-year) 252 end-month end-year)
253 3))) 253 3)))
254 holidays in-range a) 254 holidays in-range a)
255 (increment-calendar-month displayed-month displayed-year 1) 255 (calendar-increment-month displayed-month displayed-year 1)
256 (dotimes (idummy number-of-intervals) 256 (dotimes (idummy number-of-intervals)
257 (setq holidays (append holidays (calendar-holiday-list))) 257 (setq holidays (append holidays (calendar-holiday-list)))
258 (increment-calendar-month displayed-month displayed-year 3)) 258 (calendar-increment-month displayed-month displayed-year 3))
259 (dolist (hol holidays) 259 (dolist (hol holidays)
260 (and (car hol) 260 (and (car hol)
261 (setq a (calendar-absolute-from-gregorian (car hol))) 261 (setq a (calendar-absolute-from-gregorian (car hol)))
262 (and (<= d1 a) (<= a d2)) 262 (and (<= d1 a) (<= a d2))
263 (setq in-range (append (list hol) in-range)))) 263 (setq in-range (append (list hol) in-range))))
315 ;;;###cal-autoload 315 ;;;###cal-autoload
316 (defun cal-tex-cursor-year (&optional arg) 316 (defun cal-tex-cursor-year (&optional arg)
317 "Make a buffer with LaTeX commands for the year cursor is on. 317 "Make a buffer with LaTeX commands for the year cursor is on.
318 Optional prefix argument ARG specifies number of years." 318 Optional prefix argument ARG specifies number of years."
319 (interactive "p") 319 (interactive "p")
320 (cal-tex-year (extract-calendar-year (calendar-cursor-to-date t)) 320 (cal-tex-year (calendar-extract-year (calendar-cursor-to-date t))
321 (or arg 1))) 321 (or arg 1)))
322 322
323 ;;;###cal-autoload 323 ;;;###cal-autoload
324 (defun cal-tex-cursor-year-landscape (&optional arg) 324 (defun cal-tex-cursor-year-landscape (&optional arg)
325 "Make a buffer with LaTeX commands for the year cursor is on. 325 "Make a buffer with LaTeX commands for the year cursor is on.
326 Optional prefix argument ARG specifies number of years." 326 Optional prefix argument ARG specifies number of years."
327 (interactive "p") 327 (interactive "p")
328 (cal-tex-year (extract-calendar-year (calendar-cursor-to-date t)) 328 (cal-tex-year (calendar-extract-year (calendar-cursor-to-date t))
329 (or arg 1) t)) 329 (or arg 1) t))
330 330
331 (defun cal-tex-year (year n &optional landscape) 331 (defun cal-tex-year (year n &optional landscape)
332 "Make a one page yearly calendar of YEAR; do this for N years. 332 "Make a one page yearly calendar of YEAR; do this for N years.
333 There are four rows of three months each, unless optional 333 There are four rows of three months each, unless optional
368 (defun cal-tex-cursor-filofax-year (&optional arg) 368 (defun cal-tex-cursor-filofax-year (&optional arg)
369 "Make a Filofax one page yearly calendar of year indicated by cursor. 369 "Make a Filofax one page yearly calendar of year indicated by cursor.
370 Optional prefix argument ARG specifies number of years." 370 Optional prefix argument ARG specifies number of years."
371 (interactive "p") 371 (interactive "p")
372 (let ((n (or arg 1)) 372 (let ((n (or arg 1))
373 (year (extract-calendar-year (calendar-cursor-to-date t)))) 373 (year (calendar-extract-year (calendar-cursor-to-date t))))
374 (cal-tex-preamble "twoside") 374 (cal-tex-preamble "twoside")
375 (cal-tex-cmd "\\textwidth 3.25in") 375 (cal-tex-cmd "\\textwidth 3.25in")
376 (cal-tex-cmd "\\textheight 6.5in") 376 (cal-tex-cmd "\\textheight 6.5in")
377 (cal-tex-cmd "\\oddsidemargin 1.675in") 377 (cal-tex-cmd "\\oddsidemargin 1.675in")
378 (cal-tex-cmd "\\evensidemargin 1.675in") 378 (cal-tex-cmd "\\evensidemargin 1.675in")
425 month to a page. It shows holiday and diary entries if 425 month to a page. It shows holiday and diary entries if
426 `cal-tex-holidays' and `cal-tex-diary', respectively, are non-nil." 426 `cal-tex-holidays' and `cal-tex-diary', respectively, are non-nil."
427 (interactive "p") 427 (interactive "p")
428 (let* ((n (or arg 1)) 428 (let* ((n (or arg 1))
429 (date (calendar-cursor-to-date t)) 429 (date (calendar-cursor-to-date t))
430 (month (extract-calendar-month date)) 430 (month (calendar-extract-month date))
431 (year (extract-calendar-year date)) 431 (year (calendar-extract-year date))
432 (end-month month) 432 (end-month month)
433 (end-year year) 433 (end-year year)
434 (cal-tex-which-days '(0 1 2 3 4 5 6)) 434 (cal-tex-which-days '(0 1 2 3 4 5 6))
435 (d1 (calendar-absolute-from-gregorian (list month 1 year))) 435 (d1 (calendar-absolute-from-gregorian (list month 1 year)))
436 (d2 (calendar-absolute-from-gregorian 436 (d2 (calendar-absolute-from-gregorian
437 (list end-month 437 (list end-month
438 (calendar-last-day-of-month end-month end-year) 438 (calendar-last-day-of-month end-month end-year)
439 end-year))) 439 end-year)))
440 (diary-list (progn 440 (diary-list (progn
441 (increment-calendar-month end-month end-year (1- n)) 441 (calendar-increment-month end-month end-year (1- n))
442 (if cal-tex-diary (cal-tex-list-diary-entries d1 d2)))) 442 (if cal-tex-diary (cal-tex-list-diary-entries d1 d2))))
443 (holidays (if cal-tex-holidays (cal-tex-list-holidays d1 d2))) 443 (holidays (if cal-tex-holidays (cal-tex-list-holidays d1 d2)))
444 other-month other-year small-months-at-start) 444 other-month other-year small-months-at-start)
445 (cal-tex-insert-preamble (cal-tex-number-weeks month year 1) t "12pt") 445 (cal-tex-insert-preamble (cal-tex-number-weeks month year 1) t "12pt")
446 (cal-tex-cmd cal-tex-cal-one-month) 446 (cal-tex-cmd cal-tex-cal-one-month)
447 (dotimes (i n) 447 (dotimes (i n)
448 (setq other-month month 448 (setq other-month month
449 other-year year) 449 other-year year)
450 (increment-calendar-month other-month other-year -1) 450 (calendar-increment-month other-month other-year -1)
451 (insert (cal-tex-mini-calendar other-month other-year "lastmonth" 451 (insert (cal-tex-mini-calendar other-month other-year "lastmonth"
452 "\\cellwidth" "\\cellheight")) 452 "\\cellwidth" "\\cellheight"))
453 (increment-calendar-month other-month other-year 2) 453 (calendar-increment-month other-month other-year 2)
454 (insert (cal-tex-mini-calendar other-month other-year "nextmonth" 454 (insert (cal-tex-mini-calendar other-month other-year "nextmonth"
455 "\\cellwidth" "\\cellheight")) 455 "\\cellwidth" "\\cellheight"))
456 (cal-tex-insert-month-header 1 month year month year) 456 (cal-tex-insert-month-header 1 month year month year)
457 (cal-tex-insert-day-names) 457 (cal-tex-insert-day-names)
458 (cal-tex-nl ".2cm") 458 (cal-tex-nl ".2cm")
476 "\\lastmonth\\nextmonth% 476 "\\lastmonth\\nextmonth%
477 ")) 477 "))
478 (unless (= i (1- n)) 478 (unless (= i (1- n))
479 (run-hooks 'cal-tex-month-hook) 479 (run-hooks 'cal-tex-month-hook)
480 (cal-tex-newpage) 480 (cal-tex-newpage)
481 (increment-calendar-month month year 1) 481 (calendar-increment-month month year 1)
482 (cal-tex-vspace "-2cm") 482 (cal-tex-vspace "-2cm")
483 (cal-tex-insert-preamble 483 (cal-tex-insert-preamble
484 (cal-tex-number-weeks month year 1) t "12pt" t)))) 484 (cal-tex-number-weeks month year 1) t "12pt" t))))
485 (cal-tex-end-document) 485 (cal-tex-end-document)
486 (run-hooks 'cal-tex-hook)) 486 (run-hooks 'cal-tex-hook))
493 It shows holiday and diary entries if `cal-tex-holidays' and 493 It shows holiday and diary entries if `cal-tex-holidays' and
494 `cal-tex-diary', respectively, are non-nil." 494 `cal-tex-diary', respectively, are non-nil."
495 (interactive "p") 495 (interactive "p")
496 (let* ((n (or arg 1)) 496 (let* ((n (or arg 1))
497 (date (calendar-cursor-to-date t)) 497 (date (calendar-cursor-to-date t))
498 (month (extract-calendar-month date)) 498 (month (calendar-extract-month date))
499 (year (extract-calendar-year date)) 499 (year (calendar-extract-year date))
500 (end-month month) 500 (end-month month)
501 (end-year year) 501 (end-year year)
502 (d1 (calendar-absolute-from-gregorian (list month 1 year))) 502 (d1 (calendar-absolute-from-gregorian (list month 1 year)))
503 (d2 (calendar-absolute-from-gregorian 503 (d2 (calendar-absolute-from-gregorian
504 (list end-month 504 (list end-month
505 (calendar-last-day-of-month end-month end-year) 505 (calendar-last-day-of-month end-month end-year)
506 end-year))) 506 end-year)))
507 (diary-list (progn 507 (diary-list (progn
508 (increment-calendar-month end-month end-year (1- n)) 508 (calendar-increment-month end-month end-year (1- n))
509 (if cal-tex-diary (cal-tex-list-diary-entries d1 d2)))) 509 (if cal-tex-diary (cal-tex-list-diary-entries d1 d2))))
510 (holidays (if cal-tex-holidays (cal-tex-list-holidays d1 d2))) 510 (holidays (if cal-tex-holidays (cal-tex-list-holidays d1 d2)))
511 other-month other-year) 511 other-month other-year)
512 (cal-tex-insert-preamble (cal-tex-number-weeks month year n) nil "12pt") 512 (cal-tex-insert-preamble (cal-tex-number-weeks month year n) nil "12pt")
513 (if (> n 1) 513 (if (> n 1)
526 (calendar-last-day-of-month month year) 526 (calendar-last-day-of-month month year)
527 year)) 527 year))
528 7)) ; last day of month was Saturday 528 7)) ; last day of month was Saturday
529 (cal-tex-hfill) 529 (cal-tex-hfill)
530 (cal-tex-nl)) 530 (cal-tex-nl))
531 (increment-calendar-month month year 1)) 531 (calendar-increment-month month year 1))
532 (cal-tex-insert-blank-days-at-end end-month end-year cal-tex-day-prefix)) 532 (cal-tex-insert-blank-days-at-end end-month end-year cal-tex-day-prefix))
533 (cal-tex-end-document) 533 (cal-tex-end-document)
534 (run-hooks 'cal-tex-hook)) 534 (run-hooks 'cal-tex-hook))
535 535
536 (defun cal-tex-insert-days (month year diary-list holidays day-format) 536 (defun cal-tex-insert-days (month year diary-list holidays day-format)
648 "Determine the number of weeks in a range of dates. 648 "Determine the number of weeks in a range of dates.
649 Compute the number of weeks in the calendar starting with MONTH and YEAR, 649 Compute the number of weeks in the calendar starting with MONTH and YEAR,
650 and lasting N months, including only the days in WHICH-DAYS. As it stands, 650 and lasting N months, including only the days in WHICH-DAYS. As it stands,
651 this is only an upper bound." 651 this is only an upper bound."
652 (let ((d (list month 1 year))) 652 (let ((d (list month 1 year)))
653 (increment-calendar-month month year (1- n)) 653 (calendar-increment-month month year (1- n))
654 (/ (- (calendar-dayname-on-or-before 654 (/ (- (calendar-dayname-on-or-before
655 calendar-week-start-day 655 calendar-week-start-day
656 (+ 7 (calendar-absolute-from-gregorian 656 (+ 7 (calendar-absolute-from-gregorian
657 (list month (calendar-last-day-of-month month year) year)))) 657 (list month (calendar-last-day-of-month month year) year))))
658 (calendar-dayname-on-or-before 658 (calendar-dayname-on-or-before
683 (date (calendar-gregorian-from-absolute 683 (date (calendar-gregorian-from-absolute
684 (calendar-dayname-on-or-before 684 (calendar-dayname-on-or-before
685 calendar-week-start-day 685 calendar-week-start-day
686 (calendar-absolute-from-gregorian 686 (calendar-absolute-from-gregorian
687 (calendar-cursor-to-date t))))) 687 (calendar-cursor-to-date t)))))
688 (month (extract-calendar-month date)) 688 (month (calendar-extract-month date))
689 (year (extract-calendar-year date)) 689 (year (calendar-extract-year date))
690 (d1 (calendar-absolute-from-gregorian date)) 690 (d1 (calendar-absolute-from-gregorian date))
691 (d2 (+ (* 7 n) d1)) 691 (d2 (+ (* 7 n) d1))
692 (holidays (if cal-tex-holidays 692 (holidays (if cal-tex-holidays
693 (cal-tex-list-holidays d1 d2)))) 693 (cal-tex-list-holidays d1 d2))))
694 (cal-tex-preamble "11pt") 694 (cal-tex-preamble "11pt")
712 (cal-tex-b-parbox "l" "7in") 712 (cal-tex-b-parbox "l" "7in")
713 (dotimes (jdummy 7) 713 (dotimes (jdummy 7)
714 (cal-tex-week-hours date holidays "3.1") 714 (cal-tex-week-hours date holidays "3.1")
715 (setq date (cal-tex-incr-date date))) 715 (setq date (cal-tex-incr-date date)))
716 (cal-tex-e-parbox) 716 (cal-tex-e-parbox)
717 (setq month (extract-calendar-month date) 717 (setq month (calendar-extract-month date)
718 year (extract-calendar-year date)) 718 year (calendar-extract-year date))
719 (unless (= i (1- n)) 719 (unless (= i (1- n))
720 (run-hooks 'cal-tex-week-hook) 720 (run-hooks 'cal-tex-week-hook)
721 (cal-tex-newpage))) 721 (cal-tex-newpage)))
722 (cal-tex-end-document) 722 (cal-tex-end-document)
723 (run-hooks 'cal-tex-hook))) 723 (run-hooks 'cal-tex-hook)))
736 (date (calendar-gregorian-from-absolute 736 (date (calendar-gregorian-from-absolute
737 (calendar-dayname-on-or-before 737 (calendar-dayname-on-or-before
738 calendar-week-start-day 738 calendar-week-start-day
739 (calendar-absolute-from-gregorian 739 (calendar-absolute-from-gregorian
740 (calendar-cursor-to-date t))))) 740 (calendar-cursor-to-date t)))))
741 (month (extract-calendar-month date)) 741 (month (calendar-extract-month date))
742 (year (extract-calendar-year date)) 742 (year (calendar-extract-year date))
743 (d date) 743 (d date)
744 (d1 (calendar-absolute-from-gregorian date)) 744 (d1 (calendar-absolute-from-gregorian date))
745 (d2 (+ (* 7 n) d1)) 745 (d2 (+ (* 7 n) d1))
746 (holidays (if cal-tex-holidays 746 (holidays (if cal-tex-holidays
747 (cal-tex-list-holidays d1 d2)))) 747 (cal-tex-list-holidays d1 d2))))
768 (cal-tex-week-hours date holidays "5") 768 (cal-tex-week-hours date holidays "5")
769 (setq date (cal-tex-incr-date date))) 769 (setq date (cal-tex-incr-date date)))
770 (cal-tex-e-parbox) 770 (cal-tex-e-parbox)
771 (cal-tex-nl) 771 (cal-tex-nl)
772 (insert (cal-tex-mini-calendar 772 (insert (cal-tex-mini-calendar
773 (extract-calendar-month (cal-tex-previous-month date)) 773 (calendar-extract-month (cal-tex-previous-month date))
774 (extract-calendar-year (cal-tex-previous-month date)) 774 (calendar-extract-year (cal-tex-previous-month date))
775 "lastmonth" "1.1in" "1in")) 775 "lastmonth" "1.1in" "1in"))
776 (insert (cal-tex-mini-calendar 776 (insert (cal-tex-mini-calendar
777 (extract-calendar-month date) 777 (calendar-extract-month date)
778 (extract-calendar-year date) 778 (calendar-extract-year date)
779 "thismonth" "1.1in" "1in")) 779 "thismonth" "1.1in" "1in"))
780 (insert (cal-tex-mini-calendar 780 (insert (cal-tex-mini-calendar
781 (extract-calendar-month (cal-tex-next-month date)) 781 (calendar-extract-month (cal-tex-next-month date))
782 (extract-calendar-year (cal-tex-next-month date)) 782 (calendar-extract-year (cal-tex-next-month date))
783 "nextmonth" "1.1in" "1in")) 783 "nextmonth" "1.1in" "1in"))
784 (insert "\\hbox to \\textwidth{") 784 (insert "\\hbox to \\textwidth{")
785 (cal-tex-hfill) 785 (cal-tex-hfill)
786 (insert "\\lastmonth") 786 (insert "\\lastmonth")
787 (cal-tex-hfill) 787 (cal-tex-hfill)
794 (cal-tex-b-parbox "l" "\\textwidth") 794 (cal-tex-b-parbox "l" "\\textwidth")
795 (dotimes (jdummy 4) 795 (dotimes (jdummy 4)
796 (cal-tex-week-hours date holidays "5") 796 (cal-tex-week-hours date holidays "5")
797 (setq date (cal-tex-incr-date date))) 797 (setq date (cal-tex-incr-date date)))
798 (cal-tex-e-parbox) 798 (cal-tex-e-parbox)
799 (setq month (extract-calendar-month date) 799 (setq month (calendar-extract-month date)
800 year (extract-calendar-year date)) 800 year (calendar-extract-year date))
801 (unless (= i (1- n)) 801 (unless (= i (1- n))
802 (run-hooks 'cal-tex-week-hook) 802 (run-hooks 'cal-tex-week-hook)
803 (cal-tex-newpage))) 803 (cal-tex-newpage)))
804 (cal-tex-end-document) 804 (cal-tex-end-document)
805 (run-hooks 'cal-tex-hook))) 805 (run-hooks 'cal-tex-hook)))
818 (date (calendar-gregorian-from-absolute 818 (date (calendar-gregorian-from-absolute
819 (calendar-dayname-on-or-before 819 (calendar-dayname-on-or-before
820 1 820 1
821 (calendar-absolute-from-gregorian 821 (calendar-absolute-from-gregorian
822 (calendar-cursor-to-date t))))) 822 (calendar-cursor-to-date t)))))
823 (month (extract-calendar-month date)) 823 (month (calendar-extract-month date))
824 (year (extract-calendar-year date)) 824 (year (calendar-extract-year date))
825 (day (extract-calendar-day date)) 825 (day (calendar-extract-day date))
826 (d1 (calendar-absolute-from-gregorian date)) 826 (d1 (calendar-absolute-from-gregorian date))
827 (d2 (+ (* 7 n) d1)) 827 (d2 (+ (* 7 n) d1))
828 (holidays (if cal-tex-holidays 828 (holidays (if cal-tex-holidays
829 (cal-tex-list-holidays d1 d2))) 829 (cal-tex-list-holidays d1 d2)))
830 (diary-list (if cal-tex-diary 830 (diary-list (if cal-tex-diary
845 (cal-tex-b-center) 845 (cal-tex-b-center)
846 (cal-tex-Huge-bf 846 (cal-tex-Huge-bf
847 (let ((d (calendar-iso-from-absolute 847 (let ((d (calendar-iso-from-absolute
848 (calendar-absolute-from-gregorian date)))) 848 (calendar-absolute-from-gregorian date))))
849 (format "Week %d of %d" 849 (format "Week %d of %d"
850 (extract-calendar-month d) 850 (calendar-extract-month d)
851 (extract-calendar-year d)))) 851 (calendar-extract-year d))))
852 (cal-tex-nl ".5cm") 852 (cal-tex-nl ".5cm")
853 (cal-tex-e-center) 853 (cal-tex-e-center)
854 (cal-tex-b-parbox "l" "\\textwidth") 854 (cal-tex-b-parbox "l" "\\textwidth")
855 (dotimes (j 7) 855 (dotimes (j 7)
856 (cal-tex-b-parbox "t" "\\textwidth") 856 (cal-tex-b-parbox "t" "\\textwidth")
879 (cal-tex-large-bf s) 879 (cal-tex-large-bf s)
880 (insert "}")) 880 (insert "}"))
881 (cal-tex-e-parbox) 881 (cal-tex-e-parbox)
882 (cal-tex-nl) 882 (cal-tex-nl)
883 (setq date (cal-tex-incr-date date) 883 (setq date (cal-tex-incr-date date)
884 month (extract-calendar-month date) 884 month (calendar-extract-month date)
885 day (extract-calendar-day date)) 885 day (calendar-extract-day date))
886 (cal-tex-e-parbox) 886 (cal-tex-e-parbox)
887 (cal-tex-e-parbox "2cm") 887 (cal-tex-e-parbox "2cm")
888 (cal-tex-nl) 888 (cal-tex-nl)
889 (setq month (extract-calendar-month date) 889 (setq month (calendar-extract-month date)
890 year (extract-calendar-year date))) 890 year (calendar-extract-year date)))
891 (cal-tex-e-parbox) 891 (cal-tex-e-parbox)
892 (unless (= i (1- n)) 892 (unless (= i (1- n))
893 (run-hooks 'cal-tex-week-hook) 893 (run-hooks 'cal-tex-week-hook)
894 (cal-tex-newpage))) 894 (cal-tex-newpage)))
895 (cal-tex-end-document) 895 (cal-tex-end-document)
899 ;; Using different numbers of hours will probably break some layouts. 899 ;; Using different numbers of hours will probably break some layouts.
900 (defun cal-tex-week-hours (date holidays height) 900 (defun cal-tex-week-hours (date holidays height)
901 "Insert hourly entries for DATE with HOLIDAYS, with line height HEIGHT. 901 "Insert hourly entries for DATE with HOLIDAYS, with line height HEIGHT.
902 Uses the 24-hour clock if `cal-tex-24' is non-nil. Note that the hours 902 Uses the 24-hour clock if `cal-tex-24' is non-nil. Note that the hours
903 shown are hard-coded to 8-12, 13-17." 903 shown are hard-coded to 8-12, 13-17."
904 (let ((month (extract-calendar-month date)) 904 (let ((month (calendar-extract-month date))
905 (day (extract-calendar-day date)) 905 (day (calendar-extract-day date))
906 (year (extract-calendar-year date)) 906 (year (calendar-extract-year date))
907 morning afternoon s) 907 morning afternoon s)
908 (cal-tex-comment "begin cal-tex-week-hours") 908 (cal-tex-comment "begin cal-tex-week-hours")
909 (cal-tex-cmd "\\ \\\\[-.2cm]") 909 (cal-tex-cmd "\\ \\\\[-.2cm]")
910 (cal-tex-cmd "\\noindent") 910 (cal-tex-cmd "\\noindent")
911 (cal-tex-b-parbox "l" "6.8in") 911 (cal-tex-b-parbox "l" "6.8in")
981 ;; Using different numbers of hours will probably break some layouts. 981 ;; Using different numbers of hours will probably break some layouts.
982 (defun cal-tex-weekly4-box (date weekend) 982 (defun cal-tex-weekly4-box (date weekend)
983 "Make one box for DATE, different if WEEKEND. 983 "Make one box for DATE, different if WEEKEND.
984 Uses the 24-hour clock if `cal-tex-24' is non-nil. Note that the hours 984 Uses the 24-hour clock if `cal-tex-24' is non-nil. Note that the hours
985 shown are hard-coded to 8-12, 13-17." 985 shown are hard-coded to 8-12, 13-17."
986 (let* ((day (extract-calendar-day date)) 986 (let* ((day (calendar-extract-day date))
987 (month (extract-calendar-month date)) 987 (month (calendar-extract-month date))
988 (year (extract-calendar-year date)) 988 (year (calendar-extract-year date))
989 (dayname (cal-tex-LaTeXify-string (calendar-day-name date))) 989 (dayname (cal-tex-LaTeXify-string (calendar-day-name date)))
990 (date1 (cal-tex-incr-date date)) 990 (date1 (cal-tex-incr-date date))
991 (day1 (extract-calendar-day date1)) 991 (day1 (calendar-extract-day date1))
992 (month1 (extract-calendar-month date1)) 992 (month1 (calendar-extract-month date1))
993 (year1 (extract-calendar-year date1)) 993 (year1 (calendar-extract-year date1))
994 (dayname1 (cal-tex-LaTeXify-string (calendar-day-name date1)))) 994 (dayname1 (cal-tex-LaTeXify-string (calendar-day-name date1))))
995 (cal-tex-b-framebox "8cm" "l") 995 (cal-tex-b-framebox "8cm" "l")
996 (cal-tex-b-parbox "b" "7.5cm") 996 (cal-tex-b-parbox "b" "7.5cm")
997 (insert (format "\\textbf{\\Large %s,} %s/%s/%s\\\\\n" 997 (insert (format "\\textbf{\\Large %s,} %s/%s/%s\\\\\n"
998 dayname month day year)) 998 dayname month day year))
1030 (date (calendar-gregorian-from-absolute 1030 (date (calendar-gregorian-from-absolute
1031 (calendar-dayname-on-or-before 1031 (calendar-dayname-on-or-before
1032 calendar-week-start-day 1032 calendar-week-start-day
1033 (calendar-absolute-from-gregorian 1033 (calendar-absolute-from-gregorian
1034 (calendar-cursor-to-date t))))) 1034 (calendar-cursor-to-date t)))))
1035 (month (extract-calendar-month date)) 1035 (month (calendar-extract-month date))
1036 (year (extract-calendar-year date)) 1036 (year (calendar-extract-year date))
1037 (day (extract-calendar-day date)) 1037 (day (calendar-extract-day date))
1038 (d1 (calendar-absolute-from-gregorian date)) 1038 (d1 (calendar-absolute-from-gregorian date))
1039 (d2 (+ (* 7 n) d1)) 1039 (d2 (+ (* 7 n) d1))
1040 (holidays (if cal-tex-holidays 1040 (holidays (if cal-tex-holidays
1041 (cal-tex-list-holidays d1 d2))) 1041 (cal-tex-list-holidays d1 d2)))
1042 (diary-list (if cal-tex-diary 1042 (diary-list (if cal-tex-diary
1078 (if (zerop (mod i 2)) 1078 (if (zerop (mod i 2))
1079 (insert "\\righthead") 1079 (insert "\\righthead")
1080 (insert "\\lefthead")) 1080 (insert "\\lefthead"))
1081 (cal-tex-arg 1081 (cal-tex-arg
1082 (let ((d (cal-tex-incr-date date 6))) 1082 (let ((d (cal-tex-incr-date date 6)))
1083 (if (= (extract-calendar-month date) 1083 (if (= (calendar-extract-month date)
1084 (extract-calendar-month d)) 1084 (calendar-extract-month d))
1085 (format "%s %s" 1085 (format "%s %s"
1086 (cal-tex-month-name (extract-calendar-month date)) 1086 (cal-tex-month-name (calendar-extract-month date))
1087 (extract-calendar-year date)) 1087 (calendar-extract-year date))
1088 (if (= (extract-calendar-year date) 1088 (if (= (calendar-extract-year date)
1089 (extract-calendar-year d)) 1089 (calendar-extract-year d))
1090 (format "%s---%s %s" 1090 (format "%s---%s %s"
1091 (cal-tex-month-name (extract-calendar-month date)) 1091 (cal-tex-month-name (calendar-extract-month date))
1092 (cal-tex-month-name (extract-calendar-month d)) 1092 (cal-tex-month-name (calendar-extract-month d))
1093 (extract-calendar-year date)) 1093 (calendar-extract-year date))
1094 (format "%s %s---%s %s" 1094 (format "%s %s---%s %s"
1095 (cal-tex-month-name (extract-calendar-month date)) 1095 (cal-tex-month-name (calendar-extract-month date))
1096 (extract-calendar-year date) 1096 (calendar-extract-year date)
1097 (cal-tex-month-name (extract-calendar-month d)) 1097 (cal-tex-month-name (calendar-extract-month d))
1098 (extract-calendar-year d)))))) 1098 (calendar-extract-year d))))))
1099 (insert "%\n") 1099 (insert "%\n")
1100 (dotimes (jdummy 7) 1100 (dotimes (jdummy 7)
1101 (if (zerop (mod i 2)) 1101 (if (zerop (mod i 2))
1102 (insert "\\rightday") 1102 (insert "\\rightday")
1103 (insert "\\leftday")) 1103 (insert "\\leftday"))
1104 (cal-tex-arg (cal-tex-LaTeXify-string (calendar-day-name date))) 1104 (cal-tex-arg (cal-tex-LaTeXify-string (calendar-day-name date)))
1105 (cal-tex-arg (int-to-string (extract-calendar-day date))) 1105 (cal-tex-arg (int-to-string (calendar-extract-day date)))
1106 (cal-tex-arg (cal-tex-latexify-list diary-list date)) 1106 (cal-tex-arg (cal-tex-latexify-list diary-list date))
1107 (cal-tex-arg (cal-tex-latexify-list holidays date)) 1107 (cal-tex-arg (cal-tex-latexify-list holidays date))
1108 (cal-tex-arg (eval cal-tex-daily-string)) 1108 (cal-tex-arg (eval cal-tex-daily-string))
1109 (insert "%\n") 1109 (insert "%\n")
1110 (setq date (cal-tex-incr-date date))) 1110 (setq date (cal-tex-incr-date date)))
1125 (date (calendar-gregorian-from-absolute 1125 (date (calendar-gregorian-from-absolute
1126 (calendar-dayname-on-or-before 1126 (calendar-dayname-on-or-before
1127 1 1127 1
1128 (calendar-absolute-from-gregorian 1128 (calendar-absolute-from-gregorian
1129 (calendar-cursor-to-date t))))) 1129 (calendar-cursor-to-date t)))))
1130 (month (extract-calendar-month date)) 1130 (month (calendar-extract-month date))
1131 (year (extract-calendar-year date)) 1131 (year (calendar-extract-year date))
1132 (day (extract-calendar-day date)) 1132 (day (calendar-extract-day date))
1133 (d1 (calendar-absolute-from-gregorian date)) 1133 (d1 (calendar-absolute-from-gregorian date))
1134 (d2 (+ (* 7 n) d1)) 1134 (d2 (+ (* 7 n) d1))
1135 (holidays (if cal-tex-holidays 1135 (holidays (if cal-tex-holidays
1136 (cal-tex-list-holidays d1 d2))) 1136 (cal-tex-list-holidays d1 d2)))
1137 (diary-list (if cal-tex-diary 1137 (diary-list (if cal-tex-diary
1180 (cal-tex-newpage) 1180 (cal-tex-newpage)
1181 (dotimes (i n) 1181 (dotimes (i n)
1182 (insert "\\lefthead") 1182 (insert "\\lefthead")
1183 (cal-tex-arg 1183 (cal-tex-arg
1184 (let ((d (cal-tex-incr-date date 2))) 1184 (let ((d (cal-tex-incr-date date 2)))
1185 (if (= (extract-calendar-month date) 1185 (if (= (calendar-extract-month date)
1186 (extract-calendar-month d)) 1186 (calendar-extract-month d))
1187 (format "%s %s" 1187 (format "%s %s"
1188 (cal-tex-month-name (extract-calendar-month date)) 1188 (cal-tex-month-name (calendar-extract-month date))
1189 (extract-calendar-year date)) 1189 (calendar-extract-year date))
1190 (if (= (extract-calendar-year date) 1190 (if (= (calendar-extract-year date)
1191 (extract-calendar-year d)) 1191 (calendar-extract-year d))
1192 (format "%s---%s %s" 1192 (format "%s---%s %s"
1193 (cal-tex-month-name (extract-calendar-month date)) 1193 (cal-tex-month-name (calendar-extract-month date))
1194 (cal-tex-month-name (extract-calendar-month d)) 1194 (cal-tex-month-name (calendar-extract-month d))
1195 (extract-calendar-year date)) 1195 (calendar-extract-year date))
1196 (format "%s %s---%s %s" 1196 (format "%s %s---%s %s"
1197 (cal-tex-month-name (extract-calendar-month date)) 1197 (cal-tex-month-name (calendar-extract-month date))
1198 (extract-calendar-year date) 1198 (calendar-extract-year date)
1199 (cal-tex-month-name (extract-calendar-month d)) 1199 (cal-tex-month-name (calendar-extract-month d))
1200 (extract-calendar-year d)))))) 1200 (calendar-extract-year d))))))
1201 (insert "%\n") 1201 (insert "%\n")
1202 (dotimes (jdummy 3) 1202 (dotimes (jdummy 3)
1203 (insert "\\leftday") 1203 (insert "\\leftday")
1204 (cal-tex-arg (cal-tex-LaTeXify-string (calendar-day-name date))) 1204 (cal-tex-arg (cal-tex-LaTeXify-string (calendar-day-name date)))
1205 (cal-tex-arg (int-to-string (extract-calendar-day date))) 1205 (cal-tex-arg (int-to-string (calendar-extract-day date)))
1206 (cal-tex-arg (cal-tex-latexify-list diary-list date)) 1206 (cal-tex-arg (cal-tex-latexify-list diary-list date))
1207 (cal-tex-arg (cal-tex-latexify-list holidays date)) 1207 (cal-tex-arg (cal-tex-latexify-list holidays date))
1208 (cal-tex-arg (eval cal-tex-daily-string)) 1208 (cal-tex-arg (eval cal-tex-daily-string))
1209 (insert "%\n") 1209 (insert "%\n")
1210 (setq date (cal-tex-incr-date date))) 1210 (setq date (cal-tex-incr-date date)))
1211 (insert "\\noindent\\rule{\\textwidth}{0.3pt}\\\\%\n") 1211 (insert "\\noindent\\rule{\\textwidth}{0.3pt}\\\\%\n")
1212 (cal-tex-newpage) 1212 (cal-tex-newpage)
1213 (insert "\\righthead") 1213 (insert "\\righthead")
1214 (cal-tex-arg 1214 (cal-tex-arg
1215 (let ((d (cal-tex-incr-date date 3))) 1215 (let ((d (cal-tex-incr-date date 3)))
1216 (if (= (extract-calendar-month date) 1216 (if (= (calendar-extract-month date)
1217 (extract-calendar-month d)) 1217 (calendar-extract-month d))
1218 (format "%s %s" 1218 (format "%s %s"
1219 (cal-tex-month-name (extract-calendar-month date)) 1219 (cal-tex-month-name (calendar-extract-month date))
1220 (extract-calendar-year date)) 1220 (calendar-extract-year date))
1221 (if (= (extract-calendar-year date) 1221 (if (= (calendar-extract-year date)
1222 (extract-calendar-year d)) 1222 (calendar-extract-year d))
1223 (format "%s---%s %s" 1223 (format "%s---%s %s"
1224 (cal-tex-month-name (extract-calendar-month date)) 1224 (cal-tex-month-name (calendar-extract-month date))
1225 (cal-tex-month-name (extract-calendar-month d)) 1225 (cal-tex-month-name (calendar-extract-month d))
1226 (extract-calendar-year date)) 1226 (calendar-extract-year date))
1227 (format "%s %s---%s %s" 1227 (format "%s %s---%s %s"
1228 (cal-tex-month-name (extract-calendar-month date)) 1228 (cal-tex-month-name (calendar-extract-month date))
1229 (extract-calendar-year date) 1229 (calendar-extract-year date)
1230 (cal-tex-month-name (extract-calendar-month d)) 1230 (cal-tex-month-name (calendar-extract-month d))
1231 (extract-calendar-year d)))))) 1231 (calendar-extract-year d))))))
1232 (insert "%\n") 1232 (insert "%\n")
1233 (dotimes (jdummy 2) 1233 (dotimes (jdummy 2)
1234 (insert "\\rightday") 1234 (insert "\\rightday")
1235 (cal-tex-arg (cal-tex-LaTeXify-string (calendar-day-name date))) 1235 (cal-tex-arg (cal-tex-LaTeXify-string (calendar-day-name date)))
1236 (cal-tex-arg (int-to-string (extract-calendar-day date))) 1236 (cal-tex-arg (int-to-string (calendar-extract-day date)))
1237 (cal-tex-arg (cal-tex-latexify-list diary-list date)) 1237 (cal-tex-arg (cal-tex-latexify-list diary-list date))
1238 (cal-tex-arg (cal-tex-latexify-list holidays date)) 1238 (cal-tex-arg (cal-tex-latexify-list holidays date))
1239 (cal-tex-arg (eval cal-tex-daily-string)) 1239 (cal-tex-arg (eval cal-tex-daily-string))
1240 (insert "%\n") 1240 (insert "%\n")
1241 (setq date (cal-tex-incr-date date))) 1241 (setq date (cal-tex-incr-date date)))
1242 (dotimes (jdummy 2) 1242 (dotimes (jdummy 2)
1243 (insert "\\weekend") 1243 (insert "\\weekend")
1244 (cal-tex-arg (cal-tex-LaTeXify-string (calendar-day-name date))) 1244 (cal-tex-arg (cal-tex-LaTeXify-string (calendar-day-name date)))
1245 (cal-tex-arg (int-to-string (extract-calendar-day date))) 1245 (cal-tex-arg (int-to-string (calendar-extract-day date)))
1246 (cal-tex-arg (cal-tex-latexify-list diary-list date)) 1246 (cal-tex-arg (cal-tex-latexify-list diary-list date))
1247 (cal-tex-arg (cal-tex-latexify-list holidays date)) 1247 (cal-tex-arg (cal-tex-latexify-list holidays date))
1248 (cal-tex-arg (eval cal-tex-daily-string)) 1248 (cal-tex-arg (eval cal-tex-daily-string))
1249 (insert "%\n") 1249 (insert "%\n")
1250 (setq date (cal-tex-incr-date date))) 1250 (setq date (cal-tex-incr-date date)))
1266 (date (calendar-gregorian-from-absolute 1266 (date (calendar-gregorian-from-absolute
1267 (calendar-dayname-on-or-before 1267 (calendar-dayname-on-or-before
1268 1 1268 1
1269 (calendar-absolute-from-gregorian 1269 (calendar-absolute-from-gregorian
1270 (calendar-cursor-to-date t))))) 1270 (calendar-cursor-to-date t)))))
1271 (month (extract-calendar-month date)) 1271 (month (calendar-extract-month date))
1272 (year (extract-calendar-year date)) 1272 (year (calendar-extract-year date))
1273 (day (extract-calendar-day date)) 1273 (day (calendar-extract-day date))
1274 (d1 (calendar-absolute-from-gregorian date)) 1274 (d1 (calendar-absolute-from-gregorian date))
1275 (d2 (+ (* 7 n) d1)) 1275 (d2 (+ (* 7 n) d1))
1276 (holidays (if cal-tex-holidays 1276 (holidays (if cal-tex-holidays
1277 (cal-tex-list-holidays d1 d2))) 1277 (cal-tex-list-holidays d1 d2)))
1278 (diary-list (if cal-tex-diary 1278 (diary-list (if cal-tex-diary
1395 (defun cal-tex-daily-page (date) 1395 (defun cal-tex-daily-page (date)
1396 "Make a calendar page for Gregorian DATE on 8.5 by 11 paper. 1396 "Make a calendar page for Gregorian DATE on 8.5 by 11 paper.
1397 Uses the 24-hour clock if `cal-tex-24' is non-nil. Produces 1397 Uses the 24-hour clock if `cal-tex-24' is non-nil. Produces
1398 hourly sections for the period specified by `cal-tex-daily-start' 1398 hourly sections for the period specified by `cal-tex-daily-start'
1399 and `cal-tex-daily-end'." 1399 and `cal-tex-daily-end'."
1400 (let ((month-name (cal-tex-month-name (extract-calendar-month date))) 1400 (let ((month-name (cal-tex-month-name (calendar-extract-month date)))
1401 (i (1- cal-tex-daily-start)) 1401 (i (1- cal-tex-daily-start))
1402 hour) 1402 hour)
1403 (cal-tex-banner "cal-tex-daily-page") 1403 (cal-tex-banner "cal-tex-daily-page")
1404 (cal-tex-b-makebox "4cm" "l") 1404 (cal-tex-b-makebox "4cm" "l")
1405 (cal-tex-b-parbox "b" "3.8cm") 1405 (cal-tex-b-parbox "b" "3.8cm")
1406 (cal-tex-rule "0mm" "0mm" "2cm") 1406 (cal-tex-rule "0mm" "0mm" "2cm")
1407 (cal-tex-Huge (number-to-string (extract-calendar-day date))) 1407 (cal-tex-Huge (number-to-string (calendar-extract-day date)))
1408 (cal-tex-nl ".5cm") 1408 (cal-tex-nl ".5cm")
1409 (cal-tex-bf month-name ) 1409 (cal-tex-bf month-name )
1410 (cal-tex-e-parbox) 1410 (cal-tex-e-parbox)
1411 (cal-tex-hspace "1cm") 1411 (cal-tex-hspace "1cm")
1412 (cal-tex-scriptsize (eval cal-tex-daily-string)) 1412 (cal-tex-scriptsize (eval cal-tex-daily-string))
1436 (cal-tex-e-makebox) 1436 (cal-tex-e-makebox)
1437 (cal-tex-rule "0mm" "15.5cm" ".2mm") 1437 (cal-tex-rule "0mm" "15.5cm" ".2mm")
1438 (cal-tex-nl ".2cm")) 1438 (cal-tex-nl ".2cm"))
1439 (cal-tex-hfill) 1439 (cal-tex-hfill)
1440 (insert (cal-tex-mini-calendar 1440 (insert (cal-tex-mini-calendar
1441 (extract-calendar-month (cal-tex-previous-month date)) 1441 (calendar-extract-month (cal-tex-previous-month date))
1442 (extract-calendar-year (cal-tex-previous-month date)) 1442 (calendar-extract-year (cal-tex-previous-month date))
1443 "lastmonth" "1.1in" "1in")) 1443 "lastmonth" "1.1in" "1in"))
1444 (insert (cal-tex-mini-calendar 1444 (insert (cal-tex-mini-calendar
1445 (extract-calendar-month date) 1445 (calendar-extract-month date)
1446 (extract-calendar-year date) 1446 (calendar-extract-year date)
1447 "thismonth" "1.1in" "1in")) 1447 "thismonth" "1.1in" "1in"))
1448 (insert (cal-tex-mini-calendar 1448 (insert (cal-tex-mini-calendar
1449 (extract-calendar-month (cal-tex-next-month date)) 1449 (calendar-extract-month (cal-tex-next-month date))
1450 (extract-calendar-year (cal-tex-next-month date)) 1450 (calendar-extract-year (cal-tex-next-month date))
1451 "nextmonth" "1.1in" "1in")) 1451 "nextmonth" "1.1in" "1in"))
1452 (insert "\\hbox to \\textwidth{") 1452 (insert "\\hbox to \\textwidth{")
1453 (cal-tex-hfill) 1453 (cal-tex-hfill)
1454 (insert "\\lastmonth") 1454 (insert "\\lastmonth")
1455 (cal-tex-hfill) 1455 (cal-tex-hfill)
1542 (concat result separator) 1542 (concat result separator)
1543 result))) 1543 result)))
1544 1544
1545 (defun cal-tex-previous-month (date) 1545 (defun cal-tex-previous-month (date)
1546 "Return the date of the first day in the month previous to DATE." 1546 "Return the date of the first day in the month previous to DATE."
1547 (let ((month (extract-calendar-month date)) 1547 (let ((month (calendar-extract-month date))
1548 (year (extract-calendar-year date))) 1548 (year (calendar-extract-year date)))
1549 (increment-calendar-month month year -1) 1549 (calendar-increment-month month year -1)
1550 (list month 1 year))) 1550 (list month 1 year)))
1551 1551
1552 (defun cal-tex-next-month (date) 1552 (defun cal-tex-next-month (date)
1553 "Return the date of the first day in the month following DATE." 1553 "Return the date of the first day in the month following DATE."
1554 (let ((month (extract-calendar-month date)) 1554 (let ((month (calendar-extract-month date))
1555 (year (extract-calendar-year date))) 1555 (year (calendar-extract-year date)))
1556 (increment-calendar-month month year 1) 1556 (calendar-increment-month month year 1)
1557 (list month 1 year))) 1557 (list month 1 year)))
1558 1558
1559 ;;; 1559 ;;;
1560 ;;; LaTeX Code 1560 ;;; LaTeX Code
1561 ;;; 1561 ;;;