| 1 |
@c This is part of the Emacs manual. |
|---|
| 2 |
@c Copyright (C) 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. |
|---|
| 3 |
@c See file emacs.texi for copying conditions. |
|---|
| 4 |
@c |
|---|
| 5 |
@c This file is included either in emacs-xtra.texi (when producing the |
|---|
| 6 |
@c printed version) or in the main Emacs manual (for the on-line version). |
|---|
| 7 |
|
|---|
| 8 |
@c Moved here from the Emacs Lisp Reference Manual, 2005-03-26. |
|---|
| 9 |
@node Advanced Calendar/Diary Usage |
|---|
| 10 |
@section Customizing the Calendar and Diary |
|---|
| 11 |
|
|---|
| 12 |
There are many customizations that you can use to make the calendar and |
|---|
| 13 |
diary suit your personal tastes. |
|---|
| 14 |
|
|---|
| 15 |
@menu |
|---|
| 16 |
* Calendar Customizing:: Defaults you can set. |
|---|
| 17 |
* Holiday Customizing:: Defining your own holidays. |
|---|
| 18 |
* Date Display Format:: Changing the format. |
|---|
| 19 |
* Time Display Format:: Changing the format. |
|---|
| 20 |
* Diary Customizing:: Defaults you can set. |
|---|
| 21 |
* Hebrew/Islamic Entries:: How to obtain them. |
|---|
| 22 |
* Fancy Diary Display:: Enhancing the diary display, sorting entries, |
|---|
| 23 |
using included diary files. |
|---|
| 24 |
* Sexp Diary Entries:: Fancy things you can do. |
|---|
| 25 |
@end menu |
|---|
| 26 |
|
|---|
| 27 |
@node Calendar Customizing |
|---|
| 28 |
@subsection Customizing the Calendar |
|---|
| 29 |
@vindex calendar-holiday-marker |
|---|
| 30 |
@vindex diary-entry-marker |
|---|
| 31 |
The variable @code{calendar-holiday-marker} specifies how to mark a |
|---|
| 32 |
date as being a holiday. Its value may be a single-character string |
|---|
| 33 |
to insert next to the date, or a face name to use for displaying the |
|---|
| 34 |
date. Likewise, the variable @code{diary-entry-marker} specifies how |
|---|
| 35 |
to mark a date that has diary entries. The calendar creates faces |
|---|
| 36 |
named @code{holiday-face} and @code{diary-face} for these purposes; |
|---|
| 37 |
those symbols are the default values of these variables. |
|---|
| 38 |
|
|---|
| 39 |
@vindex calendar-load-hook |
|---|
| 40 |
The variable @code{calendar-load-hook} is a normal hook run when the |
|---|
| 41 |
calendar package is first loaded (before actually starting to display |
|---|
| 42 |
the calendar). |
|---|
| 43 |
|
|---|
| 44 |
@vindex initial-calendar-window-hook |
|---|
| 45 |
Starting the calendar runs the normal hook |
|---|
| 46 |
@code{initial-calendar-window-hook}. Recomputation of the calendar |
|---|
| 47 |
display does not run this hook. But if you leave the calendar with the |
|---|
| 48 |
@kbd{q} command and reenter it, the hook runs again.@refill |
|---|
| 49 |
|
|---|
| 50 |
@vindex today-visible-calendar-hook |
|---|
| 51 |
The variable @code{today-visible-calendar-hook} is a normal hook run |
|---|
| 52 |
after the calendar buffer has been prepared with the calendar when the |
|---|
| 53 |
current date is visible in the window. One use of this hook is to |
|---|
| 54 |
replace today's date with asterisks; to do that, use the hook function |
|---|
| 55 |
@code{calendar-star-date}. |
|---|
| 56 |
|
|---|
| 57 |
@findex calendar-star-date |
|---|
| 58 |
@example |
|---|
| 59 |
(add-hook 'today-visible-calendar-hook 'calendar-star-date) |
|---|
| 60 |
@end example |
|---|
| 61 |
|
|---|
| 62 |
@noindent |
|---|
| 63 |
Another standard hook function marks the current date, either by |
|---|
| 64 |
changing its face or by adding an asterisk. Here's how to use it: |
|---|
| 65 |
|
|---|
| 66 |
@findex calendar-mark-today |
|---|
| 67 |
@example |
|---|
| 68 |
(add-hook 'today-visible-calendar-hook 'calendar-mark-today) |
|---|
| 69 |
@end example |
|---|
| 70 |
|
|---|
| 71 |
@noindent |
|---|
| 72 |
@vindex calendar-today-marker |
|---|
| 73 |
The variable @code{calendar-today-marker} specifies how to mark |
|---|
| 74 |
today's date. Its value should be a single-character string to insert |
|---|
| 75 |
next to the date or a face name to use for displaying the date. A |
|---|
| 76 |
face named @code{calendar-today-face} is provided for this purpose; |
|---|
| 77 |
that symbol is the default for this variable. |
|---|
| 78 |
|
|---|
| 79 |
@vindex today-invisible-calendar-hook |
|---|
| 80 |
@noindent |
|---|
| 81 |
A similar normal hook, @code{today-invisible-calendar-hook} is run if |
|---|
| 82 |
the current date is @emph{not} visible in the window. |
|---|
| 83 |
|
|---|
| 84 |
@vindex calendar-move-hook |
|---|
| 85 |
Each of the calendar cursor motion commands runs the hook |
|---|
| 86 |
@code{calendar-move-hook} after it moves the cursor. |
|---|
| 87 |
|
|---|
| 88 |
@node Holiday Customizing |
|---|
| 89 |
@subsection Customizing the Holidays |
|---|
| 90 |
|
|---|
| 91 |
@vindex calendar-holidays |
|---|
| 92 |
@vindex christian-holidays |
|---|
| 93 |
@vindex hebrew-holidays |
|---|
| 94 |
@vindex islamic-holidays |
|---|
| 95 |
Emacs knows about holidays defined by entries on one of several lists. |
|---|
| 96 |
You can customize these lists of holidays to your own needs, adding or |
|---|
| 97 |
deleting holidays. The lists of holidays that Emacs uses are for |
|---|
| 98 |
general holidays (@code{general-holidays}), local holidays |
|---|
| 99 |
(@code{local-holidays}), Christian holidays (@code{christian-holidays}), |
|---|
| 100 |
Hebrew (Jewish) holidays (@code{hebrew-holidays}), Islamic (Muslim) |
|---|
| 101 |
holidays (@code{islamic-holidays}), and other holidays |
|---|
| 102 |
(@code{other-holidays}). |
|---|
| 103 |
|
|---|
| 104 |
@vindex general-holidays |
|---|
| 105 |
The general holidays are, by default, holidays common throughout the |
|---|
| 106 |
United States. To eliminate these holidays, set @code{general-holidays} |
|---|
| 107 |
to @code{nil}. |
|---|
| 108 |
|
|---|
| 109 |
@vindex local-holidays |
|---|
| 110 |
There are no default local holidays (but sites may supply some). You |
|---|
| 111 |
can set the variable @code{local-holidays} to any list of holidays, as |
|---|
| 112 |
described below. |
|---|
| 113 |
|
|---|
| 114 |
@vindex all-christian-calendar-holidays |
|---|
| 115 |
@vindex all-hebrew-calendar-holidays |
|---|
| 116 |
@vindex all-islamic-calendar-holidays |
|---|
| 117 |
By default, Emacs does not include all the holidays of the religions |
|---|
| 118 |
that it knows, only those commonly found in secular calendars. For a |
|---|
| 119 |
more extensive collection of religious holidays, you can set any (or |
|---|
| 120 |
all) of the variables @code{all-christian-calendar-holidays}, |
|---|
| 121 |
@code{all-hebrew-calendar-holidays}, or |
|---|
| 122 |
@code{all-islamic-calendar-holidays} to @code{t}. If you want to |
|---|
| 123 |
eliminate the religious holidays, set any or all of the corresponding |
|---|
| 124 |
variables @code{christian-holidays}, @code{hebrew-holidays}, and |
|---|
| 125 |
@code{islamic-holidays} to @code{nil}.@refill |
|---|
| 126 |
|
|---|
| 127 |
@vindex other-holidays |
|---|
| 128 |
You can set the variable @code{other-holidays} to any list of |
|---|
| 129 |
holidays. This list, normally empty, is intended for individual use. |
|---|
| 130 |
|
|---|
| 131 |
@cindex holiday forms |
|---|
| 132 |
Each of the lists (@code{general-holidays}, @code{local-holidays}, |
|---|
| 133 |
@code{christian-holidays}, @code{hebrew-holidays}, |
|---|
| 134 |
@code{islamic-holidays}, and @code{other-holidays}) is a list of |
|---|
| 135 |
@dfn{holiday forms}, each holiday form describing a holiday (or |
|---|
| 136 |
sometimes a list of holidays). |
|---|
| 137 |
|
|---|
| 138 |
Here is a table of the possible kinds of holiday form. Day numbers |
|---|
| 139 |
and month numbers count starting from 1, but ``dayname'' numbers |
|---|
| 140 |
count Sunday as 0. The element @var{string} is always the |
|---|
| 141 |
name of the holiday, as a string. |
|---|
| 142 |
|
|---|
| 143 |
@table @code |
|---|
| 144 |
@item (holiday-fixed @var{month} @var{day} @var{string}) |
|---|
| 145 |
A fixed date on the Gregorian calendar. |
|---|
| 146 |
|
|---|
| 147 |
@item (holiday-float @var{month} @var{dayname} @var{k} @var{string}) |
|---|
| 148 |
The @var{k}th @var{dayname} in @var{month} on the Gregorian calendar |
|---|
| 149 |
(@var{dayname}=0 for Sunday, and so on); negative @var{k} means count back |
|---|
| 150 |
from the end of the month. |
|---|
| 151 |
|
|---|
| 152 |
@item (holiday-hebrew @var{month} @var{day} @var{string}) |
|---|
| 153 |
A fixed date on the Hebrew calendar. |
|---|
| 154 |
|
|---|
| 155 |
@item (holiday-islamic @var{month} @var{day} @var{string}) |
|---|
| 156 |
A fixed date on the Islamic calendar. |
|---|
| 157 |
|
|---|
| 158 |
@item (holiday-julian @var{month} @var{day} @var{string}) |
|---|
| 159 |
A fixed date on the Julian calendar. |
|---|
| 160 |
|
|---|
| 161 |
@item (holiday-sexp @var{sexp} @var{string}) |
|---|
| 162 |
A date calculated by the Lisp expression @var{sexp}. The expression |
|---|
| 163 |
should use the variable @code{year} to compute and return the date of a |
|---|
| 164 |
holiday, or @code{nil} if the holiday doesn't happen this year. The |
|---|
| 165 |
value of @var{sexp} must represent the date as a list of the form |
|---|
| 166 |
@code{(@var{month} @var{day} @var{year})}. |
|---|
| 167 |
|
|---|
| 168 |
@item (if @var{condition} @var{holiday-form}) |
|---|
| 169 |
A holiday that happens only if @var{condition} is true. |
|---|
| 170 |
|
|---|
| 171 |
@item (@var{function} @r{[}@var{args}@r{]}) |
|---|
| 172 |
A list of dates calculated by the function @var{function}, called with |
|---|
| 173 |
arguments @var{args}. |
|---|
| 174 |
@end table |
|---|
| 175 |
|
|---|
| 176 |
For example, suppose you want to add Bastille Day, celebrated in |
|---|
| 177 |
France on July 14. You can do this as follows: |
|---|
| 178 |
|
|---|
| 179 |
@smallexample |
|---|
| 180 |
(setq other-holidays '((holiday-fixed 7 14 "Bastille Day"))) |
|---|
| 181 |
@end smallexample |
|---|
| 182 |
|
|---|
| 183 |
@noindent |
|---|
| 184 |
The holiday form @code{(holiday-fixed 7 14 "Bastille Day")} specifies the |
|---|
| 185 |
fourteenth day of the seventh month (July). |
|---|
| 186 |
|
|---|
| 187 |
Many holidays occur on a specific day of the week, at a specific time |
|---|
| 188 |
of month. Here is a holiday form describing Hurricane Supplication Day, |
|---|
| 189 |
celebrated in the Virgin Islands on the fourth Monday in August: |
|---|
| 190 |
|
|---|
| 191 |
@smallexample |
|---|
| 192 |
(holiday-float 8 1 4 "Hurricane Supplication Day") |
|---|
| 193 |
@end smallexample |
|---|
| 194 |
|
|---|
| 195 |
@noindent |
|---|
| 196 |
Here the 8 specifies August, the 1 specifies Monday (Sunday is 0, |
|---|
| 197 |
Tuesday is 2, and so on), and the 4 specifies the fourth occurrence in |
|---|
| 198 |
the month (1 specifies the first occurrence, 2 the second occurrence, |
|---|
| 199 |
@minus{}1 the last occurrence, @minus{}2 the second-to-last occurrence, and |
|---|
| 200 |
so on). |
|---|
| 201 |
|
|---|
| 202 |
You can specify holidays that occur on fixed days of the Hebrew, |
|---|
| 203 |
Islamic, and Julian calendars too. For example, |
|---|
| 204 |
|
|---|
| 205 |
@smallexample |
|---|
| 206 |
(setq other-holidays |
|---|
| 207 |
'((holiday-hebrew 10 2 "Last day of Hanukkah") |
|---|
| 208 |
(holiday-islamic 3 12 "Mohammed's Birthday") |
|---|
| 209 |
(holiday-julian 4 2 "Jefferson's Birthday"))) |
|---|
| 210 |
@end smallexample |
|---|
| 211 |
|
|---|
| 212 |
@noindent |
|---|
| 213 |
adds the last day of Hanukkah (since the Hebrew months are numbered with |
|---|
| 214 |
1 starting from Nisan), the Islamic feast celebrating Mohammed's |
|---|
| 215 |
birthday (since the Islamic months are numbered from 1 starting with |
|---|
| 216 |
Muharram), and Thomas Jefferson's birthday, which is 2 April 1743 on the |
|---|
| 217 |
Julian calendar. |
|---|
| 218 |
|
|---|
| 219 |
To include a holiday conditionally, use either Emacs Lisp's @code{if} or the |
|---|
| 220 |
@code{holiday-sexp} form. For example, American presidential elections |
|---|
| 221 |
occur on the first Tuesday after the first Monday in November of years |
|---|
| 222 |
divisible by 4: |
|---|
| 223 |
|
|---|
| 224 |
@smallexample |
|---|
| 225 |
(holiday-sexp '(if (= 0 (% year 4)) |
|---|
| 226 |
(calendar-gregorian-from-absolute |
|---|
| 227 |
(1+ (calendar-dayname-on-or-before |
|---|
| 228 |
1 (+ 6 (calendar-absolute-from-gregorian |
|---|
| 229 |
(list 11 1 year))))))) |
|---|
| 230 |
"US Presidential Election") |
|---|
| 231 |
@end smallexample |
|---|
| 232 |
|
|---|
| 233 |
@noindent |
|---|
| 234 |
or |
|---|
| 235 |
|
|---|
| 236 |
@smallexample |
|---|
| 237 |
(if (= 0 (% displayed-year 4)) |
|---|
| 238 |
(fixed 11 |
|---|
| 239 |
(extract-calendar-day |
|---|
| 240 |
(calendar-gregorian-from-absolute |
|---|
| 241 |
(1+ (calendar-dayname-on-or-before |
|---|
| 242 |
1 (+ 6 (calendar-absolute-from-gregorian |
|---|
| 243 |
(list 11 1 displayed-year))))))) |
|---|
| 244 |
"US Presidential Election")) |
|---|
| 245 |
@end smallexample |
|---|
| 246 |
|
|---|
| 247 |
Some holidays just don't fit into any of these forms because special |
|---|
| 248 |
calculations are involved in their determination. In such cases you |
|---|
| 249 |
must write a Lisp function to do the calculation. To include eclipses, |
|---|
| 250 |
for example, add @code{(eclipses)} to @code{other-holidays} |
|---|
| 251 |
and write an Emacs Lisp function @code{eclipses} that returns a |
|---|
| 252 |
(possibly empty) list of the relevant Gregorian dates among the range |
|---|
| 253 |
visible in the calendar window, with descriptive strings, like this: |
|---|
| 254 |
|
|---|
| 255 |
@smallexample |
|---|
| 256 |
(((6 27 1991) "Lunar Eclipse") ((7 11 1991) "Solar Eclipse") ... ) |
|---|
| 257 |
@end smallexample |
|---|
| 258 |
|
|---|
| 259 |
@node Date Display Format |
|---|
| 260 |
@subsection Date Display Format |
|---|
| 261 |
@vindex calendar-date-display-form |
|---|
| 262 |
|
|---|
| 263 |
You can customize the manner of displaying dates in the diary, in mode |
|---|
| 264 |
lines, and in messages by setting @code{calendar-date-display-form}. |
|---|
| 265 |
This variable holds a list of expressions that can involve the variables |
|---|
| 266 |
@code{month}, @code{day}, and @code{year}, which are all numbers in |
|---|
| 267 |
string form, and @code{monthname} and @code{dayname}, which are both |
|---|
| 268 |
alphabetic strings. In the American style, the default value of this |
|---|
| 269 |
list is as follows: |
|---|
| 270 |
|
|---|
| 271 |
@smallexample |
|---|
| 272 |
((if dayname (concat dayname ", ")) monthname " " day ", " year) |
|---|
| 273 |
@end smallexample |
|---|
| 274 |
|
|---|
| 275 |
@noindent |
|---|
| 276 |
while in the European style this value is the default: |
|---|
| 277 |
|
|---|
| 278 |
@smallexample |
|---|
| 279 |
((if dayname (concat dayname ", ")) day " " monthname " " year) |
|---|
| 280 |
@end smallexample |
|---|
| 281 |
|
|---|
| 282 |
@noindent |
|---|
| 283 |
The ISO standard date representation is this: |
|---|
| 284 |
|
|---|
| 285 |
@smallexample |
|---|
| 286 |
(year "-" month "-" day) |
|---|
| 287 |
@end smallexample |
|---|
| 288 |
|
|---|
| 289 |
@noindent |
|---|
| 290 |
This specifies a typical American format: |
|---|
| 291 |
|
|---|
| 292 |
@smallexample |
|---|
| 293 |
(month "/" day "/" (substring year -2)) |
|---|
| 294 |
@end smallexample |
|---|
| 295 |
|
|---|
| 296 |
@node Time Display Format |
|---|
| 297 |
@subsection Time Display Format |
|---|
| 298 |
@vindex calendar-time-display-form |
|---|
| 299 |
|
|---|
| 300 |
The calendar and diary by default display times of day in the |
|---|
| 301 |
conventional American style with the hours from 1 through 12, minutes, |
|---|
| 302 |
and either @samp{am} or @samp{pm}. If you prefer the European style, |
|---|
| 303 |
also known in the US as military, in which the hours go from 00 to 23, |
|---|
| 304 |
you can alter the variable @code{calendar-time-display-form}. This |
|---|
| 305 |
variable is a list of expressions that can involve the variables |
|---|
| 306 |
@code{12-hours}, @code{24-hours}, and @code{minutes}, which are all |
|---|
| 307 |
numbers in string form, and @code{am-pm} and @code{time-zone}, which are |
|---|
| 308 |
both alphabetic strings. The default value of |
|---|
| 309 |
@code{calendar-time-display-form} is as follows: |
|---|
| 310 |
|
|---|
| 311 |
@smallexample |
|---|
| 312 |
(12-hours ":" minutes am-pm |
|---|
| 313 |
(if time-zone " (") time-zone (if time-zone ")")) |
|---|
| 314 |
@end smallexample |
|---|
| 315 |
|
|---|
| 316 |
@noindent |
|---|
| 317 |
Here is a value that provides European style times: |
|---|
| 318 |
|
|---|
| 319 |
@smallexample |
|---|
| 320 |
(24-hours ":" minutes |
|---|
| 321 |
(if time-zone " (") time-zone (if time-zone ")")) |
|---|
| 322 |
@end smallexample |
|---|
| 323 |
|
|---|
| 324 |
@node Diary Customizing |
|---|
| 325 |
@subsection Customizing the Diary |
|---|
| 326 |
|
|---|
| 327 |
@vindex holidays-in-diary-buffer |
|---|
| 328 |
Ordinarily, the mode line of the diary buffer window indicates any |
|---|
| 329 |
holidays that fall on the date of the diary entries. The process of |
|---|
| 330 |
checking for holidays can take several seconds, so including holiday |
|---|
| 331 |
information delays the display of the diary buffer noticeably. If you'd |
|---|
| 332 |
prefer to have a faster display of the diary buffer but without the |
|---|
| 333 |
holiday information, set the variable @code{holidays-in-diary-buffer} to |
|---|
| 334 |
@code{nil}.@refill |
|---|
| 335 |
|
|---|
| 336 |
@vindex number-of-diary-entries |
|---|
| 337 |
The variable @code{number-of-diary-entries} controls the number of |
|---|
| 338 |
days of diary entries to be displayed at one time. It affects the |
|---|
| 339 |
initial display when @code{view-diary-entries-initially} is @code{t}, as |
|---|
| 340 |
well as the command @kbd{M-x diary}. For example, the default value is |
|---|
| 341 |
1, which says to display only the current day's diary entries. If the |
|---|
| 342 |
value is 2, both the current day's and the next day's entries are |
|---|
| 343 |
displayed. The value can also be a vector of seven elements: for |
|---|
| 344 |
example, if the value is @code{[0 2 2 2 2 4 1]} then no diary entries |
|---|
| 345 |
appear on Sunday, the current date's and the next day's diary entries |
|---|
| 346 |
appear Monday through Thursday, Friday through Monday's entries appear |
|---|
| 347 |
on Friday, while on Saturday only that day's entries appear. |
|---|
| 348 |
|
|---|
| 349 |
@vindex print-diary-entries-hook |
|---|
| 350 |
@findex print-diary-entries |
|---|
| 351 |
The variable @code{print-diary-entries-hook} is a normal hook run |
|---|
| 352 |
after preparation of a temporary buffer containing just the diary |
|---|
| 353 |
entries currently visible in the diary buffer. (The other, irrelevant |
|---|
| 354 |
diary entries are really absent from the temporary buffer; in the diary |
|---|
| 355 |
buffer, they are merely hidden.) The default value of this hook does |
|---|
| 356 |
the printing with the command @code{lpr-buffer}. If you want to use a |
|---|
| 357 |
different command to do the printing, just change the value of this |
|---|
| 358 |
hook. Other uses might include, for example, rearranging the lines into |
|---|
| 359 |
order by day and time. |
|---|
| 360 |
|
|---|
| 361 |
@vindex diary-date-forms |
|---|
| 362 |
You can customize the form of dates in your diary file, if neither the |
|---|
| 363 |
standard American nor European styles suits your needs, by setting the |
|---|
| 364 |
variable @code{diary-date-forms}. This variable is a list of patterns |
|---|
| 365 |
for recognizing a date. Each date pattern is a list whose elements may |
|---|
| 366 |
be regular expressions (@pxref{Regular Expressions,,, elisp, the Emacs |
|---|
| 367 |
Lisp Reference Manual}) or the symbols @code{month}, @code{day}, |
|---|
| 368 |
@code{year}, @code{monthname}, and @code{dayname}. All these elements |
|---|
| 369 |
serve as patterns that match certain kinds of text in the diary file. |
|---|
| 370 |
In order for the date pattern, as a whole, to match, all of its elements |
|---|
| 371 |
must match consecutively. |
|---|
| 372 |
|
|---|
| 373 |
A regular expression in a date pattern matches in its usual fashion, |
|---|
| 374 |
using the standard syntax table altered so that @samp{*} is a word |
|---|
| 375 |
constituent. |
|---|
| 376 |
|
|---|
| 377 |
The symbols @code{month}, @code{day}, @code{year}, @code{monthname}, |
|---|
| 378 |
and @code{dayname} match the month number, day number, year number, |
|---|
| 379 |
month name, and day name of the date being considered. The symbols that |
|---|
| 380 |
match numbers allow leading zeros; those that match names allow |
|---|
| 381 |
three-letter abbreviations and capitalization. All the symbols can |
|---|
| 382 |
match @samp{*}; since @samp{*} in a diary entry means ``any day'', ``any |
|---|
| 383 |
month'', and so on, it should match regardless of the date being |
|---|
| 384 |
considered. |
|---|
| 385 |
|
|---|
| 386 |
The default value of @code{diary-date-forms} in the American style is |
|---|
| 387 |
this: |
|---|
| 388 |
|
|---|
| 389 |
@example |
|---|
| 390 |
((month "/" day "[^/0-9]") |
|---|
| 391 |
(month "/" day "/" year "[^0-9]") |
|---|
| 392 |
(monthname " *" day "[^,0-9]") |
|---|
| 393 |
(monthname " *" day ", *" year "[^0-9]") |
|---|
| 394 |
(dayname "\\W")) |
|---|
| 395 |
@end example |
|---|
| 396 |
|
|---|
| 397 |
The date patterns in the list must be @emph{mutually exclusive} and |
|---|
| 398 |
must not match any portion of the diary entry itself, just the date and |
|---|
| 399 |
one character of whitespace. If, to be mutually exclusive, the pattern |
|---|
| 400 |
must match a portion of the diary entry text---beyond the whitespace |
|---|
| 401 |
that ends the date---then the first element of the date pattern |
|---|
| 402 |
@emph{must} be @code{backup}. This causes the date recognizer to back |
|---|
| 403 |
up to the beginning of the current word of the diary entry, after |
|---|
| 404 |
finishing the match. Even if you use @code{backup}, the date pattern |
|---|
| 405 |
must absolutely not match more than a portion of the first word of the |
|---|
| 406 |
diary entry. The default value of @code{diary-date-forms} in the |
|---|
| 407 |
European style is this list: |
|---|
| 408 |
|
|---|
| 409 |
@example |
|---|
| 410 |
((day "/" month "[^/0-9]") |
|---|
| 411 |
(day "/" month "/" year "[^0-9]") |
|---|
| 412 |
(backup day " *" monthname "\\W+\\<[^*0-9]") |
|---|
| 413 |
(day " *" monthname " *" year "[^0-9]") |
|---|
| 414 |
(dayname "\\W")) |
|---|
| 415 |
@end example |
|---|
| 416 |
|
|---|
| 417 |
@noindent |
|---|
| 418 |
Notice the use of @code{backup} in the third pattern, because it needs |
|---|
| 419 |
to match part of a word beyond the date itself to distinguish it from |
|---|
| 420 |
the fourth pattern. |
|---|
| 421 |
|
|---|
| 422 |
@node Hebrew/Islamic Entries |
|---|
| 423 |
@subsection Hebrew- and Islamic-Date Diary Entries |
|---|
| 424 |
|
|---|
| 425 |
Your diary file can have entries based on Hebrew or Islamic dates, as |
|---|
| 426 |
well as entries based on the world-standard Gregorian calendar. |
|---|
| 427 |
However, because recognition of such entries is time-consuming and most |
|---|
| 428 |
people don't use them, you must explicitly enable their use. If you |
|---|
| 429 |
want the diary to recognize Hebrew-date diary entries, for example, |
|---|
| 430 |
you must do this: |
|---|
| 431 |
|
|---|
| 432 |
@vindex nongregorian-diary-listing-hook |
|---|
| 433 |
@vindex nongregorian-diary-marking-hook |
|---|
| 434 |
@findex list-hebrew-diary-entries |
|---|
| 435 |
@findex mark-hebrew-diary-entries |
|---|
| 436 |
@smallexample |
|---|
| 437 |
(add-hook 'nongregorian-diary-listing-hook 'list-hebrew-diary-entries) |
|---|
| 438 |
(add-hook 'nongregorian-diary-marking-hook 'mark-hebrew-diary-entries) |
|---|
| 439 |
@end smallexample |
|---|
| 440 |
|
|---|
| 441 |
@noindent |
|---|
| 442 |
If you want Islamic-date entries, do this: |
|---|
| 443 |
|
|---|
| 444 |
@findex list-islamic-diary-entries |
|---|
| 445 |
@findex mark-islamic-diary-entries |
|---|
| 446 |
@smallexample |
|---|
| 447 |
(add-hook 'nongregorian-diary-listing-hook 'list-islamic-diary-entries) |
|---|
| 448 |
(add-hook 'nongregorian-diary-marking-hook 'mark-islamic-diary-entries) |
|---|
| 449 |
@end smallexample |
|---|
| 450 |
|
|---|
| 451 |
Hebrew- and Islamic-date diary entries have the same formats as |
|---|
| 452 |
Gregorian-date diary entries, except that @samp{H} precedes a Hebrew |
|---|
| 453 |
date and @samp{I} precedes an Islamic date. Moreover, because the |
|---|
| 454 |
Hebrew and Islamic month names are not uniquely specified by the first |
|---|
| 455 |
three letters, you may not abbreviate them. For example, a diary entry |
|---|
| 456 |
for the Hebrew date Heshvan 25 could look like this: |
|---|
| 457 |
|
|---|
| 458 |
@smallexample |
|---|
| 459 |
HHeshvan 25 Happy Hebrew birthday! |
|---|
| 460 |
@end smallexample |
|---|
| 461 |
|
|---|
| 462 |
@noindent |
|---|
| 463 |
and would appear in the diary for any date that corresponds to Heshvan 25 |
|---|
| 464 |
on the Hebrew calendar. And here is an Islamic-date diary entry that matches |
|---|
| 465 |
Dhu al-Qada 25: |
|---|
| 466 |
|
|---|
| 467 |
@smallexample |
|---|
| 468 |
IDhu al-Qada 25 Happy Islamic birthday! |
|---|
| 469 |
@end smallexample |
|---|
| 470 |
|
|---|
| 471 |
As with Gregorian-date diary entries, Hebrew- and Islamic-date entries |
|---|
| 472 |
are nonmarking if they are preceded with an ampersand (@samp{&}). |
|---|
| 473 |
|
|---|
| 474 |
Here is a table of commands used in the calendar to create diary entries |
|---|
| 475 |
that match the selected date and other dates that are similar in the Hebrew |
|---|
| 476 |
or Islamic calendar: |
|---|
| 477 |
|
|---|
| 478 |
@table @kbd |
|---|
| 479 |
@item i h d |
|---|
| 480 |
Add a diary entry for the Hebrew date corresponding to the selected date |
|---|
| 481 |
(@code{insert-hebrew-diary-entry}). |
|---|
| 482 |
@item i h m |
|---|
| 483 |
Add a diary entry for the day of the Hebrew month corresponding to the |
|---|
| 484 |
selected date (@code{insert-monthly-hebrew-diary-entry}). This diary |
|---|
| 485 |
entry matches any date that has the same Hebrew day-within-month as the |
|---|
| 486 |
selected date. |
|---|
| 487 |
@item i h y |
|---|
| 488 |
Add a diary entry for the day of the Hebrew year corresponding to the |
|---|
| 489 |
selected date (@code{insert-yearly-hebrew-diary-entry}). This diary |
|---|
| 490 |
entry matches any date which has the same Hebrew month and day-within-month |
|---|
| 491 |
as the selected date. |
|---|
| 492 |
@item i i d |
|---|
| 493 |
Add a diary entry for the Islamic date corresponding to the selected date |
|---|
| 494 |
(@code{insert-islamic-diary-entry}). |
|---|
| 495 |
@item i i m |
|---|
| 496 |
Add a diary entry for the day of the Islamic month corresponding to the |
|---|
| 497 |
selected date (@code{insert-monthly-islamic-diary-entry}). |
|---|
| 498 |
@item i i y |
|---|
| 499 |
Add a diary entry for the day of the Islamic year corresponding to the |
|---|
| 500 |
selected date (@code{insert-yearly-islamic-diary-entry}). |
|---|
| 501 |
@end table |
|---|
| 502 |
|
|---|
| 503 |
@findex insert-hebrew-diary-entry |
|---|
| 504 |
@findex insert-monthly-hebrew-diary-entry |
|---|
| 505 |
@findex insert-yearly-hebrew-diary-entry |
|---|
| 506 |
@findex insert-islamic-diary-entry |
|---|
| 507 |
@findex insert-monthly-islamic-diary-entry |
|---|
| 508 |
@findex insert-yearly-islamic-diary-entry |
|---|
| 509 |
These commands work much like the corresponding commands for ordinary |
|---|
| 510 |
diary entries: they apply to the date that point is on in the calendar |
|---|
| 511 |
window, and what they do is insert just the date portion of a diary entry |
|---|
| 512 |
at the end of your diary file. You must then insert the rest of the |
|---|
| 513 |
diary entry. |
|---|
| 514 |
|
|---|
| 515 |
@node Fancy Diary Display |
|---|
| 516 |
@subsection Fancy Diary Display |
|---|
| 517 |
@vindex diary-display-hook |
|---|
| 518 |
@findex simple-diary-display |
|---|
| 519 |
|
|---|
| 520 |
Diary display works by preparing the diary buffer and then running the |
|---|
| 521 |
hook @code{diary-display-hook}. The default value of this hook |
|---|
| 522 |
(@code{simple-diary-display}) hides the irrelevant diary entries and |
|---|
| 523 |
then displays the buffer. However, if you specify the hook as follows, |
|---|
| 524 |
|
|---|
| 525 |
@cindex diary buffer |
|---|
| 526 |
@findex fancy-diary-display |
|---|
| 527 |
@example |
|---|
| 528 |
(add-hook 'diary-display-hook 'fancy-diary-display) |
|---|
| 529 |
@end example |
|---|
| 530 |
|
|---|
| 531 |
@noindent |
|---|
| 532 |
this enables fancy diary display. It displays diary entries and |
|---|
| 533 |
holidays by copying them into a special buffer that exists only for the |
|---|
| 534 |
sake of display. Copying to a separate buffer provides an opportunity |
|---|
| 535 |
to change the displayed text to make it prettier---for example, to sort |
|---|
| 536 |
the entries by the dates they apply to. |
|---|
| 537 |
|
|---|
| 538 |
As with simple diary display, you can print a hard copy of the buffer |
|---|
| 539 |
with @code{print-diary-entries}. To print a hard copy of a day-by-day |
|---|
| 540 |
diary for a week, position point on Sunday of that week, type |
|---|
| 541 |
@kbd{7 d}, and then do @kbd{M-x print-diary-entries}. As usual, the |
|---|
| 542 |
inclusion of the holidays slows down the display slightly; you can speed |
|---|
| 543 |
things up by setting the variable @code{holidays-in-diary-buffer} to |
|---|
| 544 |
@code{nil}. |
|---|
| 545 |
|
|---|
| 546 |
@vindex diary-list-include-blanks |
|---|
| 547 |
Ordinarily, the fancy diary buffer does not show days for which there are |
|---|
| 548 |
no diary entries, even if that day is a holiday. If you want such days to be |
|---|
| 549 |
shown in the fancy diary buffer, set the variable |
|---|
| 550 |
@code{diary-list-include-blanks} to @code{t}.@refill |
|---|
| 551 |
|
|---|
| 552 |
@cindex sorting diary entries |
|---|
| 553 |
If you use the fancy diary display, you can use the normal hook |
|---|
| 554 |
@code{list-diary-entries-hook} to sort each day's diary entries by their |
|---|
| 555 |
time of day. Here's how: |
|---|
| 556 |
|
|---|
| 557 |
@findex sort-diary-entries |
|---|
| 558 |
@example |
|---|
| 559 |
(add-hook 'list-diary-entries-hook 'sort-diary-entries t) |
|---|
| 560 |
@end example |
|---|
| 561 |
|
|---|
| 562 |
@noindent |
|---|
| 563 |
For each day, this sorts diary entries that begin with a recognizable |
|---|
| 564 |
time of day according to their times. Diary entries without times come |
|---|
| 565 |
first within each day. |
|---|
| 566 |
|
|---|
| 567 |
Fancy diary display also has the ability to process included diary |
|---|
| 568 |
files. This permits a group of people to share a diary file for events |
|---|
| 569 |
that apply to all of them. Lines in the diary file of this form: |
|---|
| 570 |
|
|---|
| 571 |
@smallexample |
|---|
| 572 |
#include "@var{filename}" |
|---|
| 573 |
@end smallexample |
|---|
| 574 |
|
|---|
| 575 |
@noindent |
|---|
| 576 |
includes the diary entries from the file @var{filename} in the fancy |
|---|
| 577 |
diary buffer. The include mechanism is recursive, so that included files |
|---|
| 578 |
can include other files, and so on; you must be careful not to have a |
|---|
| 579 |
cycle of inclusions, of course. Here is how to enable the include |
|---|
| 580 |
facility: |
|---|
| 581 |
|
|---|
| 582 |
@vindex list-diary-entries-hook |
|---|
| 583 |
@vindex mark-diary-entries-hook |
|---|
| 584 |
@findex include-other-diary-files |
|---|
| 585 |
@findex mark-included-diary-files |
|---|
| 586 |
@smallexample |
|---|
| 587 |
(add-hook 'list-diary-entries-hook 'include-other-diary-files) |
|---|
| 588 |
(add-hook 'mark-diary-entries-hook 'mark-included-diary-files) |
|---|
| 589 |
@end smallexample |
|---|
| 590 |
|
|---|
| 591 |
The include mechanism works only with the fancy diary display, because |
|---|
| 592 |
ordinary diary display shows the entries directly from your diary file. |
|---|
| 593 |
|
|---|
| 594 |
@node Sexp Diary Entries |
|---|
| 595 |
@subsection Sexp Entries and the Fancy Diary Display |
|---|
| 596 |
@cindex sexp diary entries |
|---|
| 597 |
|
|---|
| 598 |
Sexp diary entries allow you to do more than just have complicated |
|---|
| 599 |
conditions under which a diary entry applies. If you use the fancy |
|---|
| 600 |
diary display, sexp entries can generate the text of the entry depending |
|---|
| 601 |
on the date itself. For example, an anniversary diary entry can insert |
|---|
| 602 |
the number of years since the anniversary date into the text of the |
|---|
| 603 |
diary entry. Thus the @samp{%d} in this diary entry: |
|---|
| 604 |
|
|---|
| 605 |
@findex diary-anniversary |
|---|
| 606 |
@smallexample |
|---|
| 607 |
%%(diary-anniversary 10 31 1948) Arthur's birthday (%d years old) |
|---|
| 608 |
@end smallexample |
|---|
| 609 |
|
|---|
| 610 |
@noindent |
|---|
| 611 |
gets replaced by the age, so on October 31, 1990 the entry appears in |
|---|
| 612 |
the fancy diary buffer like this: |
|---|
| 613 |
|
|---|
| 614 |
@smallexample |
|---|
| 615 |
Arthur's birthday (42 years old) |
|---|
| 616 |
@end smallexample |
|---|
| 617 |
|
|---|
| 618 |
@noindent |
|---|
| 619 |
If the diary file instead contains this entry: |
|---|
| 620 |
|
|---|
| 621 |
@smallexample |
|---|
| 622 |
%%(diary-anniversary 10 31 1948) Arthur's %d%s birthday |
|---|
| 623 |
@end smallexample |
|---|
| 624 |
|
|---|
| 625 |
@noindent |
|---|
| 626 |
the entry in the fancy diary buffer for October 31, 1990 appears like this: |
|---|
| 627 |
|
|---|
| 628 |
@smallexample |
|---|
| 629 |
Arthur's 42nd birthday |
|---|
| 630 |
@end smallexample |
|---|
| 631 |
|
|---|
| 632 |
Similarly, cyclic diary entries can interpolate the number of repetitions |
|---|
| 633 |
that have occurred: |
|---|
| 634 |
|
|---|
| 635 |
@findex diary-cyclic |
|---|
| 636 |
@smallexample |
|---|
| 637 |
%%(diary-cyclic 50 1 1 1990) Renew medication (%d%s time) |
|---|
| 638 |
@end smallexample |
|---|
| 639 |
|
|---|
| 640 |
@noindent |
|---|
| 641 |
looks like this: |
|---|
| 642 |
|
|---|
| 643 |
@smallexample |
|---|
| 644 |
Renew medication (5th time) |
|---|
| 645 |
@end smallexample |
|---|
| 646 |
|
|---|
| 647 |
@noindent |
|---|
| 648 |
in the fancy diary display on September 8, 1990. |
|---|
| 649 |
|
|---|
| 650 |
There is an early reminder diary sexp that includes its entry in the |
|---|
| 651 |
diary not only on the date of occurrence, but also on earlier dates. |
|---|
| 652 |
For example, if you want a reminder a week before your anniversary, you |
|---|
| 653 |
can use |
|---|
| 654 |
|
|---|
| 655 |
@findex diary-remind |
|---|
| 656 |
@smallexample |
|---|
| 657 |
%%(diary-remind '(diary-anniversary 12 22 1968) 7) Ed's anniversary |
|---|
| 658 |
@end smallexample |
|---|
| 659 |
|
|---|
| 660 |
@noindent |
|---|
| 661 |
and the fancy diary will show |
|---|
| 662 |
@smallexample |
|---|
| 663 |
Ed's anniversary |
|---|
| 664 |
@end smallexample |
|---|
| 665 |
@noindent |
|---|
| 666 |
both on December 15 and on December 22. |
|---|
| 667 |
|
|---|
| 668 |
@findex diary-date |
|---|
| 669 |
The function @code{diary-date} applies to dates described by a month, |
|---|
| 670 |
day, year combination, each of which can be an integer, a list of |
|---|
| 671 |
integers, or @code{t}. The value @code{t} means all values. For |
|---|
| 672 |
example, |
|---|
| 673 |
|
|---|
| 674 |
@smallexample |
|---|
| 675 |
%%(diary-date '(10 11 12) 22 t) Rake leaves |
|---|
| 676 |
@end smallexample |
|---|
| 677 |
|
|---|
| 678 |
@noindent |
|---|
| 679 |
causes the fancy diary to show |
|---|
| 680 |
|
|---|
| 681 |
@smallexample |
|---|
| 682 |
Rake leaves |
|---|
| 683 |
@end smallexample |
|---|
| 684 |
|
|---|
| 685 |
@noindent |
|---|
| 686 |
on October 22, November 22, and December 22 of every year. |
|---|
| 687 |
|
|---|
| 688 |
@findex diary-float |
|---|
| 689 |
The function @code{diary-float} allows you to describe diary entries |
|---|
| 690 |
that apply to dates like the third Friday of November, or the last |
|---|
| 691 |
Tuesday in April. The parameters are the @var{month}, @var{dayname}, |
|---|
| 692 |
and an index @var{n}. The entry appears on the @var{n}th @var{dayname} |
|---|
| 693 |
of @var{month}, where @var{dayname}=0 means Sunday, 1 means Monday, and |
|---|
| 694 |
so on. If @var{n} is negative it counts backward from the end of |
|---|
| 695 |
@var{month}. The value of @var{month} can be a list of months, a single |
|---|
| 696 |
month, or @code{t} to specify all months. You can also use an optional |
|---|
| 697 |
parameter @var{day} to specify the @var{n}th @var{dayname} of |
|---|
| 698 |
@var{month} on or after/before @var{day}; the value of @var{day} defaults |
|---|
| 699 |
to 1 if @var{n} is positive and to the last day of @var{month} if |
|---|
| 700 |
@var{n} is negative. For example, |
|---|
| 701 |
|
|---|
| 702 |
@smallexample |
|---|
| 703 |
%%(diary-float t 1 -1) Pay rent |
|---|
| 704 |
@end smallexample |
|---|
| 705 |
|
|---|
| 706 |
@noindent |
|---|
| 707 |
causes the fancy diary to show |
|---|
| 708 |
|
|---|
| 709 |
@smallexample |
|---|
| 710 |
Pay rent |
|---|
| 711 |
@end smallexample |
|---|
| 712 |
|
|---|
| 713 |
@noindent |
|---|
| 714 |
on the last Monday of every month. |
|---|
| 715 |
|
|---|
| 716 |
The generality of sexp diary entries lets you specify any diary |
|---|
| 717 |
entry that you can describe algorithmically. A sexp diary entry |
|---|
| 718 |
contains an expression that computes whether the entry applies to any |
|---|
| 719 |
given date. If its value is non-@code{nil}, the entry applies to that |
|---|
| 720 |
date; otherwise, it does not. The expression can use the variable |
|---|
| 721 |
@code{date} to find the date being considered; its value is a list |
|---|
| 722 |
(@var{month} @var{day} @var{year}) that refers to the Gregorian |
|---|
| 723 |
calendar. |
|---|
| 724 |
|
|---|
| 725 |
The sexp diary entry applies to a date when the expression's value |
|---|
| 726 |
is non-@code{nil}, but some values have more specific meanings. If |
|---|
| 727 |
the value is a string, that string is a description of the event which |
|---|
| 728 |
occurs on that date. The value can also have the form |
|---|
| 729 |
@code{(@var{mark} . @var{string})}; then @var{mark} specifies how to |
|---|
| 730 |
mark the date in the calendar, and @var{string} is the description of |
|---|
| 731 |
the event. If @var{mark} is a single-character string, that character |
|---|
| 732 |
appears next to the date in the calendar. If @var{mark} is a face |
|---|
| 733 |
name, the date is displayed in that face. If @var{mark} is |
|---|
| 734 |
@code{nil}, that specifies no particular highlighting for the date. |
|---|
| 735 |
|
|---|
| 736 |
Suppose you get paid on the 21st of the month if it is a weekday, and |
|---|
| 737 |
on the Friday before if the 21st is on a weekend. Here is how to write |
|---|
| 738 |
a sexp diary entry that matches those dates: |
|---|
| 739 |
|
|---|
| 740 |
@smallexample |
|---|
| 741 |
&%%(let ((dayname (calendar-day-of-week date)) |
|---|
| 742 |
(day (car (cdr date)))) |
|---|
| 743 |
(or (and (= day 21) (memq dayname '(1 2 3 4 5))) |
|---|
| 744 |
(and (memq day '(19 20)) (= dayname 5))) |
|---|
| 745 |
) Pay check deposited |
|---|
| 746 |
@end smallexample |
|---|
| 747 |
|
|---|
| 748 |
The following sexp diary entries take advantage of the ability (in the fancy |
|---|
| 749 |
diary display) to concoct diary entries whose text varies based on the date: |
|---|
| 750 |
|
|---|
| 751 |
@findex diary-sunrise-sunset |
|---|
| 752 |
@findex diary-phases-of-moon |
|---|
| 753 |
@findex diary-day-of-year |
|---|
| 754 |
@findex diary-iso-date |
|---|
| 755 |
@findex diary-julian-date |
|---|
| 756 |
@findex diary-astro-day-number |
|---|
| 757 |
@findex diary-hebrew-date |
|---|
| 758 |
@findex diary-islamic-date |
|---|
| 759 |
@findex diary-french-date |
|---|
| 760 |
@findex diary-mayan-date |
|---|
| 761 |
@table @code |
|---|
| 762 |
@item %%(diary-sunrise-sunset) |
|---|
| 763 |
Make a diary entry for the local times of today's sunrise and sunset. |
|---|
| 764 |
@item %%(diary-phases-of-moon) |
|---|
| 765 |
Make a diary entry for the phases (quarters) of the moon. |
|---|
| 766 |
@item %%(diary-day-of-year) |
|---|
| 767 |
Make a diary entry with today's day number in the current year and the number |
|---|
| 768 |
of days remaining in the current year. |
|---|
| 769 |
@item %%(diary-iso-date) |
|---|
| 770 |
Make a diary entry with today's equivalent ISO commercial date. |
|---|
| 771 |
@item %%(diary-julian-date) |
|---|
| 772 |
Make a diary entry with today's equivalent date on the Julian calendar. |
|---|
| 773 |
@item %%(diary-astro-day-number) |
|---|
| 774 |
Make a diary entry with today's equivalent astronomical (Julian) day number. |
|---|
| 775 |
@item %%(diary-hebrew-date) |
|---|
| 776 |
Make a diary entry with today's equivalent date on the Hebrew calendar. |
|---|
| 777 |
@item %%(diary-islamic-date) |
|---|
| 778 |
Make a diary entry with today's equivalent date on the Islamic calendar. |
|---|
| 779 |
@item %%(diary-french-date) |
|---|
| 780 |
Make a diary entry with today's equivalent date on the French Revolutionary |
|---|
| 781 |
calendar. |
|---|
| 782 |
@item %%(diary-mayan-date) |
|---|
| 783 |
Make a diary entry with today's equivalent date on the Mayan calendar. |
|---|
| 784 |
@end table |
|---|
| 785 |
|
|---|
| 786 |
@noindent |
|---|
| 787 |
Thus including the diary entry |
|---|
| 788 |
|
|---|
| 789 |
@example |
|---|
| 790 |
&%%(diary-hebrew-date) |
|---|
| 791 |
@end example |
|---|
| 792 |
|
|---|
| 793 |
@noindent |
|---|
| 794 |
causes every day's diary display to contain the equivalent date on the |
|---|
| 795 |
Hebrew calendar, if you are using the fancy diary display. (With simple |
|---|
| 796 |
diary display, the line @samp{&%%(diary-hebrew-date)} appears in the |
|---|
| 797 |
diary for any date, but does nothing particularly useful.) |
|---|
| 798 |
|
|---|
| 799 |
These functions can be used to construct sexp diary entries based on |
|---|
| 800 |
the Hebrew calendar in certain standard ways: |
|---|
| 801 |
|
|---|
| 802 |
@cindex rosh hodesh |
|---|
| 803 |
@findex diary-rosh-hodesh |
|---|
| 804 |
@cindex parasha, weekly |
|---|
| 805 |
@findex diary-parasha |
|---|
| 806 |
@cindex candle lighting times |
|---|
| 807 |
@findex diary-sabbath-candles |
|---|
| 808 |
@cindex omer count |
|---|
| 809 |
@findex diary-omer |
|---|
| 810 |
@cindex yahrzeits |
|---|
| 811 |
@findex diary-yahrzeit |
|---|
| 812 |
@table @code |
|---|
| 813 |
@item %%(diary-rosh-hodesh) |
|---|
| 814 |
Make a diary entry that tells the occurrence and ritual announcement of each |
|---|
| 815 |
new Hebrew month. |
|---|
| 816 |
@item %%(diary-parasha) |
|---|
| 817 |
Make a Saturday diary entry that tells the weekly synagogue scripture reading. |
|---|
| 818 |
@item %%(diary-sabbath-candles) |
|---|
| 819 |
Make a Friday diary entry that tells the @emph{local time} of Sabbath |
|---|
| 820 |
candle lighting. |
|---|
| 821 |
@item %%(diary-omer) |
|---|
| 822 |
Make a diary entry that gives the omer count, when appropriate. |
|---|
| 823 |
@item %%(diary-yahrzeit @var{month} @var{day} @var{year}) @var{name} |
|---|
| 824 |
Make a diary entry marking the anniversary of a date of death. The date |
|---|
| 825 |
is the @emph{Gregorian} (civil) date of death. The diary entry appears |
|---|
| 826 |
on the proper Hebrew calendar anniversary and on the day before. (In |
|---|
| 827 |
the European style, the order of the parameters is changed to @var{day}, |
|---|
| 828 |
@var{month}, @var{year}.) |
|---|
| 829 |
@end table |
|---|
| 830 |
|
|---|
| 831 |
All the functions documented above take an optional argument |
|---|
| 832 |
@var{mark} which specifies how to mark the date in the calendar display. |
|---|
| 833 |
If one of these functions decides that it applies to a certain date, |
|---|
| 834 |
it returns a value that contains @var{mark}. |
|---|
| 835 |
|
|---|
| 836 |
@ignore |
|---|
| 837 |
arch-tag: 52cb299f-fd1f-4616-bfe6-91b988669431 |
|---|
| 838 |
@end ignore |
|---|