File: Pcal.hlp

package info (click to toggle)
pcal 4.7-8woody1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 680 kB
  • ctags: 950
  • sloc: ansic: 6,811; csh: 245; makefile: 137; sh: 57
file content (776 lines) | stat: -rwxr-xr-x 33,960 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
1 pcal

     Pcal generates PostScript to produce landscape or portrait
     calendars for any month and year.  The arguments month,
     year, and nmonths, if provided, should be numeric.  The
     month value should be in the range 1 - 12, and the year
     value should be specified as 1 or 2 digits or as the full 4
     digit year.  If no numeric arguments are provided, the
     calendar for the current month and year will be generated.

     If one numeric argument is provided, it is interpreted as
     the year value, and calendars for the entire year will be
     generated.  Otherwise, nmonths months, starting with month
     and year, will be generated.

     For whole-year calendars (i.e. the -w option is given), the
     command line arguments are interpreted somewhat differently.
     By default, all months in the current year are printed,
     starting with January.  If the month argument alone is
     given, it is expected to be the desired year to print, and
     prints all of the months in the given year.  If both month
     and year are given, then 12 consecutive months are printed
     starting at the given month and year.  If the month, year,
     and nmonths arguments are all present, printing begins with
     the given month and year and nmonths months are printed,
     rounded up to the nearest multiple of 12.

    Syntax:

     pcal [-e|-f cal] [-o file] [-j | -J] [-l | -p] [-m | -M] [-
          g weekday[-weekday]|all|holiday] [-O weekday[-
          weekday]|all|holiday] [-G weekday[-
          weekday]|all|holiday] [-b weekday[-
          weekday]|all|holiday] [-s [date_shade][/fill_shade]] [-
          F day] [-A|-E] [-t [title_font][/size]] [-
          d [day_font][/size]] [-n [text_font][/size]] [-
          r [mapping] [-L footer_str] [-C footer_str] [-
          R footer_str] [-N notes_str] [-D symbol] [-U symbol] [-
          x xscale] [-y yscale] [-X xtrans] [-Y ytrans] [-I] [-c]
          [-z time_zone] [-B] [-# n] [-S | -k | -K] [-w] [-h | -
          u | -v] [-a language] [-T [B|I|R]] [month] [year]
          [nmonths]

2 Date_File

     By default, pcal simply prints an empty calendar.  Its real
     power is in its ability to place "events" in appropriate
     days on the calendar, thus allowing the user to create per-
     sonalized calendars.  This is achieved through the use of
     the "date file".

     The date file is named .calendar (pcal.dat under MS-DOS), or
     calendar for compatibility with older versions.  Pcal will
     look in several places for such a file.  First, if the
     environment variable PCALDIR is defined, pcal searches the
     directory indicated by that variable.  Next, pcal searches
     the user's home directory (as specified by the HOME environ-
     ment variable).  If neither PCALDIR nor HOME is defined,
     pcal searches the current directory instead.  Finally, the
     directory where the pcal executable resides will be checked.
     If no date file is found, an empty calendar is printed; no
     error is generated.

     If a date file is found, it will be searched for lines with
     leading dates matching the requested month and year.

     Any text following the dates found will be printed on the
     calendar under the appropriate day of the month

     troff-style escape sequences \fB, \fI, \fP, and \fR may be
     used to set the font style to Bold, Italic, the previous
     font style, or Roman respectively.  For those more familiar
     with HTML, <B>, <I>, and </B> or </I> may be used instead to
     set the font style to Bold, Italic, or the previous font
     style respectively.  The font style is reset to Roman after
     each line break.

     Dates in the .calendar file may be expressed in any of
     several formats:

          <ordinal> <dayspec> in <monthspec>{*} {<text>}
          {<ordinal>} <dayspec> <prep> <datespec>{*} {<text>}
          <datespec>{*} {<text>}
          <holiday>

     Where:

          <monthname>     := first 3+ characters of name of
                           month, or "all"

          <monthspec>     := <monthname>, or "year"

          <dayspec>       := first 3+ characters of name of
                           weekday, "day", "weekday", "work-
                           day", "holiday", "nonweekday",
                           "nonworkday", "nonholiday",
                           "newmoon", "firstquarter",
                           "fullmoon", or "lastquarter"

          <ordinal>        := any ordinal number ("1st",
                           "2nd", etc.), "first" ...
                           "fifth", "last", "odd",
                           "even", or "all"

          <prep>           := "before", "preceding",
                           "after", "following",
                           "onorbefore" ("oob"),
                           "onorafter" ("ooa"),
                           "nearest", "nearestbefore", or
                           "nearestafter"

          <holiday>        := "Christmas", "Thanksgiving",
                           etc.

          <sep>            := one or more non-numeric, non-space,
                           non-`*' characters

          <month>          := a numeric month (1-12)

          <day>            := day of month (1-31)

          <year>           := a numeric year

     If the -A option (American date formats, the default) is
     given:

          <datespec>      := <monthname> <day> |
                           <month><sep><day>{<sep><year>}

     If the -E option (European date formats) is given:

          <datespec>      := <day> <monthname> | <day> <month>
                           | <day><sep><month>{<sep><year>}

2 Format_Specs
     Pcal also allows format specifiers in both the text and foot
     strings (see the -L, -C, -R, and -N options below); each
     will be replaced by a corresponding string as outlined in
     the table below.  Most of these are derived from the ANSI C
     strftime() function; the %[louwMD] and %[o0+-] format
     specifiers are specific to pcal:

          %a   abbreviated weekday
          %A   full weekday
          %b   abbreviated month name
          %B   full month name
          %d   day of month (1-31)
          %j   day of year (1-366)
          %l   days left in year (0-365)
          %m   month (1-12)
          %U   week number (0-53)
          %W   week number (0-53)
          %u   week number (1-54)
          %w   week number (1-54)
          %y   year w/o century (00-99)
          %Y   year w/century
          %%   `%' character
          %o   print number as ordinal
          %0   print number with leading zeroes
          %+   use following month or year
          %-   use previous month or year
          %{+N}[DWMY]    adjust date by +N days/weeks/months/years
          %{-N}[DWMY]    adjust date by -N days/weeks/months/years

     The %u specifier considers the week containing 1/1 as week 1
     and the following logical Sunday (the first day of the week
     as printed; cf. the -F option below) as the start of week 2;
     %U considers the first logical Sunday as the first day of
     week 1. %w and %W behave like %u and %U respectively, but
     use the first logical Monday instead.  Note that %w has a
     different meaning to strftime().

     The %o format specifier prints a number as an ordinal, with
     the appropriate suffix ("st", "nd", "rd", or "th" in
     English) appended.  For example, %od prints the day of the
     month as "1st", "2nd", "3rd", etc.

     Unlike strftime(), pcal defaults to printing numbers (except
     %y) without leading zeroes.  If leading zeroes are desired,
     the `0' prefix may be used.  For example, %0j prints the
     first day of year as "001".

     The %+ and %- format specifiers direct pcal to substitute
     the following/previous month/year in the following [bBmyY]
     specifier.  For example, %+B prints the name of the next
     month.

     The %{[+-]N}[DWMY] format specifiers do not print anything,
     but instead adjust the working date by + Ndays (D), weeks
     (W), months (M), or years (Y).  Subsequent format specifiers
     use the adjusted date instead of the current date.  For
     example, %+1M %B %Y adjusts the date forward by one month
     and then prints the resulting month and year ("January
     1992" in December, 1991); %-2W %b %d adjusts the date back-
     ward by two weeks and prints the resulting month and day
     ("Jul 26" on August 9).

     Such date adjustments are normally cumulative; for example,
     %+1Y%-1D adjusts the date forward by one year and then back-
     ward by one day.  If %D or %M is specified alone (or if N is
     zero), pcal restores the original date.  Note that %M has a
     different meaning to the strftime() function.

     The "Notes" box (see below) uses the first of the current
     month as the default date.  All foot strings use the first
     of the current month in single-month mode and the first of
     the starting month in whole-year mode.

3 Examples

          last Monday in May*         Memorial Day Holiday

          all Fridays in Oct          Status Meeting, 11 AM
          first workday in all        %-B progress report due
          all Fri in all              \fBTime card due,\fP 3 PM
          all Monday in all           Fiscal week %0W
          -2nd workday in all         Schedule for %+B due %+2D
          2nd fullmoon in all        Blue Moon
          Fri onorbefore all 15     Pay Day
          even Fridays in year        Pay Day
          183rd day of year           Mid-year (%l days left)

          Tue after first Mon in Nov  Election Day (USA)

          4th Thu in Nov*             Thanksgiving
          Fri after 4th Thu in Nov*   Day after Thanksgiving
          workday nearest 12/25*      Holiday

          12/25/93*                   Christmas     # American
          25.12.93*                   Christmas     # European
          25. 12.*                    Christmas     # European

          Dec 25*                     Christmas     # American
          25 Dec*                     Christmas     # European
          25. Dec*                    Christmas     # European

     Any non-numeric character may separate numeric dates.  Holi-
     days may be flagged by following the date immediately with
     `*' as in the examples above; this will cause the date to be
     printed in gray.  "Each" and "every" are accepted as
     synonyms for "all", and any word may be used in place of
     "in".  The abbreviations "oob" and "ooa" may be used
     in place of the keywords "onorbefore" and
     "onorafter", respectively.  "Nearest" attempts to
     match the specified date; if that fails, it tries the day
     after, then the day before, then two days after, two days
     before, and so forth until a match occurs.

     Wildcard day names are also provided.  The keyword "week-
     day" applies to any days which are normally printed in
     "logical black" - the predominant day color - on the calen-
     dar.  The keyword "workday" is the same, but does not
     include any holidays.  The keyword "holiday" includes only
     those days flagged as holidays.  The keywords "nonweek-
     day", "nonworkday", and "nonholiday" are also recog-
     nized as negations of the above.  See the CAVEATS below for
     important notes on using these keywords.  Moon phases may
     also appear as wildcards; "nm" is accepted as a synonym
     for "newmoon", "1q" and "fq" for "firstquarter",
     "fm" for "fullmoon", "3q" for "thirdquarter", and

     "lq" for "lastquarter".

     Ordinal day numbers may be used to specify dates, either
     relative to the month or to the year.  Either words or
     numeric abbreviations may be used for "first" through
     "fifth"; higher numbers must be given using the numeric
     equivalent (e.g. 100th).  Negative ordinal numbers may even
     be used.  For example, "-2nd" means "next to last".

     "Odd" and "even" do not refer to the actual date;
     instead, "odd" means "alternate, starting with the
     first", and "even" means "alternate, starting with the
     second".  Thus, "odd Fridays in March" refers to the
     first, third, and (if present) fifth Fridays in March - not
     to those Fridays falling on odd dates.

     "All" refers to each individual month; "year" refers to
     the year as an entity.  Thus "odd Fridays in all" refers
     to the first, third, and fifth Friday of each month, while
     "odd Fridays in year" refers to the first Friday of Janu-
     ary and every other Friday thereafter.

     "Nearest", "nearestbefore", and "nearestafter" refer
     to the nearest weekday or wildcard day with respect to the
     specified date.  "Nearestbefore" and "nearestafter"
     allow the user to specify how pcal is to disambiguate
     between two dates that are equally near: e.g., "nonweekday
     nearestbefore [Wed.] 9/25/96" refers to Sunday, 9/22 while
     "nonweekday nearestafter 9/25/96" refers to Saturday,
     9/28.  (Note that "nearestbefore" and "nearestafter"
     are equivalent to "nearest" when no such ambiguity exists:
     e.g., "nonweekday nearestbefore [Thu.] 9/26/96" refers to
     Saturday, 9/28.)

     Text in the date file may use C-like escape sequences (i.e.
     a `\' followed by a character, 1 - 3 octal digits, or `x'
     followed by 1 - 2 hexadecimal digits).  Escaped whitespace
     (including newline ) and the standard ANSI character escapes
     (`\a', `\b', `\f', `\n', `\r', `\t', `\v') are all replaced
     by a single blank.

     Lines in the .calendar file consisting of year #### (where
     #### is a numeric year) can be used to set the year for fol-
     lowing entries.  This assumes that the following entries do
     not contain a year; any date entries containing year infor-
     mation will set the remembered year to that year.

     Lines in the .calendar file consisting of year all (or,
     alternatively, year *) direct pcal to wildcard following
     entries against every applicable year.  This assumes that
     the following entries do not contain a year; any date
     entries containing year information (or an explicit year
     XXXX entry) will set the remembered year to that year.

     Lines in the .calendar file consisting of opt <options> can
     be used to override the defaults for any command-line
     options except -c, -e, -f, -h, -u, -v, -D, and -U.  Any
     options specified in this manner are, in turn, overridden by
     those specified explicitly on the command line.

     Lines in the .calendar file consisting of note{/<number>}
     <month> can be used to place notes regarding the entire
     month in one of the unused blocks of the calendar.  The
     <month> indicator may be either a number 1 through 12 or an
     alphabetic month name as described above;  "note all" will
     place the associated text in the notes block for each month
     in the current year.  <number> is an optional positive or
     negative number specifying the empty box where the associ-
     ated text is to be placed.  If positive, pcal counts forward
     from the first empty box; if negative, pcal counts backward
     from the last empty box.  Thus, "note/1" places the asso-
     ciated text in the first empty box; note/-3 in the third-
     to-last.  The default is -1 if no <number> is given (last
     empty box, immediately preceding the small calendars on the
     bottom row; cf.  -S, -k, and -K, below).

     Comments are supported in the .calendar file.  Any charac-
     ters following a `#' character through the end of the line
     are ignored (unless the `#' character is escaped by `\').

     Pcal supports rudimentary cpp-like functionality in the date
     file, allowing the following constructs:  define | undef,
     if{{n}def} ... {elif ...}* {else ...} and include.  Note
     that these are not preceded by `#' as they are in C.  Symbol
     names defined using these keywords (or via the -D option)
     are case-insensitive.  It is not an error to undef an unde-
     fined symbol, nor to define a previously-defined one.  An
     ifdef alone is always false; an ifndef alone is always true.
     if is accepted as a synonym for ifdef.

     The name of the file in the include directive may optionally
     be surrounded by either "" or <>, both of which are ignored.
     If the name is not an absolute path, it is taken to be rela-
     tive to the directory where the file containing the direc-
     tive is located.  If the string "%y" appears in the file
     name, it is replaced by the last two digits of the current
     year (or the initial year if "year all" is in effect).  Pcal
     is smart enough to translate ~/ to the user's home direc-
     tory.

     pcal normally terminates immediately if the file specified
     in an include directive does not exist.  An alternate form
     of the directive, include?, directs pcal to continue
     silently if the file does not exist or cannot be opened.

     In addition to pre-processing keywords, pcal also accepts
     boolean expressions in if{{n}def} and elif directives.
     These expressions consist of symbol names joined by the
     boolean operators !, &, ^, and |, in order of precedence,
     high to low.  Parentheses may be used to alter the pre-
     cedence.  The synonyms && and || are accepted for & and |.
     A symbol name evaluates to true if currently defined, false
     if not; thus:

          ifdef A | B | C

     ...is true if any of the symbols A, B, and C is defined,
     and:

          ifdef A & B & C

     ...is true if they all are.  Note that ifndef <expr> is
     equivalent to ifdef !( <expr> ).

2 Moon_File

     If a file of the name .moon## (moon##.dat under MS-DOS),
     where ## is the last two digits of the calendar year, exists
     in the same directory as the date file (or in the directory
     where pcal resides), pcal uses the information contained
     within to calculate the phase of the moon.  If a) no such
     file exists, b) the -e flag (do not use a date file) is
     specified, or c) the -z flag (specify time zone) is speci-
     fied, then pcal uses an algorithm to calculate the phase of
     the moon.

     Entries in the moon file must conform to the following syn-
     tax:

     If the -A option (American date formats, the default) is
     given:

          <quarter> <month><sep><day> {<hour><sep><min>}

     If the -E option (European date formats) is given:

          <quarter> <day><sep><month> {<hour><sep><min>}

     Where:

          <quarter> := "nm", "fq" or "1q", "fm", "3q" or "lq" (new moon,
                         first quarter, full moon, last quarter)
          <hour>         := number 0-23 (24-hour clock)
          <min>          := number 0-59

     This file must contain entries for all quarter moons in the
     year, in chronological order; if any errors are encountered,
     pcal will revert to using its default algorithm.

     As in the date file, comments start with `#' and run through
     the end of the given line.

     The moon file may optionally contain an opt -A or opt -E
     line to specify the format of its own date entries indepen-
     dently of the format used in the date file.  No other flags
     are legal in the moon file.

2 Options

     Pcal has many options:

     -e    Prints an empty calendar.  Do not print entries from a
          .calendar file even if one exists.

     -f cal
          Directs pcal to use the file name cal as the input file
          in place of the default .calendar file.  Note that the
          search rules are different when -f is used.  If cal is
          an absolute file name (i.e., starting with a `/'), then
          pcal attempts to open only that file.  Otherwise, pcal
          looks for cal in the current directory, then in the
          directory indicated by the environment variable
          PCALDIR (if defined), and finally in the directory
          where the pcal executable resides.  If the given cal
          file is not found, an error results.

     -o file
          Directs pcal to write the output to file instead of to
          stdout.

     -l    Causes the output to be in landscape mode (default).
          This also resets the x- and y-axis scaling and transla-
          tion factors to the defaults for landscape mode.

     -p    Causes the output to be in portrait mode.  This also
          resets the x- and y-axis scaling and translation fac-
          tors to the defaults for portrait mode.

     -j    Causes the Julian date (day of year) to be printed in
          each calendar box.

     -J    Causes the Julian date and the number of days remain-
          ing in the year to be printed in each calendar box.

     -m    Causes moon icons to be printed on dates corresponding
          to new, half, and full moons (the default is that no
          moons are printed).

     -M    Causes moon icons to be printed on all dates (the
          default is that no moons are printed).

     -g day1[-day2] | all | holiday
          Causes all dates falling on weekday day1 (through day2
          if specified) to be printed in gray; -g all causes all
          weekdays (other than holidays) to be printed in gray; -
          g holiday causes all holidays to be printed in gray.
          day1 and day2 may wrap around weekends; for example, -g
          fri-sun causes Fridays, Saturdays, and Sundays to be
          printed in gray.

     -O day1[-day2] | all | holiday
          Similar to -g, but the selected days will be printed as
          outlined characters.

     -G day1[-day2] | all | holiday
          Similar to -g, but the selected days will be printed as
          outlined characters filled with gray.

     -b day1[-day2] | all | holiday
          Similar to - you guessed it - -g, but the selected days
          will be printed in black.  Since black is the default
          for weekdays, -b is primarily used to overriding other
          flags (e.g., -g all -b sat-sun ).

         Note:
          The default for the above options is to print Satur-
          days, Sundays, and holidays in gray and all other days
          in black.  For backward compatibility with earlier ver-
          sions of pcal, -O and -G alone change all non-black
          days to the specified color.

     -s [date_shade][/fill_shade]
          Overrides the default values for date and/or fill box
          shading.  These values must be in the range 0.0 (black)
          through 1.0 (white); they may be set independently of
          each other.  The default values are 0.8 for dates and
          0.9 for empty boxes.

         Note:
          For use with color printers, dateshade and fillshade
          may optionally be specified as a set of red:green:blue
          values; red, blue, and green must in the range 0.0
          through 1.0.  At least one ':' must be present for this
          option to be recognized; omitted values are set to 0.0.

     -F day
          Selects weekday day as the first day of the week.  The
          given day will appear in the left-most column of the
          calendar.

     -A    Directs pcal to use American date conventions
          mm/dd{/yy} and month dd ) when parsing the date file
          (default).

     -E    Directs pcal to use European date conventions
          dd/mm{/yy} and dd month ) when parsing the date file.

     -X xtrans
          Specifies the x-axis translation value for positioning
          the output on the page.

     -Y ytrans
          Specifies the y-axis translation value for positioning
          the output on the page.

     -x xscale
          Specifies the x-axis scaling factor for the calendar
          size.

     -y yscale
          Specifies the y-axis scaling factor for the calendar
          size.

     -t [title_font][/size]
          Specifies the name of a font to use to print all the
          calendar heading text: the month name and year at the
          top of the calendar, the weekday names, the notes box
          heading, and the foot strings.  The user may optionally
          specify the font size for the month/year heading
          (single-month calendar only); for example, pcal -t
          Times-Roman/54 sets the font to Times-Roman and the
          month/year point size to 54.  The font size may also be
          changed independently:  pcal -t /54 changes the point
          size to 54 without affecting the font name.

     -d [date_font][/size]
          Similar to the -t option, but selects the font and/or
          size used to print the dates.

     -n [text_font][/size]
          Similar to the -t and -d options, but selects the font
          and/or size used to print the text associated with each
          day and in the "Notes" blocks.

     -r [mapping]
          Specifies an 8-bit character set remapping for printing
          the diacritical marks common to European languages;
          mapping may be "Roman8" (ROMAN-8 extended character
          set), "Latin1" (ISO LATIN-1 extended character set), or
          "none" (builtin 8-bit mappings only).  It may be abbre-
          viated to a single character if desired.

     -D symbol
          Defines the named symbol prior to reading the date
          file.

     -U symbol
          Un-defines the named symbol prior to reading the date
          file.

     -L string
          Causes the accompanying string to be printed as a
          left-justified footer.  Format specifiers denoting the
          month and/or year may appear in the string; the
          appropriate values will be substituted upon printing.

     -C string
          Similar to -L, but causes the accompanying string to be
          printed as a centered footer.

     -R string
          Similar to -L, but causes the accompanying string to be
          printed as a right-justified footer.

     -N string
          Causes the accompanying string to be printed as the
          heading for the "Notes" box.  Note, however, that pcal
          makes no attempt to ensure that it fits.

     -B    Causes pcal to leave unused calendar boxes blank
          (default is gray).

     -# n  Causes pcal to print n copies (maximum: 100) of each
          output page.

     -S    Causes pcal to suppress printing the small calendars.
          See the CAVEATS section for further details.

     -k    Causes pcal to print the small calendars in the upper
          left corner (the default is to print them at the lower
          right).

     -K    Causes pcal to print the small calendar for the previ-
          ous month in the upper left corner and the next month
          in the lower right (the default is to print both at the
          lower right).

     -w    Causes pcal to print a calendar for 12 consecutive
          months: 3 rows / 4 columns in landscape mode, 4 rows /
          3 columns in portrait mode.  See the CAVEATS section
          for details on the use of this option with other
          options.

          Pcal predefines the symbol wholeyear when the -w flag
          is in effect.

     -c    Causes pcal to generate a date file suitable for use
          as input to the Un*x calendar(1) utility.  The normal
          PostScript output is suppressed.

     -z time_zone
          Forces pcal to ignore the moon file and to use its
          internal algorithm for moon phase calculations, adjust-
          ing the phase by time_zone hours (where time_zone is
          expressed in hours west of UTC).

     -I    Resets all parameters to the program defaults.

     -h    Causes pcal to write version information, parameter
          usage message, and full explanation of options and file
          formats (to stdout) and terminate.

     -u    Causes pcal to write version information and parameter
          usage message (to stdout) and terminate.

     -v    Causes pcal to write version information only (to
          stdout) and terminate.

          Pcal predefines the symbol vXX, where XX denotes the
          current version of Pcal (i.e., v4.6 predefines v46).

     -a language
          Select the language for the names of months and days.
          As of v4.6, the following languages are supported:  de
          (German), en (English) eo (Esperanto) es (Spanish), fr
          (French), gr (Greek), it (Italian), and pt (Portugue-
	  se).  The default is en.

          Note: In order to display diacritical marks, languages
          other than English require that the fonts be remapped
          (typically via the "Latin1" remapping).  If no remap-
          ping is specified, pcal selects a remapping appropriate
          to the selected language; note that the Greek language
          also requires an ELOT-928 font (available from
          ah@doc.ic.ac.uk).  Also see the -r and -t options.

          If Esperanto is selected, Pcal converts
          [cghjsuCGHJSU][xX^] and [uU]~ to the corresponding
          accented character; e.g. "jxauxdo", "j^au~do", or any
          equivalent form will print as "j-circumflex a u-breve d
          o".

          Day and month names in the date file may be expressed
          in either the default language specified at compile-
          time or the language selected on the command line.

          Pcal predefines the symbol langXX, where XX is the
          two-character abbreviation for the selected language.

     -T [B|I|R]
          Select the default typeface (Bold, Italic, or Roman)
          for printing date/note text.  This flag may be speci-
          fied multiple times within the date file (via "opt") to
          reset the font style on the fly - for example, to print
          all holidays in Bold.

     Any option (except -G and -O, for backward-compatibility)
     which normally takes an argument may be specified without
     the argument in order to reset the value to the program
     default.  Note that while the -D option alone clears all the
     defined symbols, the -U option alone has no effect.  The -
     (or -- as per System V) argument may be used to disambiguate
     command lines such as:

          pcal -t 9 90

     This could be written instead as one of the following:

          pcal -t - 9 90
          pcal -t -- 9 90

     If the environment variable PCALOPTS is defined, its con-
     tents are parsed as a command line.  Flags set via PCALOPTS
     override the program defaults, but are overridden by options
     set via opt lines in the .calendar file or explicitly on the
     command line.

2 Caveats
     The "workday" and "holiday" keywords are aware of only
     those holidays which have already been flagged at the point
     where they appear.  For example, consider January 1990:

                        January 1990
                     S  M Tu  W Th  F  S
                        1  2  3  4  5  6
                     7  8  9 10 11 12 13
                    14 15 16 17 18 19 20
                    21 22 23 24 25 26 27
                    28 29 30 31

     If the .calendar file looked like this:

          workday onorbefore all 15   payday
          3rd Mon in Jan*               MLK day

     ... then pcal would mark the 15th as "payday" since at
     that point in the .calendar file it has no way of knowing
     that January 15th will later be flagged as a holiday.  If
     the two lines were reversed, such that the holiday preceded
     the "workday" wildcard, then pcal would work as intended,
     marking instead the 12th as "payday".  Also, beware of
     year boundaries which affect the handling of all of the day
     wildcard keywords.  In general, it is best to place monthly
     wildcards such as the example above at the end of each year
     to achieve the desired effect.

     Only the positive ordinals may be used in conjunction with
     prepositions (e.g., "fourth Sunday before 12/25").  (It
     could be argued that "last Sunday before 12/25" should be
     accepted as a synonym for "first Sunday before 12/25", but
     then what does "last Sunday after 12/25" mean?)

     When the -w and -p options are used together, pcal revises
     the y-scale factor in order to use the entire portrait page;
     therefore, the user should avoid using use the -y option
     when using both the -w and -p options.  Use of the -w option
     in any case effectively disables the -m, -M, -j, and -J
     options.

     The output of the -c option may be used as input to subse-
     quent runs of pcal.  Note, however, that opt lines (except
     for an automatic opt -[A|E]), comments, "note" text, and
     ifdef'd-out source will be lost.

     The -S option interacts with note{/<number>}; if used, it
     should be specified either on the command line or prior to
     the first note line in the date file.

2 Authors
     The original PostScript code to generate the calendars was
     written by Patrick Wood (Copyright (c) 1987 by Patrick Wood
     of Pipeline Associates, Inc.), and authorized for modifica-
     tion and redistribution.  The calendar file inclusion code
     was originally written in "bs(1)" by Bill Vogel of AT&T.
     Patrick's original PostScript was modified and enhanced
     several times by King Ables, Tim Tessin, Joe Wood, Jeff
     Mogul, Mark Hanson, and others whose names have regrettably
     been lost.  This C version was originally created by Ken
     Keirnan of Pacific Bell; additional enhancements by Joseph
     P. Larson, Ed Hand, Andrew Rogers, Mark Kantrowitz, Joe
     Brownlee, Andy Fyfe, Steve Grandi, and Geoff Kuenning.  The
     moon routines were originally written by Jef Poskanzer and
     Craig Leres, and were incorporated into Pcal by Richard
     Dyson.  International language support was added by Angelo
     Haritsis (except Esperanto, by Andrew Rogers).