When I use Emacs calendar/diary with org-mode(however I do not think this is the reason of the problem), I encounter the following problem.
The default calendar is like this:
I add the following codes to display week number:
(copy-face font-lock-constant-face 'calendar-iso-week-face)
(set-face-attribute 'calendar-iso-week-face nil
:height 1)
(setq calendar-intermonth-text
'(propertize
(format "%2d"
(car
(calendar-iso-from-absolute
(calendar-absolute-from-gregorian (list month day year)))))
'font-lock-face 'calendar-iso-week-face))
; Title for week number
(copy-face 'default 'calendar-iso-week-header-face)
(set-face-attribute 'calendar-iso-week-header-face nil
:height 0.7)
(setq calendar-intermonth-header
(propertize "Wk" ; or e.g. "KW" in Germany
'font-lock-face 'calendar-iso-week-header-face))
After inserting these codes, the week numbers can be displayed. However, the alignment is a little bit strange like this:
The last line of the calendar is not aligned. How to deal with this problem?
Thanks.
解决方案
It's your height settings that are causing the problem. You may wish to try experimenting with the other variables such as: calendar-left-margin, calendar-column-width, calendar-day-header-width, calendar-day-digit-width, calendar-intermonth-header, calendar-intermonth-text.
NOTE: For anyone wondering how to highlight Saturday instead of Monday, the function calendar-generate-month has a line of code that contains (if (memq i '(0 6)) -- if calendar-week-start-day is changed from 0 to 1, then it would be necessary to alter the above-code from 0 6 to 5 6. Alternatively, the font-lock settings can be trumped by adding new keywords for the days of the week.
(setq calendar-week-start-day 1)
(setq calendar-intermonth-text
'(propertize
(format "%2d"
(car
(calendar-iso-from-absolute
(calendar-absolute-from-gregorian (list month day year)))))
'font-lock-face 'font-lock-warning-face))
(setq calendar-intermonth-header
(propertize "Wk" ; or e.g. "KW" in Germany
'font-lock-face 'font-lock-keyword-face))