Emacs 如何将日历与周数作为月间文本对齐

Emacs 如何将日历与周数作为月间文本对齐,emacs,calendar,org-mode,Emacs,Calendar,Org Mode,当我在组织模式下使用Emacs日历/日记时(但我不认为这是问题的原因),我会遇到以下问题 默认日历如下所示: 我添加以下代码以显示周数: (copy-face font-lock-constant-face 'calendar-iso-week-face) (set-face-attribute 'calendar-iso-week-face nil :height 1) (setq calendar-intermonth-text '(p

当我在组织模式下使用Emacs日历/日记时(但我不认为这是问题的原因),我会遇到以下问题

默认日历如下所示:

我添加以下代码以显示周数:

(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))
插入这些代码后,可以显示周数。但是,对齐方式有点奇怪,如下所示:

日历的最后一行未对齐。如何处理这个问题


谢谢。

是您的
高度设置造成了问题。您可能希望尝试使用其他变量,例如:
日历左边距
日历列宽
日历日标题宽度
日历日数字宽度
日历月间标题
日历月间文本

注意:对于想知道如何突出显示星期六而不是星期一的人,函数
calendar generate month
有一行代码,其中包含
(if(memq i'(0 6))
——如果
日历周开始日期
0
更改为
1
,则有必要将上述代码从
0 6
更改为
5 6
。或者,可以通过为一周中的几天添加新关键字来更改字体锁定设置

(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))


(来源:)

在iso week face中添加与日历其余部分相同的高度和字体如何?--这样做时,它不会再小了,但我认为它会解决您的问题。我认为尝试保持它的小尺寸并与大尺寸对齐会有问题,但考虑到类似于linum模式的操作方式。