Next: , Previous: , Up: カレンダーとダイアリーの上級な機能   [Contents][Index]


31.13.6 ダイアリーのカスタマイズ

ダイアリーウィンドウは通常、ダイアリーエントリーの日付が休日に相当する場合は、モードラインとバッファー自身にそれを示します。休日をチェックするプロセスは時間がかかることがあり、それは定義された休日に依存します。このような場合、diary-show-holidays-flagnilにセットすることにより、ダイアリーの表示を速くすることができます。

変数diary-number-of-entriesは、1度に表示されるダイアリーエントリーの日数を制御します。これはcalendar-view-diary-initially-flagtのときの初期表示と、コマンドM-x diaryに影響します。たとえば値1(デフォルト)は、その日のダイアリーエントリーだけを表示し、値2は翌日のエントリーも表示します。値には7つの整数のvectorも指定できます。たとえば値が[0 2 2 2 2 4 1]の場合、日曜日にはダイアリーエントリーは表示されず、月曜日から木曜日までは当日と翌日のダイアリーエントリーが表示され、金曜日には金曜日から月曜日のエントリーが表示され、土曜日にはその日のエントリーだけが表示されます。

変数diary-date-formsをセットすることにより、ダイアリーファイルの日付形式をカスタマイズできます。この変数は日付を認識するパターンのリストです。各日付パターンは、要素が正規表現(Regular Expressions in the Emacs Lisp Reference Manualを参照してください)、またはシンボルmonthdayyearmonthnamedaynameのリストです。これらすべての要素は、ダイアリーファイルの特定の種類のテキストにマッチするパターンに供されます。日付パターン全体がマッチするためには、リストの各要素が連続してマッチしなければなりません。

日付パターンの正規表現は、標準の構文テーブルを変更してそれ自身の通常の方法でマッチするので、‘*’は単語の構成要素になります。

シンボルmonthdayyearmonthnamedaynameは、日付と考えられる月番号、日付番号、年番号、月の名前、曜日名にマッチします。数字にマッチするシンボルは、0で開始することもできます。名前にマッチするものは、大文字名と、(calendar-month-abbrev-arraycalendar-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は、他のデフォルト様式を提供します。

このリストの日付パターンは、相互排他的(mutually exclusive)でなければならず、ダイアリーエントリーの任意の部分にマッチせず、日付と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番目のパターンでのbackupの使用に注目してください。これは4番目のパターンと区別するために、日付自体を越えて単語の一部にマッチする必要があるからです。