\input isolatin1
\input texinfo  @c -*-texinfo-*-



@c  $Id: gcal.texi v2.05 1996/07/16 02:00:05 tom Exp $
@c
@c  gcal.texi:  German Texinfo source of info/dvi file
@c
@c  Copyright (C) 1994, 1995, 1996 Thomas Esken
@c
@c
@c  Hiermit wird die Erlaubnis erteilt, wortgetreue Kopien dieses Handbuchs
@c  zu erstellen und zu vertreiben, sofern alle gemachten Kopien mit dem
@c  Copyrightvermerk und diesem Genehmigungsvermerk ausgestattet sind und
@c  vorgenannte Vermerke erhalten bleiben.
@c
@c  Hiermit wird die Erlaubnis erteilt, ver"anderte Kopien dieses Handbuchs
@c  wie unter den Bedingungen f"ur wortgetreue Kopien zu erstellen und zu
@c  vertreiben, sofern die ausgef"uhrten Arbeiten in Ableitung und Gesamtheit
@c  innerhalb der Bestimmungen eines Genehmigungvermerks liegen und zudem mit
@c  diesem ausgestattet sind, welcher mit diesem hier identisch ist.
@c
@c  Hiermit wird die Erlaubnis erteilt, wie unter den vorgenannten Bedingungen
@c  f"ur ver"anderte Versionen "Ubersetzungen dieses Handbuchs in eine andere
@c  Sprache zu erstellen und zu vertreiben, mit der Ausnahme, da"s dieser
@c  Genehmigungsvermerk in einer "Ubersetzung angegeben sein darf, welche
@c  von der Free Software Foundation gebilligt wird.
@c
@c
@c                                  \\\_''/'
@c  -------------------------oOO    (/o-o\)    OOo-------------------------
@c  Thomas Esken                o  (.  "  .)  o   Internet :
@c  Im Hagenfeld 84              \___) ~ (___/      (esken@uni-muenster.de)
@c  D-48147 Muenster; GERMANY                     Phone    : +49 251 232585



@c %**Start of header part
@c
@setfilename gcal.info
@c
@c Some necessary constant definitions
@c
@set EDITION 2.05
@set UPDATE-DATE 16 Juli 1996
@set UPDATE-MONTH Juli 1996
@set GCAL-VERSION 2.10
@c
@c All actual supported native languages
@c
@set SLANG @r{Englisch (}en@r{)}@*@r{Deutsch (}de@r{)}
@c
@c Maximum length of a resource file line
@c
@set GCAL-RCL INT_MAX
@c
@settitle Gcal @value{GCAL-VERSION}
@c @footnotestyle separate
@paragraphindent 2
@c @smallbook
@c
@c %**End of header part



@c %**Start of global definition part
@c
@c Index of command line arguments
@c
@defcodeindex ar
@c
@c German hyphenations
@c
@tex
\hyphenation{Al-ters-an-ga-be}
\hyphenation{Be-nut-zer-Daten-ver-zeich-nis}
\hyphenation{Da-ten-ver-zeich-nis}
\hyphenation{Da-tei-Such-mech-anis-mus'}
\hyphenation{Da-tei-ver-zeich-nis}
\hyphenation{Da-tum-var-iab-len}
\hyphenation{Eng-li-sch-en}
\hyphenation{Feier-tags-liste}
\hyphenation{Frei-tag}
\hyphenation{Ge-samt-an-zahl}
\hyphenation{Grund-ein-stel-lung}
\hyphenation{Grund-ein-stel-lung-en}
\hyphenation{Ka-len-der-woche}
\hyphenation{Kom-man-do-in-ter-pre-tier-er}
\hyphenation{Kom-men-tar-zei-chen}
\hyphenation{Kurz-op-tion-en}
\hyphenation{Kurz-op-tion}
\hyphenation{Lang-op-tion-en}
\hyphenation{Lang-op-tions-name}
\hyphenation{Lang-op-tions-namen}
\hyphenation{Mar-kier-ungs-zei-chen}
\hyphenation{Mel-dungs-texte}
\hyphenation{Monats-name}
\hyphenation{Op-tion-en}
\hyphenation{Oster-sonn-tags}
\hyphenation{Oster-sonn-tag}
\hyphenation{Pre-pro-ces-sor-sym-bol}
\hyphenation{Pre-pro-ces-sor}
\hyphenation{Res-sour-cen-da-tei}
\hyphenation{Scha-blo-ne}
\hyphenation{Scha-blo-nen}
\hyphenation{Steuer-zei-chen-fol-gen}
\hyphenation{Sys-tem-Daten-ver-zeich-nis}
\hyphenation{Sys-tem-uhr-zeit}
\hyphenation{Um-ge-bungs-var-iab-len}
\hyphenation{Warn-ungs-zeit-raum}
\hyphenation{Wur-zel-datei-ver-zeich-nis}
\hyphenation{Zei-chen}
\hyphenation{Zu-griffs-pfad}
\hyphenation{Zu-weis-ungs-ope-ra-tor}
\hyphenation{aus-ge-nom-men}
\hyphenation{be-reits}
\hyphenation{christ-ian-isier-te}
\hyphenation{ent-hal-ten}
\hyphenation{ent-weder}
\hyphenation{elek-tron-isch-er}
\hyphenation{ge-mischt}
\hyphenation{ge-spei-chert}
\hyphenation{ge-setz-lich-en}
\hyphenation{hexa-dezi-mal}
\hyphenation{re-la-tiv}
\hyphenation{statt-fin-den}
\hyphenation{tro-pi-sch-en}
@end tex
@c
@c %**End of global definition part



@c Set smallbook if printing in smallbook format so the example of the
@c smallbook font is actually written using smallbook; in bigbook, a
@c kludge is used for TeX output.
@c
@c @set smallbook
@c @clear smallbook

@c Experiment with smaller amounts of whitespace between chapters
@c and sections.
@c
@tex
\global\chapheadingskip = 15pt plus 4pt minus 2pt
\global\secheadingskip = 12pt plus 3pt minus 2pt
\global\subsecheadingskip = 9pt plus 2pt minus 2pt
@end tex

@c Experiment with smaller amounts of whitespace between paragraphs in
@c the 8.5 by 11 inch format.
@c
@ifclear smallbook
@tex
\global\parskip 6pt plus 1pt
@end tex
@end ifclear



@c %**Start of info dir entry
@c
@ifinfo
@format
START-INFO-DIR-ENTRY
* Gcal: (gcal).              Das GNU Kalenderprogramm.
END-INFO-DIR-ENTRY
@end format
@end ifinfo
@c
@c %**End of info dir entry



@finalout



@ifinfo
@noindent
Diese Datei beschreibt Gcal, ein Programm um Kalender auszugeben.
Gcal gibt Monatskalender und Jahreskalender, ewige Feiertagslisten
sowie Terminwarnungslisten auf viele verschiedene Arten und Weisen aus.
Es ber"ucksichtigt diejenigen Daten korrekt, welche "ubergangen wurden,
als der derzeitig g"ultige Gregorianische Kalender den vormals g"ultigen
Julianischen Kalender abl"oste.

@noindent
Copyright (C) 1994, 1995, 1996 Thomas Esken

@noindent
Das ist die erste Ausgabe der Gcal Dokumentation.

@noindent
Hiermit wird die Erlaubnis erteilt, wortgetreue Kopien dieses Handbuchs
zu erstellen und zu vertreiben, sofern alle gemachten Kopien mit dem
Copyrightvermerk und diesem Genehmigungsvermerk ausgestattet sind und
vorgenannte Vermerke erhalten bleiben.

@ignore
@noindent
Hiermit wird die Erlaubnis erteilt, diese Datei durch TeX zu verarbeiten
und die Ergebnisse auszudrucken, sofern das ausgedruckte Dokument einen
Kopiererlaubnisvermerk tr"agt, welcher identisch mit diesem hier ist,
mit der Ausnahme, da"s dieser Absatz auch entfernt worden sein kann
(dieser Absatz ist nicht entscheidend f"ur das ausgedruckte Handbuch).

@end ignore
@noindent
Hiermit wird die Erlaubnis erteilt, ver"anderte Kopien dieses Handbuchs
wie unter den Bedingungen f"ur wortgetreue Kopien zu erstellen und zu
vertreiben, sofern die ausgef"uhrten Arbeiten in Ableitung und Gesamtheit
innerhalb der Bestimmungen eines Genehmigungvermerks liegen und zudem mit
diesem ausgestattet sind, welcher mit diesem hier identisch ist.

@noindent
Hiermit wird die Erlaubnis erteilt, wie unter den vorgenannten Bedingungen
f"ur ver"anderte Versionen "Ubersetzungen dieses Handbuchs in eine andere
Sprache zu erstellen und zu vertreiben, mit der Ausnahme, da"s dieser
Genehmigungsvermerk in einer "Ubersetzung angegeben sein darf, welche
von der Free Software Foundation gebilligt wird.

@noindent
Jedwede Vorschl"age, Verbesserungen, Erweiterungen, Fehlerberichte, Geld-
und Sachspenden, Programmierauftr"age usw.@: sind stets willkommen.  Bitte
senden Sie diese direkt an meine Email Adresse.  Wenn Sie dieses Werkzeug
m"ogen, so w"urde ich mich sehr "uber eine Postkarte von Ihnen freuen!

@format
                                \\\_''/'
-------------------------oOO    (/o-o\)    OOo-------------------------
Thomas Esken                o  (.  "  .)  o   Internet :
Im Hagenfeld 84              \___) ~ (___/      (esken@@uni-muenster.de)
D-48147 Muenster; GERMANY                     Phone    : +49 251 232585
@end format
@end ifinfo



@c %**Start of titlepage part
@c
@setchapternewpage odd
@titlepage
@title Gcal
@subtitle Ein erweitertes Kalenderprogramm
@subtitle Ausgabe @value{EDITION}
@subtitle @value{UPDATE-MONTH}
@author von Thomas Esken
@page
@vskip 0pt plus 1filll
@noindent
Copyright @copyright{} 1994, 1995, 1996 Thomas Esken

@sp 2

@cartouche
@quotation
Jedwede Vorschl"age, Verbesserungen, Erweiterungen, Fehlerberichte, Geld-
und Sachspenden, Programmierauftr"age usw.@: sind stets willkommen.  Bitte
senden Sie diese direkt an meine Email Adresse.  Wenn Sie dieses Werkzeug
m"ogen, so w"urde ich mich sehr "uber eine Postkarte von Ihnen freuen!

@example
@group
@center .                                \\\_''/'                               .
@center .-------------------------oOO    (/o-o\)    OOo-------------------------.
@center .Thomas Esken                o  (.  "  .)  o   Internet :               .
@center .Im Hagenfeld 84              \___) ~ (___/      (esken@@uni-muenster.de).
@center .D-48147 Muenster; GERMANY                     Phone    : +49 251 232585.
@end group
@end example
@end quotation
@end cartouche

@sp 2

@noindent
Das ist die Ausgabe @value{EDITION} von @cite{Gcal, ein erweitertes Kalenderprogramm},@*
f"ur die Version @value{GCAL-VERSION} (oder neuer) der GNU Implementierung@*
von @code{cal} und @code{calendar}.
@sp 2

@noindent
Hiermit wird die Erlaubnis erteilt, wortgetreue Kopien dieses Handbuchs
zu erstellen und zu vertreiben, sofern alle gemachten Kopien mit dem
Copyrightvermerk und diesem Genehmigungsvermerk ausgestattet sind und
vorgenannte Vermerke erhalten bleiben.

@noindent
Hiermit wird die Erlaubnis erteilt, ver"anderte Kopien dieses Handbuchs
wie unter den Bedingungen f"ur wortgetreue Kopien zu erstellen und zu
vertreiben, sofern die ausgef"uhrten Arbeiten in Ableitung und Gesamtheit
innerhalb der Bestimmungen eines Genehmigungvermerks liegen und zudem mit
diesem ausgestattet sind, welcher mit diesem hier identisch ist.

@noindent
Hiermit wird die Erlaubnis erteilt, wie unter den vorgenannten Bedingungen
f"ur ver"anderte Versionen "Ubersetzungen dieses Handbuchs in eine andere
Sprache zu erstellen und zu vertreiben, mit der Ausnahme, da"s dieser
Genehmigungsvermerk in einer "Ubersetzung angegeben sein darf, welche
von der Free Software Foundation gebilligt wird.
@end titlepage
@c
@c %**End of titlepage part



@c %**Start of master menu part
@c
@headings on
@ifinfo
@node Top, Einleitung, (dir), (dir)
@top Gcal

@noindent
Gcal ist ein Programm um Kalender auszugeben.  Gcal gibt Monatskalender und
Jahreskalender, ewige Feiertagslisten sowie Terminwarnungslisten auf viele
verschiedene Arten und Weisen aus.  Es ber"ucksichtigt diejenigen Daten
korrekt, welche "ubergangen wurden, als der derzeitig g"ultige Gregorianische
Kalender den vormals g"ultigen Julianischen Kalender abl"oste.

@noindent
Das ist die Ausgabe @value{EDITION} der Gcal Dokumentation vom
@w{@value{UPDATE-DATE},} f"ur Gcal @value{GCAL-VERSION}.

@noindent
Jedwede Vorschl"age, Verbesserungen, Erweiterungen, Fehlerberichte, Geld-
und Sachspenden, Programmierauftr"age usw.@: sind stets willkommen.  Bitte
senden Sie diese direkt an meine Email Adresse.  Wenn Sie dieses Werkzeug
m"ogen, so w"urde ich mich sehr "uber eine Postkarte von Ihnen freuen!

@format
                                \\\_''/'
-------------------------oOO    (/o-o\)    OOo-------------------------
Thomas Esken                o  (.  "  .)  o   Internet :
Im Hagenfeld 84              \___) ~ (___/      (esken@@uni-muenster.de)
D-48147 Muenster; GERMANY                     Phone    : +49 251 232585
@end format

@menu
* Einleitung::       Einf"uhrung in Gcal.
* Aufruf von Gcal::  Wie starte ich das @code{gcal} Programm?
* Ewige Feiertage::  Wie wird eine Ewige Feiertagsliste erzeugt?
* Terminwarnungen::  Wie wird eine Terminwarnungsliste erzeugt?

Anh"ange

* Heutiger Kalender::      Entstehungsgeschichte des Gregorianischen Kalenders.
* Gcal Hilfsprogramme::    Mitgelieferte Hilfsprogramme.
* Internationalisierung::  Aspekte zur erfolgten Internationalisierung.
* Metasymbole::            In diesem Dokument benutzte Metasymbole.
* Kodierschema::           Kodierschema des Datumteils einer Ressourcendatei.
* Umgebungsvariablen::     Ber"ucksichtigte Umgebungsvariablen.
* Fehlerkodes::            Welche Fehlerkodes werden von Gcal zur"uckgegeben?

Indizes

* Argumentenindex::  Verzeichnis der Kommandozeilenargumente.
* Variablenindex::   Verzeichnis der Umgebungsvariablen.
* Begriffsindex::    Stichwortverzeichnis.

  --- Detaillierte Aufstellung Von Knoten ---

Aufruf von Gcal

* Kommandozeilenargumente::     Kommandozeilenargumente.
* Die GCAL Umgebungsvariable::  Wie wird die @code{GCAL} Umgebungsvariable benutzt?

Kommandozeilenargumente

* Optionen::           Wie werden Optionen benutzt?
* Antwortdatei::       Wie wird eine @samp{@@@var{Datei}} Antwortdatei benutzt?
* Datummodifizierer::  Wie wird der @samp{%@var{Datum}} Datummodifizierer benutzt?
* Kommandos::          Wie werden Kommandos benutzt?

Optionen

* Allgemeine Optionen::     Wie Allgemeine Optionen benutzt werden.
* Globale Optionen::        Wie Globale Optionen benutzt werden.
* Kalender Optionen::       Wie Kalender Optionen benutzt werden.
* Terminwarnung Optionen::  Wie Terminwarnung Optionen benutzt werden.

Kommandos

* Einfache Kommandos::       Wie ein Einfaches Kommando benutzt wird.
* 3-Monatsmodus Kommandos::  Wie ein 3-Monatsmodus Kommando benutzt wird.
* Listen von Kommandos::     Wie eine Liste von Kommandos benutzt wird.
* Bereiche von Kommandos::   Wie ein Bereich von Kommandos benutzt wird.

Terminwarnungen

* Ressourcendatei::           Wie eine Ressourcendatei benutzt wird.
* Ressourcendateibeispiele::  Beispiele zu Eintr"agen in der Ressourcendatei.

Ressourcendatei

* Struktur einer Ressourcendatei::  Wie wird eine Ressourcendatei erstellt?
* Datumteil einer Zeile::           Wie mu"s der Datumteil aussehen?
* Weitere Datumteil-Attribute::     Was sind weitere Attribute vom Datumteil?
* Textteil einer Zeile::            Wie mu"s der Textteil aussehen?
* Zeile kommentieren::              Wie eine Zeile kommentiert werden kann.
* Include Anweisungen::             Was sind Include Anweisungen?
* Spezielle Textmakros::            Was sind Spezielle Textmakros?
* Datumvariablen::                  Wie Datumvariablen benutzt werden k"onnen.
* Textvariablen::                   Wie Textvariablen benutzt werden k"onnen.

Weitere Datumteil-Attribute

* Listen von Tagen::               Wie eine Liste von Tagen benutzt wird.
* Bereiche von Tagen::             Wie ein Bereich von Tagen benutzt wird.
* Wiederholungsfaktor von Tagen::  Wie ein solcher Faktor benutzt wird.
* Auftretensfaktor von Tagen::     Wie ein solcher Faktor benutzt wird.

Spezielle Textmakros

* %s Textmakro::  Wie ein Start eines Termins Textmakro benutzt wird.
* %e Textmakro::  Wie ein Ende eines Termins Textmakro benutzt wird.
* %o Textmakro::  Wie ein Wochentagsname Textmakro benutzt wird.
* %k Textmakro::  Wie ein Wochennummer Textmakro benutzt wird.
* %b Textmakro::  Wie ein Geburtstags Textmakro benutzt wird.
* %y Textmakro::  Wie ein Jahreszahl Textmakro benutzt wird.
* %m Textmakro::  Wie ein Monatszahl Textmakro benutzt wird.
* %w Textmakro::  Wie ein Wochenzahl Textmakro benutzt wird.
* %d Textmakro::  Wie ein Tageszahl Textmakro benutzt wird.
* %j Textmakro::  Wie ein Julianische Tageszahl Textmakro benutzt wird.
* %n Textmakro::  Wie ein Datumtext Textmakro benutzt wird.
* %t Textmakro::  Wie ein Aktuelle Uhrzeit Textmakro benutzt wird.
* %1 Textmakro::  Wie ein Start Hervorhebungssequenz 1 Textmakro benutzt wird.
* %2 Textmakro::  Wie ein Ende Hervorhebungssequenz 1 Textmakro benutzt wird.
* %3 Textmakro::  Wie ein Start Hervorhebungssequenz 2 Textmakro benutzt wird.
* %4 Textmakro::  Wie ein Ende Hervorhebungssequenz 2 Textmakro benutzt wird.

Gcal Hilfsprogramme

* Aufruf von tcal::      Wie starte ich das @code{tcal} Programm?
* Aufruf von txt2gcal::  Wie starte ich das @code{txt2gcal} Programm?

Kodierschema

* Kodierschema Tabelle 1::
* Kodierschema Tabelle 2::
@end menu
@end ifinfo
@c
@c %**End of master menu part



@c %**Start of manual part
@c
@node Einleitung, Aufruf von Gcal, Top, Top
@chapter Einleitung
@cindex Einf"uhrung in Gcal

@noindent
Neben den "ublichen und altbekannten Kalenderfunktionen wie der Ausgabe eines
Monatskalenderblatts oder eines Jahreskalenderblatts, oder der Ausgabe einer
ewigen Feiertagsliste bietet Gcal die M"oglichkeit, Termine am Tag ihres
Auftretens auszugeben, und so den Benutzer auf einen Termin hinzuweisen.
So ist es vorstellbar, da"s beim Starten des Computers oder der Arbeitssitzung
dem Benutzer von Gcal alle Termine, welche an diesem Tag wahrzunehmen sind,
am Bildschirm aufgezeigt oder via elektronischer Post zugesandt werden.

@noindent
Der Zeitraum, f"ur welchen Gcal anfallende Termine ber"ucksichtigt, kann vom
Benutzer frei vorgew"ahlt werden.  So k"onnen Termine, die sich z.B.@: auf
den morgigen Tag beziehen, ebenso wie Termine, die in der gesamte Woche, dem
gesamten Monat oder dem gesamten Jahr auftreten, von Gcal ausgegeben werden.
Termine, die an einem bestimmten Tag des Jahres auftreten, werden ebenso wie
Termine, die relativ zu einem anderen, vorgegebenen Datum auftreten, von Gcal
ausgegeben; entweder nur bezogen auf dieses Einzeldatum oder als Terminliste
beginnend bei einem Startdatum und endend (einschliesslich oder ausschliesslich)
am aktuellen Tag.

@noindent
Es bestehen zwei M"oglichkeiten, eine Terminvorschau (Termine zuk"unfiger Jahre)
oder eine Terminr"uckschau (Termine vergangener Jahre) vorzunehmen.  So kann
Gcal einerseits mittels einer Option, welche da"s vom Computer gelieferte
aktuelle Systemdatum f"ur den Augenblick des Gcal-Programmlaufs auf ein
vorgegebenes Datum setzt, verwendet werden, um eine Terminvorschau bzw.@:
Terminr"uckschau so vorzunehmen, als wenn das Systemdatum tats"achlich eben
dieses vorgegebene Datum w"are, so da"s der zu ber"ucksichtigende Zeitraum via
Option vom Benutzer beliebig vorgegeben werden kann.  Andererseits kann mittels
eines Kommandos veranla"st werden, anstelle des aktuellen Jahres ein anderes
Jahr zu ber"ucksichtigen, so da"s Gcal anfallende Termine f"ur eben dieses
andere Jahr ausgibt.  Das hat allerdings zur Folge, da"s der vorgew"ahlte
Zeitraum nicht mehr via Option vom Benutzer beliebig gesetzt werden kann,
sondern sich in diesem Fall stets auf das gesamte Jahr bezieht.

@noindent
Gcal vermag nicht nur Termine auszugeben, die f"ur ein konkretes Datum
gespeichert wurden, z.B.@: @samp{Termin am 1'ten Dezember 1995}, sondern auch
Termine, die in bestimmten Abst"anden immer wieder auftreten.  So ist es
m"oglich, wiederkehrende Termine wie z.B.@: @samp{Dieser Termin findet an
allen Tagen im Monat Mai 1995 statt} oder @samp{Immer am 15'ten November eines
jeden Jahres} zu vereinbaren.  Diese Terminvereinbarungen werden in sogenannten
Ressourcendateien gespeichert, und bei Programmaufruf kann Gcal via Option
mitgeteilt werden, welche Ressourcendateien auszuwerten sind.

@noindent
Einmal f"ur sinnvoll erachtete Aufrufe von Gcal k"onnen hinsichtlich der an
das Programm "ubergebenen Kommandozeilenargumente dauerhaft in einer
sogenannten Antwortdatei oder in einer shell script Datei gespeichert werden.
Eine Antwortdatei enth"alt ebenso wie eine shell script Datei alle Argumente,
die an Gcal zur Verarbeitung "ubergeben wurden, nur ist eine solche Antwortdatei
nicht eigenst"andig ablauff"ahig.  Wenn bei einem erneuten Aufruf von Gcal der
Name dieser automatisch erzeugten Antwortdatei via Option "ubergeben wird, so
liest Gcal den Inhalt dieser Antwortdatei ein und behandelt diesen so, als wenn
dieser in der Kommandozeile angegeben w"are.  Im Gegensatz dazu wird bei Aufruf
einer shell script Datei das Gcal Programm direkt mit den in der shell script
Datei gespeicherten Argumeten sowie den zus"atzlich in der Kommandozeile
angegebenen Argumenten ausf"uhrt.

@noindent
Um einen konkreten Eindruck von den weiteren M"oglichkeiten des Gcal Programms
zu erhalten, werden nun alle verwendbaren Kommandozeilenargumente sowie deren
Bedeutung vorgestellt.

@node Aufruf von Gcal, Ewige Feiertage, Einleitung, Top
@chapter Aufruf von @code{gcal}
@cindex Aufruf von @code{gcal}
@cindex Shell
@cindex Kommandointerpretierer

@menu
* Kommandozeilenargumente::     Kommandozeilenargumente.
* Die GCAL Umgebungsvariable::  Wie wird die @code{GCAL} Umgebungsvariable benutzt?
@end menu

@noindent
Gcal ist ein kommandozeilenorientiertes Programm.  Es wird "ublicherweise vom
Kommandointerpretierer des Betriebssystems aus aufgerufen (auch als @dfn{shell}
bezeichnet; dieses Betriebssystemprogramm interpretiert Komandozeilen und
f"uhrt diese aus), und verarbeitet die ihm "ubergebenen Argumente, welche
Optionen und Kommandos sind.  Optionen m"ussen vor Kommandos angegeben werden,
d.h.@: Gcal mu"s auf folgende Art und Weise aufgerufen werden:
@sp 2

@example
@center gcal @r{[ [}@var{Option}@dots{}@r{] [}%@var{Datum}@r{] [}@@@var{Datei}@dots{}@r{] ]  [}@var{Kommando}@r{]}
@end example

@sp 2

@noindent
Wenn Gcal ohne entsprechende Optionen aufgerufen wird bzw.@: kein Kommando
angegeben wird, so wird ein Kalender des laufenden Monats ausgegeben.  Wenn
der Kalender eines bestimmten Jahres ausgegeben werden soll, so mu"s das
Jahr vollst"andig angegeben werden, z.B.@: @samp{gcal 94} w"urde nicht den
Jahreskalender von 1994 ausgeben, sondern den Jahreskalender des Jahres 94.

@noindent
Werden zwei Argumente als Kommando angegeben, so bezieht sich das @strong{erste}
Argument auf den Monat und das @strong{zweite} Argument auf das Jahr.  Werden
beim Aufruf unkorrekte Kommandos angegeben, so wird die Programmausf"uhrung
unter Benutzung interner Grundeinstellungen von Gcal vorgenommen.

@noindent
In der deutschen Programmversion wird angenommen, da"s die Gregorianische
Reformation am 5'ten Oktober 1582 stattgefunden hat, siehe
@ref{Heutiger Kalender}, und @ref{Internationalisierung} f"ur weitere Details.

@page
@node Kommandozeilenargumente, Die GCAL Umgebungsvariable, Aufruf von Gcal, Aufruf von Gcal
@section Kommandozeilenargumente
@cindex Kommandozeilenargumente
@cindex Argumente der Kommandozeile
@cindex Optionen
@cindex @samp{%@var{Datum}}, Option
@cindex Option @samp{%@var{Datum}}
@cindex @samp{@@@var{Datei}}, Option
@cindex Option @samp{@@@var{Datei}}
@cindex Kommandos

@menu
* Optionen::           Wie werden Optionen benutzt?
* Antwortdatei::       Wie wird eine @samp{@@@var{Datei}} Antwortdatei benutzt?
* Datummodifizierer::  Wie wird der @samp{%@var{Datum}} Datummodifizierer benutzt?
* Kommandos::          Wie werden Kommandos benutzt?
@end menu

@noindent
Dieses Unterkapitel beschreibt alle Argumente der Kommandozeile, die von
Gcal verarbeitet werden.  Es gibt insgesamt vier verschiedene Typen von
Kommandozeilenargumenten.  Ein wichtiger Typ von Argumenten sind die
@dfn{Optionen}, welche verschiedene Verhaltensweisen bei Gcal ausl"osen.
Andere Argumenttypen sind die @samp{%@var{Datum}} und die @samp{@@@var{Datei}}
Option.  Die @samp{%@var{Datum}} Option setzt den Zeitraum, welcher von Gcal
ber"ucksichtigt werden soll, auf ein vorbestimmtes Startdatum; die
@samp{@@@var{Datei}} Option l"adt Optionen und Kommandos aus einer
Antwortdatei vor.  Die wichtigsten Argumente sind die @dfn{Kommandos},
welche die Zeitr"aume kontrollieren, die von Gcal ber"ucksichtigt werden.

@cindex Umschaltzeichen, @samp{-}
@cindex @samp{-} Umschaltzeichen
@cindex Umschaltzeichen, @samp{/}
@cindex @samp{/} Umschaltzeichen
@cindex Umschaltzeichen, @samp{--}
@cindex @samp{--} Umschaltzeichen
@cindex Switchzeichen, @samp{-}
@cindex @samp{-} Switchzeichen
@cindex Switchzeichen, @samp{/}
@cindex @samp{/} Switchzeichen
@cindex Switchzeichen, @samp{--}
@cindex @samp{--} Switchzeichen
@noindent
Eine Option wird durch ein f"uhrendes Umschaltzeichen (auch @dfn{Switch}
Zeichen genannt) definiert; entweder das @samp{-} oder das @samp{/} Zeichen
bei traditionellen Kurzoptionen, oder zwei @samp{--} bei den mnemotechnischen
Langoptionen; einem Kommando darf kein Umschaltzeichen vorangehen.  Optionen
(inklusive @samp{%@var{Datum}} und @samp{@@@var{Datei}}) @strong{m"ussen}
vor Kommandos angegeben werden!

@cindex Quotierung von Spezialzeichen
@cindex Shell
@cindex Kommandointerpretierer
@noindent
Abh"angig vom benutzten Betriebssystem bzw.@: der shell kann es sein,
da"s einige der in der Kommandozeile gegebenen Argumente und Texte durch
@samp{"} oder @samp{'} Zeichen quotiert, bzw.@: durch das @samp{\} Zeichen
gegen die Auswertung durch die shell gesch"utzt werden m"ussen.

@sp 2

@noindent
Hier folgt eine unvollst"andige Liste von Zeichen, die eventuell
gesch"utzt werden m"ussen:

@quotation
@samp{(}, @samp{)}, @samp{<}, @samp{>}, @samp{[}, @samp{]}, @samp{@{},
@samp{@}}, @samp{\}, @samp{|}, @samp{$}, @samp{@@}, @samp{!}, @samp{&},
@samp{~}, @samp{"}, @samp{'}, @samp{`}, @samp{;}
@end quotation

@page
@node Optionen, Antwortdatei, Kommandozeilenargumente, Kommandozeilenargumente
@subsection Optionen
@cindex Optionen der Kommandozeile
@cindex Kommandozeilenoptionen

@menu
* Allgemeine Optionen::     Wie Allgemeine Optionen benutzt werden.
* Globale Optionen::        Wie Globale Optionen benutzt werden.
* Kalender Optionen::       Wie Kalender Optionen benutzt werden.
* Terminwarnung Optionen::  Wie Terminwarnung Optionen benutzt werden.
@end menu

@noindent
Die Optionen, welche von Gcal verarbeitet werden, k"onnen in vier Hauptklassen
unterteilt werden.  Die Optionen der @dfn{Allgemeinen Optionsklasse} sind die
Standardoptionen, welche jede GNU Software wenigstens teilweise aufweisen
sollte.  Die @dfn{Globale Optionsklasse} enth"alt Optionen, welche die vom
Programm erzeugte Ausgabe beeinflussen.  Die Optionen der @dfn{Kalender
Optionsklasse} steuern das Kalender Layout und die Optionen der
@dfn{Terminwarnung Optionsklasse} kontrollieren das Layout der
Terminwarnungen und deren Intensit"at.

@cindex Optionen, Kurzform
@cindex Kurzoptionen
@cindex Optionen, Langform
@cindex Optionen, GNU Stil
@cindex GNU Langoptionen
@cindex Langoptionen
@cindex Kommandozeilenwort
@cindex Einzelzeichenoption
@noindent
Gcal ist in der Lage Kurzoptionen sowie auch GNU Langoptionen zu verarbeiten.
Kurzoptionen werden von einem einzelnen Umschaltzeichen angef"uhrt, sodann
folgt ein Optionszeichen und evtl.@: ein Modifizierer oder ein Argument.  Die
meisten Einzelzeichenoptionen (sofern diese kein Argument annehmen) k"onnen
zu einem einzelnen Kommandozeilenwort zusammengefasst werden: @samp{-Ax} ist
gleichwertig zu @samp{-A -x}.  GNU Langoptionen werden von @samp{--} Zeichen
angef"uhrt, sodann folgt ein Optionsname und evtl.@: ein Argument.  Langoptionen
sowie deren Argumente d"urfen abgek"urzt werden, wenn die vorgenommene Abk"urzung
eindeutig ist.  Wenn ein Argument an eine Langoption "ubergeben werden soll, so
werden der Optionsname und das Argument mit einem @samp{=} Zeichen verbunden.

@noindent
Eckige Klammern ([ und ]) deuten an, da"s eine Option ein optionales Argument
annimmt.  Das @samp{|} Zeichen wird dazu benutzt, um mehrere zur Auswahl
stehende Argumente voneinander abzugrenzen.

@noindent
Gcal verarbeitet GNU Langoptionen in einem besonderen, nicht standardgem"a"sen
Weg.  So unterscheidet Gcal f"unf verschiedene Typen von Langoptionen:

@enumerate
@item
@samp{--foo}@*
Schaltet die @samp{--foo} Option an.

@item
@samp{--foo=@var{bar}}@*
Schaltet die @samp{--foo} Option mit dem ben"otigtem @var{bar} Argument an.

@item
@samp{--foo@r{[}=@var{bar}@r{[|}@dots{}@r{|}@var{bar}@r{]]}}@*
Die @samp{--foo} Option darf ein @var{bar} Argument annehmen.  Falls
keine Argumentliste gegeben ist, so darf diese Option jedes Argument
annehmen.  Wenn aber doch eine Argumentliste gegeben ist, so darf
diese Option genau ein Argument aus der gegebenen Liste annehmen.
Falls in dieser Hinsicht kein Argument angew"ahlt wird, so wird
automatisch das erste @var{bar} Argument aus der Argumentliste angenommen.

@item
@samp{--foo=@var{bar}@r{|}@dots{}@r{|}@var{bar}}@*
Die @samp{--foo} Option mu"s genau ein @var{bar} Argument annehmen,
welches aus der gegebenen Argumentliste angew"ahlt werden mu"s.

@item
@samp{--foo=@var{bar}@r{|}@dots{}@r{|}@var{bar}@r{|}@var{baz}}@*
Die @samp{--foo} Option mu"s entweder genau ein @var{bar} Argument annehmen,
welches aus der gegebenen @var{bar} Argumentliste angew"ahlt werden mu"s,
oder alternativ das @var{baz} Argument annehmen.
@end enumerate

@noindent
Traditionelle Kurzoptionen unterscheiden sich wie folgt:

@enumerate
@item
@samp{-x}@*
Schaltet die @samp{-x} Option an.

@item
@cindex Trennzeichen, whitespace
@cindex Whitespace Trennzeichen
@samp{-x @var{bar}}@*
Schaltet die @samp{-x} Option mit dem ben"otigtem @var{bar} Argument an.  Das
@var{bar} Argument darf durch ein f"uhrendes @emph{whitespace} Zeichen von dem
Kurzoptionszeichen @samp{x} abgegrenzt werden.  Das bedeutet, da"s folgende
Notationen zur Angabe eines Arguments verwendet werden k"onnen, n"amlich
@samp{-x @var{bar}} und @samp{-x@var{bar}}.

@item
@cindex Trennzeichen, whitespace
@cindex Whitespace Trennzeichen
@samp{-x@r{[}@var{bar}@r{|}@dots{}@r{|}@var{bar}@r{]}}@*
Die @samp{-x} Option darf einen oder mehrere @var{bar} @dfn{Modifizierer}
annehmen.  Modifizierer in diesem Sinne sind ein oder mehrere Zeichen, welche
einen speziellen Modus definieren, der durch die @samp{-x} Option ausgel"ost
wird.  Ein Modifizierer darf nicht durch ein f"uhrendes @emph{whitespace}
Zeichen vom Kurzoptionszeichen abgegrenzt werden.
@end enumerate

@node Allgemeine Optionen, Globale Optionen, Optionen, Optionen
@subsubsection Allgemeine Optionen
@cindex Allgemeine Optionen

@table @samp
@item -?
@itemx -h
@itemx --help
@arindex -?
@arindex -h
@arindex --help
@cindex Verdichteter Hilfetext
@cindex Hilfetext, verdichtet
@cindex Kurzer Hilfetext
@cindex Hilfetext, Kurzform
Ausgabe eines verdichteten Hilfetextes, der die meisten aller verf"ugbaren
Optionen aufzeigt; sodann erfolgreiche Beendigung des Programms.

@item -??
@itemx -hh
@itemx --usage@r{[}=@var{Argument}@r{]}
@itemx --long-help@r{[}=@var{Argument}@r{]}
@arindex -??
@arindex -hh
@arindex --usage@r{[}=@var{Argument}@r{]}
@arindex --long-help@r{[}=@var{Argument}@r{]}
@cindex Erweiterter Hilfetext
@cindex Hilfetext, erweitert
@cindex Langer Hilfetext
@cindex Hilfetext, Langform
Ausgabe eines erweiterten Hilfetextes, der alle verf"ugbaren Optionen
aufzeigt; sodann erfolgreiche Beendigung des Programms.  Falls @var{Argument}
angegeben wird und ein zul"assiger Langoptionsname ist, so wird nur ein
erweiterter Hilfetext zu dem angegebenen Langoptionsnamen ausgegeben, z.B.@::

@need 1000
@example
--long-help=long-help
@end example

gibt einen erweiterten Hilfetext zur Langoption @w{@samp{--long-help}} aus.

@arindex --usage=?
@arindex --long-help=?
@cindex Liste aller Langoptionsnamen
@cindex Langoptionsnamen, Liste aller
Falls @var{Argument} nur aus einem einzelnen @samp{?} Zeichen besteht oder
kein g"ultiger Langoptionsname ist, so wird eine Liste aller zul"assigen
Langoptionsnamen ausgegeben.

@item -L
@itemx --license
@itemx --copyleft
@itemx --copyright
@arindex -L
@arindex --license
@arindex --copyleft
@arindex --copyright
@cindex Software Lizenz, Auffinden der
@cindex Copyleft
@cindex Copyright
Ausgabe des Software-Lizenztextes; sodann erfolgreiche Beendigung des Programms.

@need 1000
@item -V
@itemx --version
@arindex -V
@arindex --version
@cindex Versionsnummer, Auffinden der
Ausgabe der Versionsnummer und der Kompilations-Optionen;
sodann erfolgreiche Beendigung des Programms.

@item --exit-status-help-127
@arindex --exit-status-help-127
@cindex Programmendestatus 127
@cindex Exit-Kode 127
Setzt den Endestatus des Programms auf 127 anstatt auf 0, wenn eine der
anderen Optionen der @emph{Allgemeinen Optionsklasse} benutzt wurde.
@end table

@node Globale Optionen, Kalender Optionen, Allgemeine Optionen, Optionen
@subsubsection Globale Optionen
@cindex Globale Optionen

@table @samp
@item -R @var{Dateiname}
@itemx --response-file=@var{Dateiname}
@arindex -R @var{Dateiname}
@arindex --response-file=@var{Dateiname}
@cindex Antwortdatei, Erzeugung
@cindex @code{GCAL} Umgebungsvariable
@cindex Umgebungsvariable, @code{GCAL}
@vindex GCAL
Inhalt der Umgebungsvariable @code{GCAL} (@pxref{Umgebungsvariablen, , GCAL}),
und sodann die Argumente der Kommandozeile (in genau dieser Reihenfolge) in
die Datei @var{Dateiname} schreiben, d.h.@: Antwortdatei @file{Dateiname}
erzeugen.  @xref{Antwortdatei}, f"ur weitere Details.

@need 1000
@item -S @var{Dateiname}
@itemx --shell-script=@var{Dateiname}
@arindex -S @var{Dateiname}
@arindex --shell-script=@var{Dateiname}
@cindex Shell script, Erzeugung
@cindex @code{GCAL} Umgebungsvariable
@cindex Umgebungsvariable, @code{GCAL}
@vindex GCAL
Inhalt der Umgebungsvariable @code{GCAL} (@pxref{Umgebungsvariablen, , GCAL}),
und sodann die Argumente der Kommandozeile (in genau dieser Reihenfolge) in
die shell script Datei @var{Dateiname} schreiben, d.h.@: shell script
@file{Dateiname} erzeugen.  Eine automatisch erzeugte shell script Datei ist
eigenst"anding ablauff"ahig und ruft Gcal direkt mit den im Script gespeicherten
Argumenten auf.  Beim Aufruf der shell script Datei d"urfen weitere
Kommandozeilenargumente gegeben werden, welche dann zudem an Gcal
"ubermittelt werden.

@item --debug@r{[}=internal@r{|}handled@r{|}unhandled@r{|}all@r{|}abort@r{]}
@arindex --debug@r{[}=internal@r{|}handled@r{|}unhandled@r{|}all@r{|}abort@r{]}
Einige Debug-Informationen ausgeben.

@table @samp
@item --debug=internal
@arindex --debug=internal
Warnungen bei Erreichen programminterner Maxima ausgeben.

@item --debug=handled
@arindex --debug=handled
Wie @samp{--debug=internal}, zudem werden die Dateinamen ausgegeben,
die gehandhabt werden.

@item --debug=unhandled
@arindex --debug=unhandled
Wie @samp{--debug=internal}, zudem werden die Dateinamen ausgegeben,
die nicht gehandhabt werden.

@item --debug=all
@arindex --debug=all
Wie @samp{--debug=handled} und @samp{--debug=unhandled} zusammen.

@need 1000
@item --debug=abort
@arindex --debug=abort
Wie @samp{--debug=all}, und Abbruch mit Fehlerkode beim ersten Auftreten
eines nicht gehandhabten Dateinamens; siehe @ref{Fehlerkodes, , 118}.
@end table

@item -p
@itemx --pager
@arindex -p
@arindex --pager
@cindex Paginierer, Benutzung des
@cindex Paginiererprogramm
@cindex Paginierer, extern
@cindex Externes Paginiererprogramm
@cindex Umgebungsvariable, @code{PAGER}
@cindex @code{PAGER} Umgebungsvariable
@vindex PAGER
S"amtliche Ausgaben von Gcal entweder durch einen @emph{externen} Paginierer
oder durch einen einfachen, @emph{internen} Paginierer lenken.  Falls eine
@code{PAGER} Umgebungsvariable gesetzt ist, so wird deren Wert zum Auffinden
des externen Paginiererprogramms ber"ucksichtigt.
@xref{Umgebungsvariablen, , PAGER}, f"ur weitere Informationen.

@cindex Umgebungsvariable, @code{PATH}
@cindex @code{PATH} Umgebungsvariable
@vindex PATH
Falls keine @code{PAGER} Umgebungsvariable gesetzt ist oder aber deren Wert
ung"ultig ist, so versucht Gcal den @code{less} Paginierer zu benutzen; falls
dieses Programm aber w"ahrend des Absuchens des Dateibaums unter Zuhilfenahme
der @code{PATH} Umgebungsvariable nicht vorgefunden wird, so wird Gcal
versuchen, das @code{more} Paginiererprogramm, wenn dieses nicht gefunden
wird, das @code{pg} Paginiererprogramm in gleicher Weise aufzusp"uren
@footnote{Beachten Sie die Standard-Handbuchseiten zu @code{less}, @code{more}
und @code{pg}.}.  @xref{Umgebungsvariablen, , PATH}.

@cindex Paginierer, intern
@cindex Interner Paginierer, einfacher
Falls alle diese Aktionen versagt haben sollten, so wird Gcal einen
einfachen, eingebauten Paginierer benutzen.  Wenn der einfache interne
Paginierer benutzt wird, so ermittelt Gcal die Anzahl der Zeilen, welche
vor einer Eingabeaufforderung des internen Paginierers ausgegeben werden,
nach folgenden Methoden:

@enumerate
@item
@vindex LINES
@vindex COLUMNS
@ifinfo
Gcal benutzt die Werte, die in den Umgebungsvariablen @code{LINES}
und @code{COLUMNS} angegeben sind.  @xref{Umgebungsvariablen, , LINES},
und siehe auch @ref{Umgebungsvariablen, , COLUMNS}, f"ur weitere Details.
@end ifinfo
@iftex
Gcal benutzt die Werte, die in den Umgebungsvariablen @code{LINES}
und @code{COLUMNS} angegeben sind.  F"ur weitere Informationen, siehe
@ref{Umgebungsvariablen}.
@end iftex

@item
@vindex LI
@vindex CO
@ifinfo
Falls vorherige Aktion versagt, so benutzt Gcal die Werte, die in den
Umgebungsvariablen @code{LI} und @code{CO} angegeben sind.
@xref{Umgebungsvariablen, , LI}, und siehe auch @ref{Umgebungsvariablen, , CO},
f"ur weitere Details.
@end ifinfo
@iftex
Falls vorherige Aktion versagt, so benutzt Gcal die Werte, die in den
Umgebungsvariablen @code{LI} und @code{CO} angegeben sind.  F"ur weitere
Informationen, siehe @ref{Umgebungsvariablen}.
@end iftex

@item
Falls vorherige Aktion versagt, so benutzt Gcal eine systemabh"angige
@emph{low-level} Funktion (unter @w{MS-DOS}, OS/2 und einigen anderen
Betriebssystemen) und benutzt die Werte, die von dieser geliefert werden.

@item
@vindex TERM
Falls vorherige Aktion versagt, so benutzt Gcal die Werte, die in der
@file{termcap} @footnote{Beachten Sie die Standard-Handbuchseiten zu Termcap.}
Datei f"ur das verwendete Sichtger"at vorgefunden werden
(@pxref{Umgebungsvariablen, , TERM}).  Dieser Schritt wird nur auf
Systemen ausgef"uhrt, welche die Benutzung von Termcap unterst"utzen.

@item
Falls alle vorherigen Aktionen fehlschlagen, so benutzt Gcal Standardwerte
(entweder 23 oder 24 Zeilen, 80 Spalten).
@end enumerate

@need 1000
@item -H yes
@itemx --force-highlighting
@itemx --highlighting=yes
@arindex -H yes
@arindex --force-highlighting
@arindex --highlighting=yes
@cindex Hervorhebungssequenzen, Erzwingen der
Falls die Ausgabe des Programms @dfn{redirektioniert} (d.h.@: auf einen
anderen Ger"atekanal umgelenkt) wird oder in einer @dfn{pipe} (d.h.@: als
Eingabedatenstrom f"ur ein weiteres Programm dient) benutzt wird, so werden
Hervorhebungssequenzen @strong{nicht} automatisch in die entsprechenden
Markierungszeichen umgesetzt, sondern unver"andert ausgegeben.  Diese Option
hat keine Wirkung, wenn die Ausgabe des Programms mittels elektronischer Post
versendet wird, siehe auch @ref{Globale Optionen, , @samp{--mail=@var{Adresse}}}.

@item -H no
@itemx --disable-highlighting
@itemx --highlighting=no
@arindex -H no
@arindex --disable-highlighting
@arindex --highlighting=no
@cindex Hervorhebungssequenzen, Abschalten der
@cindex Markierungszeichen, Abschalten der
Hervorhebungsequenz-/ Markierungszeichen Paare von aktuellen Tagen, Feiertagen
bzw.@: Text unterdr"ucken.

@item -H @var{Text}
@itemx --highlighting=@var{Text}
@arindex -H @var{Text}
@arindex --highlighting=@var{Text}
@cindex Hervorhebungssequenzen, Setzen der
@cindex Markierungszeichen, Setzen der
@cindex Folge von Steuerzeichen
@cindex Steuerzeichenfolge
@cindex Escape-Sequenz
Setze Hervorhebungssequenz / Markierungszeichen Paare explizit.
@dfn{Hervorhebungssequenzen} in diesem Sinne sind Folgen von Steuerzeichen,
die eine Farbumschaltung oder eine Intensit"atsumschaltung von auszugebendem
Text bewirken.  Typische Steuerzeichenfolgen sind die sogenannten @sc{ansi}
Escape-Sequenzen, welche als erstes Zeichen der Sequenz ein Escape Zeichen
aufweisen, und danach weitere Zeichen, die die Art der @sc{ansi} Escape-Sequenz
definieren.  @dfn{Markierungszeichen} in diesem Sinne sind einzelne druckbare
Zeichen, die dem auszugebenden Text vorangehen bzw.@: folgen.

Das Argument @var{Text} mu"s ein durch @samp{:} (Doppelpunkt) Zeichen
abgegrenzter Text der Form @w{@var{seq1_start}:@var{seq1_ende}:@var{seq2_start}:@var{seq2_ende}}
sein.  Die @strong{erste} Sequenz wird dazu benutzt den aktuellen Tag
hervorzuheben, die @strong{zweite} Sequenz hebt einen Feiertag hervor.
Die Sequenzen m"ussen in der Form eines Sequenzen-Paares angegeben werden;
@w{@var{seq?_start}} schaltet die Hervorhebung/Markierung ein,
@w{@var{seq?_ende}} schaltet sie wieder aus.  Es werden stets nur zwei
Sequenzen-Paare ber"ucksichtigt, falls mehr Sequenzen-Paare angegeben sind,
so werden diese ignoriert.  Es d"urfen entweder nur Hervorhebungssequenzen-Paare
oder nur Markierungszeichen-Paare definiert werden, d.h.@: eine gemischte
Verwendung beider Hervorhebungsarten ist nicht erlaubt!

Einige Beispiele hierzu:

@quotation
@samp{-H \x20:\x20:\x1:#} bzw.@*
@samp{--highlighting=\x20:\x20:\x1:#}@*
markiert den aktuellen Tag in der Form
@w{@samp{\x20@var{Tagesdatum}\x20}} (d.h.@: mit vorangehenden
und nachfolgenden Leerzeichen) und Feiertage in der Form
@w{@samp{\x1@var{Feiertagsdatum}#}} mit den gegebenen Markierungszeichen.
@end quotation

@need 1500
@quotation
@samp{-H \x1b[34;42m:\x1b[0;40m} oder@*
@samp{-H \033[34;42m:\033[0;40m} oder@*
@samp{-H \E[34;42m:\E[0;40m}@*
definiert zum Hervorheben des aktuellen Tages die hier angegebene @sc{ansi}
Escape-Startsequenz @w{@samp{\x1b[34;42m}} und die @sc{ansi} Escape-Endesequenz
@w{@samp{\x1b[0;40m}}.  Da keine Hervorhebungssequenzen f"ur den
Feiertag angegeben sind, werden die internen Grundeinstellungen der
Hervorhebungssequenzen f"ur diesen verwendet.  Bitte beachten Sie in
diesem Zusammenhang den letzten Absatz in diesem Textteil, welcher
"uber weitere Details informiert. @xref{Umgebungsvariablen, , GCALANSI}.
@end quotation

Steuerzeichensequenzen d"urfen jedes druckbare Zeichen enthalten.
Nichtdruckbare Zeichen k"onnen oktal oder hexadezimal kodiert werden.
Die Abk"urzung @samp{\E} kodiert direkt das Escape Zeichen (oktal @code{\033}
bzw.@: hexadezimal @code{\x1B}).

Ein Zeichen kann durch @samp{\@var{nnn}} @w{(Backslash-Oktalziffer(n))} oktal
kodiert werden, wobei @var{n} eine g"ultige Oktalziffer (0@dots{}7) sein mu"s.
Normalerweise m"ussen drei Oktalziffern angegeben werden.  Falls der oktale
Zeichenkode nur aus einer oder zwei Oktalziffern besteht, so m"ussen f"uhrende
Nullen hinzugef"ugt werden; ausgenommen, das kodierte Oktalzeichen wird zuletzt
in einer Einzelsequenz angegeben.

Ein Zeichen kann durch @samp{\x@var{nn}} @w{(Backslash-x-Hexadezimalziffer(n))}
hexadezimal kodiert werden, wobei @var{n} eine g"ultige Hexadezimalziffer
(0@dots{}9A@dots{}Fa@dots{}f) sein mu"s.  Normalerweise m"ussen zwei
Hexadezimalziffern angegeben werden.  Falls der hexadezimale Zeichenkode nur
aus einer Hexadezimalziffer besteht, so mu"s eine f"uhrende Null hinzugef"ugt
werden; ausgenommen, das kodierte Hexadezimalzeichen wird zuletzt in einer
Einzelsequenz angegeben.

@cindex Trennzeichen, @samp{:}
@cindex @samp{:} Trennzeichen
Falls das Sequenzen-Trennzeichen, das @samp{:} (Doppelpunkt) Zeichen selbst
als Markierungszeichen benutzt werden soll, so mu"s dieses Zeichen entweder
oktal @code{\072} oder hexadezimal @code{\x3A} kodiert werden.

@cindex C Preprocessorsymbol @w{USE_PAGER}
@cindex Umlenkung der Ausgabe, redirektionieren
@cindex Umlenkung der Ausgabe, pipe
Falls das C Preprocessorsymbol @w{USE_PAGER} definiert wurde, und die Ausgabe
des Programms redirektioniert wird oder in einer pipe steht, so werden
Hervorhebungssequenzen automatisch in die entsprechenden Markierungszeichen
umgesetzt; falls @w{USE_PAGER} nicht definiert wurde, so bleiben
Hervorhebungssequenzen unver"andert.

@cindex Umgebungsvariable, @code{GCALANSI}
@cindex @code{GCALANSI} Umgebungsvariable
@vindex GCALANSI
Unvollst"andig oder garnicht angegebene Hervorhebungssequenzen werden durch
intern fest voreingestellte @sc{ansi} Escape-Hervorhebungssequenzen ersetzt,
falls eine @code{GCALANSI} Umgebungsvariable definiert ist; anderenfalls
vollst"andig durch deren entsprechende Markierungszeichen ersetzt.
@xref{Umgebungsvariablen, , GCALANSI}.

@item -m @var{Adresse}
@itemx --mail=@var{Adresse}
@arindex -m @var{Adresse}
@arindex --mail=@var{Adresse}
@cindex Mail, Versenden von
@cindex Post, Versenden von
@cindex Post, elektronische
@cindex Email, Option
@cindex Electronic mail
@cindex Elektronische Post
Versenden von Gcal's Ausgabe via @code{mail} @footnote{Beachten Sie die
Standard-Handbuchseiten zu @code{mail}.} Programm an die Email-Adresse
@var{Adresse}, z.B.@::

@example
@group
--mail=root
-m esken@@uni-muenster.de
@end group
@end example

Alle von Gcal selbst erzeugten Hervorhebungssequenzen werden beim Versenden
einer Email stets unterdr"uckt bzw.@: automatisch in ihre entsprechenden
Markierungszeichen umgesetzt, ganz gleich, ob die @samp{--force-highlighting}
Option angegeben wurde oder nicht.  Dieses Verhalten von Gcal ist deswegen
zwingend erforderlich, da sonst das @code{mail} Programm den Versand der Post
evtl.@: nicht korrekt vollziehen kann.  Beachten Sie bitte in diesem
Zusammenhang auch die Hinweise hinsichtlich der Einschr"ankungen im Textteil
einer Zeile der Ressourcendatei (@pxref{Textteil einer Zeile}).
@end table

@need 1500
@node Kalender Optionen, Terminwarnung Optionen, Globale Optionen, Optionen
@subsubsection Kalender Optionen
@cindex Kalender Optionen

@table @samp
@item -n@r{|}N@r{[}-@r{]}
@itemx --holiday-list@r{[}=long@r{|}short@r{]}
@itemx --descending-holiday-list@r{[}=long@r{|}short@r{]}
@arindex -n@r{|}N@r{[}-@r{]}
@arindex --holiday-list@r{[}=long@r{|}short@r{]}
@arindex --descending-holiday-list@r{[}=long@r{|}short@r{]}
@cindex Ewige Feiertagsliste, Option
Ausgabe der ewigen Feiertagsliste.  @xref{Ewige Feiertage}, f"ur
zus"atzliche Informationen.

@table @samp
@item -n
@itemx --holiday-list=long
@arindex -n
@arindex --holiday-list=long
Aufsteigend sortierte Ausgabe der ewigen Feiertagsliste mit allen Feiertagen,
d.h. den gesetzlichen Feiertagen und den Gedenktagen.

@item -n-
@item --descending-holiday-list=long
@arindex -n-
@arindex --descending-holiday-list=long
Absteigend sortierte Ausgabe der ewigen Feiertagsliste mit allen Feiertagen,
d.h. den gesetzlichen Feiertagen und den Gedenktagen.

@item -N
@item --holiday-list=short
@arindex -N
@arindex --holiday-list=short
Aufsteigend sortierte Ausgabe der ewigen Feiertagsliste mit nur den
gesetzlichen Feiertagen.

@need 1000
@item -N-
@item --descending-holiday-list=short
@arindex -N-
@arindex --descending-holiday-list=short
Absteigend sortierte Ausgabe der ewigen Feiertagsliste mit nur den
gesetzlichen Feiertagen.
@end table

@item -X
@itemx --exclude-holiday-list-title
@arindex -X
@arindex --exclude-holiday-list-title
@cindex Ewige Feiertagsliste, "Uberschrift unterdr"ucken
Ausgabe der "Uberschrift in der ewigen Feiertagsliste unterdr"ucken.

@item --christan-holidays
@arindex --christian-holidays
@cindex Ewige Feiertagsliste, christliche Feiertage
Die ewige Feiertagsliste wird mit zus"atzlichen christlichen Feiertagen
ausgestattet.  Zudem werden auch in Kalenderbl"attern die Tage hervorgehoben,
die durch diese Option in die ewige Feiertagsliste eingebracht und
hervorgehoben werden.

@item --de-holidays
@arindex --de-holidays
@cindex Ewige Feiertagsliste, Deutsche Feiertage
Die ewige Feiertagsliste wird mit zus"atzlichen deutschen Feiertagen
ausgestattet.  Zudem werden auch in Kalenderbl"attern die Tage hervorgehoben,
die durch diese Option in die ewige Feiertagsliste eingebracht und
hervorgehoben werden.

@item --us-holidays
@arindex --us-holidays
@cindex Ewige Feiertagsliste, US amerikanische Feiertage
Die ewige Feiertagsliste wird mit zus"atzlichen US amerikanischen Feiertagen
ausgestattet.  Zudem werden auch in Kalenderbl"attern die Tage hervorgehoben,
die durch diese Option in die ewige Feiertagsliste eingebracht und
hervorgehoben werden.

@item -i@r{[}-@r{]}
@itemx --type=special@r{|}standard
@arindex -i@r{[}-@r{]}
@arindex -i
@arindex --type=special@r{|}standard
@cindex Standard Kalenderformat
@cindex Kalenderformat, Standard
@cindex Spezielles Kalenderformat
@cindex Kalenderformat, Speziell
@cindex Kalenderblatt, Erzwingen der Ausgabe
Um das @dfn{Standard} Kalenderformat zu erhalten, so sollte Gcal entweder
ganz ohne die @w{@samp{-i@r{[}-@r{]}}} Option aufgerufen werden, da diese
voreingestellt ist.  @xref{Internationalisierung}, f"ur weitere Details.
Oder aber um die Ausgabe eines Kalenderblatts zu erzwingen, sollte Gcal mit
der @samp{-i-} bzw.@: @w{@samp{--type=standard}} Option aufgerufen werden:

@example
@group
@cartouche
$ gcal -i-
@print{}
@print{} September 1994
@print{}
@print{} Montag           5 12 19 26
@print{} Dienstag         6 13 20 27
@print{} Mittwoch         7 14 21 28
@print{} Donnerstag    1  8 15 22 29
@print{} Freitag       2  9 16 23 30
@print{} Samstag       3 10 17 24
@print{} Sonntag       4 11 18 25
@end cartouche
@end group
@end example
@sp 2

Um das @dfn{Spezielle} Kalenderformat zu erhalten ("ahnlich dem
@w{@sc{bsd}-@code{cal}} Programm), so sollte Gcal mit der Option
@samp{-i} bzw.@: mit der Option @w{@samp{--type=special}} gestartet
werden (auch hier wird die Ausgabe eine Kalenderblatts erzwungen):
@sp 2

@example
@group
@cartouche
$ gcal -i
@print{}
@print{}    September 1994
@print{} Mo Di Mi Do Fr Sa So
@print{}           1  2  3  4
@print{}  5  6  7  8  9 10 11
@print{} 12 13 14 15 16 17 18
@print{} 19 20 21 22 23 24 25
@print{} 26 27 28 29 30
@end cartouche
@end group
@end example

@need 1000
@item -u
@itemx --suppress-calendar
@arindex -u
@arindex --suppress-calendar
@cindex Kalenderblatt, Unterdr"ucken der Ausgabe
@cindex Unterdr"ucken des Kalenderblatts
Ausgabe eines Kalenderblatts explizit unterdr"ucken.

@item -b @var{Anzahl}
@itemx --blocks=@var{Anzahl}
@arindex -b @var{Anzahl}
@arindex --blocks=@var{Anzahl}
@cindex Bl"ocke im Jahreskalender, Anzahl der
@cindex Jahreskalenderblatt, Erzwingen der Ausgabe
Setzen der @var{Anzahl} von Bl"ocken, in der ein Jahreskalender ausgegeben wird
(Zul"assige Argumente: @w{@samp{1@r{|}2@r{|}3@r{|}4@r{|}6@r{|}12}).}  Die
voreingestellte @var{Anzahl} ist beim @emph{Standard} Kalenderformat @samp{-b 3}
bzw.@: @samp{--blocks=3}, und beim @emph{Speziellen} Kalenderformat @samp{-b 4}
bzw.@: @samp{--blocks=4}.  Falls diese Option vorgefunden wird, so impliziert
das Programm, da"s die Ausgabe eines Jahreskalendes gew"unscht wird!

@need 1500
@table @samp
@item -b 1
@itemx --blocks=1
@arindex -b 1
@arindex --blocks=1
Gibt einen Block mit allen zw"olf Monaten aus.

@item -b 2
@itemx --blocks=2
@arindex -b 2
@arindex --blocks=2
Gibt zwei Bl"ocke mit je sechs Monaten aus.

@item -b 3
@itemx --blocks=3
@arindex -b 3
@arindex --blocks=3
Gibt drei Bl"ocke mit je vier Monaten aus.

@item -b 4
@itemx --blocks=4
@arindex -b 4
@arindex --blocks=4
Gibt vier Bl"ocke mit je drei Monaten aus.

@need 1000
@item -b 6
@itemx --blocks=6
@arindex -b 6
@arindex --blocks=6
Gibt sechs Bl"ocke mit je zwei Monaten aus.

@item -b 12
@itemx --blocks=12
@arindex -b 12
@arindex --blocks=12
Gibt zw"olf Bl"ocke mit je einem Monat aus.
@end table

@need 1000
@item -j@r{[}b@r{]}
@itemx --calendar-dates=special@r{|}both
@arindex -j@r{[}b@r{]}
@arindex --calendar-dates=special@r{|}both
@cindex Alternatives Datumformat im Kalenderblatt
@cindex Kalenderblatt, alternatives Datumformat
Benutze alternatives Datumformat im Kalenderblatt anstelle des
voreingestellten Standardformats, welches die laufenden Tage im Monat ausgibt.

@table @samp
@item -j
@itemx --calendar-dates=special
@arindex -j
@arindex --calendar-dates=special
@cindex Spezielles Datumformat im Kalenderblatt
@cindex Kalenderblatt, spezielles Datumformat in
Ausgabe des Kalenderblatts im speziellen Datumformat.  Darunter ist zu
verstehen, da"s anstelle der Folge der Tagesnummern der Monate die Folge
der Tagesnummern des Jahres ausgegeben wird.

@item -jb
@itemx --calendar-dates=both
@arindex -jb
@arindex --calendar-dates=both
@cindex Standard- und spezielles Datumformat im Kalenderblatt
@cindex Kalenderblatt, Standard- und spezielles Datumformat in
Ausgabe des Kalenderblatts im Standard- und speziellem Datumformat.
@end table

@item -jn@r{[}b@r{]}
@itemx --holiday-dates=special@r{|}both
@arindex -jn@r{[}b@r{]}
@arindex --holiday-dates=special@r{|}both
@cindex Alternatives Datumformat in ewiger Feiertagsliste
@cindex Ewige Feiertagsliste, alternatives Datumformat
Benutze alternatives Datumformat in ewiger Feiertagsliste anstelle des
voreingestellten Standardformats, welches die laufenden Tage im Monat ausgibt.
@xref{Kalender Optionen, , @samp{--holiday-list@r{[}=long@r{|}short@r{]}}}.

@table @samp
@item -jn
@itemx --holiday-dates=special
@arindex -jn
@arindex --holiday-dates=special
@cindex Spezielles Datumformat in ewiger Feiertagsliste
@cindex Ewige Feiertagsliste, spezielles Datumformat in
Ausgabe der ewige Feiertagsliste im speziellen Datumformat.  Darunter ist zu
verstehen, da"s anstelle der Folge der Tagesnummern der Monate die Folge
der Tagesnummern des Jahres ausgegeben wird.

@item -jnb
@itemx --holiday-dates=both
@arindex -jnb
@arindex --holiday-dates=both
@cindex Standard- und spezielles Datumformat in ewiger Feiertagsliste
@cindex Ewige Feiertagsliste, Standard- und spezielles Datumformat in
Ausgabe der ewige Feiertagsliste im Standard- und speziellem Datumformat.
@end table

@need 1000
@item -jc@r{[}b@r{]}
@itemx --fixed-dates=special@r{|}both
@arindex -jc@r{[}b@r{]}
@arindex --fixed-dates=special@r{|}both
@cindex Alternatives Datumformat in Terminwarnungsliste
@cindex Terminwarnungsliste, alternatives Datumformat
Benutze alternatives Datumformat in Terminwarnungsliste anstelle des
voreingestellten Standardformats, welches die laufenden Tage im Monat ausgibt.
@xref{Terminwarnung Optionen, , @samp{--list-of-fixed-dates@r{[}=short@r{|}long@r{]}}}.

@table @samp
@item -jc
@itemx --fixed-dates=special
@arindex -jc
@arindex --fixed-dates=special
@cindex Spezielles Datumformat in Terminwarnungsliste
@cindex Terminwarnungsliste, spezielles Datumformat in
Ausgabe der Terminwarnungsliste im speziellen Datumformat.  Darunter ist zu
verstehen, da"s anstelle der Folge der Tagesnummern der Monate die Folge
der Tagesnummern des Jahres ausgegeben wird.

@need 1000
@item -jcb
@itemx --fixed-dates=both
@arindex -jcb
@arindex --fixed-dates=both
@cindex Standard- und spezielles Datumformat in Terminwarnungsliste
@cindex Terminwarnungsliste, Standard- und spezielles Datumformat in
Ausgabe der Terminwarnungsliste im Standard- und speziellen Datumformat.
@end table

@item -s @var{Argument}
@itemx --starting-day=@var{Argument}
@arindex -s @var{Argument}
@arindex --starting-day=@var{Argument}
@cindex Starttag der Woche, Setzen des
Setzen des Starttags der Woche (Zul"assiges @var{Argument}:
@w{@samp{0@r{,} 1@r{@dots{}}7 @r{|} today @r{|} @var{Wochentagsname}}).}

@need 1000
Zum Beispiel:

@example
@group
--starting-day=Sonntag @r{oder}
--starting-day=7 @r{oder}
-s SONNTAG @r{oder}
-s sonnt @r{oder}
-s So @r{oder}
-s 7
@end group
@end example

bezeichnet den Sonntag @w{(1@equiv{}Mo, 2@equiv{}Di @dots{} 7@equiv{}So)}.

Wenn die @w{@samp{-s today}} Option (bzw.@: die @w{@samp{--starting-day=today}})
oder die @w{@samp{-s 0}} Option (bzw.@: die @w{@samp{--starting-day=0}})
vorgefunden wird, so wird der Starttag der Woche auf den gerade aktuellen
Wochentag gesetzt.

@xref{Internationalisierung}, f"ur weitere Details.

@item --gregorian-reform=1582@r{|}1752@r{|}@var{Argument}
@arindex --gregorian-reform=1582@r{|}1752@r{|}@var{Argument}
@cindex Zeitraum der Gregorianischen Reformation, Setzen des
@cindex Gregorianische Reformation, Zeitraum setzen
Setzen des Zeitraums, der bei der Gregorianischen Reformation "ubergangen
wurde.  @xref{Internationalisierung}, f"ur weitere Details.  Derzeit werden
zwei fest vorgegebene Zeitr"aume (einerseits im Jahr 1582 und andererseits
im Jahr 1752) unterst"utzt.  Wird Gcal mit der @w{@samp{--gregorian-reform=1582}}
Option aufgerufen, so wird angenommen, da"s die Gregorianische Reformation vom
5'ten bis zum 14'ten Oktober 1582 stattgefunden hat.  Wird Gcal mit der
@w{@samp{--gregorian-reform=1752}} Option aufgerufen, so wird angenommen,
da"s die Gregorianische Reformation vom 3'ten bis zum 13'ten September 1752
stattgefunden hat.

Soll ein anderer Zeitraum ber"ucksichtigt werden, so kann dieser als
Optionsargument @var{Argument} der Form @samp{@var{jjjj},@var{mm},@var{Starttag},@var{Endetag}}
vereinbart werden.  Wenn die Gregorianische Reformation zum Beispiel vom 7'ten
bis zum 17'ten April 1802 stattgefunden hat, so kann das wie folgt deklariert
werden:

@example
--gregorian-reform=1802,4,7,17
@end example

@item --date-format=de@r{|}us@r{|}gb@r{|}@var{Text}
@arindex --date-format=de@r{|}us@r{|}gb@r{|}@var{Text}
Setzen des Datumformats, welches die Anordnung und Darstellung von einem
ausgegebenen Datum beeinflu"st.  @xref{Internationalisierung}, f"ur weitere
Details.  Der Datumformattext wird von Gcal in der ewigen Feiertagsliste,
in der Terminwarnungsliste und in den Kalenderbl"attern ber"ucksichtig; zudem
versucht Gcal intern, stets die bestm"oglichste Darstellung von einem
ausgegebenen Datum zu erzielen wenn fortlaufende Tage des Jahres anstelle
fortlaufender Tage des Monats ausgegeben werden sollen.

Derzeit werden drei fest vorgegebene Datumformate (f"ur deutsche Benutzer,
US amerikanische Benutzer und Benutzer in Gro"sbritannien) unterst"utzt.
Wird Gcal mit der @w{@samp{--date-format=de}} Option aufgerufen, so wird der
@w{@samp{%w,  %1%D%2 %b %y}} Formattext benutzt.  Wird Gcal mit der
@w{@samp{--date-format=us}} Option aufgerufen, so wird der
@w{@samp{%W, %b  %1%U%2 %y}} Formattext benutzt.  Wird Gcal mit der
@w{@samp{--date-format=gb}} Option aufgerufen, so wird der
@w{@samp{%W,  %1%U%2 %b %y}} Formattext benutzt.

@vindex GCAL_DATE_FORMAT
Soll ein anderer Formattext ber"ucksichtigt werden, so kann dieser entweder
in der Umgebungsvariable @code{GCAL_DATE_FORMAT} angegeben werden (allerdings
wird @code{GCAL_DATE_FORMAT} nur dann benutzt, wenn keine
@w{@samp{--date-format=de@r{|}us@r{|}gb@r{|}@var{Text}}} Option angegeben
wird), oder aber als Optionsargument @var{Text} vereinbart werden, z.B.@::

@example
--date-format="%Y %D %m ; %1(%A)%2"
@end example

Der Formattext kann alle von Gcal ausgebbaren Zeichen enthalten, sowie
Zeichenersatzangaben und Formatanweisungen, die zur Laufzeit in ihre
entsprechenden Werte umgesetzt werden.  Ein minimaler Datumformattext
mu"s Komponenten aus der Tag-Gruppe, der Monat-Gruppe, der Jahr-Gruppe
und der Hervorhebung-Gruppe enthalten.  Eine Komponente aus der
Wochentagsname-Gruppe ist optional.  Folgende Formatanweisungen
und Zeichenersatzangaben werden derzeit unterst"utzt:

Tag-Gruppe (genau ein Mitglied mu"s definiert werden):

@table @code
@item %d
Tageszahl mit f"uhrenden Nullen

@item %D
Tageszahl mit f"uhrenden Leerzeichen

@item %u
Tageszahl mit f"uhrenden Nullen und nachfolgendem Ordnungszahlanhang

@item %U
Tageszahl mit f"uhrenden Leerzeichen und nachfolgendem Ordnungszahlanhang
@end table

Monat-Gruppe (genau ein Mitglied mu"s definiert werden):

@table @code
@item %B
Vollst"andiger Monatsname

@item %b
Abgek"urzter Monatsname (3 Buchstaben)

@item %m
Monatszahl mit f"uhrenden Nullen

@item %M
Monatszahl mit f"uhrenden Leerzeichen
@end table

@need 1000
Jahr-Gruppe (genau ein Mitglied mu"s definiert werden):

@table @code
@item %y
Vollst"andige Jahreszahl mit f"uhrenden Nullen

@item %Y
Vollst"andige Jahreszahl mit f"uhrenden Leerzeichen

@item %z
Letzten zwei Ziffern der Jahreszahl mit f"uhrenden Nullen

@item %Y
Letzten zwei Ziffern der Jahreszahl mit f"uhrenden Leerzeichen
@end table

Wochentagsname-Gruppe (ein Mitglied darf definiert werden):

@table @code
@item %A
Vollst"andiger Wochentagsname

@item %W
Abgek"urzter Wochentagsname (3 Buchstaben)

@item %w
Abgek"urzter Wochentagsname (2 Buchstaben)
@end table

Hervorhebung-Gruppe (alle Mitglieder m"ussen definiert werden, und @code{%1}
mu"s vor @code{%2} angegeben werden):

@table @code
@item %1
Start von Hervorhebungssequenz / Markierungszeichen

@item %2
Ende von Hervorhebungssequenz / Markierungszeichen
@end table

Zeichenersatzangaben:

@table @code
@item _
Leerzeichen @samp{ }

@item \_
Unterstrichzeichen @samp{_}

@item \%
Prozentzeichen @samp{%}
@end table
@end table

@need 1500
@node Terminwarnung Optionen, , Kalender Optionen, Optionen
@subsubsection Terminwarnung Optionen
@cindex Terminwarnung, Optionen zur

@table @samp
@item -v @var{Argument}
@itemx --date-variable=@var{Argument}
@arindex -v @var{Argument}
@arindex --date-variable=@var{Argument}
@cindex Datumvariablen, globale
@cindex Globale Datumvariablen, Definition von
@cindex Definition globaler Datumvariablen
@cindex Definition von Datumvariablen
@cindex Datumvariablen, Definition von
@cindex Handhabung von Datumvariablen
@cindex Datumvariablen, Handhabung von
@cindex G"ultigkeitsbereich von Datumvariablen
@cindex Datumvariablen, G"ultigkeitsbereich von
@cindex Operationen auf Datumvariablen
@cindex Datumvariablen, Operationen auf
@cindex Zuweisungen an Datumvariablen
@cindex Datumvariablen, Zuweisungen an
@cindex Namensraum von Datumvariablen
@cindex Datumvariablen, Namensraum von
@cindex @samp{:} Trennzeichen
@cindex Trennzeichen, @samp{:}
Definiere @dfn{globale} Datumvariable, welche in allen referenzierten
Ressourcendateien sichtbar ist (@pxref{Datumvariablen}).  Das Optionsargument
@var{Argument} mu"s entweder eine einzelne Datumvariablen-Definition oder eine
durch @samp{:} Doppelpunkt voneinander getrennte Liste von Definitionen sein.

Der Name einer Datumvariablen @var{dvar} besteht aus einem einzelnen Buchstaben
(Gro"s- bzw.@: Kleinbuchstaben werden nicht unterschieden und ausgenommen dem
Buchstaben @samp{e}, welcher intern f"ur das Datum des Ostersonntags reserviert
ist und welcher deswegen nicht zuweisbar/inoperabel ist), und wird bei einer
Definition gefolgt von dem Zuweisungsoperator @samp{=} und den Zahlenwerten f"ur
Monat @var{mm} (oder einem Monatsnamen im dreistelligen Kurzformat, z.B.@:
@samp{Jan}, @samp{Feb}, @dots{}) und Tag @var{tt}, welche diese Variable
aufzunehmen hat (oder dem Namen einer anderen globalen Datumvariablen, aber
nicht einer Datumangabe im
@samp{@var{mm}@var{www}@var{n}},
@samp{@var{dvar}@r{[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]}} oder
@samp{*d@r{|}w@var{n}@r{[}@var{www}@r{]}} Format).

Einige Beispiele:

@quotation
@samp{--date-variable=a=1127:c=a} bzw.@*
@samp{-v a=1127:c=a}@*
speichert den 27'ten November in der globalen Datumvariablen @var{a}
und in der globalen Datumvariablen @var{c}.
@end quotation

@need 2000
@item --export-date-variables
@arindex --export-date-variables
@cindex Datumvariablen, Export lokaler
@cindex Export lokaler Datumvariablen
@cindex Sichtbarkeit lokaler Datumvariablen
@cindex Datumvariablen, Sichtbarkeit lokaler
Bewirkt den Export lokaler Datumvariablen von Ressourcendatei zu
Ressourcendatei.  @xref{Datumvariablen}, f"ur weitere Details.

@item -r @var{Argument}
@itemx --text-variable=@var{Argument}
@arindex -r @var{Argument}
@arindex --text-variable=@var{Argument}
@cindex Textvariablen, globale
@cindex Globale Textvariablen, Definition von
@cindex Definition globaler Textvariablen
@cindex Definition von Textvariablen
@cindex Textvariablen, Definition von
@cindex Handhabung von Textvariablen
@cindex Textvariablen, Handhabung von
@cindex G"ultigkeitsbereich von Textvariablen
@cindex Textvariablen, G"ultigkeitsbereich von
@cindex Zuweisungen an Textvariablen
@cindex Textvariablen, Zuweisungen an
@cindex Namensraum von Textvariablen
@cindex Textvariablen, Namensraum von
@cindex @samp{:} Trennzeichen
@cindex Trennzeichen, @samp{:}
Definiere @dfn{globale} Textvariable, welche in allen referenzierten
Ressourcendateien sichtbar ist (@pxref{Textvariablen}).  Das Optionsargument
@var{Argument} mu"s entweder eine einzelne Textvariablen-Definition oder eine
durch @samp{:} Doppelpunkt voneinander getrennte Liste von Definitionen sein.

Der Name einer Textvariablen @var{tvar} besteht aus einem @samp{$} Pr"afix
und einem einzelnen Buchstaben (Gro"s- bzw.@: Kleinbuchstaben werden nicht
unterschieden), und wird bei einer Definition gefolgt von dem Zuweisungsoperator
@samp{=} und dem Text, welchen diese Variable aufzunehmen hat.  Eine globale
Textvariable wird mit @emph{leerem} Inhalt definiert falls kein Text rechts
des Zuweisungsoperators angegeben ist.

Einige Beispiele:

@quotation
@samp{--text-variable=$a=foo:$c=$a} bzw.@*
@samp{-r $a=foo:$c=$a}@*
speichert den Text @samp{foo} in der globalen Textvariablen @var{$a}
und in der globalen Textvariablen @var{$c}.
@end quotation

@cindex Quotierung von Spezialzeichen
@cindex Quotierungszeichen, @samp{\}
@cindex @samp{\} Quotierungszeichen
Falls das @samp{:} Zeichen im Text als Zeichen selbst verwendet werden soll,
so mu"s dieses durch ein f"uhrendes @samp{\} (Backslash) Zeichen quotiert
(gesch"utzt/entwertet) werden, z.B.@: @samp{\:}.

Wenn die Zeichen @samp{\:} im Text selbst als Zeichenfolge verwendet werden
sollen, so mu"s das @samp{\} (Backslash) Zeichen mit sich selbst quotiert
werden, z.B.@: @samp{\\:}.

@cindex Quotierung von Spezialzeichen
@cindex Quotierungszeichen, @samp{\}
@cindex @samp{\} Quotierungszeichen
Falls das @samp{$} Zeichen im Text als Zeichen selbst verwendet werden soll,
so mu"s dieses durch ein f"uhrendes @samp{\} (Backslash) Zeichen quotiert
(gesch"utzt/entwertet) werden, z.B.@: @samp{\$}.

Wenn die Zeichen @samp{\$} im Text selbst als Zeichenfolge verwendet werden
sollen, so mu"s das @samp{\} (Backslash) Zeichen mit sich selbst quotiert
werden, z.B.@: @samp{\\$}.

@cindex Pseudo-Leerzeichen, @samp{_}
@cindex @samp{_} Pseudo-Leerzeichen
Jedesmal wenn ein @samp{_} (Unterstrich) Zeichen in @var{Argument} vorgefunden
wird, so wird dieses Zeichen durch ein echtes @samp{ } (Leerzeichen)
Zeichen ersetzt.

@cindex Quotierung von Spezialzeichen
@cindex Quotierungszeichen, @samp{\}
@cindex @samp{\} Quotierungszeichen
Falls das @samp{_} (Unterstrich) Zeichen als Zeichen selbst verwendet werden
soll, so mu"s dieses durch ein f"uhrendes @samp{\} (Backslash) Zeichen quotiert
(gesch"utzt/entwertet) werden, z.B.@: @samp{\_}.

Wenn die Zeichen @samp{\_} selbst als Zeichenfolge verwendet werden sollen,
so mu"s das @samp{\} (Backslash) Zeichen mit sich selbst quotiert werden,
z.B.@: @samp{\\_}.

@need 2000
@item --export-text-variables
@arindex --export-text-variables
@cindex Textvariablen, Export lokaler
@cindex Export lokaler Textvariablen
@cindex Sichtbarkeit lokaler Textvariablen
@cindex Textvariablen, Sichtbarkeit lokaler
Bewirkt den Export lokaler Textvariablen von Ressourcendatei zu
Ressourcendatei.  @xref{Textvariablen}, f"ur weitere Details.

@item -c@r{|}C@r{[}-@r{]}
@itemx --today
@itemx --list-of-fixed-dates@r{[}=short@r{|}long@r{]}
@itemx --descending-fixed-dates@r{[}=short@r{|}long@r{]}
@arindex -c@r{|}C@r{[}-@r{]}
@arindex --tody
@arindex --list-of-fixed-dates@r{[}=short@r{|}long@r{]}
@arindex --descending-fixed-dates@r{[}=short@r{|}long@r{]}
@cindex Terminwarnungszeitraum-Langoption, @samp{--today}
@cindex Terminwarnungen bezogen auf @emph{Heute}
@cindex Terminwarnungen, Option
@cindex Terminwarnungen
@cindex Aktivierung der Terminwarnungsfunktion
@cindex Terminwarnungsfunktion, Aktivieren der
Aktivierung der Terminwarnungsfunktion und Ausgabe von Terminwarnungen.

@table @samp
@item -c
@itemx --today
@itemx --list-of-fixed-dates=short
@arindex -c
@arindex --today
@arindex --list-of-fixed-dates=short
Aktivierung der Terminwarnungsfunktion (implizite Benutzung der
Standard-Ressourcendatei) und alle Daten in aufsteigender Reihenfolge ausgeben,
die sich auf den heutigen Tag beziehen.  Wenn keine Daten zum heutigen Tag
vorgefunden werden, so werden keine Terminwarnungen ausgegeben und das
Programm wird mit Fehlerkode abgebrochen; siehe auch @ref{Fehlerkodes, , 1}.

@need 1000
@item -c-
@itemx --descending-fixed-dates=short
@arindex -c-
@arindex --descending-fixed-dates=short
Aktivierung der Terminwarnungsfunktion (implizite Benutzung der
Standard-Ressourcendatei) und alle Daten in absteigender Reihenfolge ausgeben,
die sich auf den heutigen Tag beziehen.  Wenn keine Daten zum heutigen Tag
vorgefunden werden, so werden keine Terminwarnungen ausgegeben und das
Programm wird mit Fehlerkode abgebrochen; siehe auch @ref{Fehlerkodes, , 1}.

@need 1500
@item -C
@itemx --list-of-fixed-dates=long
@arindex -C
@arindex --list-of-fixed-dates=long
Aktivierung der Terminwarnungsfunktion (implizite Benutzung der
Standard-Ressourcendatei) und alle Daten in aufsteigender Reihenfolge ausgeben,
die sich auf den heutigen Tag beziehen.  Wenn keine Daten zum heutigen Tag
vorgefunden werden, so wird eine nur aus dem Datum bestehende Terminwarnung
ausgegeben.

@item -C-
@itemx --descending-fixed-dates=long
@arindex -C-
@arindex --descending-fixed-dates=long
Aktivierung der Terminwarnungsfunktion (implizite Benutzung der
Standard-Ressourcendatei) und alle Daten in absteigender Reihenfolge ausgeben,
die sich auf den heutigen Tag beziehen.  Wenn keine Daten zum heutigen Tag
vorgefunden werden, so wird eine nur aus dem Datum bestehende Terminwarnung
ausgegeben.
@end table

@item -f@r{|}F @var{Dateiname}@r{[}+@dots{}@r{]}
@itemx --resource-file=@var{Dateiname}
@arindex -f@r{|}F @var{Dateiname}@r{[}+@dots{}@r{]}
@arindex --resource-file=@var{Dateiname}
@cindex Ressourcendatei, zus"atzliche
@cindex Terminwarnungen, Option
@cindex Terminwarnungen
@cindex Aktivierung der Terminwarnungsfunktion
@cindex Terminwarnungsfunktion, Aktivieren der
Aktivierung der Terminwarnungsfunktion und Datei @var{Dateiname} anstelle der
Standard-Ressourcendatei benutzen.  Sodann alle Daten in aufsteigender
Reihenfolge ausgeben, die in den Terminwarnungszeitraum fallen.  Wurde kein
besonderer Terminwarnungszeitraum angegeben, so wird der heutige Tag als
Terminwarnungszeitraum angenommen.  Wurde der Optionsbuchstabe @samp{f}
bei der Kurzoption benutzt und es werden keine Daten in @var{Dateiname}
vorgefunden, die in den Terminwarnungszeitraum fallen, so werden keine
Terminwarnungen ausgegeben und das Programm wird mit Fehlerkode abgebrochen;
siehe auch @ref{Fehlerkodes, , 1}.  Wurde der Optionsbuchstabe @samp{F} bei
der Kurzoption benutzt und es werden keine Daten in @var{Dateiname}
vorgefunden, die in den Terminwarnungszeitraum fallen, so wird eine nur
aus dem Datum bestehende Terminwarnung ausgegeben.

@cindex Trennzeichen, @samp{+}
@cindex @samp{+} Trennzeichen
@vindex HOME
Es kann mehr als eine Ressourcendatei @var{Dateiname} verwendet werden, wenn
die zus"atzlichen Ressourcendateien, durch ein @samp{+} Zeichen getrennt,
aufgef"uhrt werden, z.B.@::

@quotation
@samp{--resource-file=./foo+xyz+/data/foo.bar+$HOME/.gcalrc} bzw.@*
@samp{-f ./foo+xyz+/data/foo.bar+$HOME/.gcalrc}
@end quotation

ber"ucksichtigt alle Dateien, die in dem vorstehenden Argument aufgef"uhrt sind;
dabei wird ein spezieller Suchmechanismus zum Auffinden der Dateien benutzt.
@xref{Ressourcendatei, Datei-Suchmechanismus}, f"ur weitere Details.  Wenn
@var{Dateiname} auf @file{/dev/null} gesetzt ist, so wird da"s Vorladen
einer Standard-Ressourcendatei verhindert, was n"utzlich ist, wenn leere
Terminwarnungslisten erzeugt werden sollen.

@cindex Quotierung von Spezialzeichen
@cindex Quotierungszeichen, @samp{\}
@cindex @samp{\} Quotierungszeichen
Falls das @samp{+} Zeichen als Zeichen selbst verwendet werden soll,
so mu"s dieses durch ein f"uhrendes @samp{\} (Backslash) Zeichen quotiert
(gesch"utzt/entwertet) werden, z.B.@: @samp{\+}.

Wenn die Zeichen @samp{\+} selbst als Zeichenfolge verwendet werden sollen,
so mu"s das @samp{\} (Backslash) Zeichen mit sich selbst quotiert werden,
z.B.@: @samp{\\+}.

@cindex Pseudo-Leerzeichen, @samp{_}
@cindex @samp{_} Pseudo-Leerzeichen
Jedesmal wenn ein @samp{_} (Unterstrich) Zeichen in @var{Dateiname} vorgefunden
wird, so wird dieses Zeichen durch ein echtes @samp{ } (Leerzeichen)
Zeichen ersetzt.

@cindex Quotierung von Spezialzeichen
@cindex Quotierungszeichen, @samp{\}
@cindex @samp{\} Quotierungszeichen
Falls das @samp{_} (Unterstrich) Zeichen als Zeichen selbst verwendet werden
soll, so mu"s dieses durch ein f"uhrendes @samp{\} (Backslash) Zeichen quotiert
(gesch"utzt/entwertet) werden, z.B.@: @samp{\_}.

Wenn die Zeichen @samp{\_} selbst als Zeichenfolge verwendet werden sollen,
so mu"s das @samp{\} (Backslash) Zeichen mit sich selbst quotiert werden,
z.B.@: @samp{\\_}.
@end table

@need 2000
@noindent
@strong{Bitte beachten:}@*
Wenn die Kurzoption @samp{-c} und/oder ihre Modifizierer
@w{@samp{t@r{|[}w@r{|}m@r{|}y@r{[}+@r{|}-@r{]}}} bzw.@: die Kurzoption
@samp{-f} in @strong{Gro"sbuchstaben} angegeben werden, z.B.@::

@example
@group
-C
-F foo.bar
-CeT
-c-aW+
-CeaxY-
-c-M
@end group
@end example

@noindent
so gibt Gcal f"ur @strong{jeden} Tag in der verlangten Periode Terminwarnungen
aus.
@sp 2

@noindent
Die Modifizierer einer kombinierten/komplexen/gepackten Kurzoption zur
Terminwarnung m"ussen entsprechend der hier vorgegebenen Reihenfolge
zusammengesetzt werden, da Gcal diese als positionale Parameter behandelt:

@quotation
@table @asis
@item Erste Stufe: @emph{Repr"asentation-des-Textes}
@cindex Repr"asentation-des-Textes
@samp{a},
@samp{A},
@samp{e@r{|}E},
@samp{k},
@samp{o},
@samp{x},
@samp{z}

@item Zweite Stufe: @emph{Setzung-der-uu-ber"ucksichtigenden-Periode}
@cindex Setzung-der-zu-ber"ucksichtigenden-Periode
@w{@samp{d},}
@w{@samp{l},}
@w{@samp{t@r{|}T},}
@w{@samp{w@r{|}W@r{|}m@r{|}M@r{|}y@r{|}Y@r{[}+@r{|}-@r{]}},}
@w{@samp{@var{n}+@r{|}-},}
@w{@samp{@var{n}d},}
@w{@samp{@var{n}w},}
@w{@samp{*d@var{n}@r{[}@var{www}@r{]}},}
@w{@samp{*w@var{n}@r{[}@var{www}@r{]}},}
@w{@samp{@@e@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{]}},}
@w{@samp{@@e@r{|}@var{dvar}@r{[}+@r{|}-@r{]}@var{n}@var{www}},}
@w{@samp{@var{mm}@var{tt}},}
@w{@samp{@var{mm}@var{www}@var{n}}}
@end table
@end quotation
@sp 2

@noindent
Wenn mit den folgenden Modifizierern gearbeitet werden m"ochte,
so @strong{mu"s} eine explizite @w{@samp{-c@r{|}C@r{[}-@r{]}}}
Kurzoption zuvor angegeben sein, z.B.@::

@example
@group
-c-t
-cw-
-CaAdeklorxz12+
@end group
@end example

@cindex Terminwarnungszeitraum-Modifizierer, @samp{d}
@cindex Terminwarnungszeitraum-Modifizierer, @samp{l}
@cindex Terminwarnungszeitraum-Option, @samp{--leap-day=february@r{|}march}
@noindent
und es darf nur @strong{ein} zeitraumdefinierender Terminwarnungszeitraum-Modifizierer
angegeben werden (davon ausgenommen sind die @samp{--include-today} Option bzw.@:
der @samp{d} Modifizierer, die @samp{--list-mode} Option bzw.@: der @samp{l}
Modifizierer und die @samp{--leap-day=february@r{|}march} Option).

@cindex Einzelzeichenoption
@cindex Kommandozeilenwort
@noindent
Oder die Modifizierer m"ussen als Einzelzeichenoption oder zusammengefasst zu
einem einzelnen Kommandozeilenwort angegeben werden, und es mu"s zudem entweder
die Kurzoption @w{@samp{-c|C@r{[}-@r{]}}} (oder die entsprechende Langoption)
bzw.@: @w{@samp{-f@r{|}F @var{Dateiname}@r{[}+@dots{}@r{]}}} (oder die
entsprechende Langoption) angegeben werden, z.B.@::

@example
@group
-c- -t
-w- -c
-a -Ad -e -klorxz -C12+
-F foo.bar -Ad -l*d10
@end group
@end example

@cindex Einzelzeichenoption
@cindex Kommandozeilenwort
@cindex Terminwarnungen, Option
@cindex Terminwarnungen
@cindex Aktivierung der Terminwarnungsfunktion
@cindex Terminwarnungsfunktion, Aktivieren der
@noindent
Werden Modifizierer als Einzelzeichenoption oder zu einem einzelnen
Kommandozeilenwort zusammengefasst angegeben und dabei einer der
@w{@samp{t@r{|}T@r{|[}w@r{|}W@r{|}m@r{|}M@r{|}y@r{|}Y@r{[}+@r{|}-@r{]]}}}
Modifizierer benutzt (oder deren entsprechende Aliasnamen wie @samp{--today},
@samp{--tomorrow}@dots{}), so ist die Angabe einer @w{@samp{-c|C@r{[}-@r{]}}}
Kurzoption (oder deren entsprechende Langoption) bzw.@:
@w{@samp{-f@r{|}F @var{Dateiname}@r{[}+@dots{}@r{]}}} Kurzoption (oder deren
entsprechende Langoption) nicht notwendig um die Terminwarnungsfunktion von
Gcal zu aktivieren, da die Terminwarnungsfunktion durch diese Modifizierer
implizit ausgel"ost wird.

@page
@cindex Terminwarnungstext-Modifizierer
@cindex Modifizierer, Terminwarnungstext
@noindent
@strong{Terminwarnungstext-Modifizierer:}

@table @samp
@item a
@itemx --include-resource-file-name
@arindex -a
@arindex -ca
@arindex --include-resource-file-name
@cindex Terminwarnungstext-Modifizierer, @samp{a}
Den Namen der verwendeten Ressourcendatei in der Terminwarnung
zus"atzlich mit ausgeben, z.B.@::

@example
@group
Mo,   1 Jan 1995: (`Ewige Feiertagsliste') Neujahr
Mo,   1 Jan 1995: (.gcalrc) Keine weiteren Termine
@dots{}
@end group
@end example

@item A
@itemx --alternative-format
@arindex -A
@arindex -cA
@arindex --alternative-format
@cindex Terminwarnungstext-Modifizierer, @samp{A}
Anstelle der Ausgabe im @dfn{Standard} Listenformat, z.B.@::

@example
@group
Mo,   1 Jan 1995: Neujahr
Mo,   1 Jan 1995: Keine weiteren Termine
@dots{}
@end group
@end example

benutzt Gcal das @dfn{Alternative} Listenformat, z.B.@::

@example
@group
Mo,   1 Jan 1995:
Neujahr
Keine weiteren Termine
@dots{}
@end group
@end example

@need 1000
@item e
@itemx --include-holidays=long
@arindex -e
@arindex -ce
@arindex --include-holidays=long
@cindex Terminwarnungstext-Modifizierer, @samp{e}
Alle Daten aus der eingebauten ewigen Feiertagsliste in die Terminwarnungsliste
einstreuen, d.h.@: gesetzliche Feiertage und Gedenktage.

@item E
@itemx --include-holidays=short
@arindex -E
@arindex -cE
@arindex --include-holidays=short
@cindex Terminwarnungstext-Modifizierer, @samp{E}
Nur diejenigen Daten aus der eingebauten ewigen Feiertagsliste in die
Terminwarnungsliste einstreuen, die gesetzliche Feiertage sind.

@item g@r{[}@var{Text}@r{]}
@itemx --grouping-text@r{[}=@var{Text}@r{]}
@arindex -g@r{[}@var{Text}@r{]}
@arindex -cg@r{[}@var{Text}@r{]}
@arindex --grouping-text@r{[}=@var{Text}@r{]}
@cindex Terminwarnungstext-Modifizierer, @samp{g@r{[}@var{Text}@r{]}}
Gruppiere die Terminwarnungen tageweise mittels des Separators @var{Text}.
Wenn kein @var{Text} angegeben ist, so wird der eingebaute @var{Text}
(@w{@code{RC_GROUP_SEP}} "" @equiv{} nur Leerzeile) zum Gruppieren verwendet,
z.B.@::

@example
@group
@cartouche
$ gcal -Cw -cg
@print{}
@print{} So,   6 Nov 1994: Text 1
@print{} So,   6 Nov 1994: Text 2
@print{}
@print{} Mo,   7 Nov 1994: Text 3
@print{}
@print{} Di,   8 Nov 1994: Text 4
@dots{}


$ gcal -Cw -g'-Ein_vom\_Benutzer-~-definierter Text-'
@print{}
@print{} So,   6 Nov 1994: Text 1
@print{} So,   6 Nov 1994: Text 2
@print{} -Ein vom_Benutzer-
@print{} -definierter Text-
@print{} Mo,   7 Nov 1994: Text 3
@print{} -Ein vom_Benutzer-
@print{} -definierter Text-
@print{} Di,   8 Nov 1994: Text 4
@dots{}
@end cartouche
@end group
@end example

@cindex Zeilenumbruch erzwingen
@cindex Zeilenumbruchzeichen, @samp{~}
@cindex @samp{~} Zeilenumbruchzeichen
Jedesmal wenn ein @samp{~} (Tilde) Zeichen in @var{Text} vorgefunden
wird, so wird dieses Zeichen durch ein echtes @samp{\n} (Newline)
Zeichen ersetzt.

@cindex Quotierung von Spezialzeichen
@cindex Quotierungszeichen, @samp{\}
@cindex @samp{\} Quotierungszeichen
Falls das @samp{~} (Tilde) Zeichen als Zeichen selbst verwendet werden soll,
so mu"s dieses durch ein f"uhrendes @samp{\} (Backslash) Zeichen quotiert
(gesch"utzt/entwertet) werden, z.B.@: @samp{\~}.

Wenn die Zeichen @samp{\~} selbst als Zeichenfolge verwendet werden sollen,
so mu"s das @samp{\} (Backslash) Zeichen mit sich selbst quotiert werden,
z.B.@: @samp{\\~}.

@cindex Pseudo-Leerzeichen, @samp{_}
@cindex @samp{_} Pseudo-Leerzeichen
Jedesmal wenn ein @samp{_} (Unterstrich) Zeichen in @var{Text} vorgefunden
wird, so wird dieses Zeichen durch ein echtes @samp{ } (Leerzeichen)
Zeichen ersetzt.

@cindex Quotierung von Spezialzeichen
@cindex Quotierungszeichen, @samp{\}
@cindex @samp{\} Quotierungszeichen
Falls das @samp{_} (Unterstrich) Zeichen als Zeichen selbst verwendet werden
soll, so mu"s dieses durch ein f"uhrendes @samp{\} (Backslash) Zeichen quotiert
(gesch"utzt/entwertet) werden, z.B.@: @samp{\_}.

Wenn die Zeichen @samp{\_} selbst als Zeichenfolge verwendet werden sollen,
so mu"s das @samp{\} (Backslash) Zeichen mit sich selbst quotiert werden,
z.B.@: @samp{\\_}.

@need 1000
@item k
@itemx --include-weeknumber
@arindex -k
@arindex -ck
@arindex --include-weeknumber
@cindex Terminwarnungstext-Modifizierer, @samp{k}
@cindex @sc{iso}-8601:1988
Das f"uhrende Datum in einem Terminwarnungstext wird bei Ausgabe mit
der @sc{iso}-8601:1988 Wochennummer von diesem Datum versehen.

@strong{Bitte beachten:}@*
Die Methoden der @sc{iso}-8601:1988 werden zur Ermittlung der Wochennummern
verwendet.  Das bedeutet, da"s eine Woche mit einem Montag beginnt, und die
erste Woche des Jahres ist diejenige Woche, in welche der erste Donnerstag
f"allt, also gleich der Woche ist, in welcher der 4'te Januar auftritt.

@need 2000
@item o
@itemx --omit-multiple-date-part
@arindex -o
@arindex -co
@arindex --omit-multiple-date-part
@cindex Terminwarnungstext-Modifizierer, @samp{o}
Vermeidet die Mehrfachausgabe von einem jede Einzelzeile anf"uhrendem Datum
in der Terminwarnungsliste, falls sich weitere Termine auf dieses Datum
beziehen (nur falls die @samp{--alternative-format} Option bzw.@: der @samp{A}
Modifizierer nicht angegeben wurde), z.B.@::

@example
@group
@cartouche
$ gcal -co
@print{}
@print{} So,   6 Nov 1994: Text 1
@print{}                   Text 2
@dots{}
@end cartouche
@end group
@end example

@item x
@itemx --exclude-fixed-dates-list-title
@arindex -x
@arindex -cx
@arindex --exclude-fixed-dates-list-title
@cindex Terminwarnungstext-Modifizierer, @samp{x}
Ausgabe der "Uberschrift in der Terminwarnungsliste unterdr"ucken.

@item z
@itemx --include-consecutive-number
@arindex -z
@arindex -cz
@arindex --include-consecutive-number
@cindex Terminwarnungstext-Modifizierer, @samp{z}
Laufende Postennummer der Terminwarnung ausgeben.
@end table

@page
@cindex Terminwarnungszeitraum-Modifizierer
@cindex Modifizierer, Terminwarnungszeitraum
@noindent
@strong{Terminwarnungszeitraum-Modifizierer:}

@table @samp
@item --leap-day=february@r{|}march
@arindex --leap-day=february@r{|}march
@cindex Terminwarnungszeitraum-Option, @samp{--leap-day=february@r{|}march}
@cindex Schalttag
Den @dfn{Schalttag} (d.h.@: den 29'ten Februar) auch in Nicht-Schaltjahren
ber"ucksichtigen.

@table @samp
@item --leap-day=february
@arindex --leap-day=february
@cindex Terminwarnungszeitraum-Option, @samp{--leap-day=february}
@cindex Schalttag auf den 28'ten Februar legen
Eine Terminwarnung, die in jedem Jahr gelten soll und sich auf den Schalttag
bezieht, wird in Nicht-Schaltjahren am 28'ten Februar ausgegeben.

@item --leap-day=march
@arindex --leap-day=march
@cindex Terminwarnungszeitraum-Option, @samp{--leap-day=march}
@cindex Schalttag auf den 1'ten M"arz legen
Eine Terminwarnung, die in jedem Jahr gelten soll und sich auf den Schalttag
bezieht, wird in Nicht-Schaltjahren am 1'ten M"arz ausgegeben.
@end table

@item d
@itemx --include-today
@arindex -d
@arindex -cd
@arindex --include-today
@cindex Terminwarnungszeitraum-Modifizierer, @samp{d}
Wenn eine Datumliste erzeugt wird, so wird das aktuelle Datum in dieser
Liste mit eingeschlossen.  @xref{Terminwarnung Optionen, , @samp{--list-mode}},
wie eine Datumliste erzeugt wird.

@item l
@itemx --list-mode
@arindex -l
@arindex -cl
@arindex --list-mode
@cindex Terminwarnungszeitraum-Modifizierer, @samp{l}
Erzeugen einer Datumliste anstelle eines Einzeldatum.
@end table
@sp 2

@quotation
@strong{Bitte beachten:}@*
In den folgenden Beispielen wird angenommen, da"s das heutige
Tagesdatum der 17'te Februar eines beliebigen Jahres ist!
@end quotation
@sp 2

@table @asis
@item @samp{--period-of-fixed-dates=@var{Argument}}
@arindex --period-of-fixed-dates=@var{Argument}
@sp 2

@item @samp{@var{n}d}
@itemx @samp{*d@var{n}}
@arindex -c@var{n}d
@arindex -*d@var{n}
@arindex -c*d@var{n}
@cindex Terminwarnungszeitraum-Modifizierer, @samp{@var{n}d}
@cindex Terminwarnungszeitraum-Modifizierer, @samp{*d@var{n}}
Alle Daten zum absoluten Tag @w{@var{n} @equiv{} @samp{1@dots{}365@r{|}366@r{|}999}}
im aktuellen Jahr ausgeben; das Warnungsniveau ist wie bei der einfachen
@samp{-c} Option.  Wenn f"ur @var{n} der Wert 999 angegeben ist, so wird
der letzte Tag im Jahr (31'ter Dezember) angenommen.

@itemize @bullet
@item
Z.B.@: @samp{gcal -c10d} bzw.@: @w{@samp{gcal --period-of-fixed-dates=10d}}
oder @samp{gcal -c*d10} bzw.@: @w{@samp{gcal --period-of-fixed-dates=*d10}}
gibt die Termine aus, die am 10'ten Tag des Jahres stattfinden.
@end itemize

@need 1000
@item @samp{l@var{n}d}
@itemx @samp{l*d@var{n}}
@arindex -l@var{n}d
@arindex -cl@var{n}d
@arindex -l*d@var{n}
@arindex -cl*d@var{n}
@cindex Terminwarnungszeitraum-Modifizierer, @samp{l@var{n}d}
@cindex Terminwarnungszeitraum-Modifizierer, @samp{l*d@var{n}}
Liste von Daten, in Abh"angigkeit des Wertes von @var{n} gestern oder morgen
beginnend, und endend am @w{@var{n}'ten} absoluten Tag des aktuellen Jahres;
das Warnungsniveau ist wie bei der @samp{-cy} Option.

@itemize @bullet
@item
Z.B.@: @samp{gcal -cl10d} bzw.@: @samp{gcal -cl*d10} gibt eine Liste aller
derjenigen Termine aus, die am 10'ten Tag des Jahres beginnen und am 16'ten
Februar enden.
@end itemize

@need 1000
@item @samp{@var{n}+@r{|}-}
@arindex -c@var{n}+@r{|}-
@cindex Terminwarnungszeitraum-Modifizierer, @samp{@var{n}+@r{|}-}
Alle Daten zum Tag
@ifinfo
@emph{heute @w{@samp{+@r{/}-}} @var{n} Tage}
@end ifinfo
@tex
\emph{heute $\pm$ \smartitalic{n} Tage}
@end tex
im aktuellen Jahr ausgeben; das Warnungsniveau ist wie bei der
einfachen @samp{-c} Option.

@itemize @bullet
@item
Z.B.@: @samp{gcal -c10+} gibt die Termine aus, die 10 Tage nach
dem 17'ten Februar (heute) stattfinden.

@item
Z.B.@: @samp{gcal -c10-} gibt die Termine aus, die 10 Tage vor
dem 17'ten Februar (heute) stattfinden.
@end itemize

@item @samp{l@var{n}+@r{|}-}
@arindex -l@var{n}+@r{|}-
@arindex -cl@var{n}+@r{|}-
@cindex Terminwarnungszeitraum-Modifizierer, @samp{l@var{n}+@r{|}-}
Liste von Daten, gestern @samp{-} oder morgen @samp{+} beginnend, und endend
am Tag
@ifinfo
@emph{heute @w{@samp{+@r{/}-}} @var{n} Tage}
@end ifinfo
@tex
\emph{heute $\pm$ \smartitalic{n} Tage}
@end tex
im aktuellen Jahr ausgeben; das Warnungsniveau ist wie bei der
@samp{-cy} Option.

@itemize @bullet
@item
Z.B.@: @samp{gcal -cl10+} gibt eine Liste aller derjenigen Termine aus,
die am 18'ten Februar beginnen und 10 Tage danach enden.

@item
Z.B.@: @samp{gcal -cl10-} gibt eine Liste aller derjenigen Termine aus,
die 10 Tage vor dem 16'ten Februar beginnen und am 16'ten Februar enden.
@end itemize

@item @samp{@var{n}w}
@arindex -c@var{n}w
@cindex Terminwarnungszeitraum-Modifizierer, @samp{@var{n}w}
Alle Daten zur Woche Nummer
@w{@var{n} @equiv{} @samp{0@r{|}1@r{@dots{}}52@r{|}53@r{|}99}}
des aktuellen Jahres ausgeben; das Warnungsniveau ist wie bei der @samp{-cw}
Option.

@itemize @bullet
@item
Z.B.@: @samp{gcal -c0w} gibt alle diejenigen Termine aus,
die falls das Vorjahr eine 53'te @sc{iso}-Kalenderwoche hat, in der 53'ten
@sc{iso}-Kalenderwoche des Vorjahres liegen oder falls das Vorjahr keine 53'te
@sc{iso}-Kalenderwoche hat, in der 1'ten @sc{iso}-Kalenderwoche des aktuellen
Jahres liegen.

@item
Z.B.@: @samp{gcal -c6w} gibt alle diejenigen Termine aus,
die in der 6'ten @sc{iso}-Kalenderwoche liegen.

@item
Z.B.@: @samp{gcal -c52w} gibt alle diejenigen Termine aus,
die in der 52'ten @sc{iso}-Kalenderwoche liegen.

@item
Z.B.@: @samp{gcal -c53w} gibt alle diejenigen Termine aus,
die in der 53'ten @sc{iso}-Kalenderwoche liegen, falls das Jahr eine 53'te
@sc{iso}-Kalenderwoche hat.  Wenn das Jahr keine 53'te @sc{iso}-Kalenderwoche
hat, so werden keine Terminwarnungen ausgegeben und das Programm wird mit
Fehlerkode abgebrochen; siehe auch @ref{Fehlerkodes, , 126}.

@item
Z.B.@: @samp{gcal -c99w} gibt alle diejenigen Termine aus,
die in der letzten @sc{iso}-Kalenderwoche liegen, d.h.@: entweder die 52'te
oder die 53'te @sc{iso}-Kalenderwoche.
@end itemize

@need 1500
@item @samp{l@var{n}w}
@arindex -l@var{n}w
@arindex -cl@var{n}w
@cindex Terminwarnungszeitraum-Modifizierer, @samp{l@var{n}w}
Liste von Daten, in Abh"angigkeit der gegebenen Wochennummer
@w{@var{n} @equiv{} @samp{0@r{|}1@r{@dots{}}52@r{|}53@r{|}99}} gestern oder
morgen beginnend und endend am ersten bzw.@: letzten Tag der gegebenen
Woche @var{n} des aktuellen Jahres ausgeben; das Warnungsniveau ist wie
bei der @samp{-cy} Option.

@itemize @bullet
@item
Z.B.@: @samp{gcal -cl12w} gibt eine Liste aller derjenigen Termine aus, die
am 18'ten Februar beginnen und bis zum Ende der 12'ten @sc{iso}-Kalenderwoche
reichen.

@item
Z.B.@: @samp{gcal -cl3w} gibt eine Liste aller derjenigen Termine aus,
die am Anfang der 3'ten @sc{iso}-Kalenderwoche beginnen und 16'ten Februar
enden.
@end itemize

@item @samp{@var{mm}@var{tt}}
@arindex -c@var{mm}@var{tt}
@cindex Terminwarnungszeitraum-Modifizierer, @samp{@var{mm}@var{tt}}
Alle Daten zum Tag @var{tt} im Monat @var{mm} des aktuellen Jahres ausgeben;
das Warnungsniveau ist wie bei der einfachen @samp{-c} Option.

@itemize @bullet
@item
Z.B.@: @samp{gcal -c0225} gibt die Termine aus, die am 25'ten
Februar stattfinden.
@end itemize

@item @samp{l@var{mm}@var{tt}}
@arindex -l@var{mm}@var{tt}
@arindex -cl@var{mm}@var{tt}
@cindex Terminwarnungszeitraum-Modifizierer, @samp{l@var{mm}@var{tt}}
Liste von Daten, in Abh"angigkeit des Wertes @var{mm}@var{tt} gestern bzw.@:
morgen beginnend, und endend am Tag @var{tt} im Monat @var{mm} des aktuellen
Jahres, ausgeben; das Warnungsniveau ist wie bei der @samp{-cy} Option.

@itemize @bullet
@item
Z.B.@: @samp{gcal -cl0225} gibt eine Liste aller derjenigen Termine aus,
die am 18'ten Februar beginnen und am 25'ten Februar enden.

@item
Z.B.@: @samp{gcal -cl0109} gibt eine Liste aller derjenigen Termine aus,
die am 9'ten Januar beginnen und am 16'ten Februar enden.
@end itemize

@need 1000
@item @samp{@var{mm}@var{www}@var{n}}
@arindex -c@var{mm}@var{www}@var{n}
@cindex Terminwarnungszeitraum-Modifizierer, @samp{@var{mm}@var{www}@var{n}}
Alle Daten zum @w{@var{n}'ten @equiv{} @samp{1@r{@dots{}}5@r{|}9}} Wochentag
@var{www} im Monat @var{mm} des aktuellen Jahres ausgeben; das Warnungsniveau
ist wie bei der einfachen @samp{-c} Option.

@itemize @bullet
@item
Z.B.@: @samp{gcal -c01mon3} gibt die Termine aus, die am dritten
Montag im Januar stattfinden.

@item
Z.B.@: @samp{gcal -c02fr9} gibt die Termine aus, die am letzten
Freitag im Februar stattfinden.
@end itemize

@item @samp{l@var{mm}@var{www}@var{n}}
@arindex -l@var{mm}@var{www}@var{n}
@arindex -cl@var{mm}@var{www}@var{n}
@cindex Terminwarnungszeitraum-Modifizierer, @samp{l@var{mm}@var{www}@var{n}}
Liste von Daten, in Abh"angigkeit des Wertes in @w{@var{mm}@var{www}@var{n}}
gestern bzw.@: morgen beginnend, und endend am @w{@var{n}'ten @equiv{}
@samp{1@r{@dots{}}5@r{|}9}} Wochentag @var{www} im Monat @var{mm} des aktuellen
Jahres ausgeben; das Warnungsniveau ist wie bei der @samp{-cy} Option.

@itemize @bullet
@item
Z.B.@: @samp{gcal -cl01mon3} gibt eine Liste aller derjenigen Termine aus,
die am dritten Montag im Januar beginnen und am 16'ten Februar enden.

@item
Z.B.@: @samp{gcal -cl02fr9} gibt eine Liste aller derjenigen Termine aus,
die am 18'ten Februar beginnen und am letzten Freitag im Februar enden.
@end itemize

@item @samp{*d@var{n}@var{www}}
@arindex -*d@var{n}@var{www}
@arindex -c*d@var{n}@var{www}
@cindex Terminwarnungszeitraum-Modifizierer, @samp{*d@var{n}@var{www}}
Alle Daten zum @w{@var{n}'ten @equiv{} @samp{1@r{@dots{}}51@r{|}52@r{|}53@r{|}99}}
Wochentag @var{www} des aktuellen Jahres ausgeben; das Warnungsniveau ist wie
bei der einfachen @samp{-c} Option.

@itemize @bullet
@item
Z.B.@: @samp{gcal -c*d16son} gibt alle diejenigen Termine aus, die auf den
16'ten Sonntag des Jahres fallen.

@item
Z.B.@: @samp{gcal -c*d52son} gibt alle diejenigen Termine aus,
die auf den 52'ten Sonntag des Jahres fallen.  Wenn das Jahr keinen
52'ten Sonntag hat, so werden keine Terminwarnungen ausgegeben und das
Programm wird mit Fehlerkode abgebrochen; siehe auch @ref{Fehlerkodes, , 126}.

@item
Z.B.@: @samp{gcal -c*d53son} gibt alle diejenigen Termine aus,
die auf den 53'ten Sonntag des Jahres fallen.  Wenn das Jahr keinen
53'ten Sonntag hat, so werden keine Terminwarnungen ausgegeben und das
Programm wird mit Fehlerkode abgebrochen; siehe auch @ref{Fehlerkodes, , 126}.

@item
Z.B.@: @samp{gcal -c*d99son} gibt alle diejenigen Termine aus, die auf den
letzten Sonntag (das ist entweder der 51'te, 52'te oder 53'te Sonntag) des
Jahres fallen.
@end itemize

@item @samp{l*d@var{n}@var{www}}
@arindex -l*d@var{n}@var{www}
@arindex -cl*d@var{n}@var{www}
@cindex Terminwarnungszeitraum-Modifizierer, @samp{l*d@var{n}@var{www}}
Liste von Daten, in Abh"angigkeit des Wertes @var{n} gestern oder morgen
beginnend, und endend am
@w{@var{n}'ten @equiv{} @samp{1@r{@dots{}}51@r{|}52@r{|}53@r{|}99}}
Wochentag @var{www} des aktuellen Jahres ausgeben; das Warnungsniveau ist wie
bei der @samp{-cy} Option.

@itemize @bullet
@item
Z.B.@: @samp{gcal -cl*d16son} gibt eine Liste aller derjenigen Termine aus,
die am 18'ten Februar beginnen und am 16'ten Sonntag des Jahres enden.

@item
Z.B.@: @samp{gcal -cl*d52son} gibt eine Liste aller derjenigen Termine aus,
die am 18'ten Februar beginnen und am 52'ten Sonntag des Jahres enden.  Wenn
das Jahr keinen 52'ten Sonntag hat, so werden keine Terminwarnungen ausgegeben
und das Programm wird mit Fehlerkode abgebrochen; siehe auch
@ref{Fehlerkodes, , 126}.

@item
Z.B.@: @samp{gcal -cl*d53son} gibt eine Liste aller derjenigen Termine aus,
die am 18'ten Februar beginnen und am 53'ten Sonntag des Jahres enden.  Wenn
das Jahr keinen 53'ten Sonntag hat, so werden keine Terminwarnungen ausgegeben
und das Programm wird mit Fehlerkode abgebrochen; siehe auch
@ref{Fehlerkodes, , 126}.

@item
Z.B.@: @samp{gcal -cl*d99son} gibt eine Liste aller derjenigen Termine aus,
die am 18'ten Februar beginnen und am letzten Sonntag (das ist entweder der
51'te, 52'te oder 53'te Sonntag) des Jahres enden.
@end itemize

@item @samp{*w@var{n}@r{[}@var{www}@r{]}}
@arindex -*w@var{n}@r{[}@var{www}@r{]}
@arindex -c*w@var{n}@r{[}@var{www}@r{]}
@cindex Terminwarnungszeitraum-Modifizierer, @samp{*w@var{n}@r{[}@var{www}@r{]}}
Alle Daten zum Wochentag @var{www} der
@w{@var{n}'ten @equiv{} @samp{0@r{|}1@r{@dots{}}52@r{|}53@r{|}99}}
@sc{iso}-Kalenderwoche des aktuellen Jahres ausgeben; das Warnungsniveau ist
wie bei der einfachen @samp{-c} Option.  Wenn kein Wochentag @var{www}
angegeben ist, so wird Montag als Wochentag angenommen.

@itemize @bullet
@item
Z.B.@: @samp{gcal -c*w0son} gibt alle diejenigen Termine aus, die falls das
Jahr einen Sonntag hat, der in der 52'ten bzw.@: 53'ten @sc{iso}-Kalenderwoche
des Vorjahres liegt, auf diesen Sonntag fallen.  Wenn ein solcher Sonntag nicht
existiert, so werden keine Terminwarnungen ausgegeben und das Programm wird
mit Fehlerkode abgebrochen; siehe auch @ref{Fehlerkodes, , 126}.

@item
Z.B.@: @samp{gcal -c*w16son} gibt alle diejenigen Termine aus, die auf den
Sonntag der 16'ten @sc{iso}-Kalenderwoche des Jahres fallen.

@item
Z.B.@: @samp{gcal -c*w52son} gibt alle diejenigen Termine aus,
die auf den Sonntag der 52'ten @sc{iso}-Kalenderwoche des Jahres fallen.  Wenn
das Jahr keinen Sonntag der 52'ten @sc{iso}-Kalenderwoche hat, so werden keine
Terminwarnungen ausgegeben und das Programm wird mit Fehlerkode abgebrochen;
siehe auch @ref{Fehlerkodes, , 126}.

@item
Z.B.@: @samp{gcal -c*w53son} gibt alle diejenigen Termine aus,
die auf den Sonntag der 53'ten @sc{iso}-Kalenderwoche des Jahres fallen.  Wenn
das Jahr keinen Sonntag der 53'ten @sc{iso}-Kalenderwoche hat, so werden keine
Terminwarnungen ausgegeben und das Programm wird mit Fehlerkode abgebrochen;
siehe auch @ref{Fehlerkodes, , 126}.

@item
Z.B.@: @samp{gcal -c*w99son} gibt alle diejenigen Termine aus, die auf den
Sonntag der letzten @sc{iso}-Kalenderwoche (das ist entweder die 51'te, 52'te
oder 53'te @sc{iso}-Kalenderwoche) des Jahres fallen.
@end itemize

@item @samp{l*w@var{n}@r{[}@var{www}@r{]}}
@arindex -l*w@var{n}@r{[}@var{www}@r{]}
@arindex -cl*w@var{n}@r{[}@var{www}@r{]}
@cindex Terminwarnungszeitraum-Modifizierer, @samp{l*w@var{n}@r{[}@var{www}@r{]}}
Liste von Daten, in Abh"angigkeit des Wertes @var{n} gestern oder morgen
beginnend, und endend am Wochentag @var{www} der
@w{@var{n}'ten @equiv{} @samp{1@r{@dots{}}51@r{|}52@r{|}53@r{|}99}}
@sc{iso}-Kalenderwoche des aktuellen Jahres ausgeben; das Warnungsniveau ist
wie bei der @samp{-cy} Option.  Wenn kein Wochentag @var{www} angegeben ist,
so wird Montag als Wochentag angenommen.

@itemize @bullet
@item
Z.B.@: @samp{gcal -cl*w0son} gibt eine Liste aller derjenigen Termine aus,
die falls das Jahr einen Sonntag hat, der in der 52'ten bzw.@: 53'ten
@sc{iso}-Kalenderwoche des Vorjahres liegt, an diesem Sonntag beginnen und
am 16'ten Februar enden.  Wenn ein solcher Sonntag nicht existiert, so werden
keine Terminwarnungen ausgegeben und das Programm wird mit Fehlerkode
abgebrochen; siehe auch @ref{Fehlerkodes, , 126}.

@item
Z.B.@: @samp{gcal -cl*w16son} gibt eine Liste aller derjenigen Termine aus,
die am 18'ten Februar beginnen und am Sonntag der 16'ten @sc{iso}-Kalenderwoche
des Jahres enden.

@item
Z.B.@: @samp{gcal -cl*w52son} gibt eine Liste aller derjenigen Termine aus,
die am 18'ten Februar beginnen und am Sonntag der 52'ten @sc{iso}-Kalenderwoche
des Jahres enden.  Wenn das Jahr keinen Sonntag der 52'ten @sc{iso}-Kalenderwoche
hat, so werden keine Terminwarnungen ausgegeben und das Programm wird mit
Fehlerkode abgebrochen; siehe auch @ref{Fehlerkodes, , 126}.

@item
Z.B.@: @samp{gcal -cl*w53son} gibt eine Liste aller derjenigen Termine aus,
die am 18'ten Februar beginnen und am Sonntag der 53'ten @sc{iso}-Kalenderwoche
des Jahres enden.  Wenn das Jahr keinen Sonntag der 53'ten @sc{iso}-Kalenderwoche
hat, so werden keine Terminwarnungen ausgegeben und das Programm wird mit
Fehlerkode abgebrochen; siehe auch @ref{Fehlerkodes, , 126}.

@item
Z.B.@: @samp{gcal -cl*w99son} gibt eine Liste aller derjenigen Termine aus,
die am 18'ten Februar beginnen und am Sonntag der letzten @sc{iso}-Kalenderwoche
(das ist entweder der 51'te, 52'te oder 53'te @sc{iso}-Kalenderwoche) des Jahres
enden.
@end itemize

@item @samp{@@e@r{[[}+@r{|}-@r{]}@var{n}@r{]}}
@arindex -@@e@r{[[}+@r{|}-@r{]}@var{n}@r{]}
@arindex -c@@e@r{[[}+@r{|}-@r{]}@var{n}@r{]}
@cindex Terminwarnungszeitraum-Modifizierer, @samp{@@e@r{[[}+@r{|}-@r{]}@var{n}@r{]}}
Alle Daten zum @w{@var{n}'ten} Tag relativ zum Datum Ostersonntag des aktuellen
Jahres ausgeben; das Warnungsniveau ist wie bei der einfachen @samp{-c} Option.

@itemize @bullet
@item
Z.B.@: @samp{gcal -c@@e} gibt die Termine aus, die am Ostersonntag
stattfinden.

@item
Z.B.@: @samp{gcal -c@@e10} bzw.@: @samp{gcal -c@@e+10} gibt die Termine aus,
die 10 Tage nach Ostersonntag stattfinden.

@item
Z.B.@: @samp{gcal -c@@e-10} gibt die Termine aus, die 10 Tage vor Ostersonntag
stattfinden.
@end itemize

@need 1500
@item @samp{l@@e@r{[[}+@r{|}-@r{]}@var{n}@r{]}}
@arindex -l@@e@r{[[}+@r{|}-@r{]}@var{n}@r{]}
@arindex -cl@@e@r{[[}+@r{|}-@r{]}@var{n}@r{]}
@cindex Terminwarnungszeitraum-Modifizierer, @samp{l@@e@r{[[}+@r{|}-@r{]}@var{n}@r{]}}
Liste von Daten, in Abh"angigkeit des Wertes @var{n} gestern oder morgen
beginnend, und endend am @w{@var{n}'ten} Tag relativ zum Datum Ostersonntag
des aktuellen Jahres ausgeben; das Warnungsniveau ist wie bei der @samp{-cy}
Option.

@itemize @bullet
@item
Z.B.@: @samp{gcal -cl@@e} gibt eine Liste aller derjenigen Termine aus,
die am 18'ten Februar beginnen und am Ostersonntag enden.

@item
Z.B.@: @samp{gcal -cl@@e10} bzw.@: @samp{gcal -cl@@e+10} gibt eine Liste aller
derjenigen Termine aus, die am 18'ten Februar beginnen und 10 Tage nach
Ostersonntag enden.

@item
Z.B.@: @samp{gcal -cl@@e-10} gibt eine Liste aller derjenigen Termine aus,
die am 18'ten Februar beginnen und 10 Tage vor Ostersonntag enden.
@end itemize

@item @samp{@@e@r{[}+@r{|}-@r{]}@var{n}@var{www}}
@arindex -@@e@r{[}+@r{|}-@r{]}@var{n}@var{www}
@arindex -c@@e@r{[}+@r{|}-@r{]}@var{n}@var{www}
@cindex Terminwarnungszeitraum-Modifizierer, @samp{@@e@r{[}+@r{|}-@r{]}@var{n}@var{www}}
Alle Daten zum @w{@var{n}'ten} Wochentag @var{www} relativ zum Datum
Ostersonntag des aktuellen Jahres ausgeben; das Warnungsniveau ist wie
bei der einfachen @samp{-c} Option.

@itemize @bullet
@item
Z.B.@: @samp{gcal -c@@e3fr} bzw.@: @samp{gcal -c@@e+3fr} gibt die Termine aus,
die am 3'ten Freitag nach Ostersonntag stattfinden.

@item
Z.B.@: @samp{gcal -c@@e-3fr} gibt die Termine aus, die am 3'ten Freitag
vor Ostersonntag stattfinden.
@end itemize

@item @samp{l@@e@r{[}+@r{|}-@r{]}@var{n}@var{www}}
@arindex -l@@e@r{[}+@r{|}-@r{]}@var{n}@var{www}
@arindex -cl@@e@r{[}+@r{|}-@r{]}@var{n}@var{www}
@cindex Terminwarnungszeitraum-Modifizierer, @samp{l@@e@r{[}+@r{|}-@r{]}@var{n}@var{www}}
Liste von Daten, in Abh"angigkeit des Wertes @var{n} gestern oder morgen
beginnend, und endend am @w{@var{n}'ten} Wochentag @var{www} relativ zum Datum
Ostersonntag des aktuellen Jahres ausgeben; das Warnungsniveau ist wie bei
der @samp{-cy} Option.

@itemize @bullet
@item
Z.B.@: @samp{gcal -cl@@e3fr} bzw.@: @samp{gcal -cl@@e+3fr} gibt eine Liste
aller derjenigen Termine aus, die am 18'ten Februar beginnen und am 3'ten
Freitag nach Ostersonntag enden.

@item
Z.B.@: @samp{gcal -cl@@e-3fr} gibt eine Liste aller derjenigen Termine aus,
die am 18'ten Februar beginnen und am 3'ten Freitag vor Ostersonntag enden.
@end itemize

@item @samp{@@@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{]}}
@arindex -@@@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{]}
@arindex -c@@@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{]}
@cindex Terminwarnungszeitraum-Modifizierer, @samp{@@@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{]}}
Alle Daten zum @w{@var{n}'ten} Tag relativ zum Datum der Datumvariablen des
aktuellen Jahres ausgeben; das Warnungsniveau ist wie bei der einfachen
@samp{-c} Option.

@itemize @bullet
@item
Z.B.@: @samp{gcal -v a=0422 -c@@a} gibt die Termine aus, die am 22'ten April
stattfinden.

@item
Z.B.@: @samp{gcal -v a=0422 -c@@a10} bzw.@: @samp{gcal -v a=0422 -c@@a+10}
gibt die Termine aus, die 10 Tage nach dem 22'ten April stattfinden.

@item
Z.B.@: @samp{gcal -v a=0422 -c@@a-10} gibt die Termine aus, die 10 Tage vor
dem 22'ten April stattfinden.
@end itemize

@need 1500
@item @samp{l@@@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{]}}
@arindex -l@@@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{]}
@arindex -cl@@@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{]}
@cindex Terminwarnungszeitraum-Modifizierer, @samp{l@@@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{]}}
Liste von Daten, in Abh"angigkeit des Wertes @var{n} gestern oder morgen
beginnend, und endend am @w{@var{n}'ten} Tag relativ zum Datum der
Datumvariablen des aktuellen Jahres ausgeben; das Warnungsniveau
ist wie bei der @samp{-cy} Option.

@itemize @bullet
@item
Z.B.@: @samp{gcal -v a=0422 -cl@@a} gibt eine Liste aller derjenigen Termine
aus, die am 18'ten Februar beginnen und am 22'ten April enden.

@item
Z.B.@: @samp{gcal -v a=0422 -cl@@a10} bzw.@: @samp{gcal -v a=0422 -cl@@a+10}
gibt eine Liste aller derjenigen Termine aus, die am 18'ten Februar beginnen
und 10 Tage nach dem 22'ten April enden.

@item
Z.B.@: @samp{gcal -v a=0422 -cl@@a-10} gibt eine Liste aller derjenigen Termine
aus, die am 18'ten Februar beginnen und 10 Tage vor dem 22'ten April enden.
@end itemize

@item @samp{@@@var{dvar}@r{[}+@r{|}-@r{]}@var{n}@var{www}}
@arindex -@@@var{dvar}@r{[}+@r{|}-@r{]}@var{n}@var{www}
@arindex -c@@@var{dvar}@r{[}+@r{|}-@r{]}@var{n}@var{www}
@cindex Terminwarnungszeitraum-Modifizierer, @samp{@@@var{dvar}@r{[}+@r{|}-@r{]}@var{n}@var{www}}
Alle Daten zum @w{@var{n}'ten} Wochentag @var{www} relativ zum Datum der
Datumvariablen des aktuellen Jahres ausgeben; das Warnungsniveau ist wie bei
der einfachen @samp{-c} Option.

@itemize @bullet
@item
Z.B.@: @samp{gcal -v a=0122 -c@@a2sa} bzw.@: @samp{gcal -v a=0122 -c@@a+2sa}
gibt die Termine aus, die zwei Samstage nach dem 22'ten Januar stattfinden.

@item
Z.B.@: @samp{gcal -v a=0122 -c@@a-2sa} gibt die Termine aus, die zwei Samstage
vor dem 22'ten Januar stattfinden.
@end itemize

@item @samp{l@@@var{dvar}@r{[}+@r{|}-@r{]}@var{n}@var{www}}
@arindex -l@@@var{dvar}@r{[}+@r{|}-@r{]}@var{n}@var{www}
@arindex -cl@@@var{dvar}@r{[}+@r{|}-@r{]}@var{n}@var{www}
@cindex Terminwarnungszeitraum-Modifizierer, @samp{l@@@var{dvar}@r{[}+@r{|}-@r{]}@var{n}@var{www}}
Liste von Daten, in Abh"angigkeit des Wertes @var{n} gestern oder morgen
beginnend, und endend am @w{@var{n}'ten} Wochentag @var{www} relativ zum Datum
der Datumvariablen des aktuellen Jahres ausgeben; das Warnungsniveau ist wie
bei der @samp{-cy} Option.

@itemize @bullet
@item
Z.B.@: @samp{gcal -v a=0122 -cl@@a2sa} bzw.@: @samp{gcal -v a=0122 -cl@@a+2sa}
gibt eine Liste aller derjenigen Termine aus, die zwei Samstage nach dem
22'ten Januar beginnen und am 16'ten Februar enden.

@item
Z.B.@: @samp{gcal -v a=0122 -cl@@a-2sa} gibt eine Liste aller derjenigen Termine
aus, die zwei Samstage vor dem 22'ten Januar beginnen und am 16'ten Februar
enden.
@end itemize

@item @samp{t@r{|}T}
@itemx @samp{--tomorrow} Langoption
@arindex -c@r{[}t@r{|}T@r{]}
@arindex -t
@arindex -ct
@arindex -T
@arindex -cT
@arindex --tomorrow
@cindex Terminwarnungszeitraum-Modifizierer, @samp{t@r{|}T}
@cindex Terminwarnungszeitraum-Langoption, @samp{--tomorrow}
@cindex Terminwarnungen bezogen auf @emph{Morgen}
Liste von Daten ausgeben, die sich auf den morgigen Tag beziehen.

@itemize @bullet
@item
Z.B.@: @samp{gcal -ct} gibt alle diejenigen Termine aus, die am
18'ten Februar (morgen) stattfinden.

@item
Z.B.@: @samp{gcal -cdt} gibt alle diejenigen Termine aus, die am
17'ten Februar (heute) und am 18'ten Februar (morgen) stattfinden.
@end itemize

@item @samp{w@r{|}W@r{[}+@r{|}-@r{]}}
@itemx @samp{--week} Langoption
@itemx @samp{--end-of-week} Langoption
@itemx @samp{--start-of-week} Langoption
@arindex -w
@arindex -w@r{[}+@r{|}-@r{]}
@arindex -W
@arindex -W@r{[}+@r{|}-@r{]}
@arindex -w@r{|}W@r{[}+@r{|}-@r{]}
@arindex -c@r{[}w@r{|}W@r{[}+@r{|}-@r{]}@r{]}
@arindex --week
@arindex --end-of-week
@arindex --start-of-week
@cindex Terminwarnungszeitraum-Modifizierer, @samp{w@r{|}W@r{[}+@r{|}-@r{]}}
@cindex Terminwarnungszeitraum-Langoption, @samp{--week}
@cindex Terminwarnungszeitraum-Langoption, @samp{--end-of-week}
@cindex Terminwarnungszeitraum-Langoption, @samp{--start-of-week}
@cindex Terminwarnungen bezogen auf die @emph{Woche}
Liste von Daten ausgeben, die sich auf die Woche beziehen
(@pxref{Kalender Optionen, , @samp{--starting-day@r{[}=@var{Argument}@r{]}}}).

@itemize @bullet
@item
@samp{w} oder @samp{--week} Langoption@*
@arindex -w
@arindex -cw
@arindex --week
Liste von Daten vom @emph{Starttag} der aktuellen Woche bis zum letzten
Tag der aktuellen Woche ausgeben.

@itemize @minus
@item
Z.B.@: @samp{gcal -cw} gibt alle diejenigen Termine aus, die in
der gesamten Woche, in die der 17'te Februar f"allt, stattfinden.
@end itemize

@need 1000
@item
@samp{w+} oder @samp{--end-of-week} Langoption@*
@arindex -w+
@arindex -cw+
@arindex --end-of-week
Liste von Daten vom Tag nach dem aktuellen Tag der aktuellen Woche bis zum
letzten Tag der aktuellen Woche ausgeben.

@itemize @minus
@item
Z.B.@: @samp{gcal -cw+} gibt alle diejenigen Termine aus, die am
18'ten Februar (morgen) beginnen und am letzten Tag der Woche enden.

@item
Z.B.@: @samp{gcal -cdw+} gibt alle diejenigen Termine aus, die am
17'ten Februar (heute) beginnen und am letzten Tag der Woche enden.
@end itemize

@item
@samp{w-} oder @samp{start-of-week} Langoption@*
@arindex -w-
@arindex -cw-
@arindex --start-of-week
Liste von Daten vom @emph{Starttag} der aktuellen Woche bis zum Tag
vor dem aktuellen Tag der aktuellen Woche ausgeben.

@itemize @minus
@item
Z.B.@: @samp{gcal -cw-} gibt alle diejenigen Termine aus, die am
ersten Tag der Woche beginnen und am 16'ten (gestern) Februar enden.

@item
Z.B.@: @samp{gcal -cdw-} gibt alle diejenigen Termine aus, die am
ersten Tag der Woche beginnen und am 17'ten Februar (heute) enden.
@end itemize
@end itemize

@need 1000
@item @samp{m@r{|}M@r{[}+@r{|}-@r{]}}
@itemx @samp{--month} Langoption
@itemx @samp{--end-of-month} Langoption
@itemx @samp{--start-of-month} Langoption
@arindex -m
@arindex -m@r{[}+@r{|}-@r{]}
@arindex -M
@arindex -M@r{[}+@r{|}-@r{]}
@arindex -m@r{|}M@r{[}+@r{|}-@r{]}
@arindex -c@r{[}m@r{|}M@r{[}+@r{|}-@r{]}@r{]}
@arindex --month
@arindex --end-of-month
@arindex --start-of-month
@cindex Terminwarnungszeitraum-Modifizierer, @samp{m@r{|}M@r{[}+@r{|}-@r{]}}
@cindex Terminwarnungszeitraum-Langoption, @samp{--month}
@cindex Terminwarnungszeitraum-Langoption, @samp{--end-of-month}
@cindex Terminwarnungszeitraum-Langoption, @samp{--start-of-month}
@cindex Terminwarnungen bezogen auf den @emph{Monat}
Liste von Daten ausgeben, die sich auf den Monat beziehen.

@itemize @bullet
@item
@samp{m} oder @samp{--month} Langoption@*
@arindex -m
@arindex -cm
@arindex --month
Liste von Daten vom ersten Tag des aktuellen Monats bis zum letzten Tag des
aktuellen Monats ausgeben.

@itemize @minus
@item
Z.B.@: @samp{gcal -cm} gibt alle diejenigen Termine aus, die im
gesamten Monat Februar stattfinden.
@end itemize

@item
@samp{m+} oder @samp{--end-of-month} Langoption@*
@arindex -m+
@arindex -cm+
@arindex --end-of-month
Liste von Daten vom Tag nach dem aktuellen Tag des aktuellen Monats bis zum
letzten Tag des aktuellen Monats ausgeben.

@itemize @minus
@item
Z.B.@: @samp{gcal -cm+} gibt alle diejenigen Termine aus, die am
18'ten Februar (morgen) beginnen und am letzten Tag des Monats Februar enden.

@item
Z.B.@: @samp{gcal -cdm+} gibt alle diejenigen Termine aus, die am
17'ten Februar (heute) beginnen und am letzten Tag des Monats Februar enden.
@end itemize

@item
@samp{m-} oder @samp{--start-of-month} Langoption@*
@arindex -m-
@arindex -cm-
@arindex --start-of-month
Liste von Daten vom ersten Tag des aktuellen Monats bis zum Tag vor dem
aktuellen Tag des aktuellen Monats ausgeben.

@itemize @minus
@item
Z.B.@: @samp{gcal -cm-} gibt alle diejenigen Termine aus, die am
ersten Tag des Monats Februar beginnen und am 16'ten Februar (gestern) enden.

@item
Z.B.@: @samp{gcal -cdm-} gibt alle diejenigen Termine aus, die am
ersten Tag des Monats Februar beginnen und am 17'ten Februar (heute) enden.
@end itemize
@end itemize

@need 1500
@item @samp{y@r{|}Y@r{[}+@r{|}-@r{]}}
@itemx @samp{--year} Langoption
@itemx @samp{--end-of-year} Langoption
@itemx @samp{--start-of-year} Langoption
@arindex -y
@arindex -y@r{[}+@r{|}-@r{]}
@arindex -Y
@arindex -Y@r{[}+@r{|}-@r{]}
@arindex -y@r{|}Y@r{[}+@r{|}-@r{]}
@arindex -c@r{[}y@r{|}Y@r{[}+@r{|}-@r{]}@r{]}
@cindex Terminwarnungszeitraum-Modifizierer, @samp{y@r{|}Y@r{[}+@r{|}-@r{]}}
@cindex Terminwarnungszeitraum-Langoption, @samp{--year}
@cindex Terminwarnungszeitraum-Langoption, @samp{--end-of-year}
@cindex Terminwarnungszeitraum-Langoption, @samp{--start-of-year}
@cindex Terminwarnungen bezogen auf das @emph{Jahr}
Liste von Daten ausgeben, die sich auf das Jahr beziehen.

@itemize @bullet
@item
@samp{y} oder @samp{--year} Langoption@*
@arindex -y
@arindex -cy
@arindex --year
Liste von Daten vom ersten Tag des aktuellen Jahres bis zum letzten Tag des
aktuellen Jahres ausgeben.

@itemize @minus
@item
Z.B.@: @samp{gcal -cy} gibt alle diejenigen Termine aus, die im
gesamten Jahr stattfinden.
@end itemize

@item
@samp{y+} oder @samp{--end-of-year} Langoption@*
@arindex -y+
@arindex -cy+
@arindex --end-of-year
Liste von Daten vom Tag nach dem aktuellen Tag des aktuellen Jahres bis zum
letzten Tag des aktuellen Jahres ausgeben.

@itemize @minus
@item
Z.B.@: @samp{gcal -cy+} gibt alle diejenigen Termine aus, die am
18'ten Februar (morgen) beginnen und am letzten Tag des Jahres enden.

@item
Z.B.@: @samp{gcal -cdy+} gibt alle diejenigen Termine aus, die am
17'ten Februar (heute) beginnen und am letzten Tag des Jahres enden.
@end itemize

@item
@samp{y-} oder @samp{--start-of-year} Langoption@*
@arindex -y-
@arindex -cy-
@arindex --start-of-year
Liste von Daten vom ersten Tag des aktuellen Jahres bis zum Tag vor dem
aktuellen Tag des aktuellen Jahres ausgeben.

@itemize @minus
@item
Z.B.@: @samp{gcal -cy-} gibt alle diejenigen Termine aus, die am
ersten Tag des Jahres beginnen und am 16'ten Februar (gestern) enden.

@item
Z.B.@: @samp{gcal -cdy-} gibt alle diejenigen Termine aus, die am
ersten Tag des Jahres beginnen und am 17'ten Februar (heute) enden.
@end itemize
@end itemize
@end table

@page
@node Antwortdatei, Datummodifizierer, Optionen, Kommandozeilenargumente
@subsection Antwortdatei
@cindex Antwortdatei, @samp{@@@var{Datei}}
@cindex @samp{@@@var{Datei}}
@cindex Option @samp{@@@var{Datei}}
@cindex @samp{@@@var{Datei}}, Option
@cindex Quotierung von Spezialzeichen
@arindex @@@var{Datei}

@noindent
Wenn ein @samp{@@@var{Datei}} Argument in der Kommandozeile vorgefunden
wird, so wird eine @dfn{Antwortdatei} @var{Datei} benutzt, d.h.@: Optionen
und Kommandos werden aus dieser Datei vorgeladen.  Eine Antwortdatei
@samp{@@@var{Datei}} darf Optionen und Kommandos enthalten, aber @strong{keine}
Verweise auf weitere Antwortdateien.  Werden solche Verweise auf weitere
Antwortdateien vorgefunden, so werden diese ignoriert.
@xref{Globale Optionen, , @samp{--response-file=@var{Dateiname}}}, f"ur
Hinweise wie eine Antwortdatei automatisch erzeugt werden kann.

@noindent
Das Suchschema f"ur eine Antwortdatei ist gleich dem Suchschema f"ur
Ressourcendateien, mit der Ausnahme, da"s @strong{keine} Standard-Antwortdatei
ber"ucksichtigt wird.  @xref{Ressourcendatei, Datei-Suchmechanismus}, f"ur
weitere Details.  Es d"urfen mehrere Antwortdateien beim Aufruf von Gcal
angegeben werden.  Diese werden in genau der Reihenfolge abgearbeitet, in
der sie in der Kommandozeile angegeben sind, also streng sequentiell.

@cindex Kommentarzeichen, @samp{;}
@cindex @samp{;} Kommentarzeichen
@noindent
Jede Option und jedes Kommando mu"s auf einer einzelnen Zeile angegeben sein,
d.h.@: durch ein echtes @samp{\n} (Newline) Zeichen getrennt werden.  Eine Zeile
der Antwortdatei, die mit einem @samp{;} (Semikolon) Zeichen beginnt, ist ein
Kommentar und wird von Gcal vollst"andig ignoriert (@pxref{Zeile kommentieren}).

@noindent
Optionen m"ussen vor Kommandos definiert werden.  Wenn eine Antwortdatei
Kommandos enth"alt, so werden alle weiteren Argumente, die nach
@samp{@@@var{Datei}} in der Kommandozeile angegeben sind, ignoriert.

@need 1500
@noindent
Zum Beispiel:

@enumerate
@item
Inhalt von Antwortdatei @file{Datei}:

@example
@group
Zeile    Text
1        -j
2        -Cw
@var{EOF}

@cartouche
$ gcal -i -b 3 @@Datei -s 3 1994

@expansion{} gcal -i -b 3 -j -Cw -s 3 1994
@end cartouche
@end group
@end example

@need 3000
@item
Inhalt von Antwortdatei @file{Datei}:

@example
@group
Zeile    Text
1        -j
2        -Cw
3        mai 1992
@var{EOF}

@cartouche
$ gcal -i -b 3 @@Datei -s 3 1994

@expansion{} gcal -i -b 3 -j -Cw mai
@end cartouche
@end group
@end example

@need 3000
@item
Inhalt von Antwortdatei @file{Datei}:

@example
@group
Zeile    Text
1        -j
2        -Cw
3        mai
4        1992
@var{EOF}

@cartouche
$ gcal -i -b 3 @@Datei -s 3 1994

@expansion{} gcal -i -b 3 -j -Cw mai 1992
@end cartouche
@end group
@end example
@end enumerate

@page
@node Datummodifizierer, Kommandos, Antwortdatei, Kommandozeilenargumente
@subsection Datummodifizierer
@cindex Datummodifizierer, @samp{%@var{Datum}}
@cindex @samp{%@var{Datum}}
@cindex Option @samp{%@var{Datum}}
@cindex @samp{%@var{Datum}}, Option
@arindex %@var{Datum}

@noindent
Es ist m"oglich dasjenige Datum anstelle dem aktuellen (System) Datum zu
verwenden, welches in der @samp{%@var{Datum}} Option definiert ist.  Das
bedeutet, da"s Terminwarnungen f"ur @strong{jedwedes} Jahr mit demselben
Warnungsniveau wie Terminwarnungen, die sich rein auf das aktuelle Jahr
beziehen, erzeugt werden k"onnen.

@noindent
Das Datum mu"s in einem dieser Formate angegeben werden:

@itemize @bullet
@item
@w{@code{@var{jjjj}@r{[}@var{mm}@r{[}@var{tt}@r{|}@var{www}@r{[}@var{n}@r{]]]}}}

@item
@w{@code{@var{jjjj}*d@r{|}w@var{n}@r{[}@var{www}@r{]}}}

@item
@w{@code{@var{jjjj}@@e@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}}}

@item
@w{@code{@var{Monatsname}@r{[}@var{tt}@r{]}}}

@item
@w{@code{@var{Wochentagsname}@r{[}@var{n}@r{]}}}

@item
@w{@var{tt}}
@end itemize

@noindent
Hierzu einige Beispiele:

@quotation
@strong{Bitte beachten:}@*
In den folgenden Beispielen wird angenommen, da"s das heutige
Tagesdatum Mittwoch, der 17'te Februar 1993 (19930217) ist!
@end quotation

@table @asis
@item Das @code{@var{jjjj}@r{[}@var{mm}@r{[}@var{tt}@r{|}@var{www}@r{[}@var{n}@r{]]]}} Format:

@itemize @bullet
@item
@samp{gcal %1994} @w{(@equiv{} @var{jjjj})}@*
Das aktuelle Datum wird auf den 17'ten Februar 1994
gesetzt @w{@result{} 19940217.}

@need 1000
@item
@samp{gcal %1994M"ar}

@item
@samp{gcal %19943}

@item
@samp{gcal %199403} @w{(@equiv{} @var{jjjj}@var{mm})}@*
Das aktuelle Datum wird auf das Datum 17'ter M"arz 1994
gesetzt @w{@result{} 19940317.}

@item
@samp{gcal %1994M"ar3}

@item
@samp{gcal %1994033}

@item
@samp{gcal %19940303} @w{(@equiv{} @var{jjjj}@var{mm}@var{tt})}@*
Das aktuelle Datum wird auf das Datum 3'ter M"arz 1994
gesetzt @w{@result{} 19940303.}

@item
@samp{gcal %1994M"arDon}

@item
@samp{gcal %199403do} @w{(@equiv{} @var{jjjj}@var{mm}@var{www})}@*
Das aktuelle Datum wird auf das Datum 4'ter M"arz 1994
gesetzt @w{@result{} 19940304.}

@item
@samp{gcal %1994M"arMit3}

@item
@samp{gcal %199403mi3} @w{(@equiv{} @var{jjjj}@var{mm}@var{www}@var{n})}@*
Das aktuelle Datum wird auf das Datum 3'ter Mittwoch im M"arz 1994
gesetzt @w{(@var{n} @equiv{} @samp{1@r{@dots{}}5@r{|}9})} @w{@result{} 19940316.}

@need 1000
@item
@samp{gcal %0}

@item
@samp{gcal %00}

@item
@samp{gcal %000}

@item
@samp{gcal %0000} @w{(@equiv{} @var{jjjj})}@*
Das aktuelle Datum bleibt unver"andert @w{@result{} 19930217.}

@item
@samp{gcal %0000M"ar}

@item
@samp{gcal %00003}

@item
@samp{gcal %000003} @w{(@equiv{} @var{jjjj}@var{mm})}@*
Das aktuelle Datum wird auf das Datum 17'ter M"arz 1993
gesetzt @w{@result{} 19930317.}

@item
@samp{gcal %0000M"ar3}

@item
@samp{gcal %0000033}

@item
@samp{gcal %00000303} @w{(@equiv{} @var{jjjj}@var{mm}@var{tt})}@*
Das aktuelle Datum wird auf das Datum 3'ter M"arz 1993
gesetzt @w{@result{} 19930303.}

@need 1000
@item
@samp{gcal %0000M"arDon}

@item
@samp{gcal %000003do} @w{(@equiv{} @var{jjjj}@var{mm}@var{www})}@*
Das aktuelle Datum wird auf das Datum 4'ter M"arz 1993
gesetzt @w{@result{} 19930304.}

@item
@samp{gcal %0000M"arMit3}

@item
@samp{gcal %000003mi3} @w{(@equiv{} @var{jjjj}@var{mm}@var{www}@var{n})}@*
Das aktuelle Datum wird auf das Datum 3'ter Mittwoch im M"arz 1993
gesetzt @w{(@var{n} @equiv{} @samp{1@r{@dots{}}5@r{|}9})} @w{@result{} 19930317.}
@end itemize

@item Das @code{@var{jjjj}*d@r{|}w@var{n}@r{[}@var{www}@r{]}} Format:

@itemize @bullet
@item
@samp{gcal %1994*d10} @w{(@equiv{} @code{@var{jjjj}*d@var{n}})}@*
Das aktuelle Datum wird auf das Datum des 10'ten absoluten Tages 1994
gesetzt @w{(@var{n} @equiv{} @samp{1@r{@dots{}}365@r{|}366@r{|}999})}
@w{@result{} 19940110.}

@item
@samp{gcal %1994*d10son} @w{(@equiv{} @code{@var{jjjj}*d@var{n}@var{www}})}@*
Das aktuelle Datum wird auf das Datum des 10'ten Sonntags 1994
gesetzt @w{(@var{n} @equiv{} @samp{1@r{@dots{}}51@r{|}52@r{|}53@r{|}99})}
@w{@result{} 19940306.}

@item
@samp{gcal %0*d10} @w{(@equiv{} @code{@var{jjjj}*d@var{n}})}@*
Das aktuelle Datum wird auf das Datum des 10'ten absoluten Tages 1993
gesetzt @w{@result{} 19930110.}

@item
@samp{gcal %0*d10son} @w{(@equiv{} @code{@var{jjjj}*d@var{n}@var{www}})}@*
Das aktuelle Datum wird auf das Datum des 10'ten Sonntags 1993
gesetzt @w{@result{} 19930307.}

@item
@samp{gcal %1994*w10} @w{(@equiv{} @code{@var{jjjj}*w@var{n}})}@*
Das aktuelle Datum wird auf das Datum des Montags der 10'ten
@sc{iso}-Kalenderwoche 1994 gesetzt
@w{(@var{n} @equiv{} @samp{0@r{|}1@r{@dots{}}52@r{|}53@r{|}99})}
@w{@result{} 19940307.}

@item
@samp{gcal %1994*w10son} @w{(@equiv{} @code{@var{jjjj}*w@var{n}@var{www}})}@*
Das aktuelle Datum wird auf das Datum des Sonntags der 10'ten
@sc{iso}-Kalenderwoche 1994 gesetzt @w{@result{} 19940313.}

@item
@samp{gcal %0*w10} @w{(@equiv{} @code{@var{jjjj}*w@var{n}})}@*
Das aktuelle Datum wird auf das Datum des Montags der 10'ten
@sc{iso}-Kalenderwoche 1993 gesetzt @w{@result{} 19930308.}

@item
@samp{gcal %0*w10son} @w{(@equiv{} @code{@var{jjjj}*w@var{n}@var{www}})}@*
Das aktuelle Datum wird auf das Datum des Sonntags der 10'ten
@sc{iso}-Kalenderwoche 1993 gesetzt @w{@result{} 19930314.}
@end itemize

@item Das @code{@var{jjjj}@@e@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}} Format:

@itemize @bullet
@item
@samp{gcal %1994@@e} @w{(@equiv{} @code{@var{jjjj}@@e})}@*
Das aktuelle Datum wird auf das Datum des Ostersonntags 1994
gesetzt @w{@result{} 19940403.}

@need 1000
@item
@samp{gcal %1994@@e10}

@item
@samp{gcal %1994@@e+10} @w{(@equiv{} @code{@var{jjjj}@@e@r{[}+@r{]}@var{n}})}@*
Das aktuelle Datum wird auf das Datum 10 Tage nach Ostersonntag 1994
gesetzt @w{@result{} 19940413.}

@item
@samp{gcal %1994@@e-10} @w{(@equiv{} @code{@var{jjjj}@@e-@var{n}})}@*
Das aktuelle Datum wird auf das Datum 10 Tage vor Ostersonntag 1994
gesetzt @w{@result{} 19940324.}

@need 2000
@item
@samp{gcal %0@@e}

@item
@samp{gcal %00@@e}

@item
@samp{gcal %000@@e}

@item
@samp{gcal %0000@@e} @w{(@equiv{} @code{@var{jjjj}@@e})}@*
Das aktuelle Datum wird auf das Datum des Ostersonntags 1993
gesetzt @w{@result{} 19930411.}

@item
@samp{gcal %0@@e10}

@item
@samp{gcal %0@@e+10} @w{(@equiv{} @code{@var{jjjj}@@e@r{[}+@r{]}@var{n}})}@*
Das aktuelle Datum wird auf das Datum 10 Tage nach Ostersonntag 1993
gesetzt @w{@result{} 19930421.}

@item
@samp{gcal %0@@e-10} @w{(@equiv{} @code{@var{jjjj}@@e-@var{n}})}@*
Das aktuelle Datum wird auf das Datum 10 Tage vor Ostersonntag 1993
gesetzt @w{@result{} 19930401.}

@item
@samp{gcal %1994@@e3Mi}

@item
@samp{gcal %1994@@e+3Mi} @w{(@equiv{} @code{@var{jjjj}@@e@r{[}+@r{]}@var{n}@var{www}})}@*
Das aktuelle Datum wird auf das Datum 3'ter Mittwoch nach Ostersonntag 1994
gesetzt @w{@result{} 19940420.}

@item
@samp{gcal %1994@@e-3mi} @w{(@equiv{} @code{@var{jjjj}@@e-@var{n}@var{www}})}@*
Das aktuelle Datum wird auf das Datum 3'ter Mittwoch vor Ostersonntag 1994
gesetzt @w{@result{} 19940316.}

@item
@samp{gcal %0@@e3mi}

@item
@samp{gcal %0@@e+3mi} @w{(@equiv{} @code{@var{jjjj}@@e@r{[}+@r{]}@var{n}@var{www}})}@*
Das aktuelle Datum wird auf das Datum 3'ter Mittwoch nach Ostersonntag 1993
gesetzt @w{@result{} 19930428.}

@item
@samp{gcal %0@@e-3mi} @w{(@equiv{} @code{@var{jjjj}@@e-@var{n}@var{www}})}@*
Das aktuelle Datum wird auf das Datum 3'ter Mittwoch vor Ostersonntag 1993
gesetzt @w{@result{} 19930324.}

@item
@samp{gcal -v a=0303 %1994@@a} @w{(@equiv{} @code{@var{jjjj}@@@var{dvar}})}@*
Das aktuelle Datum wird auf das Datum 3'ter M"arz 1994
gesetzt @w{@result{} 19940303.}

@need 1000
@item
@samp{gcal -v a=0303 %1994@@a10}

@item
@samp{gcal -v a=0303 %1994@@a+10} @w{(@equiv{} @code{@var{jjjj}@@@var{dvar}@r{[}+@r{]}@var{n}})}@*
Das aktuelle Datum wird auf das Datum 10 Tage nach dem 3'ten M"arz 1994
gesetzt @w{@result{} 19940313.}

@item
@samp{gcal -v a=0303 %1994@@a-10} @w{(@equiv{} @code{@var{jjjj}@@@var{dvar}-@var{n}})}@*
Das aktuelle Datum wird auf das Datum 10 Tage vor dem 3'ten M"arz 1994
gesetzt @w{@result{} 19940221.}

@item
@samp{gcal -v a=0303 %0@@a} @w{(@equiv{} @code{@var{jjjj}@@@var{dvar}})}@*
Das aktuelle Datum wird auf das Datum 3'ter M"arz 1993
gesetzt @w{@result{} 19930303.}

@item
@samp{gcal -v a=0303 %0@@a10}

@item
@samp{gcal -v a=0303 %0@@a+10} @w{(@equiv{} @code{@var{jjjj}@@@var{dvar}@r{[}+@r{]}@var{n}})}@*
Das aktuelle Datum wird auf das Datum 10 Tage nach dem 3'ten M"arz 1993
gesetzt @w{@result{} 19930313.}

@item
@samp{gcal -v a=0303 %0@@a-10} @w{(@equiv{} @code{@var{jjjj}@@@var{dvar}-@var{n}})}@*
Das aktuelle Datum wird auf das Datum 10 Tage vor dem 3'ten M"arz 1993
gesetzt @w{@result{} 19930221.}

@item
@samp{gcal -v a=0303 %1994@@a3mi}

@item
@samp{gcal -v a=0303 %1994@@a+3mi} @w{(@equiv{} @code{@var{jjjj}@@@var{dvar}@r{[}+@r{]}@var{n}@var{www}})}@*
Das aktuelle Datum wird auf das Datum 3'ter Mittwoch nach dem 3'ten M"arz 1994
gesetzt @w{@result{} 19940323.}

@item
@samp{gcal -v a=0303 %1994@@a-3mi} @w{(@equiv{} @code{@var{jjjj}@@@var{dvar}-@var{n}@var{www}})}@*
Das aktuelle Datum wird auf das Datum 3'ter Mittwoch vor dem 3'ten M"arz 1994
gesetzt @w{@result{} 19940216.}

@item
@samp{gcal -v a=0303 %0@@a3mi}

@item
@samp{gcal -v a=0303 %0@@a+3mi} @w{(@equiv{} @code{@var{jjjj}@@@var{dvar}@r{[}+@r{]}@var{n}@var{www}})}@*
Das aktuelle Datum wird auf das Datum 3'ter Mittwoch nach dem 3'ten M"arz 1993
gesetzt @w{@result{} 19930324.}

@item
@samp{gcal -v a=0303 %0@@a-3mi} @w{(@equiv{} @code{@var{jjjj}@@@var{dvar}-@var{n}@var{www}})}@*
Das aktuelle Datum wird auf das Datum 3'ter Mittwoch vor dem 3'ten M"arz 1993
gesetzt @w{@result{} 19930210.}
@end itemize

@item Das @code{@var{Monatsname}@r{[}@var{tt}@r{]}} Format:

@itemize @bullet
@item
@samp{gcal %April} @w{(@equiv{} @var{Monatsname})}@*
Das aktuelle Datum wird auf das Datum 17'ter April 1993
gesetzt @w{@result{} 19930417.}

@item
@samp{gcal %april3}

@item
@samp{gcal %april03} @w{(@equiv{} @var{Monatsname} @var{tt})}@*
Das aktuelle Datum wird auf das Datum 3'ter April 1993
gesetzt @w{@result{} 19930403.}
@end itemize

@need 1000
@item Das @code{@var{Wochentagsname}@r{[}@var{n}@r{]}} Format:

@itemize @bullet
@item
@samp{gcal %Freitag} @w{(@equiv{} @var{Wochentagsname})}@*
Das aktuelle Datum wird auf das Datum des Freitags der laufenden Woche im
Februar 1993 gesetzt @w{@result{} 19930219.}

@item
@samp{gcal %Freitag2}

@item
@samp{gcal %Freitag02} @w{(@equiv{} @var{Wochentagsname} @var{n})}@*
Das aktuelle Datum wird auf das Datum 2'ter Freitag im Februar 1993
gesetzt @w{(@var{n} @equiv{} @samp{1@r{@dots{}}5@r{|}9})} @w{@result{} 19930212.}
@end itemize

@need 1500
@item Das @var{tt} Format:

@itemize @bullet
@item
@samp{gcal %3}

@item
@samp{gcal %03} @w{(@equiv{} @var{tt})}@*
Das aktuelle Datum wird auf das Datum 3'ter Februar 1993
gesetzt @w{@result{} 19930203.}
@end itemize
@end table

@page
@node Kommandos, , Datummodifizierer, Kommandozeilenargumente
@subsection Kommandos
@cindex Kommandos, "Ubersicht von
@cindex Einzelne Kommandos
@cindex Kommandos, einzelne
@cindex Listen von Kommandos
@cindex Kommandos, Listen von
@cindex Bereiche von Kommandos
@cindex Kommandos, Bereiche von
@cindex 3-Monatsmodus Kommandos
@cindex Spezielle 3-Monatsmodus Kommandos

@menu
* Einfache Kommandos::       Wie ein Einfaches Kommando benutzt wird.
* 3-Monatsmodus Kommandos::  Wie ein 3-Monatsmodus Kommando benutzt wird.
* Listen von Kommandos::     Wie eine Liste von Kommandos benutzt wird.
* Bereiche von Kommandos::   Wie ein Bereich von Kommandos benutzt wird.
@end menu
@noindent
Die Kommandos steuern die Zeitr"aume, die von Gcal ber"ucksichtigt werden.
Kommandos k"onnen in vier Hauptklassen eingeteilt werden, n"amlich
@dfn{einzelne} Kommandos, spezielle @dfn{3-Monatsmodus} Kommandos, @dfn{Listen}
von Kommandos und @dfn{Bereiche} von Kommandos.  Einzelne und spezielle
3-Monatsmodus Kommandos erzeugen nur @strong{ein} Kalenderblatt, Listen oder
Bereiche von Kommandos erzeugen @strong{mehr als ein} Kalenderblatt je
Programmlauf.  Wenn eine Liste von Kommandos gegeben ist, so arbeitet Gcal
jedes einzelne Kommando dieser Liste sequentiell ab, eins nach dem anderen.
Ein Bereich von Kommandos wird von Gcal zuerst in einzelne Kommandos
expandiert, sodann arbeitet Gcal jedes einzelne Kommando, welches nach
der internen Expansion erzeugt wurde, sequentiell ab.

@noindent
Um die verwendete Notation im nachstehenden Text zu verstehen, bezeichnet
@var{mm} entweder eine Zahl, einen Monatsnamen oder eines der speziellen
3-Monatsmodus Kommandos @samp{.}, @samp{..}, @samp{.+} und @samp{.-}.
Es k"onnen weder Listen noch Bereiche von Monaten oder Jahren erzeugt
werden falls ein spezielles 3-Monatsmodus Kommando angegeben wurde.

@noindent
Der Bereich von @var{mm} ist g"ultig von 1 bis 12 oder g"ultig von Januar bis
Dezember (beide Notationen d"urfen gemischt verwendet werden).  Monatsnamen
d"urfen bis auf ihre ersten drei Zeichen abgek"urzt werden.  @var{jjjj} ist
eine Zahl.  Der Bereich von @var{jjjj} ist g"ultig von 1 bis 9999.  Ein Bereich
(@var{mm}-@var{mm} @var{jjjj}+@var{jjjj} @dots{}) besteht aus genau zwei
Elementen.  Eine Liste (@var{mm},@dots{},@var{mm} @var{jjjj};@dots{};@var{jjjj}
@dots{}) mu"s mindestens zwei Elemente enthalten, und darf unbegrenzt viele
Elemente enthalten.

@sp 2

@need 2000
@cindex Trennzeichen, Liste von
@cindex Liste von benutzten Trennzeichen
@noindent
Hier ist eine Aufstellung aller benutzten Bereichs-, Listen- und
sonstigen Kommandotrennzeichen:

@quotation
@enumerate
@item
Das @samp{-} Zeichen ist das @emph{Bereich von Monaten} Trennzeichen.

@item
Das @samp{,} Zeichen ist das @emph{Liste von Monaten} Trennzeichen.

@item
Das @samp{+} Zeichen ist das @emph{Bereich von Jahren} Trennzeichen.

@item
Das @samp{;} Zeichen ist das @emph{Liste von Jahren} Trennzeichen.

@item
Das @samp{/} Zeichen ist das @emph{Monat des Jahres} Trennzeichen.

@item
Das @samp{:} Zeichen ist das @emph{Fiskaljahr} Trennzeichen.
@end enumerate
@end quotation

@need 1000
@node Einfache Kommandos, 3-Monatsmodus Kommandos, Kommandos, Kommandos
@subsubsection Einfache Kommandos
@cindex Einfache Kommandos
@cindex Kommandos, einfache

@table @samp
@item @var{KEINES}
@arindex Kommando, @var{KEINES}
@cindex Kommando, @samp{@var{KEINES}}
@cindex Monatsmodus, einzelner
@cindex Einzelmonatsmodus
@cindex Aktueller Monat des aktuellen Jahres
Aktueller Monat des aktuellen Jahres, wird weiterhin als @dfn{Einzelmonatsmodus}
bezeichnet.

@need 1000
@item @var{Monatsname}
@arindex Kommando, @var{Monatsname}
@cindex Kommando, @samp{@var{Monatsname}}
@cindex Angegebener Monatsmodus
@cindex Monatsmodus, angegebener
@cindex Angegebener Monat des aktuellen Jahres
Angegebener Monat des aktuellen Jahres, z.B.@::

@example
@group
gcal mai
gcal OKTOBER
gcal ja
@end group
@end example

@need 1000
@item @var{jjjj}
@arindex Kommando, @var{jjjj}
@cindex Kommando, @samp{@var{jjjj}}
@cindex Einzeljahresmodus
@cindex Jahresmodus, einzelner
@cindex Angegebenes Jahr
Angegebenes Jahr, wird weiterhin als @dfn{Einzeljahresmodus} bezeichnet, z.B.@::

@example
gcal 1992
@end example

Aber es gibt eine Ausnahme von dieser generellen Regel.  Wenn die angegebene
Jahreszahl kleiner oder gleich zw"olf ist, so nimmt Gcal an, da"s ein
angegebener Monat des aktuellen Jahres gew"unscht ist.  Wenn ein angegebenes
Jahr kleiner oder gleich zw"olf gew"unscht wird, so sollte Gcal entweder so

@example
gcal 1:6
@end example

oder so

@example
gcal 6+6
@end example

aufgerufen werden, um beispielsweise das Jahr sechs nach Christus zu erhalten.

@item @var{mm} @var{jjjj}
@itemx @var{mm}/@var{jjjj}
@arindex Kommando, @var{mm} @var{jjjj}
@arindex Kommando, @var{mm}/@var{jjjj}
@cindex Kommando, @samp{@var{mm} @var{jjjj}}
@cindex Kommando, @samp{@var{mm}/@var{jjjj}}
@cindex Angegebener Monat eines angegebenen Jahres
Angegebener Monat eines angegebenen Jahres, z.B.@::

@example
@group
gcal 9 1992
gcal 9/1992
gcal Nov 1777
gcal Nov/1777
@end group
@end example

@item :
@arindex Kommando, :
@cindex Kommando, @samp{:}
@cindex Einzelnes Fiskaljahr
@cindex Fiskaljahr, einzelnes
@cindex Implizites Fiskaljahr
@cindex Fiskaljahr, implizites
Einzelnes Fiskaljahr (abweichendes Wirtschaftsjahr), beginnend im
@emph{aktuellen Monat} des @emph{aktuellen Jahres} und endend im Monat
@emph{aktueller Monat}-1 des @emph{aktuellen Jahres}+1, wird weiterhin als
@dfn{implizites Fiskaljahr} bezeichnet, z.B.@::

@example
gcal :
@end example

@item @var{mm}:
@arindex Kommando, @var{mm}:
@cindex Kommando, @samp{@var{mm}:}
@cindex Einzelnes Fiskaljahr
@cindex Fiskaljahr, einzelnes
@cindex Explizites Fiskaljahr
@cindex Fiskaljahr, explizites
Einzelnes Fiskaljahr, beginnend im Monat @var{mm} des @emph{aktuellen Jahres}
und endend im Monat @var{mm}-1 des @emph{aktuellen Jahres}+1, wird weiterhin
als @dfn{explizites Fiskaljahr} bezeichnet, z.B.@::

@example
@group
gcal 6:
gcal feb:
gcal NOVEMBER:
@end group
@end example

@need 1500
@item :@var{jjjj}
@arindex Kommando, :@var{jjjj}
@cindex Kommando, @samp{:@var{jjjj}}
@cindex Einzelnes Fiskaljahr
@cindex Fiskaljahr, einzelnes
@cindex Explizites Fiskaljahr
@cindex Fiskaljahr, explizites
Einzelnes Fiskaljahr, beginnend im aktuellen Monat des Jahres @var{jjjj} und
endend im Monat @emph{aktueller Monat}-1 des Jahres @var{jjjj}+1, wird
weiterhin auch als @dfn{explizites Fiskaljahr} bezeichnet, z.B.@::

@example
gcal :1999
@end example

@need 1000
@item @var{mm}:@var{jjjj}
@arindex Kommando, @var{mm}:@var{jjjj}
@cindex Kommando, @samp{@var{mm}:@var{jjjj}}
@cindex Einzelnes Fiskaljahr
@cindex Fiskaljahr, einzelnes
@cindex Explizites Fiskaljahr
@cindex Fiskaljahr, explizites
Einzelnes Fiskaljahr, beginnend im Monat @var{mm} des Jahres @var{jjjj} und
endend im Monat @var{mm}-1 des Jahres @var{jjjj}+1, wird weiterhin auch als
@dfn{explizites Fiskaljahr} bezeichnet, z.B.@::

@example
@group
gcal 7:1999
gcal okt:1992
gcal Februar:1777
@end group
@end example
@end table

@need 1500
@node 3-Monatsmodus Kommandos, Listen von Kommandos, Einfache Kommandos, Kommandos
@subsubsection 3-Monatsmodus Kommandos
@cindex 3-Monatsmodus Kommandos
@cindex Spezielle 3-Monatsmodus Kommandos

@table @samp
@item .
@arindex Kommando, .
@cindex Kommando, @samp{.}
@cindex Spezieller 3-Monatsmodus, @samp{.}
@cindex 3-Monatsmodus @samp{.}, spezieller
Vorheriger, aktueller und n"achster Monat des laufenden Jahres, z.B.@::

@example
gcal .
@end example

@item . @var{jjjj}
@arindex Kommando, . @var{jjjj}
@cindex Kommando, @samp{. @var{jjjj}}
@cindex Spezieller 3-Monatsmodus, @samp{. @var{jjjj}}
@cindex 3-Monatsmodus @samp{. @var{jjjj}}, spezieller
Vorheriger, aktueller und n"achster Monat des angegebenen Jahres, z.B.@::

@example
gcal . 1992
@end example

@item ..
@arindex Kommando, ..
@cindex Kommando, @samp{..}
@cindex Spezieller 3-Monatsmodus, @samp{..}
@cindex 3-Monatsmodus @samp{..}, spezieller
Aktuelles Quartal des laufenden Jahres, z.B.@::

@example
gcal ..
@end example

@need 1000
@item .. @var{jjjj}
@arindex Kommando, .. @var{jjjj}
@cindex Kommando, @samp{.. @var{jjjj}}
@cindex Spezieller 3-Monatsmodus, @samp{.. @var{jjjj}}
@cindex 3-Monatsmodus @samp{.. @var{jjjj}}, spezieller
Aktuelles Quartal des angegebenen Jahres, z.B.@::

@example
gcal .. 1992
@end example

@need 1000
@item .+
@arindex Kommando, .+
@cindex Kommando, @samp{.+}
@cindex Spezieller 3-Monatsmodus, @samp{.+}
@cindex 3-Monatsmodus @samp{.+}, spezieller
Aktueller und die beiden n"achsten Monate des laufenden Jahres, z.B.@::

@example
gcal .+
@end example

@item .+ @var{jjjj}
@arindex Kommando, .+ @var{jjjj}
@cindex Kommando, @samp{.+ @var{jjjj}}
@cindex Spezieller 3-Monatsmodus, @samp{.+ @var{jjjj}}
@cindex 3-Monatsmodus @samp{.+ @var{jjjj}}, spezieller
Aktueller und die beiden n"achsten Monate des angegebenen Jahres, z.B.@::

@example
gcal .+ 1992
@end example

@item .-
@arindex Kommando, .-
@cindex Kommando, @samp{.-}
@cindex Spezieller 3-Monatsmodus, @samp{.-}
@cindex 3-Monatsmodus @samp{.-}, spezieller
Aktueller und die beiden vorhergehenden Monate des laufenden Jahres, z.B.@::

@example
gcal .-
@end example

@item .- @var{jjjj}
@arindex Kommando, .- @var{jjjj}
@cindex Kommando, @samp{.- @var{jjjj}}
@cindex Spezieller 3-Monatsmodus, @samp{.- @var{jjjj}}
@cindex 3-Monatsmodus @samp{.- @var{jjjj}}, spezieller
Aktueller und die beiden vorhergehenden Monate des angegebenen Jahres, z.B.@::

@example
gcal .- 1992
@end example
@end table

@node Listen von Kommandos, Bereiche von Kommandos, 3-Monatsmodus Kommandos, Kommandos
@subsubsection Listen von Kommandos
@cindex Kommandos, Listen von
@cindex Listen von Kommandos

@table @samp
@item @var{mm},@dots{},@var{mm}
@arindex Kommando, @var{mm},@dots{},@var{mm}
@cindex Kommando, @samp{@var{mm},@dots{},@var{mm}}
@cindex Liste von angegebenen Monaten
@cindex Angegebene Monate, Liste von
Liste von angegebenen Monaten des aktuellen Jahres, z.B.@::

@example
@group
gcal 1,5,12
gcal 3,1,5,3
gcal juni,9,jan
@end group
@end example

@need 1500
@item @var{mm}/@var{jjjj},@dots{},@var{mm}/@var{jjjj}
@arindex Kommando, @var{mm}/@var{jjjj},@dots{},@var{mm}/@var{jjjj}
@cindex Kommando, @samp{@var{mm}/@var{jjjj},@dots{},@var{mm}/@var{jjjj}}
@cindex Liste von angegebenen Monaten in angegebenen Jahren
@cindex Angegebene Monate in angegebenen Jahren, Liste von
Liste von angegebenen Monaten in angegebenen Jahren, z.B.@::

@example
@group
gcal 1/1992,5,12/2001
gcal juni/1991,9/1801,jan
@end group
@end example

@need 1000
@item @var{mm},@dots{},@var{mm} @var{jjjj}
@arindex Kommando, @var{mm},@dots{},@var{mm} @var{jjjj}
@cindex Kommando, @samp{@var{mm},@dots{},@var{mm} @var{jjjj}}
@cindex Liste von angegebenen Monaten eines angegebenen Jahres
@cindex Angegebene Monate eines angegebenen Jahre, Liste von
Liste von angegebenen Monaten eines angegebenen Jahres, z.B.@::

@example
@group
gcal 3,7 1999
gcal 1,dez,juli 1777
@end group
@end example

@item @var{jjjj};@dots{};@var{jjjj}
@arindex Kommando, @var{jjjj};@dots{};@var{jjjj}
@cindex Kommando, @samp{@var{jjjj};@dots{};@var{jjjj}}
@cindex Liste von angegebenen Jahren
@cindex Angegebene Jahre, Liste von
Liste von angegebenen Jahren, z.B.@::

@example
gcal 1992;1777;1899
@end example

@item @var{mm}:@var{jjjj};@dots{};@var{mm}:@var{jjjj}
@arindex Kommando, @var{mm}:@var{jjjj};@dots{};@var{mm}:@var{jjjj}
@cindex Kommando, @samp{@var{mm}:@var{jjjj};@dots{};@var{mm}:@var{jjjj}}
@cindex Liste von angegebenen Fiskaljahren
@cindex Angegebenen Fiskaljahre, Liste von
@cindex Liste von Fiskaljahren
@cindex Fiskaljahre, Liste von
Liste von angegebenen Fiskaljahren, z.B.@::

@example
gcal 7:1999;8:1992;April:3
@end example
@end table

@sp 2

@need 2000
@noindent
@strong{Andere g"ultige Listen:}

@table @samp
@item @var{mm},@var{mm}/@var{jjjj},@dots{}
@arindex Kommando, @var{mm},@var{mm}/@var{jjjj},@dots{}
@cindex Kommando, @samp{@var{mm},@var{mm}/@var{jjjj},@dots{}}
@cindex Gemischte Monatsliste
@cindex Monate, gemischte Liste von
Gemischte Monatsliste bestehend aus: @samp{@var{mm} @var{mm}/@var{jjjj}}

@example
gcal 6,8,3/1999,feb/3,januar
@end example

@item @var{mm}:;@var{mm}:@var{jjjj},@dots{}
@arindex Kommando, @var{mm}:;@var{mm}:@var{jjjj},@dots{}
@cindex Kommando, @samp{@var{mm}:;@var{mm}:@var{jjjj},@dots{}}
@cindex Gemischte Liste von Fiskaljahren
@cindex Fiskaljahre, gemischte Liste von
Gemischte Liste von Fiskaljahren von aktuellen/angegebenen Jahren bestehend aus:
@samp{@var{mm}: :@var{jjjj} @var{mm}:@var{jjjj} @var{jjjj}}

@example
gcal 3:;1994;februar:1999;:1777;JAN:
@end example

@item @var{mm}:;@var{mm}:;@dots{}
@arindex Kommando, @var{mm}:;@var{mm}:;@dots{}
@cindex Kommando, @samp{@var{mm}:;@var{mm}:;@dots{}}
@cindex Liste von Fiskaljahren des aktuellen Jahres
@cindex Fiskaljahre des aktuellen Jahres, Liste von
Liste von Fiskaljahren des aktuellen Jahres bestehend aus: @samp{@var{mm}:}

@example
gcal 3:;august:;DEZ:
@end example
@end table

@need 1500
@node Bereiche von Kommandos, , Listen von Kommandos, Kommandos
@subsubsection Bereiche von Kommandos
@cindex Bereiche von Kommandos
@cindex Kommandos, Bereiche von

@table @samp
@item @var{mm}-@var{mm}
@arindex Kommando, @var{mm}-@var{mm}
@cindex Kommando, @samp{@var{mm}-@var{mm}}
@cindex Bereich von angegebenen Monaten
@cindex Angegebene Monate, Bereich von
Bereich von angegebenen Monaten des aktuellen Jahres, z.B.@::

@example
@group
gcal 3-7
gcal 11-8
gcal MAI-dez
gcal 12-aug
@end group
@end example

@need 1500
@item @var{mm}/@var{jjjj}-@var{mm}/@var{jjjj}
@arindex Kommando, @var{mm}/@var{jjjj}-@var{mm}/@var{jjjj}
@cindex Kommando, @samp{@var{mm}/@var{jjjj}-@var{mm}/@var{jjjj}}
@cindex Bereich von angegebenen Monaten von angegebenen Jahren
@cindex Angegebene Monate von angegebenen Jahren, Bereich von
Bereich von angegebenen Monaten von angegebenen Jahren, z.B.@::

@example
@group
gcal 3/1991-juli/1992
gcal dez/1994-3
gcal sep-dez/2000
@end group
@end example

@need 1000
@item @var{mm}-@var{mm} @var{jjjj}
@arindex Kommando, @var{mm}-@var{mm} @var{jjjj}
@cindex Kommando, @samp{@var{mm}-@var{mm} @var{jjjj}}
@cindex Bereich von angegebenen Monaten eines angegebenen Jahres
@cindex Angegebene Monate eines angegebenen Jahres, Bereich von
Bereich von angegebenen Monaten eines angegebenen Jahres, z.B.@::

@example
@group
gcal 3-7 1999
gcal nov-3 1777
gcal aug-dez 1992
@end group
@end example

@need 1000
@item @var{mm} @var{jjjj}-@var{jjjj}
@itemx @var{mm}/@var{jjjj}-@var{jjjj}
@arindex Kommando, @var{mm} @var{jjjj}-@var{jjjj}
@arindex Kommando, @var{mm}/@var{jjjj}-@var{jjjj}
@cindex Kommando, @samp{@var{mm} @var{jjjj}-@var{jjjj}}
@cindex Kommando, @samp{@var{mm}/@var{jjjj}-@var{jjjj}}
@cindex Bereich eines angegebenen Monats von angegebenen Jahren
@cindex Angegebener Monat von angegebenen Jahren, Bereich von
Bereich eines angegebenen Monats von angegebenen Jahren, z.B.@::

@example
@group
gcal AUGUST 1494-1497
gcal 3/1993-1999
gcal nov/3-1777
@end group
@end example

@item @var{jjjj}+@var{jjjj}
@arindex Kommando, @var{jjjj}+@var{jjjj}
@cindex Kommando, @samp{@var{jjjj}+@var{jjjj}}
@cindex Bereich von angegebenen Jahren
@cindex Angegebene Jahre, Bereich von
Bereich von angegebenen Jahren, z.B.@::

@example
gcal 1992+1994
@end example

@need 1000
@item @var{mm}:@var{jjjj}+@var{mm}:@var{jjjj}
@arindex Kommando, @var{mm}:@var{jjjj}+@var{mm}:@var{jjjj}
@cindex Kommando, @samp{@var{mm}:@var{jjjj}+@var{mm}:@var{jjjj}}
@cindex Bereich von angegebenen Fiskaljahren
@cindex Angegebene Fiskaljahre, Bereich von
@cindex Bereich von Fiskaljahren
@cindex Fiskaljahre, Bereich von
Bereich von angegebenen Fiskaljahren, z.B.@::

@example
@group
gcal 7:1999+8:1992
gcal aug:1992+juli:1999
@end group
@end example
@end table

@page
@node Die GCAL Umgebungsvariable, , Kommandozeilenargumente, Aufruf von Gcal
@section Die @code{GCAL} Umgebungsvariable
@cindex Umgebungsvariable, @code{GCAL}
@cindex @code{GCAL} Umgebungsvariable
@vindex GCAL
@vindex GCAL_OPT

@noindent
In der Umgebungsvariable @code{GCAL} k"onnen Grundeinstellungen zu Optionen
f"ur Gcal gespeichert werden (@pxref{Umgebungsvariablen, , GCAL}).  Diese
Optionen werden bei Programmstart zuerst interpretiert und einige von ihnen
k"onnen durch explizit gegebene Kommandozeilenargumente oder Werte, die in
der Antwortdatei @samp{@@@var{Datei}} vorhanden sind, "uberschrieben werden.
@xref{Kommandozeilenargumente}, und @ref{Antwortdatei}.

@noindent
Zum Beispiel

@itemize @bullet
@item
f"ur @strong{sh}:

@smallexample
GCAL="-i @@farbe -b 3"; export GCAL
@end smallexample

@need 1000
@item
f"ur @strong{csh}:

@smallexample
setenv GCAL "-i @@farbe -b 3"
@end smallexample

@item
f"ur @strong{MS-DOS}:

@smallexample
set GCAL=-i @@farbe -b 3
@end smallexample
@end itemize
@sp 2

@noindent
Unter Vax/VMS lautet der Name der Umgebungsvariable @w{@code{GCAL_OPT}}, um
einen Konflikt mit dem gesetzten Symbol @code{GCAL}, welches zum Aufruf des
Programms dient, zu vermeiden.

@noindent
Zum Beispiel

@itemize @bullet
@item
f"ur @strong{VMS}:

@smallexample
define GCAL_OPT "-i @@farbe -b 3"
@end smallexample
@end itemize

@node Ewige Feiertage, Terminwarnungen, Aufruf von Gcal, Top
@chapter Ewige Feiertage
@cindex Ewige Feiertage
@cindex Feiertagsliste, ewige

@noindent
Die @emph{ewige Feiertagsliste} wird nur f"ur Jahre nach @sc{a.d.463} erzeugt.@*
Sie kann auf mehrere Arten und Weisen ausgegeben werden:
@sp 2

@noindent
Wenn Gcal ohne explizites (Fiskal) Datum mit dem @emph{ewige Feiertagsliste}
Argument gestartet wird
(@pxref{Kalender Optionen, , @samp{--holiday-list@r{[}=long@r{|}short@r{]}}}),
z.B.@::

@example
@group
gcal --holiday-list
gcal -n
gcal -n :
@end group
@end example

@noindent
so gibt Gcal ohne einen vorangehenden Kalender alle diejenigen Feiertage aus
der ewigen Feiertagsliste aus, die sich auf das aktuelle Jahr bzw.@: Fiskaljahr
beziehen.

@noindent
Wenn Gcal mit dem @emph{ewige Feiertagsliste} Argument und einem Monat
(plus eines Jahres) gestartet wird, z.B.@::

@example
@group
gcal --holiday-list juli
gcal -n juli
gcal -n 7 1993
gcal -n 7/1993
@end group
@end example

@noindent
so gibt Gcal einen Monatskalender des angegebenen Monats (des Jahres) und
nachfolgend alle diejenigen Feiertage aus der ewigen Feiertagsliste aus, die
sich auf den angegebenen Monat (des angegebenen Jahres) beziehen.

@noindent
Wenn Gcal mit dem @emph{ewige Feiertagsliste} Argument und einem einfachen Jahr
oder einem Fiskaljahr (abweichendes Wirtschaftsjahr) gestartet wird, z.B.@::

@example
@group
gcal --holiday-list 1993
gcal -n 1993
gcal -n juli:
gcal -n :1993
gcal -n 7:1993
@end group
@end example

@noindent
so gibt Gcal einen Jahreskalender des angegebenen Jahres und nachfolgend
alle diejenigen Feiertage aus der ewigen Feiertagsliste aus, die sich auf
das angegebene Jahr bzw.@: Fiskaljahr beziehen.

@noindent
Wenn Gcal mit dem @emph{ewige Feiertagsliste} Argument und einem
der speziellen 3-Monatsmodus Kommandos gestartet wird
(@pxref{3-Monatsmodus Kommandos, @samp{. @var{jjjj}}}), z.B.@::

@example
@group
gcal --holiday-list .
gcal -n .
gcal -n ..
gcal -n .+
gcal -n .-
@end group
@end example

@noindent
so gibt Gcal die bezogenen 3 Monate im festen Layout/Stil eines
Jahreskalenders aus sowie nachfolgend alle diejenigen Feiertage
aus der ewigen Feiertagsliste aus, die sich auf diese Monate beziehen.

@noindent
Wenn Gcal mit dem @emph{ewige Feiertagsliste} Argument und einer @emph{Liste}
oder einem @emph{Bereich} von Kommandos gestartet wird, so werden entsprechende
Folgen von ewigen Feiertagslisten produziert.  @xref{Listen von Kommandos,
@samp{@var{mm},@dots{},@var{mm}}}, und @ref{Bereiche von Kommandos,
@samp{@var{mm}-@var{mm}}}, f"ur weitere Details.

@node Terminwarnungen, Heutiger Kalender, Ewige Feiertage, Top
@chapter Terminwarnungen
@cindex Terminwarnungen

@menu
* Ressourcendatei::           Wie eine Ressourcendatei benutzt wird.
* Ressourcendateibeispiele::  Beispiele zu Eintr"agen in der Ressourcendatei.
@end menu

@noindent
Dieses Kapitel beschreibt wie Gcal f"ur @emph{Terminwarnungszwecke} benutzt
werden kann.  Dazu darf eine Gcal spezifische Ressourcendatei erzeugt werden,
welche Eintr"age zur Terminwarnung enth"alt (@pxref{Ressourcendatei}).

@noindent
Jedesmal wenn Gcal im einfachen Einzelmonatsmodus ausgef"uhrt wird,
d.h.@: beim Aufruf von Gcal wurde in der Kommandozeile weder ein
expliziter Monat noch ein explizites Jahr bzw.@: Fiskaljahr angegeben, aber
das @emph{Terminwarnung} Argument vorgefunden wird, z.B.@::

@example
@group
gcal --list-of-fixed-dates
gcal -c
@end group
@end example

@noindent
so durchsucht Gcal die Ressourcendatei nach Daten und verarbeitet genau
solche, die sich auf das aktuelle (@equiv{}heutige) Datum beziehen.  Sodann
gibt Gcal ohne einen vorangehenden Kalender alle diejenigen Terminwarnungen
aus der Ressourcendatei aus, die sich auf den aktuellen Tag (Woche/Monat/Jahr)
des aktuellen Jahres beziehen.

@noindent
Einige weitere Beispiele hierzu:

@example
@group
gcal -ce
gcal -cw-
gcal -c-m
gcal -c-y-
gcal -jcb -c-et
gcal -cey-
gcal -jc -cey
@end group
@end example
@sp 2

@noindent
Die Liste der Terminwarnungen kann auf mehrere Arten und Weisen
ausgegeben werden:

@noindent
Wenn Gcal mit dem @emph{Terminwarnung} Argument und/oder einem Monat und/oder
einem expliziten Jahr bzw.@: Fiskaljahr gestartet wird; bzw.@: mit einem der
speziellen 3-Monatsmodus Kommandos, z.B.@::

@example
@group
gcal -c juli
gcal -ce 7 1994
gcal -c-y 7/1994
gcal -c 7:1993
gcal -c 1993
gcal -c .
gcal -c .+
@end group
@end example

@noindent
so gibt Gcal einen (drei) Monats-/ Jahreskalender des angegebenen bzw.@:
aktuellen Monats-/ Jahres aus und nachfolgend alle diejenigen Terminwarnungen
aus der Ressourcendatei, die sich auf den angegebenen Zeitraum beziehen; das
Warnungsniveau ist wie bei der @samp{-cy} Option, wenn sich der Warnungszeitraum
auf ein Jahr bzw.@: Fiskaljahr bezieht oder auf eine 3-Monatsperiode, bzw.@:
wie bei der @samp{-cm} Option, wenn sich der Warnungszeitraum auf einen Monat
bezieht.

@noindent
Wenn Gcal ohne explizites Datum mit dem @emph{Terminwarnung} Argument
@strong{in Verbindung mit} dem @emph{ewige Feiertagsliste} Argument gestartet
wird, z.B.@::

@example
@group
gcal -c -n
gcal -Cm -n
gcal -Cl1224 -n
gcal -cl3+ -n
@end group
@end example

@noindent
so gibt Gcal ohne einen vorangehenden Kalender alle diejenigen Terminwarnungen
aus der Ressourcendatei aus, die sich auf den angegebenen Warnungszeitraum im
aktuellen Jahr beziehen, und nachfolgend alle diejenigen Feiertage aus der
ewigen Feiertagsliste aus, die sich auf das gesamte aktuelle Jahr beziehen.
F"ur weitere Details zur @emph{ewigen Feiertagsliste}, siehe
@ref{Ewige Feiertage}.

@sp 2

@noindent
@strong{Anmerkung zu vorhergehenden Beispielen:}

@noindent
Falls das @emph{Standard/Spezielle Kalenderformat} Argument oder das
@emph{Starttag der Woche} Argument (ausgenommen der
@w{@samp{--starting-day=today}} bzw.@: @w{@samp{--starting-day=0}} Option)
zudem mit vorgefunden wird, z.B.@::

@example
@group
gcal -c -n -i
gcal -c -i-
gcal -n -i- :
gcal -n -s Sonntag
@end group
@end example

@noindent
so gibt Gcal einen Monats-/ Jahreskalender vor jeder anderen angeforderten
Liste aus!  @xref{Kalender Optionen, , @samp{--type=special@r{|}standard}},
und @ref{Kalender Optionen, , @samp{--starting-day@r{[}=@var{Argument}@r{]}}},
f"ur mehr Informationen.

@noindent
Jedesmal wenn Gcal im einfachen Einzeljahresmodus ausgef"uhrt wird,
d.h.@: beim Aufruf von Gcal wurde in der Kommandozeile weder ein expliziter
Monat noch ein explizites Jahr bzw.@: Fiskaljahr angegeben, aber das
@emph{Terminwarnung} Argument (evtl.@: mit Modifizierern) und das
@emph{Anzahl der Monatsbl"ocke} Argument vorgefunden wird
(@pxref{Kalender Optionen, , @samp{--blocks=@var{anzahl}}}), z.B.@::

@example
@group
gcal -c --blocks=3
gcal -C-em -b 3
gcal -c-t -b 6 -jc
@end group
@end example

@noindent
so durchsucht Gcal die Ressourcendatei nach Daten und verarbeitet genau jene,
die sich auf das aktuelle (@equiv{}heutige) Datum beziehen.  Sodann gibt Gcal
einen vorangehenden Jahreskalender und alle diejenigen Terminwarnungen aus der
Ressourcendatei aus, die sich auf den aktuellen Tag (Woche/Monat/Jahr) des
aktuellen Jahres beziehen.

@sp 2

@noindent
Es k"onnen aber auch Daten von vergangenen, aktuellen oder zuk"unftigen
Monaten/Jahren verarbeitet werden.  Das geht einerseits, indem die
@samp{%@var{Datum}} Option entsprechend verwendet wird
(@pxref{Datummodifizierer}), oder andererseits, indem ein Kommando bzw.@:
eine @emph{Liste} oder ein @emph{Bereich} von Kommandos verwendet wird.

@noindent
Zum Beispiel:

@table @samp
@item gcal -c -n- 1993
Ausgabe aller Termine in aufsteigender Reihenfolge, welche sich auf das gesamte
Jahr 1993 beziehen, sowie der ewigen Feiertagsliste in absteigender Reihenfolge,
welche sich auch auf das gesamte Jahr 1993 bezieht; das Warnungsniveau ist wie
bei der @samp{-cy} Option.

@item gcal -c- juli:1993
Ausgabe aller Termine in absteigender Reihenfolge, welche sich auf das
Fiskaljahr @minus{} beginnend im Monat Juli 1993 und endend im Monat Juni
1994 @minus{} beziehen; das Warnungsniveau ist wie bei der @samp{-cy} Option.

@item gcal -ce juli 1993
Ausgabe aller Termine in aufsteigender Reihenfolge, welche sich auf den Monat
Juli 1993 beziehen, einschlie"slich aller ewigen Feiertage dieses Zeitraums,
welche in diese Liste eingef"ugt werden; das Warnungsniveau ist wie bei
der @samp{-cm} Option.

@item gcal -c-e -n 1993+1996
Ausgabe aller Termine in absteigender Reihenfolge, welche sich auf die
gesamten Jahre 1993, 1994, 1995 und 1996 beziehen (Jahr f"ur Jahr in Folge),
einschlie"slich aller ewigen Feiertage dieses Zeitraums, welche in diese
Liste eingef"ugt werden, sowie der ewigen Feiertagsliste in aufsteigender
Reihenfolge, welche sich ebenfalls auf diese Jahre bezieht; das Warnungsniveau
ist wie bei der @samp{-cy} Option.
@end table

@page
@node Ressourcendatei, Ressourcendateibeispiele, Terminwarnungen, Terminwarnungen
@section Ressourcendatei
@cindex .gcalrc Ressourcendatei
@cindex Ressourcendatei, .gcalrc
@cindex Ressourcendatei, Benutzung einer
@cindex Ressourcendatei, Name einer
@cindex Ressourcendatei, Suchmechanismus
@cindex Ressourcendatei, Standard
@cindex Ressourcendatei, zus"atzliche
@cindex Ressourcendatei, Laden von
@cindex Datei-Suchmechanismus
@cindex Suchen einer Ressourcendatei

@menu
* Struktur einer Ressourcendatei::  Wie wird eine Ressourcendatei erstellt?
* Datumteil einer Zeile::           Wie mu"s der Datumteil aussehen?
* Weitere Datumteil-Attribute::     Was sind weitere Attribute vom Datumteil?
* Textteil einer Zeile::            Wie mu"s der Textteil aussehen?
* Zeile kommentieren::              Wie eine Zeile kommentiert werden kann.
* Include Anweisungen::             Was sind Include Anweisungen?
* Spezielle Textmakros::            Was sind Spezielle Textmakros?
* Datumvariablen::                  Wie Datumvariablen benutzt werden k"onnen.
* Textvariablen::                   Wie Textvariablen benutzt werden k"onnen.
@end menu

@noindent
Dieser Textteil beschreibt wie eine @dfn{Ressourcendatei}, welche Eintr"age zur
Terminwarnung enth"alt, benutzt wird.  Der Name der Standard-Ressourcendatei ist
@file{~/.gcalrc} @footnote{Unter @w{MS-DOS}, OS/2 und einigen anderen
Betriebssystemen ist der Name der Standard-Ressourcendatei @file{~/gcalrc}.}.

@noindent
Gcal benutzt einen speziellen Datei-Suchmechanismus:

@cindex Aktuelles Dateiverzeichnis
@cindex Dateiverzeichnis, aktuelles
@cindex Umgebungsvariable, @code{HOME}
@cindex @code{HOME} Umgebungsvariable
@vindex HOME
@enumerate
@item
Das Gcal Programm erwartet die Standard-Ressourcendatei im Dateiverzeichnis,
welches in der Umgebungsvariable @code{HOME} angegeben ist.  Falls die
Umgebungsvariable @code{HOME} weder definiert noch gesetzt ist, so "ubergeht
Gcal diesen Schritt.  @xref{Umgebungsvariablen, , HOME}.

@cindex Umgebungsvariable, @code{GCALPATH}
@cindex @code{GCALPATH} Umgebungsvariable
@vindex GCALPATH
@item
Sollte vorherige Aktion versagt haben, so durchsucht Gcal diejenigen
Dateiverzeichnisse nach der Standard-Ressourcendatei, welche in der
Umgebungsvariable @code{GCALPATH} (@pxref{Umgebungsvariablen, , GCALPATH})
angegeben sind.  Die Umgebungsvariable @code{GCALPATH} enth"alt eine durch
@samp{:} @footnote{Unter @w{MS-DOS}, OS/2 und einigen anderen Betriebssystemen
wird ein anderes Zeichen verwendet, z.B.@: @samp{;} unter @w{MS-DOS} und OS/2.}
Doppelpunkt getrennte Liste von Dateiverzeichnissen.  Falls eine solche
Umgebungsvariable weder definiert noch gesetzt ist, so "ubergeht Gcal diesen
Schritt.

@cindex Umgebungsvariable, @code{GCAL_USR_DATADIR}
@cindex @code{GCAL_USR_DATADIR} Umgebungsvariable
@vindex GCAL_USR_DATADIR
@item
Sollte vorherige Aktion versagt haben, so inspiziert Gcal das
@emph{Benutzer-Datenverzeichnis} (normalerweise @w{@file{$HOME/share/gcal})}
nach der Standard-Ressourcendatei.  Dieses Verzeichnis ist ein Dateiverzeichnis
relativ zum @code{HOME} Dateiverzeichnis.  Falls eine @w{@code{GCAL_USR_DATADIR}}
Umgebungsvariable gesetzt ist, so wird Gcal den Inhalt dieser Umgebungsvariable
an den Inhalt der @code{HOME} Umgebungsvariable anf"ugen, und zuerst diesen
Dateiverzeichnisnamen anstelle des beim Kompilationsvorgangs eingebrannten
Dateiverzeichnisnamens benutzen (@pxref{Umgebungsvariablen, , GCAL_USR_DATADIR}).
Falls die Umgebungsvariable @code{HOME} weder definiert noch gesetzt ist, so
"ubergeht Gcal diesen Schritt.

@cindex Umgebungsvariable, @code{GCAL_SYS_DATADIR}
@cindex @code{GCAL_SYS_DATADIR} Umgebungsvariable
@vindex GCAL_SYS_DATADIR
@item
Sollten alle bisherigen Aktionen versagt haben, so inspiziert Gcal das
@emph{System-Datenverzeichnis} (normalerweise @w{@file{/usr/local/share/gcal}}
oder @w{@file{$(prefix)/share/gcal}}) nach der Standard-Ressourcendatei.  Dieses
Verzeichnis ist ein Dateiverzeichnis absolut zum @emph{Wurzel}/@emph{$(prefix)}
Dateiverzeichnis.  Falls eine @w{@code{GCAL_SYS_DATADIR}} Umgebungsvariable
gesetzt ist, so wird Gcal zuerst diesen Dateiverzeichnisnamen anstelle des beim
Kompilationsvorgang eingebrannten Dateiverzeichnisnamens benutzen
(@pxref{Umgebungsvariablen, , GCAL_SYS_DATADIR}).
@end enumerate

@noindent
Falls die Standard-Ressourcendatei nicht w"ahrend der Schritte 1@dots{}4 des
Datei-Suchmechanismus' aufgefunden wurde, so werden keinerlei Terminwarnungen
erzeugt!

@sp 2

@noindent
Wenn ein @samp{-f@r{|}F @var{Dateiname}@r{[}+@dots{}@r{]}} bzw.@:
@w{@samp{--resource-file=@var{Dateiname}}} Kommandozeilenargument vorgefunden
wird, so wird eine Datei @var{Dateiname} anstelle der Standard-Ressourcendatei
als Ressourcendatei benutzt.
@xref{Terminwarnung Optionen, , @samp{--resource-file=@var{Dateiname}}}.
@sp 2

@cindex Erweiterter Dateiname
@cindex Dateiname, erweitert
@noindent
Ein @dfn{erweiterter Dateiname} enth"alt ein oder mehrere @samp{/}
@footnote{Betriebssysteme wie z.B.@: @w{MS-DOS} oder OS/2 verwenden das
@samp{\} Zeichen, mit dem ein Dateiverzeichnis von einem Dateinamen separiert
wird.} Zeichen und bezeichnet eine Datei, deren Zugriffspfad entweder vom
Wurzeldateiverzeichnis (root-directory) aus fest vorgegeben ist, wie z.B.@:
@samp{/foo/bar/file}, oder vom aktuellen Dateiverzeichnis aus fest vorgegeben
ist, wie z.B.@: @samp{./bar/file} oder @samp{../bar/file}.  Falls
@var{Dateiname} ein erweiterter Dateiname ist:

@quotation
Wenn @var{Dateiname} vorgefunden wird, so wird Gcal diese Datei auswerten.@*
Wenn @var{Dateiname} nicht vorgefunden wird, so wird Gcal diese Datei nicht
auswerten.
@end quotation

@sp 2

@need 1000
@cindex Einfacher Dateiname
@cindex Dateiname, einfacher
@noindent
Ein @dfn{einfacher Dateiname} enth"alt keinen Verweis auf einen Zugriffspfad,
der entweder vom Wurzeldateiverzeichnis oder vom aktuellen Dateiverzeichnis
aus fest vorgegeben ist, wie z.B.@: @samp{file} oder @samp{bar/file}.  Falls
@var{Dateiname} ein einfacher Dateiname ist:

@quotation
Gcal wird versuchen, die Datei @var{Dateiname} unter Zuhilfenahme des zuvor
erkl"arten Datei-Suchmechanismus' aufzufinden.
@end quotation

@page
@node Struktur einer Ressourcendatei, Datumteil einer Zeile, Ressourcendatei, Ressourcendatei
@subsection Struktur einer Ressourcendatei
@cindex Struktur einer Ressourcendatei
@cindex Ressourcendatei, Struktur
@cindex Ressourcendatei, zwei Teile einer Zeile
@cindex Trennzeichen, whitespace
@cindex Whitespace Trennzeichen
@cindex Liste von Whitespace-Zeichen
@cindex Ressourcendatei, Einschr"ankungen
@cindex Einschr"ankungen in Ressourcendatei

@noindent
Eine Gcal Ressourcendatei ist zun"achst einmal eine reine @sc{ascii}
Textdatei, die mit einem beliebigen Texteditor oder durch Umlenkung des
@emph{Standardausgabe-Ger"atekanals} in eine Datei erzeugt werden kann, z.B.@::

@cindex Umlenkung der Standardausgabe, Anf"ugen an Datei
@example
@cartouche
$ echo '19930217 Text'>> Ressourcendatei @key{RET}
@end cartouche
@end example

@noindent
Jede Ressourcendatei mu"s eine besondere, aber einfache Zeilenstruktur
aufweisen, so da"s Gcal auch in der Lage ist, deren Inhalt zu interpretieren.
Jeder Termineintrag, welcher in einer Zeile einer Ressourcendatei vorgenommen
wurde, mu"s in zwei Teile aufgespalten werden, n"amlich einerseits in einen
@emph{Datumteil} und andererseits in einen optionalen @emph{Textteil}, welche
durch mindestens @strong{ein} @dfn{whitespace} Trennzeichen (Tab, Space,
Form-Feed @dots{}) voneinander abgetrennt werden m"ussen.  Wird kein
@emph{Textteil} angegeben, so entf"allt nat"urlich auch die Angabe des
zur Trennung dieser beiden Teile notwendigen @emph{whitespace} Zeichens.

@cindex Umlenkung der Standardausgabe
@noindent
Eine Zeile mu"s stets mit einem @samp{\n} (Newline) Zeichen enden, ausgenommen
es ist die letzte Zeile in einer Ressourcendatei.  Die maximale L"ange einer
Zeile ist allerdings begrenzt auf @value{GCAL-RCL} @footnote{Normalerweise
entspricht das zum Beispiel auf einer @w{16-Bit} Maschinenarchitektur dem Wert
@w{@t{32.767}} @equiv{} @w{@t{(2^15)-1}}; auf einer @w{32-Bit}
Maschinenarchitektur dem Wert @w{@t{2.147.483.647}} @equiv{} @w{@t{(2^31)-1}}
usw.} Zeichen.  Bei Umlenkung des @emph{Standardausgabe-Ger"atekanals} in eine
Datei wird der Zeile automatisch ein Newline Zeichen angef"ugt, bei Benutzung
von einem Texteditor normalerweise dann, wenn die geschriebene Zeile mittels
der @key{RET} Taste abgeschlossen wird.  Sollte der verwendete Texteditor
hinsichtlich der Wirkungsweise der @key{RET} Taste und der Generierung des
damit verbundenen Newline Zeichens nicht wie angegeben arbeiten, so sollte
der Texteditor in diese Betriebsart versetzt werden.  Sollte das nicht
m"oglich sein, so ist der verwendete Texteditor f"ur die Erzeugung von Gcal
Ressourcendateien unbrauchbar!

@sp 2

@noindent
Die Zeilenstruktur eines Termineintrags ist:

@example
@var{Datumteil} @r{[} @emph{whitespace} @var{Textteil} @r{]} @emph{newline}
@end example

@noindent
oder konkreter, z.B.@::

@example
@var{jjjj}@r{[}@var{mm}@r{[}@var{tt}@r{|}@var{www}@r{[}@var{n}@r{]]]} @r{[} @emph{whitespace} @var{Text} @r{]} @emph{newline}
@end example

@noindent
oder noch konkreter, z.B.@::

@example
19940217 Hallo, ich bin der Text!
@end example

@sp 2

@noindent
Neben Eintr"agen zur Terminwarnung k"onnen noch weitere
Eintr"age in einer Ressourcendatei vorgenommen werden, wie:

@noindent
Include Anweisungen@dots{}

@example
#include <@var{Dateiname}>
#include "@var{Dateiname}"
@end example

@noindent
Datumvariablenzuweisungen-/ operationen@dots{}

@example
@group
@var{dvar}=@var{NICHTS}
@var{dvar}=@var{mm}@var{tt}
@var{dvar}=@var{mm}@var{www}@var{n}
@var{dvar}=*d@var{n}@r{[}@var{www}@r{]}
@var{dvar}=*w@var{n}@r{[}@var{www}@r{]}
@var{dvar}=@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}
@var{dvar}++
@var{dvar}--
@var{dvar}+=@var{n}@r{[}@var{www}@r{]}
@var{dvar}-=@var{n}@r{[}@var{www}@r{]}
@end group
@end example

@noindent
Textvariablenzuweisungen@dots{}

@example
@var{tvar}=@r{[}@var{Text}@r{]}
@end example

@noindent
Textvariablenreferenzen@dots{}

@example
@var{tvar}
@end example

@noindent
Textvariablenreferenzen zu Anfang einer Zeile der Gcal Ressourcendatei d"urfen
allerdings nur dann verwendet werden, falls sichergestellt ist, da"s sich nach
deren vollst"andiger Expansion eine g"ultige Zeile der Gcal Ressourcendatei
ergibt.

@page
@node Datumteil einer Zeile, Weitere Datumteil-Attribute, Struktur einer Ressourcendatei, Ressourcendatei
@subsection Datumteil einer Zeile
@cindex Datumteil einer Zeile
@cindex Ressourcendatei, Datumteil

@noindent
Die Struktur von einem @dfn{Datumteil} @minus{} welcher Gcal die Information
gibt wann ein Termin stattfindet @minus{} einer Zeile der Gcal Ressourcendatei
ist

@noindent
@w{@strong{Entweder}: @samp{@var{jjjj}@r{[}@var{mm}@r{[}@var{tt}@r{|}@var{www}@r{[}@var{n}@r{]]]}}}

@quotation
@table @samp
@item @var{jjjj}
(4 Ziffern), ist das Jahr einschlie"slich des Jahrhunderts (Bereich
0000@dots{}9999).  Es sind f"uhrende Nullen anzugeben falls das Jahr
kleiner 1000 ist und weitere Komponenten des Datumteils dem Jahr folgen.

@item @var{mm}
(2 Ziffern oder 3 Zeichen), ist der Monat (Bereich 00@dots{}12 oder 99, bzw.@:
Jan, Feb@dots{}).  99 kodiert stets den letzten Monat eines Jahres (@equiv{}
Dezember). Es sind f"uhrende Nullen anzugeben falls der Monat kleiner 10 ist
und weitere Komponenten des Datumteils dem Monat folgen.

@item @var{tt}
(2 Ziffern), ist der Tag (Bereich 00@dots{}31 oder 99).  99 kodiert stets den
letzten Tag eines Monats.  Es sind f"uhrende Nullen anzugeben falls der Tag
kleiner 10 ist und weitere Komponenten des Datumteils dem Tag folgen.

@item @var{www}
(2@dots{}3 Zeichen), ist ein Wochentagsname im Kurzformat (Bereich
Mon@dots{}Son).

@item @var{n}
(1 Ziffer), ist der @w{@var{n}'te} Wochentag @var{www} im Monat (Bereich
1@dots{}5 oder 9).

@itemize @bullet
@item
@var{n} @equiv{} 1@dots{}5@*
@w{@var{n}'ter} @var{www} Wochentag im Monat.

@item
@var{n} @equiv{} 9@*
Letzter @var{www} Wochentag im Monat.
@end itemize
@end table
@end quotation

@noindent
@w{@strong{Oder}: @samp{@var{jjjj}*d@r{|}w@var{n}@r{[}@var{www}@r{]}}}

@quotation
@table @samp
@item @var{jjjj}
(4 Ziffern), ist das Jahr einschlie"slich des Jahrhunderts (Bereich
0000@dots{}9999).  Es sind f"uhrende Nullen anzugeben falls das Jahr
kleiner 1000 ist und weitere Komponenten des Datumteils dem Jahr folgen.

@item *d
(2 Zeichen), ist ein Bezug auf ein gew"ohnliches Tagesdatum.

@item *w
@cindex @sc{iso}-8601:1988
(2 Zeichen), ist ein Bezug auf ein @sc{iso}-8601:1988 Wochendatum.

@item @var{n}
(1@dots{}3 Ziffern), ist der Wert in Tagen oder Wochen, an welchem der Termin
auftritt.  99 in Verbindung mit einem Wochentagsnamen im Kurzformat kodiert
stets den letzten Wochentag @var{www} eines Jahres.  999 in Verbindung mit
@samp{*d} kodiert stets den letzten Tag eines Jahres, also den 31'ten Dezember.
Falls das berechnete Datum nicht im Jahr auftritt, also au"serhalb der
Jahresgrenzen liegt, so wird die Terminwarnung unterdr"uckt.

@item @var{www}
(2@dots{}3 Zeichen), ist ein Wochentagsname im Kurzformat (Bereich
Mon@dots{}Son).
@end table
@end quotation

@noindent
@w{@strong{Oder}: @samp{@var{jjjj}@@e@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{]}}}

@quotation
@table @samp
@item @var{jjjj}
(4 Ziffern), ist das Jahr einschlie"slich des Jahrhunderts (Bereich
0000@dots{}9999).  Es sind f"uhrende Nullen anzugeben falls das Jahr
kleiner 1000 ist und weitere Komponenten des Datumteils dem Jahr folgen.

@item @@e
(2 Zeichen), ist ein Bezug auf das Datum des Ostersonntags.

@item @@@var{dvar}
(2 Zeichen), ist ein Bezug auf ein Datumvariable.

@item @r{[}+@r{|}-@r{]}@var{n}
(1@dots{}4 alphanumerische Zeichen), ist der optionale Versatz in Tagen, an
welchem der Termin relativ zum Datum des Ostersonntags oder zum Datum der
Datumvariablen auftritt.  -999 kodiert stets den ersten Tag eines Jahres,
also den 1'ten Januar.  +999 oder 999 kodiert stets den letzten Tag eines
Jahres, also den 31'ten Dezember.  Falls das berechnete Datum nicht im Jahr
auftritt, also au"serhalb der Jahresgrenzen liegt, so wird die Terminwarnung
unterdr"uckt.
@end table
@end quotation

@noindent
@w{@strong{Oder}: @samp{@var{jjjj}@@e@r{|}@var{dvar}@r{[}+@r{|}-@r{]}@var{n}@var{www}}}

@quotation
@table @samp
@item @var{jjjj}
(4 Ziffern), ist das Jahr einschlie"slich des Jahrhunderts (Bereich
0000@dots{}9999).  Es sind f"uhrende Nullen anzugeben falls das Jahr
kleiner 1000 ist und weitere Komponenten des Datumteils dem Jahr folgen.

@item @@e
(2 Zeichen), ist ein Bezug auf das Datum des Ostersonntags.

@item @@@var{dvar}
(2 Zeichen), ist ein Bezug auf ein Datumvariable.

@item @r{[}+@r{|}-@r{]}@var{n}@var{www}
(3@dots{}7 alphanumerische Zeichen), ist der optionale Versatz in Wochentagen,
an welchem der Termin relativ zum Datum des Ostersonntags oder zum Datum der
Datumvariablen auftritt.  -99 kodiert stets den ersten Wochentag @var{www}
eines Jahres.  +99 oder 99 kodiert stets den letzten Wochentag @var{www}
eines Jahres.  Falls das berechnete Datum nicht im Jahr auftritt, also
au"serhalb der Jahresgrenzen liegt, so wird die Terminwarnung unterdr"uckt.
@end table
@end quotation

@need 2000
@noindent
@strong{Bitte beachten:}

@itemize @bullet
@item
Falls @var{jjjj} nicht als festes Jahr, sondern als 0000 angegeben ist:@*
Es wird angenommen, da"s der Monat und Tag j"ahrliche Ereignisse sind,
und der @emph{Textteil} wird f"ur jedes Jahr ausgegeben.

@item
Falls @var{mm} nicht als fester Monat, sondern als 00 oder gar nicht angegeben
ist:@*
Es wird angenommen, da"s der Tag ein monatliches Ereignis im angegebenen
Jahr ist, und der @emph{Textteil} wird f"ur jeden Monat ausgegeben.

@item
Falls @var{tt} nicht als fester Tag, sondern als 00 oder gar nicht angegeben
ist:@*
Es wird angenommen, da"s der Tag ein t"agliches Ereignis im angegebenen
Monat und Jahr ist, und der @emph{Textteil} wird f"ur jeden Tag ausgegeben.

@item
Falls ein Wochentagsname @var{www} im 2@dots{}3-stelligen Kurzformat
angegeben ist, z.B.:@: @samp{Mon, Die@dots{}}@*
Es wird angenommen, da"s der gegebene Wochentagsname ein w"ochentliches
Ereignis im angegebenen Monat und Jahr ist, und der @emph{Textteil} wird
f"ur jede Woche ausgegeben.
@end itemize

@page
@node Weitere Datumteil-Attribute, Textteil einer Zeile, Datumteil einer Zeile, Ressourcendatei
@subsection Weitere Datumteil-Attribute
@cindex Weitere Datumteil-Attribute

@menu
* Listen von Tagen::               Wie eine Liste von Tagen benutzt wird.
* Bereiche von Tagen::             Wie ein Bereich von Tagen benutzt wird.
* Wiederholungsfaktor von Tagen::  Wie ein solcher Faktor benutzt wird.
* Auftretensfaktor von Tagen::     Wie ein solcher Faktor benutzt wird.
@end menu

@noindent
Der Datumteil einer Gcal Ressourcendatei darf mit weiteren Attributen
ausgestattet werden.  Weitere Attribute sind entweder die Angabe einer
Liste von Tagen oder eines Bereichs von Tagen, in welchem der Termin
stattfinden soll.  Weitere Attribute sind auch Faktoren, welche eine
Wiederholungsdauer oder einen Auftretenszeitpunkt eines Termins bestimmen.

@noindent
Grunds"atzlich d"urfen alle folgenderma"sen strukturierten Datumteile einer
Gcal Ressourcendatei mit weiteren Attributen versehen werden:

@itemize @bullet
@item
@w{@samp{@var{jjjj}@var{mm}@dots{}}}

@item
@w{@samp{@var{jjjj}*d@r{|}w@dots{}}}

@item
@w{@samp{@var{jjjj}@@e@r{|}@var{dvar}@dots{}}}
@end itemize

@cindex Fiskaljahr, Einschr"ankungen
@cindex Einschr"ankungen bei Verwendung von Fiskaljahren
@cindex 3-Monatsmodus, Einschr"ankungen
@cindex Einschr"ankungen bei Verwendung des 3-Monatsmodus
@noindent
@strong{Vorsicht:}@*
Falls der Datumteil mit weiteren Attributen ausgestattet ist und das
Jahr des Termin unbestimmt ist, d.h.@: das Jahr @samp{@var{jjjj}} ist auf
Null gesetzt, so werden solche Datumteile @strong{nur} innerhalb einfacher
Jahresgrenzen korrekt berechnet, also nicht in denjenigen Terminwarnungen,
welche ausgegeben werden, nachdem das laufende Jahr gewechselt hat, z.B.@:
in @strong{Fiskaljahren}.

@node Listen von Tagen, Bereiche von Tagen, Weitere Datumteil-Attribute, Weitere Datumteil-Attribute
@subsubsection Listen von Tagen
@cindex Listen von Tagen
@cindex @samp{,} Trennzeichen von Listen von Tagen
@cindex Trennzeichen von Listen von Tagen, @samp{,}

@noindent
Eine Liste von Tagen wird durch ein @samp{,} Trennzeichens kenntlich gemacht;
diese mu"s mindestens zwei Elemente enthalten, und darf unbegrenzt viele
Elemente enthalten.  Ein einzelnes Element der Liste darf nicht auf den
Wert Null gesetzt werden und somit unkonkret sein, was in diesem Zusammenhang
auch keinen Sinn machen w"urde.

@noindent
Eine Liste von Tagen wird dazu benutzt, um wiederkehrende Termine zu definieren
und dabei nur eine Zeile in der Ressourcendatei zu belegen, anstelle diese
wiederkehrenden Termine einzeln in mehreren Zeilen in der Ressourcendatei
festzulegen.  Angenommen ein Termin tritt stets am 1'ten und am 15'ten Tag
in jedem beliebigen Monat des Jahres 1996 auf, z.B.@:
@samp{Steuer-Voranmeldungen}, so kann einerseits f"ur den 1'ten im Monat
ein Termineintrag in der Ressourcendatei vorgenommen werden und auch f"ur den
15'ten im Monat, was in diesem Fall zwei Eintr"age in der Ressourcendatei zu
einem solchen Termin erg"abe.

@noindent
Andererseits kann mittels einer Liste von Tagen dieser Aufwand aber nun
verringert werden hin zu nur einen Eintrag in der Ressourcendatei, welcher
gleicherma"sen f"ur den 1'ten und f"ur den 15'ten Tag eines beliebigen Monat
gilt, n"amlich

@example
19960001,15 Steuer-Voranmeldungen
@end example

@cindex Zul"assige Datumteile bei Listen von Tagen
@cindex Listen von Tagen, zul"assige Datumteile bei
@noindent
Erlaubt ist die Benutzung der Listen von Tagen im Datumteil wie folgt:

@itemize @bullet
@item
@w{@samp{@var{jjjj}@var{mm}@var{tt}@r{|}@var{www}@r{|}@var{www}@var{n},@r{[}@var{mm}@r{]}@var{tt}@r{|[}@var{mm}@r{]}@var{www}@r{|}@r{[}@var{mm}@r{]}@var{www}@var{n} @dots{}}}

@item
@w{@samp{@var{jjjj}*d@r{|}w@var{n}@r{|}@var{n}@var{www},@var{n}@r{|}@var{n}@var{www} @dots{}}}

@item
@w{@samp{@var{jjjj}@@e@r{|}@var{dvar},@r{|[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]},@r{[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]} @dots{}}}
@end itemize

@cindex Beispiele zu Listen von Tagen
@cindex Listen von Tagen, Beispiele zu
@noindent
Einige Beispiele hierzu:

@table @samp
@item 000001fr3,12,99,mon,apr14,993,julfre3,08fr
In jedem Jahr im Monat Januar: am 3'ten Freitag, am 12'ten, am letzten Tag des
Monats sowie an jedem Montag.  Und in jedem Jahr: am 14'ten April, am 3'ten
Dezember, am 3'ten Freitag im Juli sowie an jedem Freitag im August.

@item 199600mon,fr,12
Im Jahr 1996 in jedem Monat: jeden Montag, jeden Freitag sowie an jedem 12'ten.

@item 0*d1,1fr,999,17mo
In jedem Jahr: am ersten Tag des Jahres, am 1'ten Freitag des Jahres, am
letzten Tag des Jahres sowie am 17'ten Montag des Jahres.

@item 1996*w1fr,1,17mo,99fr
Im Jahr 1996: am Freitag der 1'ten @sc{iso}-Kalenderwoche, am Montag der ersten
@sc{iso}-Kalenderwoche, am Montag der 17'ten @sc{iso}-Kalenderwoche sowie am
Freitag der letzten @sc{iso}-Kalenderwoche.

@item 0@@a,+1,-3,5,+4fr,2fr,-10sa
In jedem Jahr: am Datum der Datumvariablen @var{a}, einen Tag nach dem
Datum von @var{a}, drei Tage vor dem Datum von @var{a}, f"unf Tage nach dem
Datum von @var{a}, vier Freitage nach dem Datum von @var{a}, zwei Freitage
nach dem Datum von @var{a} sowie zehn Samstage vor dem Datum von @var{a}.

@item 1996@@e+1,-3,5,+4fr,2fr,-10sa
Im Jahr 1996: einen Tag nach Ostersonntag, drei Tage vor Ostersonntag,
f"unf Tage nach Ostersonntag, vier Freitage nach Ostersonntag, zwei Freitage
nach Ostersonntag sowie zehn Samstage vor Ostersonntag.
@end table

@node Bereiche von Tagen, Wiederholungsfaktor von Tagen, Listen von Tagen, Weitere Datumteil-Attribute
@subsubsection Bereiche von Tagen
@cindex Bereiche von Tagen
@cindex @samp{#} Trennzeichen von Bereichen von Tagen
@cindex Trennzeichen von Bereichen von Tagen, @samp{#}

@noindent
Ein Bereich von Tagen wird durch ein @samp{#} Trennzeichens kenntlich gemacht
und besteht aus genau zwei Elementen, n"amlich aus Starttag und Endetag.  Der
Starttag wie auch der Endetag des Bereichs darf nicht auf den Wert Null gesetzt
werden und somit unkonkret sein, was in diesem Zusammenhang auch keinen Sinn
machen w"urde.

@noindent
Ein Bereich von Tagen wird ebenso wie eine Liste von Tagen dazu benutzt,
um wiederkehrende Termine zu definieren und dabei nur eine Zeile in der
Ressourcendatei zu belegen, anstelle diese wiederkehrenden Termine einzeln
in mehreren Zeilen in der Ressourcendatei festzulegen.  Angenommen ein Termin
tritt stets w"ahrend des 1'ten und des 15'ten Tages (einschlie"slich) in
jedem beliebigen Monat des Jahres 1996 auf, z.B.@: @samp{Innendienst},
so kann einerseits f"ur den 1'ten im Monat ein Termineintrag in der
Ressourcendatei vorgenommen werden, f"ur den 2'ten im Monat ebenso, bis hin
zum 15'ten im Monat, was in diesem Fall 15 Eintr"age in der Ressourcendatei
zu einem solchen Termin erg"abe (einmal abgesehen von der M"oglichkeit,
da"s in einem solchen Fall auch eine Liste von Tagen verwendet werden kann).

@noindent
Andererseits kann mittels eines Bereichs von Tagen dieser Aufwand aber nun
verringert werden hin zu nur einen Eintrag in der Ressourcendatei, welcher
gleicherma"sen f"ur den 1'ten bis hin zum 15'ten Tag eines beliebigen Monat
gilt, n"amlich

@example
19960001#15 Innendienst
@end example

@cindex Zul"assige Datumteile bei Bereichen von Tagen
@cindex Bereichen von Tagen, zul"assige Datumteile bei
@noindent
Erlaubt ist die Benutzung der Bereiche von Tagen im Datumteil wie folgt:

@itemize @bullet
@item
@w{@samp{@var{jjjj}@var{mm}@var{www}#@var{www}}}

@item
@w{@samp{@var{jjjj}@var{mm}@var{tt}@r{|}@var{www}@var{n}#@r{[}@var{mm}@r{]}@var{tt}@r{|[}@var{mm}@r{]}@var{www}@var{n}}}

@item
@w{@samp{@var{jjjj}*d@r{|}w@var{n}@r{[}@var{www}@r{]}#@var{n}@r{[}@var{www}@r{]}}}

@item
@w{@samp{@var{jjjj}@@e@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}#@r{[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]}}}
@end itemize

@cindex Beispiele zu Bereiche von Tagen
@cindex Bereiche von Tagen, Beispiele zu
@noindent
Einige Beispiele hierzu:

@table @samp
@item 199600mon#fr
Im Jahr 1996 in jedem Monat: an jedem Tag, der in der Tagesfolge
@samp{mo, di, mi, do, fr} auftritt.

@item 000000fr#mon
In jedem Jahr in jedem Monat: an jedem Tag, der in der Tagesfolge
@samp{fr, sa, so, mo} auftritt.

@item 000001fr3#12
In jedem Jahr im Monat Januar: an jedem Tag, der in den Zeitraum
vom 3'ten Freitag des Monats bis zum 12'ten des Monats f"allt.

@item 00000112#fr3
In jedem Jahr im Monat Januar: an jedem Tag, der in den Zeitraum
vom 12'ten des Monats bis zum 3'ten Freitag des Monats f"allt.

@item 00000112#augfre3
In jedem Jahr: an jedem Tag, der in den Zeitraum vom 12'ten Januar
bis zum 3'ten Freitag des Monats August f"allt.

@item 0000sep13#99fr9
In jedem Jahr: an jedem Tag, der in den Zeitraum vom 13'ten September
bis zum letzten Freitag des Monats Dezember f"allt.

@item 0*d1#1fr
In jedem Jahr: an jedem Tag, der in den Zeitraum
vom 1'ten Tag des Jahres bis zum 1'ten Freitag des Jahres f"allt.

@item 0*d99fr#333
In jedem Jahr: an jedem Tag, der in den Zeitraum
vom letzten Freitag des Jahres bis zum 333'ten Tag des Jahres f"allt.

@item 1996*w1fr#17mo
Im Jahr 1996: an jedem Tag, der in den Zeitraum
vom Freitag der 1'ten @sc{iso}-Kalenderwoche bis zum Montag der 17'ten
@sc{iso}-Kalenderwoche f"allt.

@item 0@@a#+4fr
In jedem Jahr: an jedem Tag, der in den Zeitraum
vom Datum der Datumvariablen @var{a} bis zum 4'ten Freitag nach dem Datum
der Datumvariablen @var{a} f"allt.

@item 1996@@e-3#+9fr
Im Jahr 1996: an jedem Tag, der in den Zeitraum
vom Datum drei Tage vor Ostersonntag bis zum 9'ten Freitag nach dem Datum
des Ostersonntag f"allt.
@end table

@node Wiederholungsfaktor von Tagen, Auftretensfaktor von Tagen, Bereiche von Tagen, Weitere Datumteil-Attribute
@subsubsection Wiederholungsfaktor von Tagen
@cindex Wiederholungsfaktor von Tagen, @samp{:@var{n}}
@cindex @samp{:@var{n}} Wiederholungsfaktor von Tagen

@noindent
Ein Wiederholungsfaktor von Tagen (@samp{:@var{n}}) wird durch ein @samp{:}
Zeichen kenntlich gemacht und mu"s dem Tagesfeld, welches einen konkreten
Wert in einem Datumteil einer Gcal Ressourcendatei haben mu"s und nicht auf
den Wert Null gesetzt sein darf, folgen bzw.@: einem Auftretensfaktor von
Tagen entweder vorangehen oder folgen.  Mit Ausnahme von Bereichen von Tagen
oder Terminen, die nur an einem bestimmten Wochentag auftreten wie z.B.@:
@samp{199600mon Immer Montags 1996}, darf ein solcher Wiederholungsfaktor in
allen ansonsten m"oglichen Angaben von Datumteilen einer Gcal Ressourcendatei
auftreten.

@noindent
Dieser Faktor darf den Wert @samp{1}@dots{}@samp{999} annehmen.  Werte die
gr"o"ser sind als die tats"achliche Differenz zwischen dem Datum des ersten
Auftretens des Termins und dem letzten Tag des Jahres werden stets auf diese
tats"achliche Differenz reduziert.  So bedeutet dann jeder Wert gr"o"ser
@samp{365} (oder @samp{366} in Schaltjahren) stets einen Wiederholungsfaktor
bis hin zum letzten Tag des Jahres.

@noindent
Ein Wiederholungsfaktor von Tagen wird dazu benutzt, um wiederkehrende Termine
zu definieren und dabei nur eine Zeile in der Ressourcendatei zu belegen,
anstelle diese wiederkehrenden Termine einzeln in mehreren Zeilen in der
Ressourcendatei festzulegen.  Angenommen ein Termin tritt stets am 15'ten Tag
in jedem beliebigen Monat des Jahres 1996 auf und erstreckt sich "uber
einen Zeitraum von insgesamt vier Tagen (einschlie"slich des 15'ten selbst),
z.B.@: @samp{Mitarbeiterschulung}, so kann einerseits f"ur den 15'ten im Monat
ein Termineintrag in der Ressourcendatei vorgenommen werden und auch f"ur die
dem 15'ten im Monat folgenden drei Tage, was in diesem Fall vier Eintr"age in
der Ressourcendatei zu einem solchen Termin erg"abe (einmal abgesehen von der
M"oglichkeit, da"s in einem solchen Fall auch eine Liste oder ein Bereich
von Tagen verwendet werden kann).

@noindent
Andererseits kann mittels eines Wiederholungsfaktors von Tagen dieser Aufwand
aber nun verringert werden hin zu nur einen Eintrag in der Ressourcendatei,
welcher gleicherma"sen f"ur den 15'ten und die dem 15'ten folgenden drei Tage
eines beliebigen Monat gilt, n"amlich

@example
19960015:4 Mitarbeiterschulung
@end example

@cindex Zul"assige Datumteile bei Wiederholungsfaktoren von Tagen
@cindex Wiederholungsfaktoren von Tagen, zul"assige Datumteile bei
@noindent
Erlaubt ist die Benutzung der Wiederholungsfaktoren von Tagen im Datumteil
wie folgt:

@itemize @bullet
@item
@w{@samp{@var{jjjj}@var{mm}@var{tt}:@var{n}@r{|}@var{www}@var{n}:@var{n}}}

@item
@w{@samp{@var{jjjj}*d@r{|}w@var{n}:@var{n}@r{|}@var{n}@var{www}:@var{n}}}

@item
@w{@samp{@var{jjjj}@@e@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}:@var{n}}}

@item
@w{@samp{@var{jjjj}@var{mm}@var{tt}:@var{n}@r{|}@var{www}@var{n}:@var{n},@r{[}@var{mm}@r{]}@var{tt}:@var{n}@r{|[}@var{mm}@r{]}@var{www}@var{n}:@var{n} @dots{}}}

@item
@w{@samp{@var{jjjj}*d@r{|}w@var{n}:@var{n}@r{|}@var{n}@var{www}:@var{n},@var{n}:@var{n}@r{|}@var{n}@var{www}:@var{n} @dots{}}}

@item
@w{@samp{@var{jjjj}@@e@r{|}@var{dvar}:@var{n},@r{|[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]}:@var{n},@r{[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]}:@var{n} @dots{}}}
@end itemize

@cindex Beispiele zu Wiederholungsfaktoren von Tagen
@cindex Wiederholungsfaktoren von Tagen, Beispiele zu
@noindent
Einige Beispiele hierzu:

@table @samp
@item 000001fr3:11
In jedem Jahr im Monat Januar: an jedem Tag, der in den Zeitraum
vom 3'ten Freitag des Monats und den darauffolgenden zehn Tagen f"allt.

@item 00000112:3
In jedem Jahr im Monat Januar: an jedem Tag, der in den Zeitraum
vom 12'ten des Monats und den darauffolgenden zwei Tagen f"allt.

@item 00000112:3,fr3:5
In jedem Jahr im Monat Januar: an jedem Tag, der in den Zeitraum
vom 12'ten des Monats und den darauffolgenden zwei Tagen f"allt, sowie auch
in den Zeitraum vom 3'ten Freitag des Monats und den darauffolgenden vier
Tagen f"allt.

@item 0*d1:1
In jedem Jahr: an jedem Tag, der in den Zeitraum
vom 1'ten Tag des Jahres und keinem darauffolgenden Tag f"allt.

@item 0*d1:2
In jedem Jahr: an jedem Tag, der in den Zeitraum
vom 1'ten Tag des Jahres und dem darauffolgenden Tag f"allt.

@item 0*d99fr:333
In jedem Jahr: an jedem Tag, der in den Zeitraum
vom letzten Freitag des Jahres und den darauffolgenden 332 Tagen f"allt.
Allerdings werden in F"allen wie diesen, wo ein solcher Termin die Jahresgrenze
"uberschreiten w"urde, nur Termine bis zum letzten Tag des Jahres produziert.

@item 1996*w1fr:17
Im Jahr 1996: an jedem Tag, der in den Zeitraum
vom Freitag der 1'ten @sc{iso} Kalenderwoche und den darauffolgenden 16 Tagen
f"allt.

@item 0@@a:4
In jedem Jahr: an jedem Tag, der in den Zeitraum
vom Datum der Datumvariablen @var{a} und den darauffolgenden drei Tagen f"allt.

@item 1996@@e-3:9
Im Jahr 1996: an jedem Tag, der in den Zeitraum
vom Datum drei Tage vor Ostersonntag und den darauffolgenden acht Tagen f"allt.
@end table

@node Auftretensfaktor von Tagen, , Wiederholungsfaktor von Tagen, Weitere Datumteil-Attribute
@subsubsection Auftretensfaktor von Tagen
@cindex Auftretensfaktor von Tagen, @samp{.@var{n}}
@cindex @samp{.@var{n}} Auftretensfaktor von Tagen

@noindent
Ein Auftretensfaktor von Tagen (@samp{.@var{n}}) wird durch ein @samp{.}
Zeichen kenntlich gemacht und mu"s dem Tagesfeld, welches einen konkreten Wert
in einem Datumteil einer Gcal Ressourcendatei haben mu"s und nicht auf den Wert
Null gesetzt sein darf, folgen bzw.@: einem Wiederholungsfaktor von Tagen
entweder vorangehen oder folgen.  Mit Ausnahme von Terminen, die nur an einem
bestimmten Wochentag auftreten und als solche nicht als ein Bereich von Tagen
angegeben sind, wie z.B.@: @samp{199600mon Immer Montags 1996}, darf ein
solcher Wiederholungsfaktor in allen ansonsten m"oglichen Angaben von
Datumteilen einer Gcal Ressourcendatei auftreten.  Bei Listen von Tagen darf
dieser Faktor in jedem einzelnen Element angegeben werden, bei Bereichen von
Tagen darf dieser Faktor @strong{nur} dem Endetag folgen.  Allerdings macht
die Verwendung dieses Auftretensfaktors nur dann Sinn, wenn er entweder in
einem Bereich von Tagen, oder aber zusammen mit einem Wiederholungsfaktor
angegeben wird.

@noindent
Dieser Faktor darf den Wert @samp{1}@dots{}@samp{999} annehmen.  Wenn der
Faktor Werte annimmt, die gr"o"ser sind als die tats"achliche Differenz
zwischen dem Datum des Auftretens des Termins und dem letzten Tag des Jahres
bzw.@: dem Ende des Zeitraum, f"ur welchen die Termine entweder produziert
oder ber"ucksichtigt werden sollen, so wird ein solcher Termin ignoriert.

@noindent
Ein Auftretensfaktor von Tagen wird dazu benutzt, um einem bestimmten Versatz
in wiederkehrenden Terminen zu definieren.  Angenommen ein Termin tritt stets
am 15'ten Tag in jedem beliebigen Monat des Jahres 1996 auf und erstreckt sich
"uber einen Zeitraum von insgesamt sieben Tagen (einschlie"slich des 15'ten
selbst), soll aber nur jeden dritten Tag (d.h.@: jeweils zwei Tage sind zu
"uberspringen) innerhalb dieser Periode ber"ucksichtigt werden, z.B.@:
@samp{Seminar}, so kann einerseits f"ur den 15'ten im Monat ein Termineintrag
in der Ressourcendatei vorgenommen werden, f"ur den 18'ten und auch f"ur den
21'ten im Monat, was in diesem Fall drei Eintr"age in der Ressourcendatei zu
einem solchen Termin erg"abe (einmal abgesehen von der M"oglichkeit, da"s in
einem solchen Fall auch eine Liste von Tagen verwendet werden kann).

@noindent
Andererseits kann mittels eines Auftretensfaktors von Tagen dieser Aufwand aber
nun verringert werden hin zu nur einen Eintrag in der Ressourcendatei, welcher
gleicherma"sen f"ur den 15'ten, den 18'ten und den 21'ten eines beliebigen
Monat gilt, beispielsweise unter Verwendung eines Wiederholungsfaktors

@example
19960015:7.3 Seminar
@end example

@noindent
oder auch unter Verwendung eines Bereichs von Tagen

@example
19960015#21.3 Seminar
@end example

@cindex Zul"assige Datumteile bei Auftretensfaktoren von Tagen
@cindex Auftretensfaktoren von Tagen, zul"assige Datumteile bei
@noindent
Erlaubt ist die Benutzung der Auftretensfaktoren von Tagen im Datumteil
wie folgt:

@itemize @bullet
@item
@w{@samp{@var{jjjj}@var{mm}@var{tt}:@var{n}.@var{n}@r{|}@var{tt}.@var{n}:@var{n}}}

@item
@w{@samp{@var{jjjj}@var{mm}@var{www}@var{n}:@var{n}.@var{n}@r{|}@var{www}@var{n}.@var{n}:@var{n}}}

@item
@w{@samp{@var{jjjj}*d@r{|}w@var{n}:@var{n}.@var{n}@r{|}@var{n}.@var{n}:@var{n}}}

@item
@w{@samp{@var{jjjj}*d@r{|}w@var{n}@var{www}:@var{n}.@var{n}@r{|}@var{n}@var{www}.@var{n}:@var{n}}}

@item
@w{@samp{@var{jjjj}@@e@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}:@var{n}.@var{n}}}

@item
@w{@samp{@var{jjjj}@@e@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}.@var{n}:@var{n}}}

@item
@w{@samp{@var{jjjj}@var{mm}@var{tt}:@var{n}.@var{n}@r{|}@var{www}@var{n}:@var{n}.@var{n},@r{[}@var{mm}@r{]}@var{tt}:@var{n}.@var{n}@r{|[}@var{mm}@r{]}@var{www}@var{n}:@var{n}.@var{n} @dots{}}}

@item
@w{@samp{@var{jjjj}@var{mm}@var{tt}.@var{n}:@var{n}@r{|}@var{www}@var{n}.@var{n}:@var{n},@r{[}@var{mm}@r{]}@var{tt}:@var{n}.@var{n}@r{|[}@var{mm}@r{]}@var{www}@var{n}.@var{n}:@var{n} @dots{}}}

@item
@w{@samp{@var{jjjj}*d@r{|}w@var{n}:@var{n}.@var{n}@r{|}@var{n}@var{www}:@var{n}.@var{n},@var{n}:@var{n}.@var{n}@r{|}@var{n}@var{www}:@var{n}.@var{n} @dots{}}}

@item
@w{@samp{@var{jjjj}*d@r{|}w@var{n}.@var{n}:@var{n}@r{|}@var{n}@var{www}.@var{n}:@var{n},@var{n}.@var{n}:@var{n}@r{|}@var{n}@var{www}.@var{n}:@var{n} @dots{}}}

@item
@w{@samp{@var{jjjj}@@e@r{|}@var{dvar}:@var{n}.@var{n},@r{|[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]}:@var{n}.@var{n},@r{[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]}:@var{n}.@var{n} @dots{}}}

@item
@w{@samp{@var{jjjj}@@e@r{|}@var{dvar}.@var{n}:@var{n},@r{|[}+@r{|}.@r{]}@var{n}@r{[}@var{www}@r{]}.@var{n}:@var{n},@r{[}+@r{|}.@r{]}@var{n}@r{[}@var{www}@r{]}.@var{n}:@var{n} @dots{}}}

@item
@w{@samp{@var{jjjj}@var{mm}@var{www}#@var{www}.@var{n}}}

@item
@w{@samp{@var{jjjj}@var{mm}@var{tt}@r{|}@var{www}@var{n}#@r{[}@var{mm}@r{]}@var{tt}@r{|[}@var{mm}@r{]}@var{www}@var{n}.@var{n}}}

@item
@w{@samp{@var{jjjj}*d@r{|}w@var{n}@r{[}@var{www}@r{]}#@var{n}@r{[}@var{www}@r{]}.@var{n}}}

@item
@w{@samp{@var{jjjj}@@e@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}#@r{[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]}.@var{n}}}
@end itemize

@cindex Beispiele zu Auftretensfaktoren von Tagen
@cindex Auftretensfaktoren von Tagen, Beispiele zu
@noindent
Einige Beispiele hierzu:

@table @samp
@item 000001fr3:11.3
In jedem Jahr im Monat Januar: an jedem Tag, der in den Zeitraum
vom 3'ten Freitag und den darauffolgenden zehn Tagen f"allt, aber nur
jeden dritten Tag in diesem Zeitraum ("uberspringe jeweils zwei Tage).

@item 00000112:3.2
In jedem Jahr im Monat Januar: an jedem Tag, der in den Zeitraum
vom 12'ten des Monats und den darauffolgenden zwei Tagen f"allt, aber nur jeden
zweiten Tag in diesem Zeitraum ("uberspringe jeweil einen Tag).

@item 00000112:3.2,fr3:5.3
In jedem Jahr im Monat Januar: an jedem Tag, der in den Zeitraum
vom 12'ten des Monats und den darauffolgenden zwei Tagen f"allt, aber nur jeden
zweiten Tag ("uberspringe jeweils einen Tag) sowie auch am 3'ten Freitag im
Januar jeden Jahres und den darauffolgenden vier Tagen, aber nur jeden dritten
Tag ("uberspringe jeweils zwei Tage).

@item 0*d1:10.1
In jedem Jahr: an jedem Tag, der in den Zeitraum
vom 1'ten Tag des Jahres und den darauffolgenden neun Tagen f"allt, und das
f"ur jeden dieser Tage ("uberspringe jeweils null Tage) in diesem Zeitraum.

@item 0*d1:2.5
In jedem Jahr: an jedem Tag, der in den Zeitraum
vom 1'ten Tag des Jahres und dem darauffolgenden Tag f"allt, aber nur jeden
f"unften Tag ("uberspringe jeweils vier Tage) in diesem Zeitraum.  In einem
solchen Fall werden die dem Starttag (1'ter Tag des Jahres) folgenden Tage
(in diesem Beispiel nur einer) nicht respektiert, da der n"achste Tag, der
sich unter Ber"ucksichtigung des Auftretensfaktors ergibt, denjenigen Tag,
welcher sich mit dem Wiederholungsfaktor als Endetag der Periode errechnet,
"uberschreitet.

@item 0*d99fr:333.61
In jedem Jahr: an jedem Tag, der in den Zeitraum
vom letzten Freitag des Jahres und den darauffolgenden 332 Tagen f"allt,
aber nur jeden 61'ten Tag ("uberspringe jeweils 60 Tage) in diesem Zeitraum.
Allerdings werden in F"allen wie diesen, wo ein solcher Termin die Jahresgrenze
"uberschreiten w"urde, nur Termine bis zum letzten Tag des Jahres produziert.
Da nun aber mit einem Versatz von 60 Tage gearbeitet werden soll, wird keiner
der dem Starttag (letzter Freitag des Jahres) folgenden Tage (in diesem
Beispiel 332) respektiert, da der n"achste Tag, der sich unter
Ber"ucksichtigung des Auftretensfaktors ergibt, denjenigen Tag, welcher sich
mit dem Wiederholungsfaktor als Endetag der Periode errechnet (hier w"are es
der letzte Tag des Jahres), "uberschreitet.

@item 1996*w1fr:17.8
Im Jahr 1996: an jedem Tag, der in den Zeitraum
vom Freitag der 1'ten @sc{iso}-Kalenderwoche und den darauffolgenden 16 Tagen
f"allt, aber nur jeden achten Tag in diesem Zeitraum ("uberspringe jeweils
sieben Tage).

@item 0@@a:4.3
In jedem Jahr: an jedem Tag, der in den Zeitraum
vom Datum der Datumvariablen @var{a} und den darauffolgenden drei Tagen f"allt,
aber nur jeden dritten Tag in diesem Zeitraum ("uberspringe jeweils zwei Tage).

@item 1996@@e-3:9.4
Im Jahr 1996: an jedem Tag, der in den Zeitraum
vom Datum drei Tage vor Ostersonntag und den darauffolgenden acht Tagen f"allt,
aber nur jeden vierten Tag in diesem Zeitraum ("uberspringe jeweils drei Tage).

@item 1996@@e3#-20so.15
Im Jahr 1996: an jedem Tag, der in den Zeitraum
vom Datum drei Tage nach Ostersonntag bis zum 20'ten Sonntag vor Ostersonntag
f"allt, aber nur jeden 15'ten Tag in diesem Zeitraum ("uberspringe jeweils 14
Tage).
@end table

@page
@node Textteil einer Zeile, Zeile kommentieren, Weitere Datumteil-Attribute, Ressourcendatei
@subsection Textteil einer Zeile
@cindex Textteil einer Zeile
@cindex Textteil einer Zeile, Einschr"ankungen
@cindex Einschr"ankungen im Textteil einer Zeile
@cindex Handhabung von nicht druckbaren Zeichen im Textteil
@cindex Nicht druckbare Zeichen im Textteil, Handhabung von
@cindex Handhabung von besonderen Zeichensequenzen im Textteil
@cindex Besondere Zeichensequenzen im Textteil, Handhabung von
@cindex Ressourcendatei, Textteil
@cindex Ressourcendatei, Einschr"ankungen
@cindex Einschr"ankungen in Ressourcendatei

@noindent
Der @dfn{Textteil} einer Zeile der Ressourcendatei darf jeden beliebigen Text
enthalten den Sie m"ogen.  Falls der Textteil nicht von Gcal selbst erzeugte
Zeichen zur Druckaufbereitung oder Hervorhebung enth"alt oder Zeichen, denen
in der Tabelle des verwendeten Zeichensatzes ein Wert gr"o"ser 127 (dezimal)
zugeordnet ist (diese sind evtl.@: nicht druckbar), so werden auch diese
Zeichen von Gcal ausgegeben, allerdings @strong{uninterpretiert}!  Deswegen
k"onnen bei der Ausgabe solcher Zeichen unter Umst"anden Probleme mit der
verwendeten Bildschirmtreiber Software und/oder dem externen Paginiererprogramm
auftreten, ebenso wie beim Versand solcher Zeichen mittels elektronischer Post.

@cindex Handhabung von @code{NUL} Zeichen im Textteil
@cindex @code{NUL} Zeichen im Textteil, Handhabung von
@cindex Ressourcendatei, Textteil kommentieren
@noindent
Sogenannte @code{NUL} Zeichen (das ist das Zeichen, welchem in der Tabelle des
verwendeten Zeichensatzes der Wert Null zugeordnet ist) d"urfen auch im Textteil
enthalten sein, diese bewirken aber, da"s der gesamte Text, der dem ersten
Auftreten von einem @code{NUL} Zeichen folgt, unterdr"uckt wird.  Da es meiner
Meinung nach keinen erkennbaren Sinn macht auch diese Zeichen als solche
uninterpretiert auszugeben, dienen diese also nur zum kommentieren; ansonsten
w"urden @code{NUL} Zeichen auch die bereits vorgenannten Probleme verursachen.

@cindex Fortsetzungszeichen einer Zeile, @samp{\}
@cindex @samp{\} Fortsetzungszeichen einer Zeile
@cindex Ressourcendatei, Zeile fortsetzen
@cindex Zeile fortsetzen in Ressourcendatei
@noindent
Eine Zeile der Ressourcendatei wird auf der Folgezeile fortgesetzt, wenn
eine @w{@samp{\@r{-}\n}} @w{(Backslash-Newline)} Zeichensequenz vorgefunden
wird, d.h.@: das Newline Zeichen der Zeile durch ein Backslash Zeichen
unterdr"uckt wird, z.B.@::

@need 3000
@noindent
Die Zeile:
@example
000000Mo Jeden Montag
@end example

@noindent
und die Zeilen:
@example
@group
000000Mo \
Jeden \
Montag
@end group
@end example

@noindent
bewirken die gleiche Ausgabe und sind insofern identisch.

@cindex Ressourcendatei, Zeilenumbruch erzwingen
@cindex Zeilenumbruch erzwingen in Ressourcendatei
@cindex Zeilenumbruchzeichen, @samp{~}
@cindex @samp{~} Zeilenumbruchzeichen
@noindent
Ferner k"onnen @emph{lange} Textzeilen aus der Ressourcendatei an beliebiger
Stelle umgebrochen werden.  Die Bezeichnung @emph{lang} bedeutet in diesem
Zusammenhang, da"s der von Gcal bei der Ausgabe dargestellte Text den rechten
Bildschirmrand "uberschreiten bzw.@: an diesem umgebrochen w"urde.  Jedesmal
wenn ein @samp{~} (Tilde) Zeichen im Textteil vorgefunden wird, so wird dieses
Zeichen durch ein echtes @samp{\n} (Newline) Zeichen ersetzt und der so
umgebrochene Text bei der Ausgabe linksb"unding formatiert dargestellt.

@cindex Quotierung von Spezialzeichen
@cindex Quotierungszeichen, @samp{\}
@cindex @samp{\} Quotierungszeichen
@noindent
Falls das @samp{~} (Tilde) Zeichen als Zeichen selbst verwendet werden soll,
so mu"s es durch ein f"uhrendes @samp{\} (Backslash) Zeichen quotiert werden,
z.B.@: @samp{\~}.

@noindent
Wenn die Zeichen @samp{\~} selbst als Zeichenfolge verwendet
werden sollen, so mu"s das @samp{\} (Backslash) Zeichen mit sich selbst
quotiert werden, z.B.@: @samp{\\~}.

@sp 2

@need 3000
@noindent
Die Ressourcendatei @file{beispiel.rc}

@example
@group
;
; Hallo, ich bin `beispiel.rc' und jetzt lebendig
;
0 Ich weiss ich bin ein kurzer Text
0 Ich hoffe ich bin lang genug~hier, ein Zeilenumbruch\
~und noch einer~und nun zum letzten Mal...
0 Bin ich ein kurzer Text? Weiss nicht...
@end group
@end example

@need 3000
@noindent
wird wie folgt ausgegeben:

@example
@group
@cartouche
$ gcal --resource-file=beispiel.rc --disable-highlighting
@print{}
@print{} Terminliste:
@print{}
@print{} Mi,  14 Sep 1994: Bin ich ein kurzer Text? Weiss nicht...
@print{} Mi,  14 Sep 1994: Ich hoffe ich bin lang genug
@print{}                   hier, ein Zeilenumbruch
@print{}                   und noch einer
@print{}                   und nun zum letzten Mal...
@print{} Mi,  14 Sep 1994: Ich weiss ich bin ein kurzer Text
@end cartouche
@end group
@end example

@cindex Whitespace-Zeichen
@cindex Quotierung von Spezialzeichen
@cindex Quotierungszeichen, @samp{\}
@cindex @samp{\} Quotierungszeichen
@noindent
Da @emph{whitespace} Zeichen zur Trennung von Datum- und Textteil verwendet
werden, ist es somit nicht ohne weiteres m"oglich den Textteil mit f"uhrenden
@emph{whitespace} Zeichen zu versehen, weil diese intern "ubersprungen werden
und somit nicht zur Ausgabe gelangen.  Falls nun aber doch @emph{whitespace}
Zeichen den Textteil anf"uhren sollen, so mu"s das @strong{erste} dieser
@emph{whitespace} Zeichen durch ein f"uhrendes @samp{\} (Backslash) Zeichen
quotiert werden, z.B.@: @samp{\ }, wenn es sich um ein Leerzeichen handelt.
Gcal erkennt an Hand einer solchen Zeichenfolge, da"s der Text, der dem @samp{\}
Zeichen nachfolgt, nicht mehr l"anger der Trennung dient, sondern Bestandteil
vom Textteil ist.  Gcal "uberspringt sodann dieses besondere, nur der
Markierung dienende Backslash Zeichen (stellt es also nicht in die Ausgabe),
und verarbeitet den Rest der Zeile wie "ublich. 

@need 3000
@noindent
Folgendes Beispiel sollte gen"ugen um den vorstehenden Sachverhalt zu
verdeutlichen.  Die Ressourcendatei @file{whitespc.rc}

@example
@group
0 BANG BANG
0 bogus
0         bogomips
0    \hallo welt
0    \ main()@{for(;;)fork();@}
0 \     sh $0 & $0 &
0    \  a  \  b  \\  c  \\\  d
0    Was passiert nun?\
~0  \  Dieses!
0    Was passiert nun?\\
~0  \  Jenes!
@end group
@end example

@need 3000
@noindent
wird wie folgt ausgegeben:

@example
@group
@cartouche
$ gcal --resource-file=whitespc.rc --disable-highlighting
@print{}
@print{} Terminliste:
@print{} 
@print{} Mi,  14 Sep 1994:      sh $0 & $0 &
@print{} Mi,  14 Sep 1994:   a  \  b  \\  c  \\\  d
@print{} Mi,  14 Sep 1994:  main()@{for(;;)fork();@}
@print{} Mi,  14 Sep 1994: BANG BANG
@print{} Mi,  14 Sep 1994: Was passiert nun?~0  \  Jenes!
@print{} Mi,  14 Sep 1994: Was passiert nun?
@print{}                   0  \  Dieses!
@print{} Mi,  14 Sep 1994: \hallo welt
@print{} Mi,  14 Sep 1994: bogomips
@print{} Mi,  14 Sep 1994: bogus
@end cartouche
@end group
@end example

@page
@node Zeile kommentieren, Include Anweisungen, Textteil einer Zeile, Ressourcendatei
@subsection Zeile kommentieren
@cindex Zeile kommentieren
@cindex Ressourcendatei, Zeile kommentieren
@cindex Kommentarzeichen, @samp{;}
@cindex @samp{;} Kommentarzeichen
@cindex Whitespace-Zeichen

@noindent
Eine Zeile der Ressourcendatei, die mit einem @samp{;} (Semikolon) Zeichen
beginnt, ist ein Kommentar und wird von Gcal vollst"andig ignoriert!  F"uhrende
@emph{whitespace} Zeichen d"urfen dem Kommentarzeichen vorangehen.  Siehe in
diesem Zusammenhang auch @ref{Textteil einer Zeile}, wo erkl"art wird, wie ein
@code{NUL} Zeichen zur Kommentierung in einem Textteil benutzt werden kann.

@page
@node Include Anweisungen, Spezielle Textmakros, Zeile kommentieren, Ressourcendatei
@subsection Include Anweisungen
@cindex Include Anweisungen
@cindex Ressourcendatei, Include Anweisungen

@noindent
Es d"urfen @code{#include} Anweisungen in einer Ressourcendatei eingef"ugt
werden (ein Mechanismus "ahnlich demjenigen, den der C Preprocessor benutzt),
welche da"s Aufsuchen und Vorladen weiterer Ressourcendateien bewirken.
Eine @code{#include} Anweisung veranlasst Gcal das Lesen der laufenden
Ressourcendatei zu unterbrechen und eine andere Ressourcendatei zu lesen,
bevor mit dem Weiterlesen der laufenden Ressourcendatei fortgefahren wird.
Die Anweisung ist eine Zeile in der Ressourcendatei, die wie die folgende
Schablone aussieht:

@example
#include @emph{whitespace} @var{Argument} @r{[}@emph{whitespace}@r{]} @emph{newline}
@end example

@noindent
Das @var{Argument} kann entweder

@example
"@var{Dateiname}"
@end example

@noindent
oder

@example
<@var{Dateiname}>
@end example

@noindent
sein (also ein Dateiname, der entweder mit @samp{""} oder @samp{<>} umfasst
ist).

@cindex Trennzeichen, whitespace
@cindex Whitespace Trennzeichen
@noindent
Mindestens ein @emph{whitespace} Zeichen ist notwending zwischen
@code{#include} und dem @var{Argument}.  Dem @var{Argument} d"urfen beliebig
viele @emph{whitespace} Zeichen folgen und die Zeile mu"s mit einem @samp{\n}
(Newline) Zeichen enden, ausgenommen es ist die letzte Zeile in einer
Ressourcendatei.

@noindent
Nun zu einem etwas konkreteren Beispiel:

@enumerate
@item
#include "foo/bar"

@item
#include <bar>
@end enumerate

@noindent
Die erste @code{#include} Anweisung regt Gcal an, die Datei @file{bar} im
Dateiverzeichnis @file{foo} vom aktuellen Dateiverzeichnis aus einzuf"ugen.
Falls das nicht gelingt, versucht Gcal mittels der Schritte 1@dots{}4 des
bereits zuvor erkl"arten Datei-Suchmechanismus' diese Datei einzuf"ugen
(@pxref{Ressourcendatei, Datei-Suchmechanismus}).

@noindent
Die zweite @code{#include} Anweisung regt Gcal an, die Datei @file{bar}
aus dem Benutzer- bzw.@: System-Datenverzeichnis mittels der Schritte
3@dots{}4 des bereits zuvor erkl"arten Datei-Suchmechanismus' einzuf"ugen.
Allerdings ist es nicht gestattet Dateien, deren Zugriffspfad vom
Wurzeldateiverzeichnis aus fest vorgegeben ist, mittels einer solchen
@code{#include} Anweisung einzuf"ugen, wie z.B.@:: @w{@samp{#include </file>}}
oder @w{@samp{#include </foo/bar/file>}}.  Ebenfalls nicht gestattet ist die
Angabe eines einfachen oder erweiterten Dateinamens, der mit einer
Laufwerksangabe versehen ist bei dieser Art von @code{#include} Anweisungen
(auch wenn ein Betriebssystem wie @w{MS-DOS} oder OS/2 eine solche
Laufwerksangabe grunds"atzlich erlauben w"urde), da der mit f"uhrendem
Benutzer- bzw.@: System-Datenverzeichnisnamen ausgestattete resultierende
erweiterte Dateiname nicht mehr den geltenden Dateinamenskonventionen
entsprechen w"urde.

@noindent
Eingef"ugte Dateien d"urfen ihrerseits wiederum weitere Dateien einf"ugen.
Allerdings ist die Schachtelungstiefe eingef"ugter Dateien einerseits durch
die Gr"o"se des zur Verf"ugung stehenden Hauptspeichers begrenzt, und
andererseits durch den Wert, der vom Betriebssystem bzw.@: Kompilierer als
Obergrenze von gleichzeitig ge"offneten Dateien vorgegeben ist.  Rekursive
Einf"ugungen @footnote{Die eingef"ugte Datei versucht sich selbst erneut
einzuf"ugen.} oder zyklische Einf"ugungen @footnote{Die eingef"ugte Datei
wird von einer anderen Datei, die an einer tieferen Stelle in einer solchen
Kette auftritt, erneut eingef"ugt.} sind nicht erlaubt, da solche
R"uckw"artsbez"uge eine programminterne Endlosschleife erzeugen w"urden!
Gcal erkennt solche Situationen und beendet sich sofort mit einem fatalen
Fehler.

@noindent
Falls eine eingef"ugte Ressourcendatei nicht gefunden wurde und keine
@samp{--debug=abort} Option angegeben wurde, so wird mit der Verarbeitung
der Ressourcendatei, welche @code{#include} enthielt, fortgefahren.

@page
@node Spezielle Textmakros, Datumvariablen, Include Anweisungen, Ressourcendatei
@subsection Spezielle Textmakros
@cindex Spezielle Textmakros
@cindex Textmakro Startzeichen, @samp{%}
@cindex @samp{%} Textmakro Startzeichen
@cindex Quotierung von Spezialzeichen
@cindex Quotierungszeichen, @samp{\}
@cindex @samp{\} Quotierungszeichen

@menu
* %s Textmakro::  Wie ein Start eines Termins Textmakro benutzt wird.
* %e Textmakro::  Wie ein Ende eines Termins Textmakro benutzt wird.
* %o Textmakro::  Wie ein Wochentagsname Textmakro benutzt wird.
* %k Textmakro::  Wie ein Wochennummer Textmakro benutzt wird.
* %b Textmakro::  Wie ein Geburtstags Textmakro benutzt wird.
* %y Textmakro::  Wie ein Jahreszahl Textmakro benutzt wird.
* %m Textmakro::  Wie ein Monatszahl Textmakro benutzt wird.
* %w Textmakro::  Wie ein Wochenzahl Textmakro benutzt wird.
* %d Textmakro::  Wie ein Tageszahl Textmakro benutzt wird.
* %j Textmakro::  Wie ein Julianische Tageszahl Textmakro benutzt wird.
* %n Textmakro::  Wie ein Datumtext Textmakro benutzt wird.
* %t Textmakro::  Wie ein Aktuelle Uhrzeit Textmakro benutzt wird.
* %1 Textmakro::  Wie ein Start Hervorhebungssequenz 1 Textmakro benutzt wird.
* %2 Textmakro::  Wie ein Ende Hervorhebungssequenz 1 Textmakro benutzt wird.
* %3 Textmakro::  Wie ein Start Hervorhebungssequenz 2 Textmakro benutzt wird.
* %4 Textmakro::  Wie ein Ende Hervorhebungssequenz 2 Textmakro benutzt wird.
@end menu

@noindent
Der Textteil einer Zeile der Ressourcendatei darf 16 verschiedene, spezielle
Textmakros enthalten, welche in jeder (sinnvollen) beliebigen Anzahl und
Reihenfolge auftreten d"urfen.  Diese Texte beginnen alle mit dem @samp{%}
(Prozent) Zeichen, welches seinerseits durch ein f"uhrendes @samp{\}
(Backslash) Zeichen hinsichtlich seiner speziellen Bedeutung entwertet
(quotiert) werden kann, falls das @samp{%} (Prozent) Zeichen selbst im
Textteil verwendet werden soll, z.B.@: @samp{\%}.  Dem @samp{%} Zeichen
folgt sodann ein Kennzeichen, welches die Art des Textmakros definiert.
Falls das Kennzeichen ein Buchstabe ist, so wird nicht zwischen Gro"s-
bzw.@: Kleinschreibung unterschieden.

@quotation
@strong{Bitte beachten:}@*
Das optionale Datum nach den @w{@code{%s@dots{}},} @w{@code{%e@dots{}},}
@w{@code{%o@dots{}},} @w{@code{%k@dots{}},} @w{@code{%b@dots{}}} und
@w{@code{%y@dots{}}} Textmakros darf entweder im
@w{@samp{@var{jjjj}@r{[}@var{mm}@r{[}@var{tt}@r{|}@var{www}@var{n}@r{]]}}},
@w{@samp{@var{jjjj}*d@r{|}w@var{n}@r{[}@var{www}@r{]}}} oder
@w{@samp{@var{jjjj}@@e@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}}}
Datumformat angegeben werden.
@end quotation

@node %s Textmakro, %e Textmakro, Spezielle Textmakros, Spezielle Textmakros
@subsubsection %s Textmakro
@cindex %s Textmakro
@cindex Whitespace-Zeichen
@cindex Textmakro, Start eines Termins
@cindex Termin, Start eines
@cindex Start eines Termins Textmakro

@noindent
@w{@code{%s@r{[}@var{jjjj}@r{[}@var{mm}@r{[}@var{tt}@r{|}@var{www}@var{n}@r{]]]}}}
bezeichnet das @dfn{Startdatum} eines Termins, d.h.@: das erste Datum, an dem
dieser Termin auftreten darf.  Wenn das Datum, welches im @w{@code{%s@dots{}}}
Textmakro kodiert ist, gr"o"ser dem laufenden bzw.@: abgefragten Datum ist,
so wird der gesamte Warnungstext unterdr"uckt.  Wenn der Warnungstext angezeigt
werden mu"s, so wird stets der gesamte Text dieses Makros bei der Ausgabe
unterdr"uckt.  Diesem Textmakro @strong{mu"s} stets ein @emph{whitespace}
Zeichen folgen, welches in der Ausgabe entfernt wird.

@itemize @bullet
@item
Falls @var{jjjj}@dots{} nicht angegeben ist (@equiv{}@strong{kein} Datum
kodiert), so wird der 01 Januar des laufenden Jahres als Datum angenommen.

@item
Falls @var{jjjj} auf den Wert 0000 gesetzt ist, so wird das laufende Jahr
als Jahr angenommen.

@item
Falls @var{mm} nicht angegeben ist, so wird 01 (@equiv{}Januar) als Monat
angenommen.

@item
Falls @var{mm} auf den Wert 00 gesetzt ist, so wird der laufende Monat
als Monat angenommen.

@item
Falls @w{@var{tt}|@var{www}} nicht angegeben ist, so wird 01 als Tag angenommen.

@item
Falls @var{tt} auf den Wert 00 gesetzt ist, so wird der laufende
Tag als Tag angenommen.

@item
Falls das @var{n} Feld angegeben ist (Bereich 1@dots{}5 oder 9), so
mu"s auch ein @var{www} Feld angegeben sein.
@end itemize

@need 2000
@node %e Textmakro, %o Textmakro, %s Textmakro, Spezielle Textmakros
@subsubsection %e Textmakro
@cindex %e Textmakro
@cindex Textmakro, Ende eines Termins
@cindex Whitespace-Zeichen
@cindex Termin, Ende eines
@cindex Ende eines Termins Textmakro

@noindent
@w{@code{%e@r{[}@var{jjjj}@r{[}@var{mm}@r{[}@var{tt}@r{|}@var{www}@var{n}@r{]]]}}}
bezeichnet das @dfn{Endedatum} eines Termins, d.h.@: das letzte Datum, an dem
dieser Termin auftreten darf.  Wenn das Datum, welches im @w{@code{%e@dots{}}}
Textmakro kodiert ist, kleiner dem laufenden bzw.@: abgefragten Datum ist,
so wird der gesamte Warnungstext unterdr"uckt.  Wenn der Warnungstext angezeigt
werden mu"s, so wird stets der gesamte Text dieses Makros bei der Ausgabe
unterdr"uckt.  Diesem Textmakro @strong{mu"s} stets ein @emph{whitespace}
Zeichen folgen, welches in der Ausgabe entfernt wird.

@itemize @bullet
@item
Falls @var{jjjj}@dots{} nicht angegeben ist (@equiv{}@strong{kein} Datum
kodiert), so wird der 31 Dezember des laufenden Jahres als Datum angenommen.

@item
Falls @var{jjjj} auf den Wert 0000 gesetzt ist, so wird das laufende Jahr
als Jahr angenommen.

@item
Falls @var{mm} nicht angegeben ist, so wird 12 (@equiv{}Dezember)
als Monat angenommen.

@item
Falls @var{mm} auf den Wert 00 gesetzt ist, so wird der laufende Monat
als Monat angenommen.

@item
Falls @w{@var{tt}|@var{www}} nicht angegeben ist, so wird der letzte Tag des
Monats @var{mm} als Tag angenommen.

@item
Falls @var{tt} auf den Wert 00 gesetzt ist, so wird der laufende
Tag als Tag angenommen.

@item
Falls das @var{n} Feld angegeben ist (Bereich 1@dots{}5 oder 9), so
mu"s auch ein @var{www} Feld angegeben sein.
@end itemize

@node %o Textmakro, %k Textmakro, %e Textmakro, Spezielle Textmakros
@subsubsection %o Textmakro
@cindex %o Textmakro
@cindex Textmakro, Wochentagsname
@cindex Whitespace-Zeichen
@cindex Wochentagsname Textmakro

@noindent
@w{@code{%o@r{[}@var{jjjj}@r{[}@var{mm}@r{[}@var{tt}@r{|}@var{www}@var{n}@r{]]]}}}
bezeichnet einen @dfn{Wochentagsnamen} und wird in einen @strong{Wochentagstext}
umgesetzt, z.B.@::

@quotation
Der Text @w{@samp{Heute ist %o , der %n}}
wird umgesetzt in@*
@w{@expansion{} @samp{Heute ist Montag, der 10-Jun-1996}},
falls das aktuelle Datum der 10'te Juni 1996 ist.
@end quotation

@noindent
Wenn der Warnungstext angezeigt werden mu"s, so wird stets der gesamte
Text dieses Makros bei der Ausgabe unterdr"uckt.  Diesem Textmakro
@strong{mu"s} stets ein @emph{whitespace} Zeichen folgen, welches
in der Ausgabe entfernt wird.

@itemize @bullet
@item
Falls @var{jjjj}@dots{} nicht angegeben ist (@equiv{}@strong{kein} Datum
kodiert), so wird laufende Datum als Datum angenommen.

@item
Falls @var{jjjj} auf den Wert 0000 gesetzt ist, so wird das laufende Jahr
als Jahr angenommen.

@item
Falls @var{mm} nicht angegeben oder auf den Wert 00 gesetzt ist, so wird der
laufende Monat als Monat angenommen.

@item
Falls @w{@var{tt}|@var{www}} nicht angegeben oder auf den Wert 00 gesetzt ist,
so wird der laufende Tag als Tag angenommen.

@item
Falls das @var{n} Feld angegeben ist (Bereich 1@dots{}5 oder 9), so
mu"s auch ein @var{www} Feld angegeben sein.
@end itemize

@node %k Textmakro, %b Textmakro, %o Textmakro, Spezielle Textmakros
@subsubsection %k Textmakro
@cindex %k Textmakro
@cindex Textmakro, Wochennummer
@cindex Whitespace-Zeichen
@cindex Wochennummer Textmakro
@cindex @sc{iso}-8601:1988

@noindent
@w{@code{%k@r{[}@var{jjjj}@r{[}@var{mm}@r{[}@var{tt}@r{|}@var{www}@var{n}@r{]]]}}}
bezeichnet eine @dfn{Wochennummer} und wird in einen
@sc{iso}-@strong{Wochennummer-Text} umgesetzt, z.B.@::

@quotation
Der Text @w{@samp{Heute ist %o  der Kalenderwoche %k}}
wird umgesetzt in@*
@w{@expansion{} @samp{Heute ist Montag der Kalenderwoche 24}},
falls das aktuelle Datum der 10'te Juni 1996 ist.
@end quotation

@noindent
Wenn der Warnungstext angezeigt werden mu"s, so wird stets der gesamte
Text dieses Makros bei der Ausgabe unterdr"uckt.  Diesem Textmakro
@strong{mu"s} stets ein @emph{whitespace} Zeichen folgen, welches
in der Ausgabe entfernt wird.

@itemize @bullet
@item
Falls @var{jjjj}@dots{} nicht angegeben ist (@equiv{}@strong{kein} Datum
kodiert), so wird laufende Datum als Datum angenommen.

@item
Falls @var{jjjj} auf den Wert 0000 gesetzt ist, so wird das laufende Jahr
als Jahr angenommen.

@item
Falls @var{mm} nicht angegeben oder auf den Wert 00 gesetzt ist, so wird der
laufende Monat als Monat angenommen.

@item
Falls @w{@var{tt}|@var{www}} nicht angegeben oder auf den Wert 00 gesetzt ist,
so wird der laufende Tag als Tag angenommen.

@item
Falls das @var{n} Feld angegeben ist (Bereich 1@dots{}5 oder 9), so
mu"s auch ein @var{www} Feld angegeben sein.
@end itemize

@node %b Textmakro, %y Textmakro, %k Textmakro, Spezielle Textmakros
@subsubsection %b Textmakro
@cindex %b Textmakro
@cindex Textmakro, Geburtstag
@cindex Whitespace-Zeichen
@cindex Alterswert
@cindex Geburtstags Textmakro

@noindent
@w{@code{%b@r{[}@var{jjjj}@r{[}@var{mm}@r{[}@var{tt}@r{|}@var{www}@var{n}@r{]]]}}}
bezeichnet ein @dfn{Geburtsjahr} und wird in einen @strong{Alterswert}
umgesetzt, z.B.@::

@quotation
Der Text @w{@samp{Mein %b1962  Geburtstag%s1952 %e2062}}
wird umgesetzt in@*
@w{@expansion{} @samp{Mein 32 Geburtstag}},
falls das aktuelle Jahr 1994 ist.
@end quotation

@noindent
Der Alterswert wird nur dann ausgegeben, wenn sich bei dessen Berechnung
ein Wert gr"o"ser Null ergibt.  Zudem wird die Terminwarnung in diesem
vorangehenen Beispiel nur w"ahrend der Jahre 1952 bis 2062 (einschlie"slich)
ausgegeben.  Wenn der Warnungstext angezeigt werden mu"s, so wird stets der
gesamte Text dieses Makros bei der Ausgabe unterdr"uckt.  Diesem Textmakro
@strong{mu"s} stets ein @emph{whitespace} Zeichen folgen, welches in der
Ausgabe entfernt wird.  Falls im verwendeten Datumformat vereinbart wurde,
da"s bei der Ausgabe von einem Datum auch ein Ordnungszahlanhang verwendet
werden soll, so wird auch der ermittelte Alterswert automatisch mit einem
nachfolgenden Ordnungszahlanhang versehen.  @xref{Kalender Optionen, ,
@samp{--date-format=de@r{|}us@r{|}gb@r{|}@var{Text}}}, f"ur weitere Details.

@itemize @bullet
@item
Falls @var{jjjj}@dots{} nicht angegeben ist (@equiv{}@strong{kein} Datum
kodiert), so wird laufende Datum als Datum angenommen.

@item
Falls @var{jjjj} auf den Wert 0000 gesetzt ist, so wird das laufende Jahr
als Jahr angenommen.

@item
Falls @var{mm} nicht angegeben oder auf den Wert 00 gesetzt ist, so wird der
laufende Monat als Monat angenommen.

@item
Falls @w{@var{tt}|@var{www}} nicht angegeben oder auf den Wert 00 gesetzt ist,
so wird der laufende Tag als Tag angenommen.

@item
Falls das @var{n} Feld angegeben ist (Bereich 1@dots{}5 oder 9), so
mu"s auch ein @var{www} Feld angegeben sein.
@end itemize

@need 1500
@node %y Textmakro, %m Textmakro, %b Textmakro, Spezielle Textmakros
@subsubsection %y Textmakro
@cindex %y Textmakro
@cindex Textmakro, Jahreszahl
@cindex Whitespace-Zeichen
@cindex Jahresdifferenzenwert
@cindex Jahreszahl, relative
@cindex Jahreszahl Textmakro

@noindent
@w{@code{%y@r{[}@var{jjjj}@r{[}@var{mm}@r{[}@var{tt}@r{|}@var{www}@var{n}@r{]]]}}}
bezeichnet jedwedes Jahr und wird in einen @dfn{Jahresdifferenzenwert}
umgesetzt, z.B.@::

@quotation
Der Text @w{@samp{Silvester 1912 liegt %y1912  Jahre zur"uck}}
wird umgesetzt in@*
@w{@expansion{} @samp{Silvester 1912 liegt -82 Jahre zur"uck}},
falls das aktuelle Jahr 1994 ist.
@end quotation

@noindent
Wenn der Warnungstext angezeigt werden mu"s, so wird stets der gesamte Text
dieses Makros bei der Ausgabe unterdr"uckt.  Diesem Textmakro @strong{mu"s}
stets ein @emph{whitespace} Zeichen folgen, welches in der Ausgabe entfernt
wird.

@itemize @bullet
@item
Falls @var{jjjj}@dots{} nicht angegeben ist (@equiv{}@strong{kein} Datum
kodiert), so wird laufende Datum als Datum angenommen.

@item
Falls @var{jjjj} auf den Wert 0000 gesetzt ist, so wird das laufende Jahr
als Jahr angenommen.

@item
Falls @var{mm} nicht angegeben oder auf den Wert 00 gesetzt ist, so wird der
laufende Monat als Monat angenommen.

@item
Falls @w{@var{tt}|@var{www}} nicht angegeben oder auf den Wert 00 gesetzt ist,
so wird der laufende Tag als Tag angenommen.

@item
Falls das @var{n} Feld angegeben ist (Bereich 1@dots{}5 oder 9), so
mu"s auch ein @var{www} Feld angegeben sein.
@end itemize

@node %m Textmakro, %w Textmakro, %y Textmakro, Spezielle Textmakros
@subsubsection %m Textmakro
@cindex %m Textmakro
@cindex Textmakro, Monatszahl
@cindex Monatszahl, relative
@cindex Monatszahl Textmakro

@noindent
@code{%m} bezeichnet die laufende bzw.@: abgefragte @dfn{Monatsnummer}
relativ zum aktuellen (@equiv{}heutigen) Datum.

@node %w Textmakro, %d Textmakro, %m Textmakro, Spezielle Textmakros
@subsubsection %w Textmakro
@cindex %w Textmakro
@cindex Textmakro, Wochenzahl
@cindex Wochenzahl, relative
@cindex Wochenzahl Textmakro

@noindent
@code{%w} bezeichnet die laufende bzw.@: abgefragte @dfn{Wochennummer}
relativ zum aktuellen (@equiv{}heutigen) Datum.

@node %d Textmakro, %j Textmakro, %w Textmakro, Spezielle Textmakros
@subsubsection %d Textmakro
@cindex %d Textmakro
@cindex Textmakro, Tageszahl
@cindex Tageszahl, relative
@cindex Tageszahl Textmakro

@noindent
@code{%d} bezeichnet die laufende bzw.@: abgefragte @dfn{Tagesnummer}
relativ zum aktuellen (@equiv{}heutigen) Datum, z.B.@::

@quotation
Die Ressourcendateizeile @w{@samp{0 %d Tage vergangen}}
wird umgesetzt in@*
@w{@expansion{} @samp{-10 Tage vergangen}},
falls Gcal mit der Option @w{@samp{-c10-}} und keinem Kommando aufgerufen wird.
@end quotation

@node %j Textmakro, %n Textmakro, %d Textmakro, Spezielle Textmakros
@subsubsection %j Textmakro
@cindex %j Textmakro
@cindex Textmakro, Julianische Tageszahl
@cindex Julianische Tageszahl Textmakro

@noindent
@code{%j@r{[[}-@r{]}@var{n}@r{]}} bezeichnet die laufende bzw.@: abgefragte
@dfn{Julianische Tageszahl} relativ zum aktuellen (@equiv{}heutigen) Datum.
Diese Tageszahl bezieht sich auf das Datum 1'ter Januar 4713 vor Christus,
welches f"ur astronomische Berechnungen als der Tag Null einer durchlaufenden
Tagesz"ahlung angesehen wird und als das Julianisches Datum (J.D.) bekannt ist.
Der exakte Nullpunkt von diesem Datum ist um 12 Uhr Weltzeit; der Tageswechsel
erfolgt also nicht um Mitternacht, sondern um Mittag Weltzeit.  Da Gcal
derzeit nicht die Zeitzone des vom Rechner gelieferten Systemdatum auswertet,
wird diese Tageszahl nur ganzzahlig dargestellt in der Annahme, da"s der
Tageswechsel bereits Mittags stattgefunden hat.  Wer den Tageswechsel als
Mittags noch nicht bereits vollzogen haben m"ochte, der soll die sich aus dem
Textmakro ergebende Julianische Tageszahl stets um den Faktor eins vermindern,
z.B.@: @samp{%j-1}.

@need 1000
@noindent
Beispiel:

@quotation
Die Ressourcendateizeile @w{@samp{0 Julianischer Tag %j seit 01-Jan-4713 v.Chr.}}
wird umgesetzt in@*
@w{@expansion{} @samp{Julianischer Tag 2437929 seit 01-Jan-4713 v.Chr.}},
falls Gcal mit den Optionen @w{@samp{-c %19620921}} sowie keinem Kommando
aufgerufen wird.
@end quotation

@noindent
Wenn dem @code{%j} Text eine Zahl direkt folgt, so wird diese Zahl von
der tats"achlichen Julianischen Tageszahl stets subtrahiert (ein negatives
Vorzeichen kann der besseren Lesbarkeit wegen angegeben werden), so da"s im
Text mit beliebigen Bezugsgr"o"sen gearbeitet werden kann, z.B.@::

@quotation
Die Ressourcendateizeile @w{@samp{0 Julianischer Tag %j-2415021 seit 01-Jan-1900}}
wird umgesetzt in@*
@w{@expansion{} @samp{Julianischer Tag 4 seit 01-Jan-1900}},
falls Gcal mit den Optionen @w{@samp{-c %19000105}} sowie keinem Kommando
aufgerufen wird.
@end quotation

@node %n Textmakro, %t Textmakro, %j Textmakro, Spezielle Textmakros
@subsubsection %n Textmakro
@cindex %n Textmakro
@cindex Textmakro, Datumtext
@cindex Datumtext, effektiver
@cindex Datumtext Textmakro

@noindent
@code{%n@r{[[}+@r{|}-@r{]}@var{n}@r{]}} bezeichnet die laufende
bzw.@: abgefragte @dfn{Tagesnummer} relativ zum laufenden Datum
@ifinfo
@w{@samp{+@r{/}-}}
@end ifinfo
@tex
$\pm$
@end tex
@var{n} Tagen und wird in einen, sich auf ein absolutes Datum
beziehenden @dfn{Datumtext} umgesetzt, z.B.@::

@quotation
Die Ressourcendateizeile @w{@samp{1962Sep21 10000 Tage alt: %n+10000}}
wird umgesetzt in@*
@w{@expansion{} @samp{10000 Tage alt: 06-Feb-1990}},
falls Gcal mit der einfachen @samp{-c} Option und dem @samp{sep 1962}
Kommando aufgerufen wird
(@pxref{Einfache Kommandos, , @samp{@var{mm} @var{jjjj}}}).
@end quotation

@need 2000
@node %t Textmakro, %1 Textmakro, %n Textmakro, Spezielle Textmakros
@subsubsection %t Textmakro
@cindex %t Textmakro
@cindex %t12 Textmakro
@cindex %t24 Textmakro
@cindex Textmakro, aktuelle Uhrzeit
@cindex Systemuhrzeit, Anzeige der
@cindex Aktuelle Uhrzeit Textmakro

@noindent
@code{%t@r{[}12@r{|}24@r{]}} bezeichnet die @dfn{aktuelle Systemuhrzeit}, z.B.@::

@quotation
Der Text @w{@samp{Uhrzeit: %t --> Zahnarzttermin um 10.00 Uhr}}
wird umgesetzt in@*
@w{@expansion{} @samp{Uhrzeit: 07.32 --> Zahnarzttermin um 10.00 Uhr}},
falls die aktuelle Systemuhrzeit @w{07.32 Uhr} @w{(hh.mm)} ist.
@end quotation

@noindent
Der Systemuhrzeitwert wird standardgem"a"s im @emph{24-Stunden} Format
ausgegeben.  Um im @emph{12-Stunden} Format auszugeben, mu"s hinter
@code{%t} die Zahl @code{12} geschrieben werden, z.B.@: @samp{%t12}.

@node %1 Textmakro, %2 Textmakro, %t Textmakro, Spezielle Textmakros
@subsubsection %1 Textmakro
@cindex %1 Textmakro
@cindex Textmakro, Start Hervorhebungssequenz 1
@cindex Start Hervorhebungssequenz 1 Textmakro

@noindent
@code{%1} wird ersetzt durch die Start Hervorhebungssequenz bzw.@: das
Start Markierungszeichen, welches zur Hervorhebung des aktuellen Tages
benutzt wird (@pxref{Globale Optionen, , @samp{--highlighting=@var{Text}}}).
Damit wird erreicht, da"s der diesem Textmakro nachfolgende Text der Zeile
in gleicher Weise ausgegeben wird, wie der hervorgehobene bzw.@: markierte
aktuelle Tag.  @code{%1} wird in Verbindung mit dem @code{%2} Textmakro
benutzt, welches die mit @code{%1} eingeschaltete Hervorhebung wieder
ausschaltet bzw.@: ein Ende Markierungszeichen produziert.  Sollte einem
@code{%1} Text kein @code{%2} Text auf der Zeile nachfolgen, so f"ugt Gcal
automatisch einen solchen @code{%2} Text am Zeilenende ein.

@need 1000
@noindent
Zum Beispiel:

@example
@group
In dieser Zeile wird nur %1DIESES%2 Wort hervorgehoben.
%1In dieser Zeile wird alles bis hierhin%2 hervorgehoben.
Alles ab %1hier bis zum Zeilenende wird hervorgehoben.
@end group
@end example
  
@node %2 Textmakro, %3 Textmakro, %1 Textmakro, Spezielle Textmakros
@subsubsection %2 Textmakro
@cindex %2 Textmakro
@cindex Textmakro, Ende Hervorhebungssequenz 1
@cindex Ende Hervorhebungssequenz 1 Textmakro

@noindent
@code{%2} wird ersetzt durch die Ende Hervorhebungssequenz bzw.@: das Ende
Markierungszeichen, welches zur Hervorhebung des aktuellen Tages benutzt wird.
Damit wird erreicht, da"s ab der Stelle des Auftretens dieses Textmakros eine
m"oglicherweise aktive Hervorhebung entsprechend der des aktuellen Tages
wieder abgeschaltet bzw.@: ein Ende Markierungszeichen produziert wird.
@code{%2} wird in Verbindung mit dem @code{%1} Textmakro benutzt.  Sollte
vor einem @code{%2} Text kein @code{%1} Text auf der Zeile vorgefunden
werden, so hat der @code{%2} Text keinerlei Wirkung.

@node %3 Textmakro, %4 Textmakro, %2 Textmakro, Spezielle Textmakros
@subsubsection %3 Textmakro
@cindex %3 Textmakro
@cindex Textmakro, Start Hervorhebungssequenz 2
@cindex Start Hervorhebungssequenz 2 Textmakro

@noindent
@code{%3} wird ersetzt durch die Start Hervorhebungssequenz bzw.@: das
Start Markierungszeichen, welches zur Hervorhebung eines Feiertages benutzt
wird (@pxref{Globale Optionen, , @samp{--highlighting=@var{Text}}}).  Damit wird
erreicht, da"s der diesem Textmakro nachfolgende Text der Zeile in gleicher
Weise ausgegeben wird, wie ein hervorgehobener bzw.@: markierter Feiertag.
@code{%3} wird in Verbindung mit dem @code{%4} Textmakro benutzt, welches
die mit @code{%3} eingeschaltete Hervorhebung wieder ausschaltet bzw.@:
ein Ende Markierungszeichen produziert.  Sollte einem @code{%3} Text kein
@code{%4} Text auf der Zeile nachfolgen, so f"ugt Gcal automatisch einen
solchen @code{%4} Text am Zeilenende ein.

@noindent
Zum Beispiel:

@example
@group
In dieser Zeile wird nur %3DIESES%4 Wort hervorgehoben.
%3In dieser Zeile wird alles bis hierhin%4 hervorgehoben.
Alles ab %3hier bis zum Zeilenende wird hervorgehoben.
@end group
@end example

@node %4 Textmakro, , %3 Textmakro, Spezielle Textmakros
@subsubsection %4 Textmakro
@cindex %4 Textmakro
@cindex Textmakro, Ende Hervorhebungssequenz 2
@cindex Ende Hervorhebungssequenz 2 Textmakro

@noindent
@code{%4} wird ersetzt durch die Ende Hervorhebungssequenz bzw.@: das Ende
Markierungszeichen, welches zur Hervorhebung eines Feiertages benutzt wird.
Damit wird erreicht, da"s ab der Stelle des Auftretens dieses Textmakros
eine m"oglicherweise aktive Hervorhebung entsprechend der eines Feiertages
wieder abgeschaltet bzw.@: ein Ende Markierungszeichen produziert wird.
@code{%4} wird in Verbindung mit dem @code{%3} Textmakro benutzt.  Sollte
vor einem @code{%4} Text kein @code{%3} Text auf der Zeile vorgefunden
werden, so hat der @code{%4} Text keinerlei Wirkung.

@page
@node Datumvariablen, Textvariablen, Spezielle Textmakros, Ressourcendatei
@subsection Datumvariablen
@cindex Datumvariablen
@cindex Lokale Datumvariablen
@cindex Datumvariablen, globale
@cindex Datumvariablen, lokale
@cindex Definition lokaler Datumvariablen
@cindex Lokale Datumvariablen, Definition von
@cindex Definition von Datumvariablen
@cindex Datumvariablen, Definition von
@cindex Handhabung von Datumvariablen
@cindex Datumvariablen, Handhabung von
@cindex Zuweisungen an Datumvariablen
@cindex Datumvariablen, Zuweisungen an
@cindex Ressourcendatei, Einschr"ankungen
@cindex Einschr"ankungen in Ressourcendatei
@cindex Datumvariablen, Gesamtanzahl von
@cindex Gesamtanzahl von Datumvariablen

@noindent
Gcal respektiert @emph{globale} und/oder @emph{lokale} Datumvariablen,
welche entweder im Datumteil einer Zeile der Gcal Ressourcendatei oder
als Bestandteil eines speziellen Textmakros im Textteil einer Zeile der
Ressourcendatei verwendet werden d"urfen.
@xref{Terminwarnung Optionen, , @samp{--date-variable=@var{Argument}}}.
Das bedeutet, da"s bis zu @strong{25} benutzerdefinierte Datumvariablen
gesetzt und w"ahrend der Programmausf"uhrung referenziert werden k"onnen.
Der Name einer Datumvariablen @var{dvar} besteht aus einem einzelnen
Buchstaben (Gro"s- bzw.@: Kleinbuchstaben werden nicht unterschieden und
ausgenommen dem Buchstaben @samp{e}, welcher intern f"ur das Datum des
Ostersonntags reserviert ist und welcher deswegen nicht zuweisbar/inoperabel
ist), und wird bei einer Definition gefolgt von dem Zuweisungsoperator
@samp{=} und den Zahlenwerten f"ur Monat @var{mm} (oder einem Monatsnamen
im dreistelligen Kurzformat, z.B.@: @samp{Jan}, @samp{Feb}, @dots{}) und
Tag @var{tt}, welche diese Variable aufzunehmen hat (oder dem Namen einer
anderen Datumvariablen), z.B.@::

@example
@group
a=1127
c=a
@end group
@end example

@noindent
speichert den 27'ten November in der lokalen Datumvariablen @var{a} und in
der lokalen Datumvariablen @var{c}.  Sie sollten stets in Erinnerung behalten,
da"s Datumvariablen erst dann in einer Zeile referenziert werden k"onnen, wenn
diese bereits definiert worden sind, da eine Ressourcendatei von Gcal Zeile
f"ur Zeile abgearbeitet wird.

@noindent
Nur an lokale Datumvariablen k"onnen dynamische Daten, die im
@w{@samp{@var{mm}@var{www}@var{n}}},
@w{@samp{@var{dvar}@r{[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]}}} oder
@w{@samp{*d@r{|}w@var{n}@r{[}@var{www}@r{]}}} Format angegeben werden,
zugewiesen werden, z.B.@::

@example
@group
a=03so2
b=JunMon9
c=b-3
d=c+4Sa
x=*d10
y=*d10fre
z=*w3So
@end group
@end example

@noindent
Vorstehendes bedeutet, da"s die Datumvariable @var{a} das Datum des 2'ten
Sonntags im M"arz speichert und @var{b} das Datum des letzten Montags im
Monat Juni speichert.  Datumvariable @var{c} speichert das Datum, welches
drei Tage vor dem Datum des letzten Montags im Juni liegt und in der
Datumvariablen @var{d} wird dieses Datum auf dasjenige Datum gesetzt,
welches sich vier Samstage nach dem Datum von @var{c} ergibt.  Datumvariable
@var{x} speichert das Datum des 10'ten absoluten Tages des Jahres (@equiv{}
10'ter Januar).  @var{y} speichert das Datum des 10'ten Freitags des Jahres,
und @var{z} wird das Datum des Sonntags, der in die 3'te @sc{iso}-Kalenderwoche
f"allt, zugewiesen.

@need 1500
@cindex Fiskaljahr, Einschr"ankungen
@cindex Einschr"ankungen bei Verwendung von Fiskaljahren
@cindex 3-Monatsmodus, Einschr"ankungen
@cindex Einschr"ankungen bei Verwendung des 3-Monatsmodus
@noindent
@strong{Achtung:}@*
Diese Art der Zuweisung an Datumvariablen wird @strong{nur} innerhalb einfacher
Jahresgrenzen korrekt berechnet, also nicht in denjenigen Terminwarnungen,
welche ausgegeben werden, nachdem das laufende Jahr gewechselt hat, z.B.@:
in @strong{Fiskaljahren}.

@cindex Sichtbarkeit von Datumvariablen
@cindex Datumvariablen, Sichtbarkeit von
@cindex Namensraum von Datumvariablen
@cindex Datumvariablen, Namensraum von
@noindent
Datumvariablen die in einer Ressourcendatei definiert werden sind stets lokal,
und werden nur in dieser spezifischen Datei @strong{und} derjenigen Datei
respektiert, welche in diese eingef"ugt wird.  Das bedeutet hinsichtlich der
eingef"ugten Datei, da"s alle lokalen Variablen der aufrufenden Datei sichtbar
sind.  Die eingef"ugte Datei selbst darf eigene lokale Variablen definieren,
welche dann die bereits an anderer Stelle definierten lokalen Variablen
"uberdecken und welche nicht bei R"uckkehr zur aufrufenden Datei exportiert
werden.  Alle anderen Definitionen von Datumvariablen (in der Kommandozeile,
Umgebungsvariable @code{GCAL} oder Antwortdatei) sind stets global.  Falls
eine Zeile einer Ressourcendatei eine Referenz auf eine Datumvariable enth"alt,
die nicht lokal in dieser Datei definiert ist, so wird Gcal versuchen, die
Werte der entsprechenden globalen Variablen zu benutzen.  Sollte dieses nicht
gelingen, da keine globale Definition dieser Datumvariablen vorliegt, so wird
Gcal diese Zeile nicht verarbeiten.  Wenn zudem die einfache @samp{--debug}
bzw.@: @w{@samp{--debug=internal}} Option angegeben wurde, so wird ein
Warnungstext f"ur jede undefinierte Datumvariable ausgegeben
(@pxref{Globale Optionen, , @samp{--debug=internal}}).  Falls die
@w{@code{--debug=abort}} Option angegeben wurde, so wird Gcal das Programm
dann abbrechen, sobald die erste Referenz einer undefinierten Datumvariablen
auftritt.  F"ur weitere Informationen, siehe auch
@ref{Globale Optionen, , @samp{--debug=abort}}.

@need 1500
@cindex L"oschung lokaler Datumvariablen
@cindex Lokale Datumvariablen, l"oschen von
@noindent
Eine lokale Datumvariable kann aber auch gel"oscht werden, was bedeutet,
da"s diese Datumvariable keinen lokalen G"ultigkeitsbereich mehr aufweist
und somit undefiniert ist.  So ist es dann m"oglich, da"s in einer Folgezeile,
in der diese Datumvariable referenziert wird, ein m"oglicherweise global
gesetzter Wert dieser Datumvariable verwendet werden kann.  Das nachfolgende
Beispiel der Ressourcendatei @file{dvar.rc} verdeutlicht diesen Sachverhalt: 

@example
@group
z=0202
0@@z Das lokal an `z' zugewiesene Datum
z=
0@@z Das global an `z' zugewiesene Datum
z=0404
0@@z Das lokal an `z' zugewiesene Datum
@end group
@end example

@need 3000
@noindent
So erzeugt Gcal die folgende Ausgabe:

@example
@group
@cartouche
$ gcal %1777 -H no -x -v z=1212 -f ./dvar.rc -y
@print{}
@print{} So,   2 Feb 1777: Das lokal an `z' zugewiesene Datum
@print{} Fr,   4 Apr 1777: Das lokal an `z' zugewiesene Datum
@print{} Fr,  12 Dez 1777: Das global an `z' zugewiesene Datum
$ gcal %1777 -H no -x -f ./dvar.rc -y
@print{}
@print{} So,   2 Feb 1777: Das lokal an `z' zugewiesene Datum
@print{} Fr,   4 Apr 1777: Das lokal an `z' zugewiesene Datum
@end cartouche
@end group
@end example

@arindex --export-date-variables
@cindex Datumvariablen, Export lokaler
@cindex Export lokaler Datumvariablen
@cindex Sichtbarkeit lokaler Datumvariablen
@cindex Datumvariablen, Sichtbarkeit lokaler
@noindent
Nur fortgeschrittene Benutzer sollten die @samp{--export-date-variables}
Option benutzen, welche bewirkt, da"s die aktuelle Inkarnation einer lokalen
Datumvariablen @minus{} welche zuvor in einer Ressourcendatei definiert wurde
und nicht in einer eingef"ugten Datei @minus{} an weitere Ressourcendateien
exportiert wird anstelle der Benutzung deren globalen Wertes, falls diese
Datumvariable nicht lokal in dieser weiteren Ressourcendatei definiert ist.
@xref{Include Anweisungen}, f"ur weitere Details.

@noindent
Aber seien Sie vorsichtig, die Benutzung dieser Option k"onnte
unerwartete Ergebnisse erzeugen, da die Reihenfolge der Abarbeitung
der Ressourcendateien eine wichtige Gr"o"se hinsichtlich der Handhabung
der @samp{--export-date-variables} Option ist, so da"s es nicht
empfohlen werden kann, diese Option zu benutzen.  Sie, der Benutzer,
m"ussen sehr genau wissen was Sie mit dieser Option bewirken wollen;
@strong{Sie seien nun ausdr"ucklich gewarnt!}

@cindex Operationen auf Datumvariablen
@cindex Datumvariablen, Operationen auf
@noindent
Einige grundlegende Operationen k"onnen auf Datumvariablen ausgef"uhrt werden:

@table @code
@item @var{dvar}++
@cindex Datumvariablen, einfache Inkrementierung
@cindex Einfache Inkrementierung von Datumvariablen
Einfache Inkrementierung um einen Tag.

@item @var{dvar}--
@cindex Datumvariablen, einfache Dekrementierung
@cindex Einfache Dekrementierung von Datumvariablen
Einfache Dekrementierung um einen Tag.

@item @var{dvar}+=@var{n}
@cindex Datumvariablen, Addition um Tage
@cindex Addition auf Datumvariablen
Addition eines konstanten numerischen Tagesfaktors @var{n}.

@item @var{dvar}-=@var{n}
@cindex Datumvariablen, Subtraktion um Tage
@cindex Subtraktion auf Datumvariablen
Subtraktion eines konstanten numerischen Tagesfaktors @var{n}.

@item @var{dvar}+=@var{n}@var{www}
@cindex Datumvariablen, Addition um Wochentage
@cindex Addition auf Datumvariablen
Addition von @var{n} Wochentagen @var{www}.

@item @var{dvar}-=@var{n}@var{www}
@cindex Datumvariablen, Subtraktion um Wochentage
@cindex Subtraktion auf Datumvariablen
Subtraktion von @var{n} Wochentagen @var{www}.
@end table

@cindex G"ultigkeitsbereich von Datumvariablen
@cindex Datumvariablen, G"ultigkeitsbereich von
@noindent
Der G"ultigkeitsbereich der Operationen, welche auf einer lokalen
Datumvariablen durchgef"uhrt werden, erstreckt sich auf die Ressourcendatei
oder die eingef"ugte Datei, in welcher die lokale Datumvariable definiert
wurde.

@noindent
Falls Operationen auf eine globale Datumvariable in einer Ressourcendatei oder
in derjenigen Datei, die in diese eingef"ugt wird, durchgef"uhrt werden, so
sind diese Operationen nur in dieser entsprechenden Datei g"ultig (diese werden
nur lokal ausgef"uhrt), nicht in weiteren Ressourcendateien, welche verarbeitet
werden.  Das bedeutet, da"s die Initialwerte der globalen Datumvariablen stets
restauriert werden, falls die zu verarbeitende Ressourcendatei wechselt.

@noindent
Bitte beachten Sie abschlie"send, da"s jede Zuweisung oder Operation auf eine
Datumvariable in einer separaten Zeile der Ressourcendatei erfolgen mu"s.

@page
@node Textvariablen, , Datumvariablen, Ressourcendatei
@subsection Textvariablen
@cindex Textvariablen
@cindex Lokale Textvariablen
@cindex Textvariablen, globale
@cindex Textvariablen, lokale
@cindex Definition lokaler Textvariablen
@cindex Lokale Textvariablen, Definition von
@cindex Definition von Textvariablen
@cindex Textvariablen, Definition von
@cindex Handhabung von Textvariablen
@cindex Textvariablen, Handhabung von
@cindex Zuweisungen an Textvariablen
@cindex Textvariablen, Zuweisungen an
@cindex Textvariablen, Gesamtanzahl von
@cindex Gesamtanzahl von Textvariablen

@noindent
Gcal respektiert @emph{globale} und/oder @emph{lokale} Textvariablen,
welche "uberall in einer Zeile der Gcal Ressourcendatei verwendet werden
d"urfen.  @xref{Terminwarnung Optionen, , @samp{--text-variable=@var{Argument}}}.
Das bedeutet, da"s bis zu @strong{26} benutzerdefinierte Textvariablen gesetzt
und w"ahrend der Programmausf"uhrung referenziert werden k"onnen.  Der Name
einer Textvariablen @dfn{tvar} besteht aus einem @samp{$} Pr"afix und einem
einzelnen Buchstaben (Gro"s- bzw.@: Kleinbuchstaben werden nicht unterschieden),
und wird in einer Definition gefolgt von dem Zuweisungsoperator @samp{=} und
dem Text, welchen diese Variable aufzunehmen hat.  Nur lokale Textvariablen
werden auf einen undefinierten Wert gesetzt falls kein Text rechts des
Zuweisungsoperators angegeben ist.  Sie sollten stets in Erinnerung behalten,
da"s Textvariablen erst dann in einer Zeile referenziert werden k"onnen, wenn
diese bereits definiert worden sind, da eine Ressourcendatei von Gcal Zeile
f"ur Zeile abgearbeitet wird.  Textvariablenreferenzen werden von Gcal stets
solange rekursiv expandiert, bis alle Sub-Referenzen auf andere Textvariablen
aufgel"ost sind.

@cindex Quotierung von Spezialzeichen
@cindex Quotierungszeichen, @samp{\}
@cindex @samp{\} Quotierungszeichen
@noindent
Falls das @samp{$} Zeichen im Text als Zeichen selbst verwendet werden soll,
so mu"s dieses durch ein f"uhrendes @samp{\} (Backslash) Zeichen quotiert
(gesch"utzt/entwertet) werden, z.B.@: @samp{\$}.

@noindent
Wenn die Zeichen @samp{\$} im Text selbst als Zeichenfolge verwendet werden
sollen, so mu"s das @samp{\} (Backslash) Zeichen mit sich selbst quotiert
werden, z.B.@: @samp{\\$}.

@noindent
Nun folgen ein paar Beispiele, wie Textvariablen von Gcal verarbeitet werden.
Angenommen es existiert eine Ressourcendatei mit dem Namen @file{demo.rc} und
dem folgenden Inhalt:

@example
@group
$a=foo
0 \$a:1=$a
$c=$a
0 \$c=$c
$b=$c bar $a
0 \$b=$b
$a=bar $b baz $a booz
0 \$a:2=$a
$a=
$b=0 $b $c frozz $a frozz
$b --> Das ist \$b
0 \$x='$x' und \$d ist nicht definiert: $d...
$a= 0 ~ 1~2~\$3~%n~$c~jetzt ist's genug!
0 \$a=---$a---
$a=0 \   \ \\ Und das...
$a geht auch!
@end group
@end example

@need 3000
@noindent
So erzeugt Gcal die folgende Ausgabe:

@example
@group
@cartouche
$ gcal %19960101 -H no -x -r '$A=FROBOZZ:$x=' -f ./demo.rc
@print{}
@print{} Mo,   1 Jan 1996: $a:1=foo
@print{} Mo,   1 Jan 1996: $a:2=bar foo bar foo baz foo booz
@print{} Mo,   1 Jan 1996: $a=--- 0
@print{}                    1
@print{}                   2
@print{}                   $3
@print{}                   01-Jan-1996
@print{}                   foo
@print{}                   jetzt ist's genug!---
@print{} Mo,   1 Jan 1996: $b=foo bar foo
@print{} Mo,   1 Jan 1996: $c=foo
@print{} Mo,   1 Jan 1996:    \ \\ Und das... geht auch!
@print{} Mo,   1 Jan 1996: foo bar foo foo frozz FROBOZZ frozz --> Das ist $b
@print{} Mo,   1 Jan 1996: $x='' und $d ist nicht definiert: $d...
@end cartouche
@end group
@end example

@noindent
Oder es existiert eine Ressourcendatei mit dem Namen @file{demo2.rc} und
folgendem Inhalt:

@example
@group
$a=$b foo
$b=0@@e
$a bar
$b \$b
0 \$a:$a
0 \$b:$b
@end group
@end example

@noindent
So erzeugt Gcal die folgenden Ausgaben:

@example
@group
@cartouche
$ gcal %19960101 -H no -x -f ./demo2.rc
@print{}
@print{} Mo,   1 Jan 1996: $a:0@@e foo
@print{} Mo,   1 Jan 1996: $b:0@@e
$ gcal %19960101 -H no -x -f ./demo2.rc -y
@print{}
@print{} So,   7 Apr 1996: $b
@print{} So,   7 Apr 1996: foo bar
@end cartouche
@end group
@end example

@noindent
Wie zuvor gesehen k"onnen vollst"andige (oder auch teilweise) Datumteile
(@pxref{Datumteil einer Zeile}), sowie spezielle Textmakros
(@pxref{Spezielle Textmakros}) in Textvariablen angegeben werden, oder auch
Referenzen auf andere Textvariablen, welche nach Expansion der Textvariablen
von Gcal verarbeitet werden.

@cindex Sichtbarkeit von Textvariablen
@cindex Textvariablen, Sichtbarkeit von
@cindex Namensraum von Textvariablen
@cindex Textvariablen, Namensraum von
@noindent
Textvariablen die in einer Ressourcendatei definiert werden sind stets lokal,
und werden nur in dieser spezifischen Datei @strong{und} derjenigen Datei
respektiert, welche in diese eingef"ugt wird.  Das bedeutet hinsichtlich der
eingef"ugten Datei, da"s alle lokalen Variablen der aufrufenden Datei sichtbar
sind.  Die eingef"ugte Datei selbst darf eigene lokale Variablen definieren,
welche dann die bereits an anderer Stelle definierten lokalen Variablen
"uberdecken und welche nicht bei R"uckkehr zur aufrufenden Datei exportiert
werden.  Alle anderen Definitionen von Textvariablen (in der Kommandozeile,
Umgebungsvariable @code{GCAL} oder Antwortdatei) sind stets global.  Falls
eine Zeile einer Ressourcendatei eine Referenz auf eine Textvariable enth"alt,
die nicht lokal in dieser Datei definiert ist, so wird Gcal versuchen, die
Werte der entsprechenden globalen Variablen zu benutzen.  Sollte dieses nicht
gelingen, da keine globale Definition dieser Textvariablen vorliegt, so wird
Gcal den Namen dieser Textvariablen unver"andert in der Zeile belassen.

@arindex --export-text-variables
@cindex Textvariablen, Export lokaler
@cindex Export lokaler Textvariablen
@cindex Sichtbarkeit lokaler Textvariablen
@cindex Textvariablen, Sichtbarkeit lokaler
@noindent
Nur fortgeschrittene Benutzer sollten die @samp{--export-text-variables}
Option benutzen, welche bewirkt, da"s die aktuelle Inkarnation einer lokalen
Textvariablen @minus{} welche zuvor in einer Ressourcendatei definiert wurde
und nicht in einer eingef"ugten Datei @minus{} an weitere Ressourcendateien
exportiert wird anstelle der Benutzung deren globalen Wertes, falls diese
Textvariable nicht lokal in dieser weiteren Ressourcendatei definiert ist.
@xref{Include Anweisungen}, f"ur weitere Details.

@noindent
Aber seien Sie vorsichtig, die Benutzung dieser Option k"onnte
unerwartete Ergebnisse erzeugen, da die Reihenfolge der Abarbeitung
der Ressourcendateien eine wichtige Gr"o"se hinsichtlich der Handhabung
der @samp{--export-text-variables} Option ist, so da"s es nicht
empfohlen werden kann, diese Option zu benutzen.  Sie, der Benutzer,
m"ussen sehr genau wissen was Sie mit dieser Option bewirken wollen;
@strong{Sie seien nun ausdr"ucklich gewarnt!}

@cindex G"ultigkeitsbereich von Textvariablen
@cindex Textvariablen, G"ultigkeitsbereich von
@noindent
Der G"ultigkeitsbereich der Definitionen, welche auf eine lokale
Textvariable durchgef"uhrt werden, erstreckt sich auf die Ressourcendatei
oder die eingef"ugte Datei, in welcher die lokale Textvariable definiert
wurde.

@noindent
Falls Redefinitionen einer globalen Textvariable in einer Ressourcendatei
oder in derjenigen Datei, die in diese eingef"ugt wird, durchgef"uhrt werden,
so sind diese Definitionen nur in dieser entsprechenden Datei g"ultig (diese
werden nur lokal ausgef"uhrt), nicht in weiteren Ressourcendateien, welche
verarbeitet werden.  Das bedeutet, da"s die Initialwerte der globalen
Textvariablen stets restauriert werden, falls die zu verarbeitende
Ressourcendatei wechselt.

@noindent
Bitte beachten Sie abschlie"send, da"s jede Zuweisung an eine Textvariable
in einer separaten Zeile der Ressourcendatei erfolgen mu"s.

@page
@node Ressourcendateibeispiele, , Ressourcendatei, Terminwarnungen
@section Ressourcendateibeispiele
@cindex Ressourcendateibeispiele

@noindent
Um einen konkreten Eindruck von den Einsatzm"oglichkeiten aller die
Terminwarnungen betreffenden Eigenschaften von Gcal zu erhalten, folgen
nun einige Beispiele problembezogener Ressourcendateien.

@noindent
Zun"achst ein ganz allgemeines Beispiel:

@example
@group
; Das ist ein allgemeines Beispiel einer Ressourcendatei.
;
19940715 Uhrzeit: %t --> Zahnarzttermin um 10:00 Uhr
00000921 Mein %b1962 Geburtstag%s1962 %e2062
0000093 Die~Gregorianische Reformation\~war vor %y1582 Jahren
0000Sep03 Die~Gregorianische Reformation\~war vor %y1582 Jahren
0 Jeder Tag in jedem Monat in jedem Jahr
0000 Jeder Tag in jedem Monat in jedem Jahr
00000000 Jeder Tag in jedem Monat in jedem Jahr
199400fre        Immer Freitags 1994
000007mo3 Jeder dritte Montag im Juli~jeden Jahres kleiner 1980%e1979
0000@@e-10 Ostersonntag-10 Tage in jedem Jahr
0@@e-10 Ostersonntag-10 Tage in jedem Jahr
00000000@@e+10 Ostersonntag+10 Tage in jedem Jahr
a=1127
0@@a+20 20 Tage nach dem Datum der Datumvariablen `a'
a=*W10FR
0@@a-1 Der Donnerstag der 10'ten ISO-Woche in jedem Jahr
0@@a   Der Freitag der 10'ten ISO-Woche in jedem Jahr
0@@a1  Der Samstag der 10'ten ISO-Woche in jedem Jahr
1995*d10    Der 10'te absolute Tag in 1995
1995*d99die Der letzte Dienstag in 1995
0*w99so Der Sonntag der letzten ISO-Woche in jedem Jahr
;
; Der folgende Eintrag wird von ALLEN
;   Terminwarnungszeitraum-Modifizierern verarbeitet.
;
1994*d1sun#SON.7 Jeder Sonntag in 1994
;
; Buss- und Bettag ist der Mittwoch vor dem Sonntag,
;   der vor dem 1'ten Adventssonntag liegt.
;
a=1225
a=a-5so
0@@a-4 Buss- und Bettag
@end group
@end example

@need 4000
@noindent
Und hier eine Ressourcendatei mit dem Dateinamen @file{demo3.rc}, mit der alle
Freitage bestimmt werden k"onnen, die auf den 13'ten Tag eines Monats fallen:

@example
@group
$a=Freitag der 13'te%s0000
$b= %e0000
$c=fr2
$d=fr3
00000113 $a01$c$b01$c
00000113 $a01$d$b0$1d
00000213 $a02$c$b02$c
00000213 $a02$d$b02$d
00000313 $a03$c$b03$c
00000313 $a03$d$b03$d
00000413 $a04$c$b04$c
00000413 $a04$d$b04$d
00000513 $a05$c$b05$c
00000513 $a05$d$b05$d
00000613 $a06$c$b06$c
00000613 $a06$d$b06$d
00000713 $a07$c$b07$c
00000713 $a07$d$b07$d
00000813 $a08$c$b08$c
00000813 $a08$d$b08$d
00000913 $a09$c$b09$c
00000913 $a09$d$b09$d
00001013 $a10$c$b10$c
00001013 $a10$d$b10$d
00001113 $a11$c$b11$c
00001113 $a11$d$b11$d
00001213 $a12$c$b12$c
00001213 $a12$d$b12$d
@end group
@end example

@page
@noindent
F"ur die Jahre 1996@dots{}2002 ist das Ergebnis wie folgt:

@example
@group
@cartouche
$ gcal -H no -u -x -f ./demo3.rc 1996+2002
@print{}
@print{} Fr,  13 Sep 1996: Freitag der 13'te
@print{} Fr,  13 Dez 1996: Freitag der 13'te
@print{}
@print{} Fr,  13 Jun 1997: Freitag der 13'te
@print{}
@print{} Fr,  13 Feb 1998: Freitag der 13'te
@print{} Fr,  13 Mae 1998: Freitag der 13'te
@print{} Fr,  13 Nov 1998: Freitag der 13'te
@print{}
@print{} Fr,  13 Aug 1999: Freitag der 13'te
@print{}
@print{} Fr,  13 Okt 2000: Freitag der 13'te
@print{}
@print{} Fr,  13 Apr 2001: Freitag der 13'te
@print{} Fr,  13 Jul 2001: Freitag der 13'te
@print{}
@print{} Fr,  13 Sep 2002: Freitag der 13'te
@print{} Fr,  13 Dez 2002: Freitag der 13'te
@end cartouche
@end group
@end example

@noindent
Oder eine etwas k"urzere Version der Ressourcendatei @file{demo3.rc} mit dem
Dateinamen @file{demo4.rc}, mit der ebenfalls alle Freitage bestimmt werden
k"onnen, die auf den 13'ten Tag eines Monats fallen:

@example
@group
$a=Freitag der 13'te ist am %n+12%s0000
$b= %e0000
$c=so1
00000101 $a01$c$b01$c
00000201 $a02$c$b02$c
00000301 $a03$c$b03$c
00000401 $a04$c$b04$c
00000501 $a05$c$b05$c
00000601 $a06$c$b06$c
00000701 $a07$c$b07$c
00000801 $a08$c$b08$c
00000901 $a09$c$b09$c
00001001 $a10$c$b10$c
00001101 $a11$c$b11$c
00001201 $a12$c$b12$c
@end group
@end example

@need 4000
@noindent
F"ur die Jahre 1996@dots{}2002 ist das Ergebnis wie folgt:

@example
@group
@cartouche
$ gcal -H no -u -x -f ./demo4.rc 1996+2002
@print{}
@print{} So,   1 Sep 1996: Freitag der 13'te ist am 13-Sep-1996
@print{} So,   1 Dez 1996: Freitag der 13'te ist am 13-Dez-1996
@print{}
@print{} So,   1 Jun 1997: Freitag der 13'te ist am 13-Jun-1997
@print{}
@print{} So,   1 Feb 1998: Freitag der 13'te ist am 13-Feb-1998
@print{} So,   1 Mae 1998: Freitag der 13'te ist am 13-Mae-1998
@print{} So,   1 Nov 1998: Freitag der 13'te ist am 13-Nov-1998
@print{}
@print{} So,   1 Aug 1999: Freitag der 13'te ist am 13-Aug-1999
@print{}
@print{} So,   1 Okt 2000: Freitag der 13'te ist am 13-Okt-2000
@print{}
@print{} So,   1 Apr 2001: Freitag der 13'te ist am 13-Apr-2001
@print{} So,   1 Jul 2001: Freitag der 13'te ist am 13-Jul-2001
@print{}
@print{} So,   1 Sep 2002: Freitag der 13'te ist am 13-Sep-2002
@print{} So,   1 Dez 2002: Freitag der 13'te ist am 13-Dez-2002
@end cartouche
@end group
@end example

@page
@noindent
Und hier eine Ressourcendatei mit dem Dateinamen @file{demo5.rc}, mit der
alle Werktage eines beliebigen Monats bestimmt werden k"onnen:

@example
@group
$a=Werktag
$c=%e0000$b99
a=$bmo1
0@@a#+4 $a
a=$bdi1
0@@a#+3 $a
a=$bmi1
0@@a#+2 $a
a=$bdo1
0@@a#+1 $a
a=$bfr1
0@@a $a
a=$bmo2
0@@a#+4 $a
a=$bmo3
0@@a#+4 $a
a=$bmo4
0@@a#+4 $a$c
a=$bmo9
0@@a#+4 $a$c
@end group
@end example

@noindent
Beziehungsweise eine etwas k"urzere Version der Ressourcendatei @file{demo5.rc}:

@example
@group
$a=Werktag
$c=%e0000$b99
0000$bmo1:5 $a
0000$bdi1:4 $a
0000$bmi1:3 $a
0000$bdo1:2 $a
0000$bfr1:1 $a
0000$bmo2:5 $a
0000$bmo3:5 $a
0000$bmo4:5 $a$c
0000$bmo9:5 $a$c
@end group
@end example

@noindent
Und es existiert eine Ressourcendatei mit dem Namen @file{include.rc},
die nur zur Einf"ugung einer beliebigen Ressourcendateien gedacht ist:

@example
#include "$f"
@end example

@need 4000
@noindent
Dann ist das Ergebnis f"ur den Monat Februar 1996 wie folgt:

@example
@group
@cartouche
$ gcal -H no -u -x -r '$b=02:$f=demo5.rc' -f ./include.rc feb 1996
@print{}
@print{} Do,   1 Feb 1996: Werktag
@print{} Fr,   2 Feb 1996: Werktag
@print{} Mo,   5 Feb 1996: Werktag
@print{} Di,   6 Feb 1996: Werktag
@print{} Mi,   7 Feb 1996: Werktag
@print{} Do,   8 Feb 1996: Werktag
@print{} Fr,   9 Feb 1996: Werktag
@print{} Mo,  12 Feb 1996: Werktag
@print{} Di,  13 Feb 1996: Werktag
@print{} Mi,  14 Feb 1996: Werktag
@print{} Do,  15 Feb 1996: Werktag
@print{} Fr,  16 Feb 1996: Werktag
@print{} Mo,  19 Feb 1996: Werktag
@print{} Di,  20 Feb 1996: Werktag
@print{} Mi,  21 Feb 1996: Werktag
@print{} Do,  22 Feb 1996: Werktag
@print{} Fr,  23 Feb 1996: Werktag
@print{} Mo,  26 Feb 1996: Werktag
@print{} Di,  27 Feb 1996: Werktag
@print{} Mi,  28 Feb 1996: Werktag
@print{} Do,  29 Feb 1996: Werktag
@end cartouche
@end group
@end example

@noindent
Und abschlie"send eine Ressourcendatei mit dem Namen @file{swtime.rc}, die
Terminwarnungen f"ur den Zeitraum zwei Tage vor bis zwei Tage nach Umstellung
auf Sommerzeit/Winterzeit (ab 1980) f"ur die Bundesrepublik Deutschland
bewirkt:

@example
@group
;
; `swtime.rc'; Sommerzeit/Winterzeit BRD
;
$a=zeitumstellung am Sonntag
;
a=03so9
0@@a-2#+2 Sommer$a~+1 Std. (02.00 --> 03.00 Uhr)%s1980
;
a=09so9
0@@a-2#+2 Winter$a~-1 Std. (03.00 --> 02.00 Uhr)%s1980 %e1995
;
a=10so9
0@@a-2#+2 Winter$a~-1 Std. (03.00 --> 02.00 Uhr)%s1996
@end group
@end example

@node Heutiger Kalender, Gcal Hilfsprogramme, Terminwarnungen, Top
@appendix Entstehungsgeschichte des Gregorianischen Kalenders
@cindex Kalender, Gregorianischer
@cindex Gregorianischer Kalender, Entstehung des
@cindex Kalender, Julianischer
@cindex Julianischer Kalender

@noindent
Der heutzutage benutzte Kalender wurde zuerst von den R"omern in zahlreichen
ungenauen Variationen formuliert, die alle zum Ziel hatten, den Mond- und
Sonnenlauf in Einklang zu bringen.  So kam es, da"s in der Zeit des Julius
C"asar der Monat Januar in den Herbst fiel.  Auf C"asars Befehl hin wurde
von @w{Sosigenes} eine Kalenderreform durchgef"uhrt.  Dieser addierte 90
Tage zu dem Jahr 46 vor Christus, um den bis dahin aufgelaufenen
jahreszeitlichen Versatz zu korrigieren.  Zudem modifizierte er die
Monatsl"angen "ahnlich der Form, wie wir sie heute noch benutzen.  Weiterhin
wurde das Schaltjahr von ihm eingef"uhrt, indem alle vier Jahre ein weiterer
Tag im Monat Februar hinzuaddiert wurde.  Die Schaltjahrregelung sah zun"achst
so aus, da"s alle vier Jahre nach dem 23'ten Tag im Februar ein Schalttag
eingelegt wurde, der 24'te Februar wurde zu einem @dfn{Doppeltag}, fand also
zweimal statt.  Die Benutzung eines Schaltjahres war eine echte Verbesserung
der Kalenderrechnung, aber noch nicht in vollem Umfang exakt.

@noindent
In den folgenden Jahren wurde die Schaltregel aber falsch angewendet, und so
korrigierte Kaiser Augustus im Jahre 8 vor Christus die Fehler.  Dabei kam es
zu einem kuriosen Nachspiel.  Da Augustus mit gro"ser Eifersucht auf alles
reagierte, was zuvor Julius C"asar getan bzw.@: angestrengt hatte, ertrug er
auch nicht dessen Ehrung im Kalender, den heutigen Monat @strong{Juli}.  Er
benannte kurzerhand einen anderen Monat nach sich selbst, und so entstand der
Monatsname @strong{August}.  Weiterhin duldete Augustus nicht, da"s sein
Geburtsmonat August im Sinne der regelm"a"sigen Abfolge von Monaten mit 30
und 31 Tagen k"urzer war als der Monat C"asars.  Konsequenterweise bekam der
August ebenfalls 31 Tage.  Daf"ur mu"ste der Februar noch weiter, auf 28 bzw.@:
29 Tage schrumpfen.

@noindent
Dieser Kalender ist als der @dfn{Julianische Kalender} in die
Geschichtsschreibung eingegangen und hat ein reines Sonnenjahr zur Grundlage.
Die Soll-L"ange eines Sonnenjahres (bzw.@: sogenannten tropischen Jahres)
betr"agt 365 Tage, 5 Stunden, 48 Minuten und 46 Sekunden.  Ein 366-Tage Jahr,
welches alle vier Jahre stattfindet, setzt nun aber die Durchschnittsl"ange
von einem Julianischen Jahr auf 365 Tage und 6 Stunden, also auf 365,25 Tage.
Das bedeutet somit, da"s sich alle vier Jahre ein Fehler von 44 Minuten und
56 Sekunden in diese Kalenderrechnung einschleicht.  Die Jahre werden aufgrund
dieser Z"ahlweise etwas zu lang, und zwar um gut 11 Minuten.

@noindent
So kam es, da"s der Fr"uhlingsanfang im 16'ten Jahrhundert auf den 11'ten M"arz
fiel (anstatt auf den 21'ten M"arz) durch einen bis dahin akkumulierten Fehler
von zehn Tagen.  Auch das Osterfest r"uckte stets mehr und mehr vom gewohnten
Fr"uhlingstermin ab und mu"ste immer fr"uher gefeiert werden.  Papst Gregor
XIII ordnete eine weitere Kalenderreform an um diesen Fehler zu kompensieren.
So wurde der Fr"uhlingsanfang auf den 21'ten M"arz festgelegt und Donnerstag,
der 4'te Oktober wurde gefolgt von Freitag, dem 15'ten Oktober, indem einfach
zehn Tage im Kalender "ubersprungen wurden.  Zudem wurde alle 400 Jahre ein
Schaltjahrhundert eingef"uhrt und weiterhin bestimmt, da"s die Jahrhundertwenden
keine Schaltjahre mehr sind, mit der Ausnahme, da"s Jahrhundertwenden, die
durch 400 ganzzahlig teilbar sind, dennoch Schaltjahre bleiben sollten.  Diese
Regelung verminderte den Fehler in der Kalenderrechnung um weitere 72 Stunden
(3 Tage) alle 400 Jahre.  Der aktuelle "Uberschu"s betr"agt akkumuliert 74
Stunden, 53 Minuten und 20 Sekunden.  Der Fehler von 2 Stunden, 53 Minuten
und 20 Sekunden pro Zeitraum von 400 Jahren bel"auft sich auf einen Tag in
3323 Jahren.  Damit hat das Gregorianische Jahr eine Durchschnittsl"ange
von 365,2425 Tagen.

@noindent
Dieser @dfn{Gregorianische Kalender} setzte sich aber nur sehr langsam durch.
Katholisch regierte L"ander "ubernahmen den Gregorianischen Kalender sofort
oder innerhalb weniger Jahre.  Die meisten protestantisch regierten L"ander
auf dem europ"aischen Kontinent "ubernahmen den neuen Gregorianischen Kalender
um 1700.  England und die amerikanischen Kolonien wechselten zu dem Kalender
im Jahre 1752 durch Parlamentsbeschlu"s.  Orthodox christianisierte L"ander
"ubernahmen den Gregorianischen Kalender sp"ater.  Russland war das letzte
europ"aische Land was das tat, und zwar nach der Kommunistischen Revolution,
welche am 25'ten Oktober 1917 (Gregorianisch) stattfand.  Daraus resultierte,
da"s die UDSSR den Tag der Oktoberrevolution nach dem alten Julianischen
Kalender am 7'ten November feierte.

@noindent
Als bisher letzter Staat stellte die Volksrepublik China im Jahre 1949
seine Zeitrechnung auf den Gregorianischen Kalender um.  Heute ist die
weltweit einheitliche Zeitrechnung schon bereits wieder Geschichte geworden.
So ist der Iran im Jahre 1979 nach Absetzung des Schah-Regierung wieder zum
traditionellen mohammedanischen Mondkalender zur"uckgekehrt.  Es gibt auch
einige Bem"uhungen, unseren gegenw"artig g"ultigen Gregorianischen Kalender
zu verbessern.  Die Nachteile bestehen darin, da"s ein bestimmter Kalendertag
nicht immer auf den gleichen Wochentag f"allt.  Zudem sind die Monate ungleich
lang und die an das Osterfest gebundenen Feiertage verschieben sich innerhalb
des Kalenders von Jahr zu Jahr.  Ein recht ausgereifter Vorschlag wurde von den
Vereinten Nationen vorgetragen.  Seine internationale Einf"uhrung scheiterte
jedoch am Widerstand einiger L"ander, als auch der Kirchen.

@node Gcal Hilfsprogramme, Internationalisierung, Heutiger Kalender, Top
@appendix Gcal Hilfsprogramme
@cindex Gcal Hilfsprogramme
@cindex Hilfsprogramme zu Gcal

@menu
* Aufruf von tcal::      Wie starte ich das @code{tcal} Programm?
* Aufruf von txt2gcal::  Wie starte ich das @code{txt2gcal} Programm?
@end menu

@noindent
Zwei kleine Hilfsprogramme sind im Gcal @value{GCAL-VERSION} Paket enthalten.
Das @code{tcal} Programm startet das Gcal Programm mit dem Datum des morgigen
Tages.  Und das @code{txt2gcal} Programm erzeugt eine wortgetreue Gcal
Ressourcendatei aus einer Textdatei.

@node Aufruf von tcal, Aufruf von txt2gcal, Gcal Hilfsprogramme, Gcal Hilfsprogramme
@appendixsec Aufruf von @code{tcal}
@cindex Aufruf von @code{tcal}
@cindex @code{tcal}, Aufruf von
@cindex Das @code{tcal} Hilfsprogramm
@cindex Hilfsprogramm @code{tcal}
@cindex @code{tcal}, Hilfsprogramm

@noindent
@code{tcal} ist ein Programm, welches @code{gcal} mit dem Datum des morgigen
Tages aufruft (entspricht der @w{@samp{--shift=1}} Option).  Seine Argumente
sind wie folgt:

@example
tcal @r{[}--help @r{|} --version@r{] | [}--shift=@r{[}+@r{|}-@r{]}@var{Zahl}@r{] [}@var{Argument}@dots{}@r{]}
@end example

@noindent
Alle gegebenen @var{Argumente} werden unver"andert an das Gcal Programm
"ubergeben.  Soll das Gcal Programm mit einem anderen Datum als dem Datum
des morgigen Tages aufgerufen werden, so kann dieses gew"unschte Datum
mittels der @w{@samp{--shift=@r{[}+@r{|}-@r{]}@var{Zahl}}} Option vorgew"ahlt
werden, wobei @w{@samp{@r{[}+@r{|}-@r{]}@var{Zahl}}} die Distanz an Tagen ist,
die das gew"unschte Datum vom aktuellen Datum entfernt ist.  Die @samp{--shift}
Option mu"s vor allen anderen @var{Argumenten}, die an das Gcal Programm
"ubergeben werden, angegeben sein.

@cindex @code{GCALPROG} Umgebungsvariable
@cindex Umgebungsvariable, @code{GCALPROG}
@vindex GCALPROG
@noindent
Falls eine @code{GCALPROG} Umgebungsvariable
@pxref{Umgebungsvariablen, , GCALPROG}) definiert und mit dem Dateinamen
des ausf"uhrbaren Gcal Programms gesetzt ist, so benutzt @code{tcal} diesen
Dateinamen um Gcal aufzurufen.  Anderenfalls benutzt @code{tcal} den beim
Kompiliervorgang eingebrannten Dateinamen @code{gcal} um das Gcal Progamm
aufzurufen.  Ein Programmendestatus 0 bedeutet, da"s die Verarbeitung
erfolgreich war, ein anderer Endestatus verweist auf einen Fehler
w"ahrend der Verarbeitung.

@noindent
Das Programm akzeptiert die folgenden Optionen:

@table @samp
@item --help
@arindex --help
Ausgabe eines Hilfetextes, der alle verf"ugbaren Optionen aufzeigt, sodann
erfolgreiches Programmende.

@item --version
@arindex --version
Ausgabe der Versionsnummer, sodann erfolgreiches Programmende.

@item --shift=@r{[}+@r{|}-@r{]}@var{Zahl}
@arindex --shift=@r{[}+@r{|}-@r{]}@var{Zahl}
Legt den um @samp{@r{[}+@r{|}-@r{]}@var{Zahl}} vorgegebenen Versatz an
Tagen bezogen auf das aktuelle Datum fest.
@end table

@node Aufruf von txt2gcal, , Aufruf von tcal, Gcal Hilfsprogramme
@appendixsec Aufruf von @code{txt2gcal}
@cindex Aufruf von @code{txt2gcal}
@cindex @code{txt2gcal}, Aufruf von
@cindex Das @code{txt2gcal} Hilfsprogramm
@cindex Hilfsprogramm @code{txt2gcal}
@cindex @code{txt2gcal}, Hilfsprogramm

@noindent
@code{txt2gcal} ist ein Programm, welches aus einer Textdatei eine
wortgetreue Gcal Ressourcendatei erzeugt.  Seine Argumente sind wie folgt:

@example
txt2gcal @r{[}--help @r{|} --version@r{] | [}@var{Textdatei} @r{|} -@r{] [}@var{Datumteil}@r{]}
@end example

@noindent
Wird keine @var{Textdatei} oder @code{-} als Argument angegeben, so liest und
verarbeitet das Programm alle Eingaben, die vom Standardeingabekanal kommen.
Wird kein @var{Datumteil} als Argument angegeben, so wird von @code{txt2gcal}
eine @samp{0} f"ur den Datumteil erzeugt.  Alle Ergebnisse werden stets auf dem
Standardausgabekanal ausgegeben.  Ein Programmendestatus 0 bedeutet, da"s die
Verarbeitung erfolgreich war, ein anderer Endestatus verweist auf einen Fehler
w"ahrend der Verarbeitung.

@noindent
Das Programm akzeptiert die folgenden Optionen:

@table @samp
@item --help
@arindex --help
Ausgabe eines Hilfetextes, der alle verf"ugbaren Optionen aufzeigt, sodann
erfolgreiches Programmende.

@item --version
@arindex --version
Ausgabe der Versionsnummer, sodann erfolgreiches Programmende.
@end table
@sp 2

@noindent
Nun zu einem Beispiel, welches den Einsatz von @code{txt2gcal} n"aher erl"autern
soll.  Angenommen es existiert eine Textdatei mit dem Namen @file{demo} und dem
folgenden Inhalt:

@example
@group
        Hallo Freunde,

Ich bin der Demo-Text, der lustige Zeichen und Zeichensequenzen
enhaelt wie ~~ \~ % %% $a $1 %%%\
%\ %s %%foo %bar \%baz \\~ \~\ und so weiter...
Ich bin gespannt darauf wie ich von `txt2gcal' umgesetzt werde.
@end group
@end example

@noindent
und @code{txt2gcal} verarbeitet diese Datei, wobei die Ausgabe
in die Datei @file{demo.rc} umgelenkt wird:

@example
@group
@cartouche
$ txt2gcal demo 0*d1#999 > demo.rc
@result{} 0*d1#999 \        Hallo Freunde,~\
@result{} ~\
@result{} Ich bin der Demo-Text, der lustige Zeichen und Zeichensequenzen~\
@result{} enhaelt wie \~\~ \\~ % %% \$a $1 %%%\ ~\
@result{} %\ \%s %%foo \%bar \\%baz \\\~ \\~\ und so weiter...~\
@result{} Ich bin gespannt darauf wie ich von `txt2gcal' umgesetzt werde.
@end cartouche
@end group
@end example

@noindent
dann hat @code{txt2gcal} nun die neue Gcal Ressourcendatei @file{demo.rc} aus
der Textdatei @file{demo} erzeugt.  Abschlie"send erfolgt die Betrachtung, wie
Gcal diese neue Ressourcendatei interpretiert:

@example
@group
@cartouche
$ gcal %19960101 -H no -Ax -f ./demo.rc
@print{}
@print{} Mo,   1 Jan 1996:
@print{}         Hallo Freunde,
@print{} 
@print{} Ich bin der Demo-Text, der lustige Zeichen und Zeichensequenzen
@print{} enhaelt wie ~~ \~ % %% $a $1 %%%\
@print{} %\ %s %%foo %bar \%baz \\~ \~\ und so weiter...
@print{} Ich bin gespannt darauf wie ich von `txt2gcal' umgesetzt werde.
@end cartouche
@end group
@end example

@node Internationalisierung, Metasymbole, Gcal Hilfsprogramme, Top
@appendix Gesichtspunkte zur Internationalisierung
@cindex Gesichtspunkte zur Internationalisierung
@cindex Internationalisierungsgesichtspunkte
@cindex Benutzte Landessprache
@cindex Landessprache, benutzte

@noindent
Gcal besitzt ab Version 2.00 die F"ahigkeit, Meldungstexte nicht mehr nur
allein in englischer Landessprache auszugeben, sondern auch in beliebigen
anderen Landessprachen, da Bestandteile des GNU @code{gettext} Pakets in
die Software integriert worden sind.
@xref{Top, , Introduction, gettext, GNU gettext tools}, f"ur weitere Details.

@cindex Message catalog
@noindent
Gcal ist intern so eingestellt, da"s es die englische Landessprache zur
Ausgabe aller Meldungstexte verwendet, sofern keine andere Landessprache
verwendet werden soll.  Werden Meldungstexte in einer anderen Landessprache
gew"unscht, so werden diese von Gcal aus einem sogenannten @emph{message
catalog} zur Laufzeit eingelesen.  Die folgenden Landessprachen werden von
Gcal @value{GCAL-VERSION} unterst"utzt:

@example
@group
@value{SLANG}
@end group
@end example

@cindex Wahl der Landessprache
@cindex Landessprache, Wahl der
@noindent
Um eine andere Landessprache anstelle der englischen Landessprache vorzuw"ahlen,
braucht nur in einer der Umgebungsvariablen (die hier in absteigender Priorit"at
aufgelistet sind)

@enumerate
@item
@vindex LANGUAGE
@cindex @code{LANGUAGE} Umgebungsvariable
@cindex Umgebungsvariable, @code{LANGUAGE}
@code{LANGUAGE} (@pxref{Umgebungsvariablen, , LANGUAGE})

@item
@vindex LC_ALL
@cindex @code{LC_ALL} Umgebungsvariable
@cindex Umgebungsvariable, @code{LC_ALL}
@code{LC_ALL} (@pxref{Umgebungsvariablen, , LC_ALL})

@item
@vindex LC_MESSAGES
@cindex @code{LC_MESSAGES} Umgebungsvariable
@cindex Umgebungsvariable, @code{LC_MESSAGES}
@code{LC_MESSAGES} (@pxref{Umgebungsvariablen, , LC_MESSAGES})

@item
@vindex LANG
@cindex @code{LANG} Umgebungsvariable
@cindex Umgebungsvariable, @code{LANG}
@code{LANG} (@pxref{Umgebungsvariablen, , LANG})
@end enumerate

@noindent
ein entsprechender Sprachkode eintragen zu werden.

@noindent
Endanwender benutzen normalerweise nur die @code{LANG} Umgebungsvariable um
Gcal mitzuteilen, welche Landessprache zur Laufzeit verwendet werden soll.
Angenommen Benutzer m"ochten Gcal mit Meldungstexten in deutscher Landessprache
betreiben, so k"onnen diese die shell dazu veranlassen, die Umgebungsvariable
@code{LANG} mit dem Inhalt @code{de} zu besetzen, und zwar durch
@w{@samp{setenv LANG de}} (bei Benutzung der @code{csh} shell) oder durch
@w{@samp{export LANG; LANG=de}} (bei Benutzung des @code{sh} shell).
Selbstverst"andlich kann dieser Befehl auch in der @file{.login} bzw.@:
@file{.profile} Datei von Endanwendern enthalten sein.
@xref{Users, , The User's View, gettext, GNU gettext tools}, f"ur weitere
Details.

@cindex @sc{iso}-639:1988
@cindex Sprachkodes
@cindex Einfache Sprachkode-Information
@cindex Sprachkode-Information, einfache
@noindent
Wie zuvor dargestellt reicht bereits der simple Eintrag von @code{de} in der
Umgebungsvariablen @code{LANG} aus, um die Ausgabe deutscher Meldungstexte zu
veranlassen.  @code{de} ist der aus zwei Buchstaben bestehende Sprachkode f"ur
Deutsch, der in der @sc{iso}-639:1988 definiert ist und im weiteren Verlauf als
@dfn{einfache Sprachkode-Information} bezeichnet wird.  Andere Sprachkodes
k"onnen dieser @sc{iso}-Norm entnommen werden (z.B.@: @code{fr} f"ur
Franz"osisch, @code{es} f"ur Spanisch etc.@:).

@sp 2

@cindex Landessprachliche Grundeinstellungen
@noindent
Da Gcal als Kalenderprogramm auch den Eigenheiten der verwendeten Landessprache
hinsichtlich der Anordnung von Tag, Monat und Jahr (und weiterem) in einem
dargestellten Datum, dem Zeitraum der Gregorianischen Reform und der
Darstellungsweise von Kalenderbl"attern, nachkommen mu"s, sind diese Kriterien
ebenfalls an den Sprachkode gebunden (genaugenommen an eine erweiterte
Sprachkode-Information).

@noindent
So bewirkt ein @code{en} Sprachkode folgende interne Grundeinstellungen
vorgenannter Kriterien:

@itemize @bullet
@item
US amerikanisches Datumformat

@item
Gregorianische Reformation war 1752

@item
Starttag der Woche ist Sonntag

@item
Kalenderblattdarstellung

@example
@group
   September 1994
Mo Di Mi Do Fr Sa So
          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
@end group
@end example
@end itemize

@noindent
Und ein @code{de} Sprachkode (oder andere Sprachkodes, f"ur welche in Zukunft
ein @emph{message catalog} erstellt und mit ausgeliefert wird) bewirkt folgende
interne Grundeinstellungen:

@itemize @bullet
@item
Deutsches Datumformat

@item
Gregorianische Reformation war 1582

@item
Starttag der Woche ist Montag

@item
Kalenderblattdarstellung

@example
@group
September 1994

Montag           5 12 19 26
Dienstag         6 13 20 27
Mittwoch         7 14 21 28
Donnerstag    1  8 15 22 29
Freitag       2  9 16 23 30
Samstag       3 10 17 24
Sonntag       4 11 18 25
@end group
@end example
@end itemize

@noindent
Alle diese internen Grundeinstellungen sind durch die Angabe der entsprechenden
Optionen (@samp{--date-format}, @samp{--gregorian-reform}, @samp{--starting-day}
und @samp{--type}) ver"anderbar.

@noindent
Falls kein Sprachkode vorgefunden wird, so nimmt Gcal die interne
Grundeinstellung des @code{en} Sprachkodes an (besser gesagt der erweiterten
Sprachkode-Information @code{en_us}) an.

@noindent
Falls ein Sprachkode angegeben ist, f"ur den kein @emph{message catalog}
installiert wurde, so nimmt Gcal die internen Grundeinstellungen des @code{de}
Sprachkodes an, gibt aber die Meldungstexte in der Englischen Landessprache aus.
Dieses Verhalten erscheint mir im Augenblick als die zweckm"a"sigste L"osung in
einem solchen Fall.  Da die Englische Landessprache weltweit st"arker verbreitet
ist als die Deutsche oder andere Landessprachen, macht es in einem solchen Fall
durchaus Sinn, die Meldungstexte in der Englischen Landessprache auszugeben.
Allerdings sind die sonstigen Kriterien, die an die Englische Landessprache
gebunden sind, so speziell f"ur Benutzer anderer Landessprachen, da"s es
durchaus Sinn macht, diese Kriterien an die internen Grundeinstellungen des
@code{de} Sprachkodes anzulehnen, da in den meisten europ"aischen L"andern
(die ich hier zum Ma"sstab mache) die internen Grundeinstellungen des @code{de}
Sprachkodes verwendet werden.

@cindex @sc{iso}-3166
@cindex Erweiterte Sprachkode-Information
@cindex Sprachkode-Information, erweitert
@vindex LANG
@noindent
Nun werden sich britische Endanwender sicherlich fragen, ob auch ihr Datumformat
als interne Grundeinstellung benutzt werden kann (alle anderen internen
Grundeinstellungen der einfachen @code{en} Sprachkode-Information entsprechen
ja sonst ihren Kriterien).  Die Antwort lautet schlich und ergreifend @cite{ja},
allerdings mu"s dieser Benutzerkreis anstelle einer einfachen
Sprachkode-Information eine @dfn{erweiterte Sprachkode-Information} in der
Umgebungsvariable @code{LANG} angeben.  Die "ubliche Schablone einer
erweiterten Sprachkode-Information ist wie folgt aufgebaut:

@itemize @bullet
@item
Nach XPG Syntax (X/Open Portability Guide):

@smallexample
@var{Landessprache}@r{[}_@var{Territorium}@r{][}.@var{Zeichensatz}@r{][}@@@var{Modifizierer}@r{]}
@end smallexample

@item
Nach CEN Syntax (Comite Europen de Normalisation):

@smallexample
@var{Landessprache}@r{[}_@var{Territorium}@r{][}+@var{Publikum}@r{][}+@var{Spezial}@r{][},@var{Sponsor}@r{][}_@var{"Uberarbeitung}@r{]}
@end smallexample
@end itemize

@noindent
Beide Syntaxen enhalten die Bestandteile @var{Landessprache} und
@var{Territorium}, welche von Gcal zur Auswahl der Landessprache und der
sonstigen Kriterien verwendet werden.  Der Bestandteil @var{Landessprache}
entspricht der einfachen Sprachkode-Information, und der Bestandteil
@var{Territorium} ist ein aus zwei Buchstaben bestehender Territoriumskode, wie
er in der @sc{iso}-3166 definiert ist, z.B.@: @samp{gb} f"ur Gro"sbritannien
oder @samp{us} f"ur die USA.  F"ur weitere Einzelheiten hierzu sei auf die
einschl"agige Fachliteratur verwiesen.  Brititsche Endanwender brauchen nur
die shell dazu veranlassen, die Umgebungsvariable @code{LANG} mit dem Inhalt
@code{en_gb} zu besetzen, sodann k"onnen diese das britische Datumformat als
interne Grundeinstellung benutzen.

@node Metasymbole, Kodierschema, Internationalisierung, Top
@appendix Metasymbole
@cindex Metasymbole, benutzte
@cindex Metasprache, benutzte

@noindent
Folgende @emph{metasprachliche} Konventionen werden bei der Darstellung von
Optionen, Argumenten, Kommandos und Schablonen innerhalb dieses Dokumentes
verwendet:
@sp 2

@table @code
@item @var{n}
Nichtoptionales Argument, @var{n} mu"s eine zul"assige Zahl sein.

@item e@r{|}@var{dvar}
Nichtoptionales Argument, welches ein einzelnes alphabetisches Zeichen sein
mu"s.

@item @r{[}@var{Text}@r{]}
Optionales Argument, @var{Text} ist eine zul"assige Zeichenkettenkonstante.

@item @r{[}@var{a}@var{b}@r{]}
Optionale Argumente, deren Anzahl und Anordung beliebig ist, z.B.@::

@example
@var{NICHTS}, @var{a}, @var{b}, @var{a}@var{b}, @var{b}@var{a} @dots{}
@end example

@item @r{@{}@var{a}@var{b}@r{@}}
Nichtoptionale Argumente, deren Anordnung beliebig ist und von denen mindestens
eins bis hin zu einer beliebigen Anzahl angegeben werden kann, z.B.@::

@example
@var{a}, @var{b}, @var{a}@var{b}, @var{b}@var{a} @dots{}
@end example

@item @r{[}@var{a}@r{|}@var{b}@r{]}
Optionale Argumente, entweder @var{a} oder @var{b}, aber nicht beide.

@item @var{a}@r{|}@var{b}
Nichtoptionale Argumente, entweder @var{a} oder @var{b}, aber nicht beide.

@item @r{[}@var{a}@r{[}@var{b}@r{]]}
Optionale Argumentliste, entweder @var{a} oder @var{a}@var{b}, aber nicht
@var{b}.

@item @r{[}@var{a}@r{|}@var{b}@r{[}@var{c}@r{]}@r{]}
Optionale Argumentliste, entweder @var{a} oder @var{b} oder @var{a}@var{b}
oder @var{a}@var{c}, aber nicht @var{c}.

@item @r{[}@var{a}@r{|}@var{b}@var{c}@r{]}
Optionale Argumentliste, entweder @var{a}@var{c} oder @var{b}@var{c}, aber
nicht @var{a} oder @var{b} oder @var{c}.

@item @r{[}@var{a}@r{]|[}@var{b}@r{]}
Optionale Argumentlisten, entweder Liste @var{a} oder Liste @var{b},
aber nicht beide.

@item @r{[}@dots{}@r{]}
Zus"atzliche Argumente/Dateien d"urfen angegeben werden und sind optional.
@end table

@node Kodierschema, Umgebungsvariablen, Metasymbole, Top
@appendix Kodierschema
@cindex Kodierschema einer Zeile der Ressourcendatei
@cindex Ressourcendatei, Kodierschema
@cindex Ressourcendatei, Datumteil einer

@menu
* Kodierschema Tabelle 1::
* Kodierschema Tabelle 2::
@end menu

@noindent
Es folgt nun die tabellarische Aufstellung des Kodierschemas, welches f"ur
den @emph{Datumteil} @w{(@var{jjjj}@dots{})} einer Zeile der Ressourcendatei
verwendet werden kann, und der Modifizierer, welche die Kurzoption
@w{@samp{-c@r{|}C@r{[]}}} annehmen darf, bzw.@: die Argumente, welche die
Langoption @samp{--period-of-fixed-dates=@var{Argument}} annehmen darf.
Aus diesen Tabellen kann ersehen werden, welche @emph{Terminwarnungsargumente}
mit welchem @emph{Datumteil} einer Zeile der Ressourcendatei korrespondieren,
d.h.@: bei Anwahl eines @emph{Terminwarnungsarguments} ber"ucksichtigt
werden; da Gcal eben nicht alle vorhandenen Eintr"age in einer Ressourcendatei
ber"ucksichtigt, sondern nur solche, die in einem bestimmten Verh"altnis zum
@emph{Terminwarnungsargument} stehen, und somit die Ausgabe "uberfl"ussiger
Informationen verhindert wird.
@sp 2

@noindent
Im @emph{Datumteil} @code{@var{jjjj}@dots{}}:

@table @var
@item jjjj
steht f"ur jede Jahreszahl (0001@dots{}9999).

@item mm
steht f"ur jede Monatszahl (01@dots{}12 oder 99) bzw.@: jeden textlichen
Monatsnamen im 3-stelligen Kurzformat (Jan, Feb@dots{}).

@item tt
steht f"ur jede Tageszahl (1@dots{}28, 29, 30, 31 oder 99).

@item www
steht f"ur jeden textlichen Wochentagsnamen im 2@dots{}3-stelligen Kurzformat
(Mon@dots{}Son).

@item ?
steht f"ur jeden Einzelbuchstaben des Alphabets (Gro"s- bzw.@: Kleinbuchstaben
werden nicht unterschieden).

@item n
steht f"ur jede positive Ganzzahl (eine oder mehrere Ziffern).
@end table

@page
@node Kodierschema Tabelle 1, Kodierschema Tabelle 2, Kodierschema, Kodierschema
@appendixsec Kodierschema Tabelle 1
@cindex Kodierschema Tabelle 1

@noindent
In dieser Tabelle werden alle m"oglichen Kodierungen von einem Datum im
@emph{Datumteil} einer Ressourcendatei mit allen dazu m"oglichen Kodierungen
der Modifizierer der Kurzoption @w{@samp{-c@r{|}C@r{[]}}} gegen"ubergestellt.
@sp 2

@quotation
@strong{Bitte beachten:}@*
Die
@w{@samp{-c},}
@w{@samp{-ct},}
@w{@samp{-c@var{n}d},}
@w{@samp{-c*d@r{|}w@var{n}@r{[}@var{www}@r{]}},}
@w{@samp{-c@@e@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}},}
@w{@samp{-c@var{mm}@var{tt}}} und
@w{@samp{-c@var{mm}@var{www}@var{n}}} Optionen ber"ucksichtigen
@strong{alle} Kodiervariationen des @emph{Datumteils}!
@end quotation
@sp 2

@table @code
@item @strong{Datumteil einer Ressourcendatei}
@strong{Kurzoption -c@r{|}C@r{[]}}
@sp 2

@item 00000000
@w{@code{-c@var{n}+@r{|}-}}

@item 000000@var{tt}
@w{@code{-c@var{n}w@r{|}+@r{|}-},}
@w{@code{-cw@r{[}+@r{|}-@r{]}},}
@w{@code{-cm@r{[}+@r{|}-@r{]}}}

@item 0000@var{mm}00
@w{@code{-c@var{n}+@r{|}-}}

@item 0000@var{mm}@var{tt}
@w{@code{-c@var{n}w@r{|}+@r{|}-},}
@w{@code{-cw@r{[}+@r{|}-@r{]}},}
@w{@code{-cm@r{[}+@r{|}-@r{]}},}
@w{@code{-cy@r{[}+@r{|}-@r{]}},}
@w{@code{-cl@var{n}d@r{|}w@r{|}+@r{|}-},}
@w{@code{-cl*d@r{|}w@var{n}@r{[}@var{www}@r{]}},}@*
@w{@code{-cl@@e@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}},}
@w{@code{-cl@var{mm}@var{tt}},}
@w{@code{-cl@var{mm}@var{www}@var{n}}}

@item @var{jjjj}0000
@w{@code{-c@var{n}+@r{|}-}}

@item @var{jjjj}00@var{tt}
@w{@code{-c@var{n}w@r{|}+@r{|}-},}
@w{@code{-cw@r{[}+@r{|}-@r{]}},}
@w{@code{-cm@r{[}+@r{|}-@r{]}}}

@item @var{jjjj}@var{mm}00
@w{@code{-c@var{n}+@r{|}-}}

@item @var{jjjj}@var{mm}@var{tt}
@w{@code{-c@var{n}w@r{|}+@r{|}-},}
@w{@code{-cw@r{[}+@r{|}-@r{]}},}
@w{@code{-cm@r{[}+@r{|}-@r{]}},}
@w{@code{-cy@r{[}+@r{|}-@r{]}},}
@w{@code{-cl@var{n}d@r{|}w@r{|}+@r{|}-},}
@w{@code{-cl*d@r{|}w@var{n}@r{[}@var{www}@r{]}},}@*
@w{@code{-cl@@e@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}},}
@w{@code{-cl@var{mm}@var{tt}},}
@w{@code{-cl@var{mm}@var{www}@var{n}}}

@item 000000@var{www}
@w{@code{-c@var{n}w@r{|}+@r{|}-},}
@w{@code{-cw@r{[}+@r{|}-@r{]}}}

@item 0000@var{mm}@var{www}
@w{@code{-c@var{n}w@r{|}+@r{|}-},}
@w{@code{-cw@r{[}+@r{|}-@r{]}}}

@item @var{jjjj}00@var{www}
@w{@code{-c@var{n}w@r{|}+@r{|}-},}
@w{@code{-cw@r{[}+@r{|}-@r{]}}}

@item @var{jjjj}@var{mm}@var{www}
@w{@code{-c@var{n}w@r{|}+@r{|}-},}
@w{@code{-cw@r{[}+@r{|}-@r{]}}}

@item 000000@var{www}@var{n}
@w{@code{-c@var{n}w@r{|}+@r{|}-},}
@w{@code{-cw@r{[}+@r{|}-@r{]}},}
@w{@code{-cm@r{[}+@r{|}-@r{]}}}

@item 0000@var{mm}@var{www}@var{n}
@w{@code{-c@var{n}w@r{|}+@r{|}-},}
@w{@code{-cw@r{[}+@r{|}-@r{]}},}
@w{@code{-cm@r{[}+@r{|}-@r{]}},}
@w{@code{-cy@r{[}+@r{|}-@r{]}},}
@w{@code{-cl@var{n}d@r{|}w@r{|}+@r{|}-},}
@w{@code{-cl*d@r{|}w@var{n}@r{[}@var{www}@r{]}},}@*
@w{@code{-cl@@e@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}},}
@w{@code{-cl@var{mm}@var{tt}},}
@w{@code{-cl@var{mm}@var{www}@var{n}}}

@item @var{jjjj}00@var{www}@var{n}
@w{@code{-c@var{n}w@r{|}+@r{|}-},}
@w{@code{-cw@r{[}+@r{|}-@r{]}},}
@w{@code{-cm@r{[}+@r{|}-@r{]}}}

@item @var{jjjj}@var{mm}@var{www}@var{n}
@w{@code{-c@var{n}w@r{|}+@r{|}-},}
@w{@code{-cw@r{[}+@r{|}-@r{]}},}
@w{@code{-cm@r{[}+@r{|}-@r{]}},}
@w{@code{-cy@r{[}+@r{|}-@r{]}},}
@w{@code{-cl@var{n}d@r{|}w@r{|}+@r{|}-},}
@w{@code{-cl*d@r{|}w@var{n}@r{[}@var{www}@r{]}},}@*
@w{@code{-cl@@e@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}},}
@w{@code{-cl@var{mm}@var{tt}},}
@w{@code{-cl@var{mm}@var{www}@var{n}}}

@item 0000*d@var{n}@r{[}@var{www}@r{]}
@w{@code{-c@var{n}w@r{|}+@r{|}-},}
@w{@code{-cw@r{[}+@r{|}-@r{]}},}
@w{@code{-cm@r{[}+@r{|}-@r{]}},}
@w{@code{-cy@r{[}+@r{|}-@r{]}},}
@w{@code{-cl@var{n}d@r{|}w@r{|}+@r{|}-},}
@w{@code{-cl*d@r{|}w@var{n}@r{[}@var{www}@r{]}},}@*
@w{@code{-cl@@e@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}},}
@w{@code{-cl@var{mm}@var{tt}},}
@w{@code{-cl@var{mm}@var{www}@var{n}}}

@item @var{jjjj}*d@var{n}@r{[}@var{www}@r{]}
@w{@code{-c@var{n}w@r{|}+@r{|}-},}
@w{@code{-cw@r{[}+@r{|}-@r{]}},}
@w{@code{-cm@r{[}+@r{|}-@r{]}},}
@w{@code{-cy@r{[}+@r{|}-@r{]}},}
@w{@code{-cl@var{n}d@r{|}w@r{|}+@r{|}-},}
@w{@code{-cl*d@r{|}w@var{n}@r{[}@var{www}@r{]}},}@*
@w{@code{-cl@@e@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}},}
@w{@code{-cl@var{mm}@var{tt}},}
@w{@code{-cl@var{mm}@var{www}@var{n}}}

@item 0000*w@var{n}@r{[}@var{www}@r{]}
@w{@code{-c@var{n}w@r{|}+@r{|}-},}
@w{@code{-cw@r{[}+@r{|}-@r{]}},}
@w{@code{-cm@r{[}+@r{|}-@r{]}},}
@w{@code{-cy@r{[}+@r{|}-@r{]}},}
@w{@code{-cl@var{n}d@r{|}w@r{|}+@r{|}-},}
@w{@code{-cl*d@r{|}w@var{n}@r{[}@var{www}@r{]}},}@*
@w{@code{-cl@@e@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}},}
@w{@code{-cl@var{mm}@var{tt}},}
@w{@code{-cl@var{mm}@var{www}@var{n}}}

@item @var{jjjj}*w@var{n}@r{[}@var{www}@r{]}
@w{@code{-c@var{n}w@r{|}+@r{|}-},}
@w{@code{-cw@r{[}+@r{|}-@r{]}},}
@w{@code{-cm@r{[}+@r{|}-@r{]}},}
@w{@code{-cy@r{[}+@r{|}-@r{]}},}
@w{@code{-cl@var{n}d@r{|}w@r{|}+@r{|}-},}
@w{@code{-cl*d@r{|}w@var{n}@r{[}@var{www}@r{]}},}@*
@w{@code{-cl@@e@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}},}
@w{@code{-cl@var{mm}@var{tt}},}
@w{@code{-cl@var{mm}@var{www}@var{n}}}

@item 0000@@@var{?}@r{[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]}
@w{@code{-c@var{n}w@r{|}+@r{|}-},}
@w{@code{-cw@r{[}+@r{|}-@r{]}},}
@w{@code{-cm@r{[}+@r{|}-@r{]}},}
@w{@code{-cy@r{[}+@r{|}-@r{]}},}
@w{@code{-cl@var{n}d@r{|}w@r{|}+@r{|}-},}
@w{@code{-cl*d@r{|}w@var{n}@r{[}@var{www}@r{]}},}@*
@w{@code{-cl@@e@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}},}
@w{@code{-cl@var{mm}@var{tt}},}
@w{@code{-cl@var{mm}@var{www}@var{n}}}

@item @var{jjjj}@@@var{?}@r{[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]}
@w{@code{-c@var{n}w@r{|}+@r{|}-},}
@w{@code{-cw@r{[}+@r{|}-@r{]}},}
@w{@code{-cm@r{[}+@r{|}-@r{]}},}
@w{@code{-cy@r{[}+@r{|}-@r{]}},}
@w{@code{-cl@var{n}d@r{|}w@r{|}+@r{|}-},}
@w{@code{-cl*d@r{|}w@var{n}@r{[}@var{www}@r{]}},}@*
@w{@code{-cl@@e@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}},}
@w{@code{-cl@var{mm}@var{tt}},}
@w{@code{-cl@var{mm}@var{www}@var{n}}}
@end table

@page
@node Kodierschema Tabelle 2, , Kodierschema Tabelle 1, Kodierschema
@appendixsec Kodierschema Tabelle 2
@cindex Kodierschema Tabelle 2

@noindent
In dieser Tabelle werden alle m"oglichen Kodierungen der Modifizierer der
Kurzoption @w{@samp{-c@r{|}C@r{[]}}} mit allen dazu m"oglichen Kodierungen
von einem Datum im @emph{Datumteil} einer Ressourcendatei gegen"ubergestellt.
@sp 2

@table @code
@item @strong{Kurzoption -c@r{|}C@r{[]}}
@code{@strong{Datumteil einer Ressourcendatei}}
@sp 2

@item -c
@itemx -ct
@itemx -c@var{n}d@r{|}+@r{|}-
@itemx -c@var{mm}@var{tt}
@itemx -c@var{mm}@var{www}@var{n}
@itemx -c*d@r{|}w@var{n}@r{[}@var{www}@r{]}
@itemx -c@@e@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}
@w{@code{00000000},}
@w{@code{0000@var{mm}00},}
@w{@code{@var{jjjj}0000},}
@w{@code{@var{jjjj}@var{mm}00},}
@w{@code{000000@var{tt}},}
@w{@code{0000@var{mm}@var{tt}},}
@w{@code{@var{jjjj}00@var{tt}},}
@w{@code{@var{jjjj}@var{mm}@var{tt}},}
@w{@code{000000@var{www}},}
@w{@code{0000@var{mm}@var{www}},}
@w{@code{@var{jjjj}00@var{www}},}
@w{@code{@var{jjjj}@var{mm}@var{www}},}
@w{@code{000000@var{www}@var{n}},}
@w{@code{0000@var{mm}@var{www}@var{n}},}
@w{@code{@var{jjjj}00@var{www}@var{n}},}
@w{@code{@var{jjjj}@var{mm}@var{www}@var{n}},}
@w{@code{0000*d@var{n}},}
@w{@code{0000*d@var{n}@var{www}},}
@w{@code{@var{jjjj}*d@var{n}},}
@w{@code{@var{jjjj}*d@var{n}@var{www}},}
@w{@code{0000*w@var{n}},}
@w{@code{0000*w@var{n}@var{www}},}
@w{@code{@var{jjjj}*w@var{n}},}
@w{@code{@var{jjjj}*w@var{n}@var{www}},}
@w{@code{0000@@@var{?}@r{[}+@r{|}-@r{]}@var{n}},}
@w{@code{0000@@@var{?}@r{[}+@r{|}-@r{]}@var{n}@var{www}},}
@w{@code{@var{jjjj}@@@var{?}@r{[}+@r{|}-@r{]}@var{n}},}
@w{@code{@var{jjjj}@@@var{?}@r{[}+@r{|}-@r{]}@var{n}@var{www}}}

@item -cw@r{[}+@r{|}-@r{]}
@itemx -c@var{n}w
@w{@code{000000@var{tt}},}
@w{@code{0000@var{mm}@var{tt}},}
@w{@code{@var{jjjj}00@var{tt}},}
@w{@code{@var{jjjj}@var{mm}@var{tt}},}
@w{@code{000000@var{www}},}
@w{@code{0000@var{mm}@var{www}},}
@w{@code{@var{jjjj}00@var{www}},}
@w{@code{@var{jjjj}@var{mm}@var{www}},}
@w{@code{000000@var{www}@var{n}},}
@w{@code{0000@var{mm}@var{www}@var{n}},}
@w{@code{@var{jjjj}00@var{www}@var{n}},}
@w{@code{@var{jjjj}@var{mm}@var{www}@var{n}},}
@w{@code{0000*d@var{n}},}
@w{@code{0000*d@var{n}@var{www}},}
@w{@code{@var{jjjj}*d@var{n}},}
@w{@code{@var{jjjj}*d@var{n}@var{www}},}
@w{@code{0000*w@var{n}},}
@w{@code{0000*w@var{n}@var{www}},}
@w{@code{@var{jjjj}*w@var{n}},}
@w{@code{@var{jjjj}*w@var{n}@var{www}},}
@w{@code{0000@@@var{?}@r{[}+@r{|}-@r{]}@var{n}},}
@w{@code{0000@@@var{?}@r{[}+@r{|}-@r{]}@var{n}@var{www}},}
@w{@code{@var{jjjj}@@@var{?}@r{[}+@r{|}-@r{]}@var{n}},}
@w{@code{@var{jjjj}@@@var{?}@r{[}+@r{|}-@r{]}@var{n}@var{www}}}

@item -cm@r{[}+@r{|}-@r{]}
@w{@code{000000@var{tt}},}
@w{@code{0000@var{mm}@var{tt}},}
@w{@code{@var{jjjj}00@var{tt}},}
@w{@code{@var{jjjj}@var{mm}@var{tt}},}
@w{@code{000000@var{www}@var{n}},}
@w{@code{0000@var{mm}@var{www}@var{n}},}
@w{@code{@var{jjjj}00@var{www}@var{n}},}
@w{@code{@var{jjjj}@var{mm}@var{www}@var{n}},}
@w{@code{0000*d@var{n}},}
@w{@code{0000*d@var{n}@var{www}},}
@w{@code{@var{jjjj}*d@var{n}},}
@w{@code{@var{jjjj}*d@var{n}@var{www}},}
@w{@code{0000*w@var{n}},}
@w{@code{0000*w@var{n}@var{www}},}
@w{@code{@var{jjjj}*w@var{n}},}
@w{@code{@var{jjjj}*w@var{n}@var{www}},}
@w{@code{0000@@@var{?}@r{[}+@r{|}-@r{]}@var{n}},}
@w{@code{0000@@@var{?}@r{[}+@r{|}-@r{]}@var{n}@var{www}},}
@w{@code{@var{jjjj}@@@var{?}@r{[}+@r{|}-@r{]}@var{n}},}
@w{@code{@var{jjjj}@@@var{?}@r{[}+@r{|}-@r{]}@var{n}@var{www}}}

@item -cy@r{[}+@r{|}-@r{]}
@itemx -cl@var{n}d@r{|}w@r{|}+@r{|}-
@itemx -cl@var{mm}@var{tt}
@itemx -cl@var{mm}@var{www}@var{n}
@itemx -cl*d@r{|}w@var{n}@r{[}@var{www}@r{]}
@itemx -cl@@e@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}
@w{@code{0000@var{mm}@var{tt}},}
@w{@code{@var{jjjj}@var{mm}@var{tt}},}
@w{@code{0000@var{mm}@var{www}@var{n}},}
@w{@code{@var{jjjj}@var{mm}@var{www}@var{n}},}
@w{@code{0000*d@var{n}},}
@w{@code{0000*d@var{n}@var{www}},}
@w{@code{@var{jjjj}*d@var{n}},}
@w{@code{@var{jjjj}*d@var{n}@var{www}},}
@w{@code{0000*w@var{n}},}
@w{@code{0000*w@var{n}@var{www}},}
@w{@code{@var{jjjj}*w@var{n}},}
@w{@code{@var{jjjj}*w@var{n}@var{www}},}
@w{@code{0000@@@var{?}@r{[}+@r{|}-@r{]}@var{n}},}
@w{@code{0000@@@var{?}@r{[}+@r{|}-@r{]}@var{n}@var{www}},}
@w{@code{@var{jjjj}@@@var{?}@r{[}+@r{|}-@r{]}@var{n}},}
@w{@code{@var{jjjj}@@@var{?}@r{[}+@r{|}-@r{]}@var{n}@var{www}}}
@end table

@node Umgebungsvariablen, Fehlerkodes, Kodierschema, Top
@appendix Umgebungsvariablen
@cindex Umgebungsvariablen
@cindex Ber"ucksichtigte Umgebungsvariablen
@cindex Umgebungsvariablen, ber"ucksichtigte

@noindent
Hier ist eine Liste aller Umgebungsvariablen, die von Gcal benutzt werden:
@sp 2

@table @code
@item COLUMNS
@itemx CO
@cindex Umgebungsvariable, @code{COLUMNS}
@cindex Umgebungsvariable, @code{CO}
@cindex @code{COLUMNS} Umgebungsvariable
@cindex @code{CO} Umgebungsvariable
@vindex COLUMNS
@vindex CO
Setzt die Anzahl der Spalten des Bildschirms.  Hat Vorrang vor der
Anzahl der Spalten, welche die @code{TERM} Umgebungsvariable oder das
System selbst definiert.

@item GCAL
@cindex Umgebungsvariable, @code{GCAL}
@cindex @code{GCAL} Umgebungsvariable
@vindex GCAL
Argumente welche an Gcal automatisch "ubergeben werden.

@item GCALANSI
@cindex Umgebungsvariable, @code{GCALANSI}
@cindex @code{GCALANSI} Umgebungsvariable
@vindex GCALANSI
Wenn definiert oder gesetzt, so werden @sc{ansi} Escape-Hervorhebungssequenzen
als Grundeinstellung benutzt bzw.@: substituiert, falls keine anderen
Hervorhebungssequenzen mittels Kommandozeilenoption definiert werden
oder in der Termcap Bibliotheksdatei aufgefunden werden.

@item GCAL_DATE_FORMAT
@cindex Umgebungsvariable, @code{GCAL_DATE_FORMAT}
@cindex @code{GCAL_DATE_FORMAT} Umgebungsvariable
@vindex GCAL_DATE_FORMAT
Enth"alt den Datumformattext, der die Anordnung von einem auszugebenden
Datum bestimmt.  Hat Vorrang vor dem Grundeinstellungs-Datumformattext.

@item GCALPATH
@cindex Umgebungsvariable, @code{GCALPATH}
@cindex @code{GCALPATH} Umgebungsvariable
@vindex GCALPATH
Durch (@samp{:}) Doppelpunkt separierte Liste von Dateiverzeichnissen, welche
durchsucht werden, um die @file{.gcalrc} Datei zu finden.  Hat Vorrang vor
@w{@code{GCAL_USR_DATADIR}} und @w{@code{GCAL_SYS_DATADIR}}.

@item GCALPROG
@cindex Umgebungsvariable, @code{GCALPROG}
@cindex @code{GCALPROG} Umgebungsvariable
@vindex GCALPROG
Enth"alt den Dateinamen des ausf"uhrbaren Gcal Programms, welcher vom
Programm @code{tcal} benutzt wird, um Gcal aufzurufen.  Hat Vorrang vor
dem beim Kompilationsvorgang in @code{tcal} eingebrannten Dateinamen
@code{gcal}.

@item GCAL_USR_DATADIR
@cindex Umgebungsvariable, @code{GCAL_USR_DATADIR}
@cindex @code{GCAL_USR_DATADIR} Umgebungsvariable
@vindex GCAL_USR_DATADIR
Name eines Dateiverzeichnisses relativ zum @code{HOME} Dateiverzeichnis, in
welchem der Benutzer seine pers"onlichen bzw.@: @emph{privaten} Ressourcendateien
(Termindateien) speichert.  Hat Vorrang vor @w{@code{GCAL_SYS_DATADIR}}.

@item GCAL_SYS_DATADIR
@cindex Umgebungsvariable, @code{GCAL_SYS_DATADIR}
@cindex @code{GCAL_SYS_DATADIR} Umgebungsvariable
@vindex GCAL_SYS_DATADIR
Name eines Dateiverzeichnisses absolut zum @emph{Wurzel}/@emph{$(prefix)}
Dateiverzeichnis, in welchem der Systemadministrator allgemeine bzw.@:
@emph{"offentliche} Ressourcendateien (Termindateien) speichert.

@item HOME
@cindex Umgebungsvariable, @code{HOME}
@cindex @code{HOME} Umgebungsvariable
@vindex HOME
Name des Heimatverzeichnisses des Benutzers (wird benutzt um die
@file{.gcalrc} Datei zu finden).  Hat Vorrang vor @w{@code{GCALPATH}},
@w{@code{GCAL_USR_DATADIR}} und @w{@code{GCAL_SYS_DATADIR}}.

@item LANGUAGE
@cindex Umgebungsvariable, @code{LANGUAGE}
@cindex @code{LANGUAGE} Umgebungsvariable
@vindex LANGUAGE
Die Landessprache und sonstige kulturspezifische Konventionen, die Gcal zur
Laufzeit verwenden soll.  Hat Vorrang vor @w{@code{LC_ALL}},
@w{@code{LC_MESSAGES}} und @code{LANG}.

@item LC_ALL
@cindex Umgebungsvariable, @code{LC_ALL}
@cindex @code{LC_ALL} Umgebungsvariable
@vindex LC_ALL
Die Landessprache und sonstige kulturspezifische Konventionen, die Gcal zur
Laufzeit verwenden soll.  Hat Vorrang vor @w{@code{LC_MESSAGES}} und
@code{LANG}.

@item LC_MESSAGES
@cindex Umgebungsvariable, @code{LC_MESSAGES}
@cindex @code{LC_MESSAGES} Umgebungsvariable
@vindex LC_MESSAGES
Die Landessprache und sonstige kulturspezifische Konventionen, die Gcal zur
Laufzeit verwenden soll.  Hat Vorrang vor @code{LANG}.

@item LANG
@cindex Umgebungsvariable, @code{LANG}
@cindex @code{LANG} Umgebungsvariable
@vindex LANG
Die Landessprache und sonstige kulturspezifische Konventionen, die Gcal zur
Laufzeit verwenden soll.

@item LINES
@itemx LI
@cindex Umgebungsvariable, @code{LINES}
@cindex Umgebungsvariable, @code{LI}
@cindex @code{LINES} Umgebungsvariable
@cindex @code{LI} Umgebungsvariable
@vindex LINES
@vindex LI
Setzt die Anzahl der Zeilen des Bildschirms.  Hat Vorrang vor der
Anzahl der Zeilen, welche die @code{TERM} Umgebungsvariable oder
das System selbst definiert.

@item PAGER
@cindex Umgebungsvariable, @code{PAGER}
@cindex @code{PAGER} Umgebungsvariable
@vindex PAGER
Der Names des externen Paginiererprogramms, das verwendet wird, wenn
Paginierung (@samp{-p} bzw.@: @samp{--pager} Option) gew"unscht wird.

@item PATH
@cindex Umgebungsvariable, @code{PATH}
@cindex @code{PATH} Umgebungsvariable
@vindex PATH
Durch (@samp{:}) Doppelpunkt separierte Liste von Dateiverzeichnissen,
welche durchsucht werden, um das @dfn{externe} Paginiererprogramm zu finden.
@xref{Globale Optionen, , @samp{--pager}}, f"ur weitere Details.

@item TERM
@cindex Umgebungsvariable, @code{TERM}
@cindex @code{TERM} Umgebungsvariable
@vindex TERM
Der Terminaltyp, auf dem Gcal zum Ablauf kommt.

@item TZ
@cindex Umgebungsvariable, @code{TZ}
@cindex @code{TZ} Umgebungsvariable
@vindex TZ
Die Zeitzoneninformation, mit dem der Datumtext in versendeten Emails,
erzeugten Anwortdateien und erzeugten shell script Dateien versehen wird.
@end table

@node Fehlerkodes, Argumentenindex, Umgebungsvariablen, Top
@appendix Fehlerkodes
@cindex Fehlerkodes
@cindex Exitkodes
@cindex Endestatus, Programm
@cindex Programmendestatus
@cindex Laufzeitfehlerkodes
@cindex Whitespace-Zeichen
@cindex Email, Fehler

@noindent
Gcal erzeugt folgende @emph{exit} Kodes:
@sp 2

@table @code
@item 127
Hilfeseite, Softwarelizenz bzw.@: Versionsnummer angefordert (einstellbar).

@item 126
Unzul"assige Option bei Programmaufruf.

@item 125
Jahr au"serhalb zul"assigen Bereichs bei Ermittlung des Ostersonntags.

@item 124
Virtueller Speicher ersch"opft.

@item 123
Unzul"assiger Datumeintrag in Ressourcen- bzw.@: Includedatei.

@item 122
Ung"ultiger Monatseintrag in Ressourcen- bzw.@: Includedatei.

@item 121
Ung"ultiger Tageseintrag in Ressourcen- bzw.@: Includedatei.

@item 120
Mi"sgebildete @emph{#include} Anweisung in Ressourcen- bzw.@: Includedatei.

@item 119
Unzul"assige rekursive/zyklische @emph{#include} Anweisung in Ressourcen- bzw.@:
Includedatei.

@item 118
Ressourcen- bzw.@: Includedatei nicht gefunden.

@item 117
Ung"ultiges @w{@var{n}'ter} Wochentagsfeld (nur 1@dots{}5 oder 9 erlaubt).

@item 116
Fehlendes @emph{whitespace} Trennzeichen zwischen @emph{Datumteil}
und @emph{Textteil}.

@item 115
Antwortdatei bzw.@: shell script kann nicht geschrieben werden.

@item 114
Illegale Datumvariablen-Operation.

@item 113
Datumvariable undefiniert.

@item 112
Zuweisung von ung"ultigem Datumwert an Datumvariable.

@item 111
Versenden der Ausgabe an Email Adresse hat versagt.

@item 110
Interner Fehler, C Funktion pipe(), fork(), execlp() oder unlink() hat versagt.

@item 109
Fehler beim Lesen der Ressourcen-, Include- bzw.@: Antwortdatei aufgetreten.

@item 108
Illegales Zeichen in Antwortdatei vorgefunden.

@item 107
Interner Fehler, ung"ultiger Wert f"ur die Gr"o"se einer internen Tabelle
aufgetreten.

@item 106
Ung"ultiger Datumformattext angegeben.

@item 105
Illegale Textvariablen-Definition.

@item 1
Keine Ausgabe von Terminwarnungen obwohl Option @w{@samp{-c@r{|}C@r{[]}}}
oder @w{@samp{-f@r{|}F @var{Dateiname}@r{[}+@dots{}@r{]}}} aktiviert.
@sp 2

@item 0
Fehlerfreier Programmlauf.
@end table
@c
@c %**End of manual part



@c %**Start of index part
@c
@node Argumentenindex, Variablenindex, Fehlerkodes, Top
@unnumbered Index von Kommandozeilenargumenten
@noindent
Das ist eine alphabetische Liste der Kommandozeilenargumente, die von Gcal
verarbeitet werden.
@printindex ar

@node Variablenindex, Begriffsindex, Argumentenindex, Top
@unnumbered Index von Umgebungsvariablen
@noindent
Das ist eine alphabetische Liste der Umgebungsvariablen, die von Gcal
ber"ucksichtigt werden.
@printindex vr

@node Begriffsindex, , Variablenindex, Top
@unnumbered Stichwortverzeichnis
@printindex cp
@c
@c %**End of index part



@c %**Start of contents part
@c
@c @summarycontents
@contents
@c
@c %**End of contents part



@bye
