通常、ダイアリーウィンドウでは、ダイアリーエントリの日付にあたる祝日が、モードラインまたはバッファ自体に表示されます。祝日の判定処理は、定義された祝日によっては時間がかかる場合があります。その場合、diary-show-holidays-flag を nil
に設定することで、ダイアリーの表示が高速化されます。
変数 diary-number-of-entries
は、一度に表示する日記エントリの日数を制御します。これは、calendar-view-diary-initially-flag が t であるときの初期表示や、コマンド M-x diary
に影響を与えます。例えば、値を 1(デフォルト)にすると当日の日記エントリのみが表示されますが、値を 2
にすると翌日のエントリも表示されます。また、この値は 7 つの整数からなるベクトルを指定することも可能です。例えば、値が [0 2 2 2 2 4 1]
の場合、日曜日は日記エントリが表示されず、月曜日から木曜日までは当日と翌日のエントリが、金曜日は金曜日のエントリが表示され、土曜日はその日のエントリのみが表示されます。
変数 diary-date-forms
を設定することで、ダイアリーファイル内の日付形式をカスタマイズできます。この変数は、日付を認識するためのパターンのリストです。各日付パターンはリストであり、その要素には正規表現(the Emacs Lisp Reference Manual の Regular
Expressions を参照)またはシンボル month、day、year、monthname、dayname
が指定可能です。これらの要素はすべて、ダイアリーファイル内の特定の種類のテキストにマッチするパターンとして機能します。日付パターン全体がマッチするためには、そのすべての要素が連続してマッチする必要があります。
日付パターンにおける正規表現は、‘*’を単語構成要素とするように変更された標準構文テーブルを用いて、通常通りにマッチングを行います。
記号 month、day、year、monthname、および dayname
は、対象とする日付の月番号、日番号、年番号、月名、および日名に一致します。数値に一致する記号は先頭のゼロを許容し、名称に一致する記号は大文字表記や略語(calendar-month-abbrev-array および calendar-day-abbrev-array で規定)を許容します。すべての記号は
‘*’ に一致し得ます。日記の記述における ‘*’ は “任意の日”、“任意の月”
などを意味するため、対象とする日付に関わらず一致する必要があります。
アメリカンスタイルにおけるdiary-date-formsの既定値は、diary-american-date-formsによって指定されます:
((month "/" day "[^/0-9]") (month "/" day "/" year "[^0-9]") (monthname " *" day "[^,0-9]") (monthname " *" day ", *" year "[^0-9]") (dayname "\\W"))
変数 diary-european-date-forms と diary-iso-date-forms は、その他のデフォルトスタイルを提供します。
リスト内の日付パターンは相互に排他的である必要があり、日記エントリ自体のいかなる部分とも一致してはなりません。一致させるのは、日付と1文字の空白のみです。相互に排他的であるために、パターンが日記エントリのテキストの一部(日付を区切る空白以降)に一致する必要がある場合、日付パターンの最初の要素は必ずbackupでなければなりません。これにより、日付認識器はマッチングを完了した後、日記エントリの現在の単語の先頭まで戻ります。backupを使用した場合であっても、日付パターンが日記エントリの最初の単語の一部を超えて一致することは絶対にあってはなりません。例えば、diary-european-date-formsのデフォルト値は以下の通りです:
((day "/" month "[^/0-9]") (day "/" month "/" year "[^0-9]") (backup day " *" monthname "\\W+\\<\\([^*0-9]\\|\\([0-9]+[:aApP]\\)\\)") (day " *" monthname " *" year "[^0-9]") (dayname "\\W"))
第3のパターンでは、第4のパターンと区別するために日付自体以外の単語の一部にマッチさせる必要があるため、backup を使用している点にご留意ください。