\catcode`\@=11\def\@ifundefined#1#2#3{}
\input texinfo  @c -*-texinfo-*-



@c $Id: gcal.texi v2.40 1997/05/06 02:04:00 tom Exp $
@c
@c gcal.texi:  German Texinfo source of info/dvi file
@c
@c Copyright (C) 1994, 1995, 1996, 1997 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 Genehmigungsvermerks 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@ss{} dieser
@c Genehmigungsvermerk in einer @"Ubersetzung angegeben sein darf, welche
@c von der Free Software Foundation gebilligt wird.
@c
@c
@c ------------------------oOO      \\\_''/      OOo---------------------------
@c Thomas Esken               O     (/o-o\)     O  eMail: esken@uni-muenster.de
@c Im Hagenfeld 84                 ((  ^  ))       Phone: +49 251 232585
@c D-48147 Muenster; Germany    \____) ~ (____/    MotD : 2old2live, 2young2die



@c %**Start of header part
@c
@setfilename gcal.info
@c
@c Some necessary constant definitions
@c
@set EDITION 2.40
@set UPDATE-DATE 06 Mai 1997
@set UPDATE-MONTH Mai 1997
@set GCAL-VERSION 2.40
@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{Auf-tre-ten}
\hyphenation{Au-gen-arzt-ter-mi-ne}
\hyphenation{Be-rei-che}
\hyphenation{Be-triebs-sy-s-tem}
\hyphenation{Da-ten-ver-zeich-nis}
\hyphenation{Da-tei-na-mens-kon-ven-ti-on-en}
\hyphenation{Da-tei-ver-zeich-nis}
\hyphenation{Da-tei-ver-zeich-nis-sen}
\hyphenation{Da-tum-va-ri-a-b-len}
\hyphenation{Don-ners-tag}
\hyphenation{Ele-ment}
\hyphenation{Eng-lisch-en}
\hyphenation{Farb-um-schal-tung}
\hyphenation{Fei-er-ta-gen}
\hyphenation{Fei-er-tags-li-ste}
\hyphenation{Frei-tag}
\hyphenation{Ge-samt-an-zahl}
\hyphenation{Ge-sichts-punk-te}
\hyphenation{Gre-go-ri-a-nisch-en}
\hyphenation{Grund-ein-stel-lung}
\hyphenation{Grund-ein-stel-lung-en}
\hyphenation{In-for-ma-ti-ons-text}
\hyphenation{Ka-len-der-wo-che}
\hyphenation{Kom-man-do-in-ter-pre-tie-rer}
\hyphenation{Kom-man-do-zei-len}
\hyphenation{Kom-man-do-zei-len-ar-gu-ment}
\hyphenation{Kom-men-tar-zei-chen}
\hyphenation{Kurz-op-ti-on}
\hyphenation{Kurz-op-ti-on-en}
\hyphenation{Lang-op-ti-on}
\hyphenation{Lang-op-ti-on-en}
\hyphenation{Lang-op-ti-ons-na-me}
\hyphenation{Lang-op-ti-ons-na-men}
\hyphenation{Mar-kie-rungs-zei-chen}
\hyphenation{Mel-dungs-tex-te}
\hyphenation{Me-tho-de}
\hyphenation{Mo-nats-kal-en-der-blatts}
\hyphenation{Mo-nats-na-me}
\hyphenation{Mo-nats-na-men}
\hyphenation{Op-ti-on-en}
\hyphenation{Op-ti-ons-zei-chen}
\hyphenation{Ord-nungs-zahl-an-hang}
\hyphenation{Oster-sonn-tag}
\hyphenation{Oster-sonn-tags}
\hyphenation{Pre-pro-ces-sor}
\hyphenation{Pre-pro-ces-sor-sym-bol}
\hyphenation{Pro-g-ramm-en-de-sta-tus}
\hyphenation{Res-sour-cen-da-tei}
\hyphenation{Res-sour-cen-da-tei-en}
\hyphenation{Res-sour-cen-da-tei-zei-le}
\hyphenation{Scha-b-lo-ne}
\hyphenation{Scha-b-lo-nen}
\hyphenation{Sonn-tag}
\hyphenation{Steu-er-zei-chen-fol-gen}
\hyphenation{Sys-tem-uhr-zeit}
\hyphenation{Um-ge-bungs-va-ri-a-b-len}
\hyphenation{Va-ri-a-b-le}
\hyphenation{Wur-zel-da-tei-ver-zeich-nis}
\hyphenation{Zeit-raum}
\hyphenation{Zei-chen}
\hyphenation{Zei-chen-fol-ge}
\hyphenation{Zei-chen-ket-te}
\hyphenation{Zei-chen-ket-ten}
\hyphenation{Zei-chen-klas-sen}
\hyphenation{Zei-chen-li-ste}
\hyphenation{Zu-griffs-pfad}
\hyphenation{Zu-weis-ungs-ope-ra-tor}
\hyphenation{ab-ge-grenz-ter}
\hyphenation{al-ler-dings}
\hyphenation{al-pha-be-ti-sche}
\hyphenation{aus-ge-ge-ben}
\hyphenation{aus-ge-nom-men}
\hyphenation{bei-spiels-wei-se}
\hyphenation{be-reits}
\hyphenation{be-stimmt}
\hyphenation{be-zeich-net}
\hyphenation{chri-sti-a-ni-sie-rte}
\hyphenation{elek-t-ro-nisch-er}
\hyphenation{eng-lisch-er}
\hyphenation{eng-lisch-spra-chig}
\hyphenation{ent-hal-ten}
\hyphenation{ent-we-der}
\hyphenation{ent-wi-ckelt}
\hyphenation{er-folg-reiche}
\hyphenation{ge-mischt}
\hyphenation{ge-setz-lich-en}
\hyphenation{ge-spei-chert}
\hyphenation{ge-star-tet}
\hyphenation{gleich-wer-tig}
\hyphenation{hexa-de-zi-mal}
\hyphenation{kor-rekt}
\hyphenation{kor-ri-gie-ren}
\hyphenation{letzt-lich}
\hyphenation{mei-sten}
\hyphenation{re-la-tiv}
\hyphenation{statt-fin-den}
\hyphenation{tro-pi-schen}
\hyphenation{ver-an-kert}
\hyphenation{ver-ar-bei-tet}
\hyphenation{ver-glei-chen-des}
\hyphenation{vor-zu-neh-men}
\hyphenation{wie-der-keh-ren-de}
\hyphenation{white-space}
\hyphenation{zwi-schen}
@end tex
@c
@c %**End of global definition part



@c %**Start of info dir entry
@c
@dircategory GNU Pakete
@direntry
* Gcal: (gcal).                         Das GNU Kalenderprogramm.
* tcal: (gcal)Aufruf von tcal.          Gcal mit morgigem Datum aufrufen.
* txt2gcal: (gcal)Aufruf von txt2gcal.  Textdatei zu Ressourcendatei wandeln.
* gcal2txt: (gcal)Aufruf von gcal2txt.  Ressourcendatei zu Textdatei wandeln.
@end direntry
@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 Terminlisten 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, 1997 Thomas Esken

@noindent
Das ist die zweite 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@ss{} 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 Genehmigungsvermerks 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@ss{} 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      \\\_''/      OOo---------------------------
Thomas Esken               O     (/o-o\)     O  eMail: esken@@uni-muenster.de
Im Hagenfeld 84                 ((  ^  ))       Phone: +49 251 232585
D-48147 Muenster; Germany    \____) ~ (____/    MotD : 2old2live, 2young2die
@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, 1997 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 ------------------------oOO      \\\_''/      OOo---------------------------
@center Thomas Esken               O     (/o-o\)     O  eMail: esken@@uni-muenster.de
@center Im Hagenfeld 84                 ((  ^  ))       Phone:        +49 251 232585
@center D-48147 Muenster; Germany    \____) ~ (____/    MotD : 2old2live, 2young2die
@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 Genehmigungsvermerks 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@ss{} 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 Terminlisten 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      \\\_''/      OOo---------------------------
Thomas Esken               O     (/o-o\)     O  eMail: esken@@uni-muenster.de
Im Hagenfeld 84                 ((  ^  ))       Phone: +49 251 232585
D-48147 Muenster; Germany    \____) ~ (____/    MotD : 2old2live, 2young2die
@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?
* Termine::          Wie wird eine Terminliste erzeugt?

Anh@"ange

* Heutiger Kalender::      Entstehungsgeschichte des Gregorianischen Kalenders.
* Gcal Hilfsprogramme::    Mitgelieferte Hilfsprogramme.
* Internationalisierung::  Aspekte zur erfolgten Internationalisierung.
* Metasymbole::            In diesem Dokument benutzte Metasymbole.
* Regulaere Ausdruecke::   Beschreibung aller regul@"aren Ausdr@"ucke.
* Regexps (kurz)::         Zusammenfassung aller regul@"aren Ausdr@"ucke.
* Spezialtexte (lang)::    Beschreibung aller @code{%@var{?}}@dots{} Spezialtexte.
* Spezialtexte (kurz)::    Zusammenfassung aller @code{%@var{?}}@dots{} Spezialtexte.
* 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.
* Termin Optionen::      Wie Termin 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.

Termine

* 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@ss{} der Datumteil aussehen?
* Weitere Datumteil-Attribute::     Was sind weitere Attribute vom Datumteil?
* Textteil einer Zeile::            Wie mu@ss{} der Textteil aussehen?
* Zeile kommentieren::              Wie eine Zeile kommentiert werden kann.
* Include Anweisungen::             Was sind Include Anweisungen?
* Spezialtexte::                    Was sind @code{%@var{?}}@dots{} Spezialtexte?
* 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.

Gcal Hilfsprogramme

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

Regulaere Ausdruecke

* Benutzung von Regexp::  Wie regul@"are Ausdr@"ucke benutzt werden k@"onnen.
* Regexp Operatoren::     Was sind regul@"ar-Ausdruck Operatoren?

Spezialtexte (lang)

* Ausschliessen::   Datum ausschlie@ss{}en.
* Ersetzen::        Texte ersetzen.
* Shell Kommando::  Shell Kommando ausf@"uhren.

Ausschliessen

* Ausschliessen mit Datumargument::
* Ausschliessen ohne Argument::

Ausschliessen mit Datumargument

* Inklusive Datum Zeitraum::
* Exklusive Datum Zeitraum::

Ausschliessen ohne Argument

* Inklusive Tag Zeitraum::
* Exklusive Tag Zeitraum::

Ersetzen

* Ersetzen mit Datumargument::
* Ersetzen mit anderem Argument::
* Ersetzen ohne Argument::

Ersetzen mit Datumargument

* Wochentagsname::
* Wochentag::
* Tageszahl::
* Tag::
* Woche::
* Monatsname::
* Monat::
* Jahr::
* Mondphase::
* Biorhythmus::
* Differenzwert::

Ersetzen mit anderem Argument

* Aktuelle Uhrzeit::
* Textliches Datum::
* Julianische Tageszahl::

Ersetzen ohne Argument

* Differenzwert::
* Hervorhebung::

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@ss{} 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 am aktuellen Tag
@footnote{Einschlie@ss{}lich oder ausschlie@ss{}lich.}.

@noindent
Es bestehen zwei M@"oglichkeiten, eine Terminvorschau @footnote{Termine
zuk@"unfiger Jahre.} oder eine Terminr@"uckschau @footnote{Termine vergangener
Jahre.} vorzunehmen.  So kann Gcal einerseits mittels einer Option, welche
das 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 ob das
Systemdatum tats@"achlich eben dieses vorgegebene Datum w@"are, so da@ss{} der
zu ber@"ucksichtigende Zeitraum via Option vom Benutzer beliebig vorgegeben
werden kann.  Andererseits kann mittels eines Kommandos veranla@ss{}t werden,
anstelle des aktuellen Jahres ein anderes Jahr zu ber@"ucksichtigen, so
da@ss{} Gcal anfallende Termine f@"ur eben dieses andere Jahr ausgibt.  Das
hat allerdings zur Folge, da@ss{} 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 ob 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 Argumenten 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 im n@"achsten Kapitel 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 @footnote{Im
Englischen mit @dfn{shell} bezeichnet; dieses Betriebssystemprogramm
interpretiert Kommandozeilen 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@ss{} 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@ss{} 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 fehlerhafte Kommandos angegeben, so wird die Programmausf@"uhrung
unter Benutzung interner Grundeinstellungen von Gcal vorgenommen.

@noindent
In der deutschen Programmversion wird angenommen, da@ss{} die Gregorianische
Reformation am 5'ten Oktober 1582 stattgefunden hat.
@xref{Heutiger Kalender, , Entstehungsgeschichte des Gregorianischen Kalenders},
und
@ref{Internationalisierung, , Gesichtspunkte zur 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 Kapitel 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 Switch-Zeichen, @samp{-}
@cindex @samp{-} Switch-Zeichen
@cindex Switch-Zeichen, @samp{/}
@cindex @samp{/} Switch-Zeichen
@cindex Switch-Zeichen, @samp{--}
@cindex @samp{--} Switch-Zeichen
@noindent
Eine Option wird durch ein f@"uhrendes Umschaltzeichen @footnote{Im Englischen
mit @emph{switch} Zeichen bezeichnet.} 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 @footnote{Inklusive @samp{%@var{Datum}} und
@samp{@@@var{Datei}}.} @strong{m@"ussen} vor Kommandos angegeben werden!

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

@sp 2

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

@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.
* Termin Optionen::      Wie Termin 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{Termin Optionsklasse} kontrollieren das Layout der Termine
und deren Intensit@"at.

@cindex Optionen von @code{gcal}
@cindex @code{gcal}, Optionen von
@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 @footnote{Sofern diese kein Argument annehmen.}
k@"onnen zu einem einzelnen Kommandozeilenwort zusammengefa@ss{}t 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,
sofern 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 in den nachfolgenden Aufstellungen an,
da@ss{} 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@ss{}en Weg.  So unterscheidet das Programm f@"unf
verschiedene Typen von Langoptionen:

@enumerate 1
@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@ss{} genau ein @var{bar} Argument annehmen,
welches aus der gegebenen Argumentliste angew@"ahlt werden mu@ss{}.

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

@page
@noindent
Traditionelle Kurzoptionen unterscheiden sich wie folgt:

@enumerate 1
@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@ss{} 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 Fehlerkode 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 von
@cindex Erzeugung von Antwortdateien
@cindex @code{GCAL} Umgebungsvariable
@cindex Umgebungsvariable, @code{GCAL}
@vindex GCAL
Inhalt der Umgebungsvariable @code{GCAL}
(@pxref{Umgebungsvariablen, GCAL, Umgebungsvariablen: @code{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 von
@cindex Erzeugung von shell scripten
@cindex @code{GCAL} Umgebungsvariable
@cindex Umgebungsvariable, @code{GCAL}
@vindex GCAL
Inhalt der Umgebungsvariable @code{GCAL}
(@pxref{Umgebungsvariablen, GCAL, Umgebungsvariablen: @code{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 @w{--debug@r{[}=internal@r{|}handled@r{|}unhandled@r{|}all@r{|}abort@r{]}}
Einige Debug-Informationen ausgeben.

@table @samp
@item --debug=internal
@arindex --debug=internal
Informationstext bei Erreichen programminterner Maxima bzw.@: bei
Auftreten sonstiger Bedingungen 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 bzw.@: beim Auftreten sonstiger,
nicht erf@"ullbarer Bedingungen.
@ref{Fehlerkodes}.
@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, Umgebungsvariablen: @code{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, Umgebungsvariablen: @code{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 1
@item
@vindex LINES
@vindex COLUMNS
Gcal benutzt die Werte, die in den Umgebungsvariablen @code{LINES}
und @code{COLUMNS} angegeben sind.
@xref{Umgebungsvariablen, LINES, Umgebungsvariablen: @code{LINES}},
und
@ref{Umgebungsvariablen, COLUMNS, Umgebungsvariablen: @code{COLUMNS}},
f@"ur weitere Informationen.

@item
@vindex LI
@vindex CO
Falls vorherige Aktion versagt, so benutzt Gcal die Werte, die in den
Umgebungsvariablen @code{LI} und @code{CO} angegeben sind.
@xref{Umgebungsvariablen, LI, Umgebungsvariablen: @code{LI}},
sowie
@ref{Umgebungsvariablen, CO, Umgebungsvariablen: @code{CO}},
f@"ur weitere Informationen.

@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, Umgebungsvariablen: @code{TERM}}).
Dieser Schritt wird nur auf Systemen ausgef@"uhrt, welche die
Benutzung von Termcap unterst@"utzen.

Unter @w{MS-DOS}, OS/2 und einigen anderen Betriebssystemen benutzt Gcal
eine systemabh@"angige @emph{low-level} Funktion, und benutzt die Werte,
die von dieser geliefert werden.

@item
Falls alle vorherigen Aktionen fehlschlagen, so benutzt Gcal Standardwerte
@footnote{Entweder 23 oder 24 Zeilen, und 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} @footnote{D.h.@: auf
einen anderen Ger@"atekanal umgelenkt wird.} wird, oder in einer @dfn{pipe}
@footnote{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 versandt wird.
@xref{Globale Optionen, @samp{--mail=@var{Adresse}}, 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
Hervorhebungssequenz-/ 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 Steuerzeichenfolgen
@cindex Escape-Sequenzen
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 @var{Text} Argument mu@ss{} 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, um einen 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!

@need 1000
Zum Beispiel:

@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}} @footnote{D.h.@: mit vorangehendem
und nachfolgendem 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 Text, welcher @"uber
weitere Details informiert.  Und beachten Sie auch
@ref{Umgebungsvariablen, GCALANSI, Umgebungsvariablen: @code{GCALANSI}}.
@end quotation

Steuerzeichensequenzen d@"urfen jedes druckbare Zeichen enthalten.
Nicht druckbare 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@ss{}.  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@ss{}.  Normalerweise m@"ussen zwei
Hexadezimalziffern angegeben werden.  Falls der hexadezimale Zeichenkode
nur aus einer Hexadezimalziffer besteht, so mu@ss{} 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, also das @samp{:} (Doppelpunkt) Zeichen
selbst als Markierungszeichen benutzt werden soll, so mu@ss{} dieses Zeichen
entweder oktal @code{\072} oder hexadezimal @code{\x3A} kodiert werden.

@cindex C Preprocessorsymbol @w{USE_PAGER}
@cindex Umlenkung der Ausgabe, redirektionieren
@cindex Redirektionieren, Umlenkung der Ausgabe
@cindex Umlenkung der Ausgabe, pipe
@cindex Pipe, Umlenkung der Ausgabe
Falls das C Preprocessorsymbol @w{USE_PAGER} definiert wurde, und die Ausgabe
des Programms redirektioniert wird oder in einer pipe verwendet wird, 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, andernfalls
vollst@"andig durch deren entsprechende Markierungszeichen ersetzt.
@xref{Umgebungsvariablen, GCALANSI, Umgebungsvariablen: @code{GCALANSI}}.

@item --mail=@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
Versand der von Gcal erzeugten Ausgabe via @code{mail} @footnote{Beachten Sie
die Standard-Handbuchseiten zu @code{mail}.} Programm an die angegebene
@var{Adresse}, z.B.@::

@example
--mail=esken@@uni-muenster.de
@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}).

@cindex Umgebungsvariable, @code{MAILPROG}
@cindex @code{MAILPROG} Umgebungsvariable
@vindex MAILPROG
Falls eine @code{MAILPROG} Umgebungsvariable definiert und gesetzt ist, so
wird deren Inhalt als Programmname des Mailprogramms benutzt anstelle des
Standard @code{mail} Programms.
@xref{Umgebungsvariablen, MAILPROG, Umgebungsvariablen: @code{MAILPROG}},
f@"ur weitere Informationen.
@end table

@node Kalender Optionen, Termin 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
@cindex @"Uberschrift unterdr@"ucken in ewiger Feiertagsliste
Die Ausgabe der @"Uberschrift in der ewigen Feiertagsliste unterdr@"ucken.

@item --without-standard-holidays
@arindex --without-standard-holidays
@cindex Ewige Feiertagsliste, ohne Standardfeiertage in
@cindex Ohne Standardfeiertage in ewiger Feiertagsliste
@cindex Ewige Feiertagsliste, keine Standardfeiertage in
@cindex Keine Standardfeiertage in ewiger Feiertagsliste
@cindex Ewige Feiertagsliste, Standardfeiertage unterdr@"ucken in
@cindex Standardfeiertage unterdr@"ucken in ewiger Feiertagsliste
Die ewige Feiertagsliste wird ohne Standardfeiertage ausgestattet.
Zudem werden auch in Kalenderbl@"attern nicht mehr die Tage hervorgehoben,
die standardm@"a@ss{}ig in die ewige Feiertagsliste eingebracht und
hervorgehoben werden.

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

@page
@item -q @var{cc}@r{[}+@dots{}@r{]}
@itemx --cc-holidays=@var{cc}@r{[}+@dots{}@r{]}
@arindex -q @var{cc}@r{[}+@dots{}@r{]}
@arindex --cc-holidays=@var{cc}@r{[}+@dots{}@r{]}
@cindex Ewige Feiertagsliste, landesspezifische Feiertage in
@cindex Landesspezifische Feiertage in ewiger Feiertagsliste
Die ewige Feiertagsliste wird zus@"atzlich mit landesspezifischen Feiertagen
ausgestattet.  Zudem werden auch in Kalenderbl@"attern die Tage hervorgehoben,
die durch diese Option in die ewige Feiertagsliste eingebracht und
hervorgehoben werden.

@cindex @sc{iso}-3166
@cindex Landeskode
@cindex Territorumskode
Das @var{cc} Argument ist ein aus zwei Buchstaben bestehender Territoriums-
oder Landeskode @footnote{Im Englischen mit @emph{country code} bezeichnet.},
wie er in der @sc{iso}-3166 definiert ist, z.B.@: @samp{GB} f@"ur
Gro@ss{}britannien oder @samp{US} f@"ur die USA.  F@"ur weitere
Einzelheiten hierzu sei auf die einschl@"agige Fachliteratur verwiesen.

@cindex Trennzeichen, @samp{+}
@cindex @samp{+} Trennzeichen
Es kann mehr als ein Landeskode @var{cc} verwendet werden, wenn die
zus@"atzlichen Landeskodes, durch ein @samp{+} Zeichen verbunden,
aufgef@"uhrt werden, z.B.@::

@quotation
@samp{--cc-holidays=ca+DE+fr+it} bzw.@*
@samp{-q ca+DE+fr+it}
@end quotation

f@"ugt alle diejenigen landesspezifischen Feiertage in die ewige Feiertagsliste
ein, die in dem vorstehenden Argument aufgef@"uhrt sind, d.h.@: kanadische,
deutsche, franz@"osische und italienische Feiertage.

Derzeit ber@"ucksichtigt Gcal die folgenden Landeskodes:

@table @code
@item at
@"Osterreich

@item au
Australien

@item be
Belgien

@item ca
Kanada

@item ch
Schweiz

@item cz
Tschechien

@item de
Deutschland

@item dk
D@"anemark

@item es
Spanien

@item fi
Finnland

@item fr
Frankreich

@item gb
Gro@ss{}britannien

@item gr
Griechenland

@item hu
Ungarn

@item it
Italien

@item mx
Mexiko

@item nl
Niederlande

@item no
Norwegen

@item pl
Polen

@item pt
Portugal

@item se
Schweden

@item si
Slowenien

@item th
Thailand

@item us
USA
@end table

@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
@cindex Kalenderblatt, Monatskalender
@cindex Erzwingen der Ausgabe eines Kalenderblatts
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, , Gesichtspunkte zur 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 @footnote{@"Ahnlich dem des
@w{@sc{bsd}-@code{cal}} Programms.} zu erhalten, so sollte Gcal mit der
@samp{-i} Option bzw.@: mit der Option @w{@samp{--type=special}} gestartet
werden @footnote{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 -O
@itemx --orthodox-calendar
@arindex -O
@arindex --orthodox-calendar
@cindex Kalender, Schaltjahrregel der @"ostlichen Kirchen
@cindex Schaltjahrregel der @"ostlichen orthodoxen Kirchen, Benutzen der
@cindex Benutzen der Schaltjahrregel der @"ostlichen orthodoxen Kirchen
@cindex @"Ostliche orthodoxe Kirchen, Benutzen der Schaltjahrregel
Die Schaltjahrregel verwenden, die von den @"ostlichen orthodoxen Kirchen
benutzt wird.

Ohne die Angabe der @code{--orthodox-calendar} Option ist Gcal unf@"ahig,
Gregorianische Jahre nach dem Jahre 2799 f@"ur die @"ostlichen orthodoxen
Kirchen korrekt auszugeben, da diese ein anderes Rechenschema zur Ermittlung
der Schaltjahre verwenden.  Die Methode zur Ermittlung der Schaltjahre im
gew@"ohnlichen Gregorianischen Kalender, die standardm@"a@ss{}ig von Gcal
verwendet wird, ist wie folgt:

@quotation
Ein Schaltjahr ist jedes Jahr, dessen Nummer ohne Rest durch 4 geteilt
werden kann, und Jahrhundertwenden sind keine Schaltjahre, wenn sie
nicht ganzzahlig durch 400 geteilt werden k@"onnen.
@end quotation

Aber die @"ostlichen orthodoxen Kirchen berechnen Schaltjahre innerhalb
des Gregorianischen Kalenders mittels einer anderen Regel:

@quotation
Ein Schaltjahr ist jedes Jahr, dessen Nummer ohne Rest durch 4 geteilt
werden kann, und Jahrhundertwenden sind Schaltjahre, wenn sie durch
9 geteilt einen Divisionsrest von 2 oder 6 aufweisen.
@end quotation

Der erste Unterschied tritt demnach im Jahre 2800 auf, welches ein
Schaltjahr im gew@"ohnlichen Gregorianischen Kalender ist, aber im
Kalender der @"ostlichen orthodoxen Kirchen nur ein Gemeinjahr ist.
 
@item -K
@itemx --with-week-number
@arindex -K
@arindex --with-week-number
@cindex Kalenderblatt, Ausstatten mit Wochennummern
@cindex Ausstatten des Kalenderblatts mit Wochennummern
@cindex Wochennummern im Kalenderblatt
@cindex @sc{iso}-8601:1988
Das Kalenderblatt mit @sc{iso}-8601:1988 Wochennummern ausstatten.

@strong{Bitte beachten:}@*
Es werden die Methoden der @sc{iso}-8601:1988 zur Ermittlung der Wochennummern
verwendet.  Das bedeutet, da@ss{} 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.

Sollte der Starttag der Woche nicht auf Montag gesetzt sein
(@pxref{Kalender Optionen, @samp{--starting-day=@var{Argument}}, Kalender Optionen: @samp{--starting-day=@var{Argument}}}),
so werden die Wochennummern in den meisten F@"allen nicht korrekt
dargestellt.  Sie sollten also darauf achten, da@ss{} bei Verwendung
dieser Option der Montag als Starttag der Woche gesetzt ist!
@xref{Internationalisierung, , Gesichtspunkte zur Internationalisierung},
f@"ur weitere Details.

@need 1000
@item -u
@itemx --suppress-calendar
@arindex -u
@arindex --suppress-calendar
@cindex Kalenderblatt, Unterdr@"ucken der Ausgabe
@cindex Unterdr@"ucken des Kalenderblatts
Die 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 Anzahl der Bl@"ocke im Jahreskalender
@cindex Kalenderblatt, Anzahl der Bl@"ocke im
@cindex Kalenderblatt, Jahreskalender
@cindex Jahreskalenderblatt, Erzwingen der Ausgabe
@cindex Erzwingen der Ausgabe eines Jahreskalenderblatts
Setzen der @var{Anzahl} von Bl@"ocken, in die ein Jahreskalender unterteilt 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@ss{} die Ausgabe eines Jahreskalenders 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
Benutzen des alternativen Datumformats 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@ss{} 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
Benutzen des alternativen Datumformats 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{]}}, 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@ss{} 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 Terminliste
@cindex Terminliste, alternatives Datumformat in
Benutzen des alternativen Datumformats in Terminliste anstelle des
voreingestellten Standardformats, welches die laufenden Tage im Monat ausgibt.
@xref{Termin Optionen, @samp{--list-of-fixed-dates@r{[}=short@r{|}long@r{]}}, Termin 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 Terminliste
@cindex Terminliste, spezielles Datumformat in
Ausgabe der Terminliste im speziellen Datumformat.  Darunter ist zu
verstehen, da@ss{} 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 Terminliste
@cindex Terminliste, Standard- und spezielles Datumformat in
Ausgabe der Terminliste 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}}).}

Zum Beispiel:

@example
@group
--starting-day=Sonntag @r{oder}
--starting-day=7 @r{oder}
-s SONNTAG @r{oder}
-s sonnt @r{oder}
-sSo @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, welchen das Systemdatum liefert.
@xref{Internationalisierung, , Gesichtspunkte zur Internationalisierung},
f@"ur weitere Details.

@item --gregorian-reform=1582@r{|}1700@r{|}1752@r{|}1753@r{|}@var{Argument}
@arindex @w{--gregorian-reform=1582@r{|}1700@r{|}1752@r{|}1753@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, , Gesichtspunkte zur Internationalisierung},
f@"ur weitere Details.  Derzeit werden vier fest vorgegebene Zeitr@"aume
unterst@"utzt, und zwar im Jahr 1582, im Jahr 1700, im Jahr 1752 und im
Jahr 1753.

Wird Gcal mit der @w{@samp{--gregorian-reform=1582}} Option aufgerufen,
so wird angenommen, da@ss{} die Gregorianische Reformation vom 5'ten
bis zum 14'ten Oktober 1582 stattgefunden hat.

Wird Gcal mit der @w{@samp{--gregorian-reform=1700}} Option aufgerufen,
so wird angenommen, da@ss{} die Gregorianische Reformation vom 19'ten
bis zum 28'ten Februar 1700 stattgefunden hat.

Wird Gcal mit der @w{@samp{--gregorian-reform=1752}} Option aufgerufen,
so wird angenommen, da@ss{} die Gregorianische Reformation vom 3'ten
bis zum 13'ten September 1752 stattgefunden hat.

Wird Gcal mit der @w{@samp{--gregorian-reform=1753}} Option aufgerufen,
so wird angenommen, da@ss{} die Gregorianische Reformation vom 18'ten
bis zum 28'ten Februar 1753 stattgefunden hat.

Soll ein anderer Zeitraum ber@"ucksichtigt werden, so kann dieser als
@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 vereinbart
werden:

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

Bitte beachten Sie das es m@"oglich ist, da@ss{} die Kalender sowie die
Terminfunktion (die nun auch in denjenigen Jahren korrekt funktioniert,
in denen die Gregorianische Reformation stattgefunden hat) logisch
verdorben werden, falls @var{Argument} nicht mit Sorgfalt verwandt wird.

@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@ss{}t.
@xref{Internationalisierung, , Gesichtspunkte zur Internationalisierung},
f@"ur weitere Details.  Der Datumformattext wird von Gcal in der ewigen
Feiertagsliste, in der Terminliste und in den Kalenderbl@"attern
ber@"ucksichtigt; 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 unterst@"utzt, und
zwar f@"ur deutsche Benutzer, US amerikanische Benutzer und Benutzer in
Gro@ss{}britannien.

Wird Gcal mit @w{@samp{--date-format=de}} aufgerufen, so wird der
@w{@samp{%w, @ %1%D%2 %b %y}} Formattext benutzt.

Wird Gcal mit @w{@samp{--date-format=us}} aufgerufen, so wird der
@w{@samp{%W, %b @ %1%U%2 %y}} Formattext benutzt.

Wird Gcal mit @w{@samp{--date-format=gb}} 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 @footnote{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 ausgebbare Zeichen enthalten, sowie
Zeichenersatzangaben und Formatanweisungen, die zur Laufzeit in ihre
entsprechenden Werte umgesetzt werden.  Ein minimaler Datumformattext
mu@ss{} 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 gegenw@"artig unterst@"utzt:
@sp 2

Tag-Gruppe (genau ein Mitglied mu@ss{} 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@ss{} definiert werden):

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

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

@item %m
Monatszahl mit f@"uhrender Null

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

Jahr-Gruppe (genau ein Mitglied mu@ss{} 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@"uhrender Null

@item %Z
Letzten zwei Ziffern der Jahreszahl mit f@"uhrendem Leerzeichen
@end table

@page
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@ss{} 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

@node Termin Optionen, , Kalender Optionen, Optionen
@subsubsection Termin Optionen
@cindex Termin Optionen

@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 @var{Argument} mu@ss{} entweder eine einzelne Datumvariablen-Definition
oder eine durch @samp{:} Doppelpunkt verbundene Folge von Definitionen sein.

Der Name einer Datumvariablen @var{dvar} besteht aus einem einzelnen Buchstaben
@footnote{Gro@ss{}- bzw.@: Kleinbuchstaben werden nicht unterschieden.  Nicht
zuweisbar bzw.@: inoperabel ist die Datumvariable @var{e}, welche intern f@"ur
das Datum des Ostersonntags reserviert ist.  Ebenfalls nicht zuweisbar bzw.@:
inoperabel ist die Datumvariable @var{t}, welche intern f@"ur das heutige Datum
reserviert ist.}, und wird in einer Definition von dem Zuweisungsoperator
@samp{=} gefolgt, sowie den Zahlenwerten f@"ur Monat @var{mm} (oder
einem Monatsnamen im 3-Buchstaben Kurzformat, z.B.@: @samp{Jan}, @samp{Feb},
@dots{}) und Tag @var{tt}, welche diese Variable aufzunehmen hat @footnote{Oder
dem Namen einer anderen globalen Datumvariablen, aber keiner Datumsangabe im
@code{@var{mm}@var{www}@var{n}},
@code{e@r{|}t@r{|}@var{dvar}@r{[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]}} oder
@code{*d@r{|}w@var{n}@r{[}@var{www}@r{]}} Datumformat.}.

@need 1000
Zum Beispiel:

@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 @var{Argument} mu@ss{} entweder eine einzelne Textvariablen-Definition
oder eine durch @samp{:} Doppelpunkt verbundene Folge von Definitionen sein.

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

@need 1000
Zum Beispiel:

@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 Entwertung von Spezialzeichen
@cindex Entwertungszeichen, @samp{\}
@cindex @samp{\} Entwertungszeichen
@cindex Schutz von Spezialzeichen
@cindex Schutzzeichen, @samp{\}
@cindex @samp{\} Schutzzeichen
Falls das @samp{:} Zeichen im Text als Zeichen selbst verwendet werden
soll, so mu@ss{} dieses durch ein f@"uhrendes @samp{\} (Backslash) Zeichen
hinsichtlich seiner speziellen Bedeutung entwertet werden, z.B.@: @samp{\:}.
Wenn die Zeichen @samp{\:} im Text selbst als Zeichenfolge verwendet werden
sollen, so mu@ss{} das @samp{\} (Backslash) Zeichen mit sich selbst
gesch@"utzt werden, z.B.@: @samp{\\:}.

@cindex Entwertung von Spezialzeichen
@cindex Entwertungszeichen, @samp{\}
@cindex @samp{\} Entwertungszeichen
@cindex Schutz von Spezialzeichen
@cindex Schutzzeichen, @samp{\}
@cindex @samp{\} Schutzzeichen
Falls das @samp{$} Zeichen im Text als Zeichen selbst verwendet werden
soll, so mu@ss{} dieses durch ein f@"uhrendes @samp{\} (Backslash) Zeichen
hinsichtlich seiner speziellen Bedeutung entwertet werden, z.B.@: @samp{\$}.
Wenn die Zeichen @samp{\$} im Text selbst als Zeichenfolge verwendet werden
sollen, so mu@ss{} das @samp{\} (Backslash) Zeichen mit sich selbst
gesch@"utzt 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 Entwertung von Spezialzeichen
@cindex Entwertungszeichen, @samp{\}
@cindex @samp{\} Entwertungszeichen
@cindex Schutz von Spezialzeichen
@cindex Schutzzeichen, @samp{\}
@cindex @samp{\} Schutzzeichen
Falls das @samp{_} (Unterstrich) Zeichen als Zeichen selbst verwendet werden
soll, so mu@ss{} dieses durch ein f@"uhrendes @samp{\} (Backslash) Zeichen
hinsichtlich seiner speziellen Bedeutung entwertet werden, z.B.@: @samp{\_}.
Wenn die Zeichen @samp{\_} selbst als Zeichenfolge verwendet werden sollen,
so mu@ss{} das @samp{\} (Backslash) Zeichen mit sich selbst gesch@"utzt 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 -D @var{Argument}
@itemx --filter-day=@var{Argument}
@arindex -D @var{Argument}
@arindex --filter-day=@var{Argument}
@cindex Filtern von Termindatum, Tage
@cindex Termindatum, Tage filtern von
Gibt nur diejenigen Termine aus, welche nicht durch das angegebene
@var{Argument} ausgeschlossen werden.
@xref{Datumteil einer Zeile},
sowie ebenfalls
@ref{Ausschliessen ohne Argument, , Ausschlie@ss{}en ohne Argument @code{%@var{?}} Spezialtexte}.
Das @var{Argument} besteht aus einem oder mehreren Zeichen, wie sie im
Ausschlie@ss{}en ohne Argument @code{%@var{?}} Spezialtext verwandt werden;
allerdings ohne das jeweils anf@"uhrende @samp{%} Zeichen.

So kann zum Beispiel Gcal dazu veranla@ss{}t werden, eine Jahres@"ubersicht nur
derjenigen Termine aus der Datei @file{demo.rc} auszugeben, die auf gesetzliche
Feiertage fallen, und zudem Samstage oder Sonntage sind:

@example
gcal -f demo.rc --year --filter-day=Rv
@end example

@item -P @var{Argument}
@itemx --filter-period=@var{Argument}
@arindex -P @var{Argument}
@arindex --filter-period=@var{Argument}
@cindex Filtern von Termindatum, Zeitr@"aume
@cindex Termindatum, Zeitr@"aume filtern von
Gibt nur diejenigen Termine aus, welche nicht durch das angegebene
@var{Argument} ausgeschlossen werden.
@xref{Datumteil einer Zeile},
sowie ebenfalls
@ref{Ausschliessen mit Datumargument, , Ausschlie@ss{}en mit Datumargument @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte}.
Das @var{Argument} besteht aus einem oder mehreren Ausdr@"ucken, wie sie
im Ausschlie@ss{}en mit Datumargument @code{%@var{?}@r{[}@var{Datum}@r{]}}
Spezialtext verwandt werden; allerdings ohne das jeweils anf@"uhrende @samp{%}
Zeichen.  Es k@"onnen mehrere dieser @code{%@var{?}@r{[}@var{Datum}@r{]}}
Ausdr@"ucke angegeben werden, wenn diese durch ein @samp{,} Zeichen
verbunden werden.

So kann zum Beispiel Gcal dazu veranla@ss{}t werden, eine Jahres@"ubersicht nur
derjenigen Termine aus der Datei @file{demo.rc} auszugeben, die in den
Zeitraum vom 17'ten bis zum 20'ten jeden Monats fallen, und die auf den
31'ten jeden Monats fallen:

@example
gcal -f demo.rc -y -P i00000017#00000020,i00000031#00000031
@end example

@item -I @var{Suchmuster}
@itemx --filter-text=@var{Suchmuster}
@arindex -I @var{Suchmuster}
@arindex --filter-text=@var{Suchmuster}
@cindex Filtern von Termintexten
@cindex Termintexte, Filtern von
@cindex Regul@"arer Ausdruck
@cindex Zeilenumbruchzeichen, @samp{~}
@cindex @samp{~} Zeilenumbruchzeichen
@cindex Zeilenumbruchzeichen, @samp{^}
@cindex @samp{^} Zeilenumbruchzeichen
Gibt nur diejenigen Termine aus, deren vollst@"andig expandierter Termintext
@footnote{Ausgenommen Gcal's Zeilenumbruchzeichen @samp{~} und @samp{^}, so
da@ss{} @samp{\~} und @samp{\\^} im @var{Suchmuster} Argument benutzt werden
mu@ss{}, falls nach Texten gesucht werden soll, welche diese Zeichen enthalten.}
das angegebene @var{Suchmuster} enthalten.
@xref{Textteil einer Zeile},
sowie ebenfalls
@ref{Ersetzen, , @code{%@var{?}}@dots{} Spezialtexte zum Textersatz}.
Das @var{Suchmuster} ist ein @emph{regul@"arer Ausdruck} @footnote{Im
Englischen mit @emph{regular expression} bezeichnet.}, wie es vom Unix
@code{ed} Zeileneditor erkannt wird.
@xref{Regulaere Ausdruecke, Regulaere Ausdruecke, Regul@"are Ausdr@"ucke},
f@"ur weitere Informationen.

So kann zum Beispiel Gcal dazu veranla@ss{}t werden, alle Zahnarzt- und
Augenarzttermine aus der Datei @file{doktor.rc} auszugeben, die im
laufenden Monat anfallen:

@example
gcal -f doktor.rc --month -I "[zZ]ahnarzt|[aA]ugenarzt"
@end example

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

@cindex Entwertung von Spezialzeichen
@cindex Entwertungszeichen, @samp{\}
@cindex @samp{\} Entwertungszeichen
@cindex Schutz von Spezialzeichen
@cindex Schutzzeichen, @samp{\}
@cindex @samp{\} Schutzzeichen
Falls das @samp{_} (Unterstrich) Zeichen als Zeichen selbst verwendet werden
soll, so mu@ss{} dieses durch ein f@"uhrendes @samp{\} (Backslash) Zeichen
hinsichtlich seiner speziellen Bedeutung entwertet werden, z.B.@: @samp{\_}.
Wenn die Zeichen @samp{\_} selbst als Zeichenfolge verwendet werden sollen,
so mu@ss{} das @samp{\} (Backslash) Zeichen mit sich selbst gesch@"utzt werden,
z.B.@: @samp{\\_}.

@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 --today
@arindex --list-of-fixed-dates@r{[}=short@r{|}long@r{]}
@arindex --descending-fixed-dates@r{[}=short@r{|}long@r{]}
@cindex Terminzeitraum-Langoption, @samp{--today}
@cindex Termine bezogen auf @emph{Heute}
@cindex Termine, Aktivieren der
@cindex Termine
@cindex Aktivierung der Terminfunktion
@cindex Terminfunktion, Aktivieren der
Aktivierung der Terminfunktion und Ausgabe von Terminen.

@table @samp
@item -c
@itemx --today
@itemx --list-of-fixed-dates=short
@arindex -c
@arindex --today
@arindex --list-of-fixed-dates=short
@cindex Fehlerkode 1
@cindex Exit-Kode 1
Aktivierung der Terminfunktion (implizite Benutzung der
Standard-Ressourcendatei) und alle Daten in aufsteigender Reihenfolge ausgeben,
die sich auf das aktuelle Systemdatum (@equiv{}heute) beziehen.  Wenn keine
Daten zum heutigen Tag vorgefunden werden, so werden keine Termine ausgegeben
und das Programm wird mit Fehlerkode abgebrochen.
@xref{Fehlerkodes, 1, Fehlerkodes: 1}.

@item -c-
@itemx --descending-fixed-dates=short
@arindex -c-
@arindex --descending-fixed-dates=short
@cindex Fehlerkode 1
@cindex Exit-Kode 1
Aktivierung der Terminfunktion (implizite Benutzung der
Standard-Ressourcendatei) und alle Daten in absteigender Reihenfolge ausgeben,
die sich auf das aktuelle Systemdatum (@equiv{}heute) beziehen.  Wenn keine
Daten zum heutigen Tag vorgefunden werden, so werden keine Termine ausgegeben
und das Programm wird mit Fehlerkode abgebrochen.
@xref{Fehlerkodes, 1, Fehlerkodes: 1}.

@item -C
@itemx --list-of-fixed-dates=long
@arindex -C
@arindex --list-of-fixed-dates=long
Aktivierung der Terminfunktion (implizite Benutzung der
Standard-Ressourcendatei) und alle Daten in aufsteigender Reihenfolge ausgeben,
die sich auf das aktuelle Systemdatum (@equiv{}heute) beziehen.  Wenn keine
Daten zum heutigen Tag vorgefunden werden, so wird ein nur aus dem Datum
bestehender ``leerer'' Termin ausgegeben.

@item -C-
@itemx --descending-fixed-dates=long
@arindex -C-
@arindex --descending-fixed-dates=long
Aktivierung der Terminfunktion (implizite Benutzung der
Standard-Ressourcendatei) und alle Daten in absteigender Reihenfolge ausgeben,
die sich auf das aktuelle Systemdatum (@equiv{}heute) beziehen.  Wenn keine
Daten zum heutigen Tag vorgefunden werden, so wird ein nur aus dem Datum
bestehender ``leerer'' Termin ausgegeben.
@end table

@item -f@r{|}F @var{Dateiname}@r{[}+@dots{}@r{]}
@itemx --resource-file=@var{Dateiname}@r{[}+@dots{}@r{]}
@arindex -f@r{|}F @var{Dateiname}@r{[}+@dots{}@r{]}
@arindex --resource-file=@var{Dateiname}@r{[}+@dots{}@r{]}
@cindex Ressourcendatei, zus@"atzliche
@cindex Zus@"atzliche Ressourcendatei
@cindex Ressourcendatei, andere
@cindex Andere Ressourcendatei
@cindex Termine, Aktivieren der
@cindex Termine
@cindex Aktivierung der Terminfunktion
@cindex Terminfunktion, Aktivieren der
@cindex Fehlerkode 1
@cindex Exit-Kode 1
Aktivierung der Terminfunktion und @var{Dateiname} anstelle der
Stan@-dard-Res@-sour@-cen@-da@-tei benutzen.  Sodann alle Daten in
aufsteigender Reihenfolge ausgeben, die in den Terminzeitraum fallen.  Wurde
kein besonderer Terminzeitraum angegeben, so wird das aktuelle Systemdatum
(@equiv{}heute) als Terminzeitraum angenommen.  Wurde der Optionsbuchstabe
@samp{f} bei der Kurzoption benutzt und es werden keinerlei Daten in
@var{Dateiname} vorgefunden, die in den Terminzeitraum fallen, so werden
keine Termine ausgegeben und das Programm wird mit Fehlerkode abgebrochen.
@xref{Fehlerkodes, 1, Fehlerkodes: 1}.
Wurde der Optionsbuchstabe @samp{F} bei der Kurzoption benutzt und es werden
keinerlei Daten in @var{Dateiname} vorgefunden, die in den Terminzeitraum
fallen, so wird ein nur aus dem Datum bestehender ``leerer'' Termin 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 verbunden,
aufgef@"uhrt werden, z.B.@::

@quotation
@samp{--resource-file=./foo+xyz+/data/bar+$HOME/.gcalrc} bzw.@*
@samp{-f ./foo+xyz+/data/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, Ressourcendatei: Datei-Suchmechanismus},
f@"ur weitere Details.  Wenn @var{Dateiname} auf @file{/dev/null} gesetzt
ist, so wird da@ss{} Vorladen einer Standard-Ressourcendatei verhindert,
was n@"utzlich ist, wenn leere Terminlisten erzeugt werden sollen.

@cindex Entwertung von Spezialzeichen
@cindex Entwertungszeichen, @samp{\}
@cindex @samp{\} Entwertungszeichen
@cindex Schutz von Spezialzeichen
@cindex Schutzzeichen, @samp{\}
@cindex @samp{\} Schutzzeichen
Falls das @samp{+} Zeichen als Zeichen selbst verwendet werden soll,
so mu@ss{} dieses durch ein f@"uhrendes @samp{\} (Backslash) Zeichen
hinsichtlich seiner speziellen Bedeutung entwertet werden, z.B.@: @samp{\+}.
Wenn die Zeichen @samp{\+} selbst als Zeichenfolge verwendet werden sollen,
so mu@ss{} das @samp{\} (Backslash) Zeichen mit sich selbst gesch@"utzt 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 Entwertung von Spezialzeichen
@cindex Entwertungszeichen, @samp{\}
@cindex @samp{\} Entwertungszeichen
@cindex Schutz von Spezialzeichen
@cindex Schutzzeichen, @samp{\}
@cindex @samp{\} Schutzzeichen
Falls das @samp{_} (Unterstrich) Zeichen als Zeichen selbst verwendet werden
soll, so mu@ss{} dieses durch ein f@"uhrendes @samp{\} (Backslash) Zeichen
hinsichtlich seiner speziellen Bedeutung entwertet werden, z.B.@: @samp{\_}.
Wenn die Zeichen @samp{\_} selbst als Zeichenfolge verwendet werden sollen,
so mu@ss{} das @samp{\} (Backslash) Zeichen mit sich selbst gesch@"utzt werden,
z.B.@: @samp{\\_}.

@item -# @var{Zeile}
@itemx --here=@var{Zeile}
@arindex -# @var{Zeile}
@arindex --here=@var{Zeile}
@cindex Ressourcendateizeile, zus@"atzliche
@cindex Zus@"atzliche Ressourcendateizeile
@cindex Ressourcendateizeile, weitere
@cindex Weitere Ressourcendateizeile
@cindex Termine, Aktivieren der
@cindex Termine
@cindex Aktivierung der Terminfunktion
@cindex Terminfunktion, Aktivieren der
@cindex Fehlerkode 1
@cindex Exit-Kode 1
Aktivierung der Terminfunktion und das @var{Zeile} Argument zusammen mit der
Stan@-dard-Res@-sour@-cen@-da@-tei bzw.@: den zus@"atzlichen Ressourcendateien
benutzen.  Das @var{Zeile} Argument mu@ss{} einer zul@"assigen, logischen Zeile
entsprechen, wie sie in einer Gcal Ressourcendatei auftreten darf
(@pxref{Struktur einer Ressourcendatei}),
und wird stets zuletzt @strong{nach} der Verarbeitung aller Ressourcendateien
ausgewertet, so da@ss{} Bez@"uge auf exportierte, lokale Datum- oder
Textvariablen vorgenommen werden k@"onnen.  Diese Option darf mehrfach
angegeben werden, und wird in genau der vorgefundenen Reihenfolge abgearbeitet.
Es werden alle Daten in aufsteigender Reihenfolge ausgegeben, die in den
Terminzeitraum fallen.  Wurde kein besonderer Terminzeitraum angegeben, so
wird das aktuelle Systemdatum (@equiv{}heute) als Terminzeitraum angenommen.
Werden keinerlei Daten in der @var{Zeile} vorgefunden, die in den
Terminzeitraum fallen, so werden keine Termine ausgegeben und das
Programm wird mit Fehlerkode abgebrochen.
@xref{Fehlerkodes, 1, Fehlerkodes: 1}.

So bewirkt zum Beispiel der Aufruf:

@example
gcal -# "0*d1so#99so.7 ^%:" --here="#include <foo>" -y
@end example

die implizite Verarbeitung der Stan@-dard-Res@-sour@-cen@-da@-tei, bevor
die weitere Ressourcendateizeile @samp{0*d1so#99so.7 ^%:} und danach
@samp{#include <foo>} verarbeitet werden, und zwar so, als w@"aren diese
Texte ein physischer Bestandteil der Stan@-dard-Res@-sour@-cen@-da@-tei.

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

@cindex Entwertung von Spezialzeichen
@cindex Entwertungszeichen, @samp{\}
@cindex @samp{\} Entwertungszeichen
@cindex Schutz von Spezialzeichen
@cindex Schutzzeichen, @samp{\}
@cindex @samp{\} Schutzzeichen
Falls das @samp{_} (Unterstrich) Zeichen als Zeichen selbst verwendet werden
soll, so mu@ss{} dieses durch ein f@"uhrendes @samp{\} (Backslash) Zeichen
hinsichtlich seiner speziellen Bedeutung entwertet werden, z.B.@: @samp{\_}.
Wenn die Zeichen @samp{\_} selbst als Zeichenfolge verwendet werden sollen,
so mu@ss{} das @samp{\} (Backslash) Zeichen mit sich selbst gesch@"utzt werden,
z.B.@: @samp{\\_}.
@end table

@sp 2

@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@ss{}buchstaben} 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 der verlangten Periode Termine aus.

@page
@noindent
Die Modifizierer einer kombinierten/komplexen/gepackten Kurzoption zur
Ausgabe von Terminen 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{B},
@samp{e@r{|}E},
@samp{k},
@samp{o},
@samp{U},
@samp{x},
@samp{z},
@samp{Z}

@item Zweite Stufe: @emph{Setzung-der-zu-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{|}t@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{]}},}
@w{@samp{@@e@r{|}t@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 vorstehenden Modifizierern gearbeitet werden soll, so
@strong{m@"ussen} diese entweder durch eine explizite
@w{@samp{-c@r{|}C@r{[}-@r{]}}} Kurzoption angef@"uhrt werden, z.B.@::

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

@cindex Terminzeitraum-Modifizierer, @samp{d}
@cindex Terminzeitraum-Modifizierer, @samp{l}
@cindex Terminzeitraum-Option, @samp{--leap-day=february@r{|}march}
@noindent
und es darf nur @strong{ein} zeitraumdefinierender Terminzeitraum-Modifizierer
angegeben werden @footnote{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 zusammengefa@ss{}t
zu einem einzelnen Kommandozeilenwort, angegeben werden, und es mu@ss{} zudem
entweder die Kurzoption @w{@samp{-c|C@r{[}-@r{]}}},
@w{@samp{-f@r{|}F @var{Dateiname}@r{[}+@dots{}@r{]}}} oder
@w{@samp{-# @var{Zeile}}}
@footnote{Bzw.@: deren entsprechende Langoptionen.}
beim Aufruf von Gcal angegeben werden, z.B.@::

@example
@group
-c- -t
-w- -c
-a -ABd -e -kloUxz -C12+
-F foo.bar -dZA -l*d10
--here="; Kommentar" -dZAa
@end group
@end example

@cindex Einzelzeichenoption
@cindex Kommandozeilenwort
@cindex Termine, Aktivieren der
@cindex Termine
@cindex Aktivierung der Terminfunktion
@cindex Terminfunktion, Aktivieren der
@noindent
Werden die Modifizierer als Einzelzeichenoption oder zu einem einzelnen
Kommandozeilenwort zusammengefa@ss{}t 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 @footnote{Oder deren entsprechende Aliasnamen wie
@samp{--today}, @samp{--tomorrow}@dots{}}, so ist die Angabe einer
@w{@samp{-c|C@r{[}-@r{]}}} bzw.@:
@w{@samp{-f@r{|}F @var{Dateiname}@r{[}+@dots{}@r{]}}} Kurzoption
@footnote{Oder deren entsprechende Langoptionen.} nicht notwendig,
um die Terminfunktion von Gcal zu aktivieren, da die Terminfunktion
durch diese Modifizierer bzw.@: Aliasnamen implizit ausgel@"ost wird.

@noindent
@xref{Kodierschema},
wo Tabellen aufgef@"uhrt sind, aus denen ersehen werden kann, welche
@emph{Terminargumente} mit welchem @emph{Datumteil} einer Zeile der
Ressourcendatei korrespondieren, d.h.@: bei Anwahl eines
@emph{Terminarguments} 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{Terminargument}
stehen, und somit die Ausgabe @"uberfl@"ussiger Informationen verhindert wird.

@page
@cindex Termintext-Modifizierer und Optionen
@cindex Modifizierer, Termintext
@cindex Optionen, Termintext
@noindent
@strong{Termintext-Modifizierer und Optionen:}

@table @samp
@item --biorhythm-axis=@var{Anzahl}
@arindex --biorhythm-axis=@var{Anzahl}
@cindex Termintext-Option, @samp{--biorhythm-axis=@var{Anzahl}}
Die Breite der Biorhythmus-Textgrafik --- die durch einen Biorhythmus-Textgrafik
@code{%;@r{[}@var{Datum}@r{]}} Spezialtext erzeugt werden kann --- wird auf
die im @var{Anzahl} Argument angegebene Zahl von Zeichen f@"ur jede Achse des
Balkens ge@"andert.  Das @var{Anzahl} Argument mu@ss{} eine Ganzzahl zwischen
1@dots{}100 sein, die interne Grundeinstellung betr@"agt 20 Zeichen.  Wenn das
Divisionergebnis von 100 durch @var{Anzahl} einen Divisionsrest ergibt, so
wird @var{Anzahl} intern auf die n@"achstkleinere Zahl reduziert, welche die
Zahl 100 ohne Divisionsrest teilt.  Das bedeutet, da@ss{} nur die Zahlen 1, 2,
4, 5, 10, 20, 25, 50 und 100 tats@"achlich ber@"ucksichtigt werden, so da@ss{}
ein @var{Anzahl} Argument von 19 intern auf 10 reduziert wird.

Zum Beispiel:

@example
@group
@cartouche
$ cat bio.rc
@print{} 0*d1#999 %;19620921
$ gcal -fbio.rc %19961212 -s0 -xw --biorhythm-axis=19
@print{}
@print{} Do, <12>Dez 1996: 0- G       P1 E        +0
@print{} Fr,  13 Dez 1996: 0-  G   P   1          +0
@print{} Sa,  14 Dez 1996: 0-    @@   E 0          +0
@print{} So,  15 Dez 1996: 0-  P  GE   0          +0
@print{} Mo,  16 Dez 1996: 0- P  E  G  0          +0
@print{} Di,  17 Dez 1996: 1-P  E     G0          +0
@print{} Mi,  18 Dez 1996: 0- @@        1          +0
@end cartouche
@end group
@end example

@xref{Biorhythmus, , Biorhythmus @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte},
f@"ur weitere Details.

@item --moonimage-lines=@var{Anzahl}
@arindex --moonimage-lines=@var{Anzahl}
@cindex Termintext-Option, @samp{--moonimage-lines=@var{Anzahl}}
Die H@"ohe der Mondphasen-Textgrafik --- die durch einen Mondphasen-Textgrafik
@code{%:@r{[}@var{Datum}@r{]}} Spezialtext erzeugt werden kann --- wird auf
die im @var{Anzahl} Argument angegebene Zahl von Zeilen ge@"andert.  Das
@var{Anzahl} Argument mu@ss{} eine Ganzzahl zwischen 6@dots{}30 sein, die
interne Grundeinstellung betr@"agt 12 Zeilen.

@page
Zum Beispiel:

@example
@group
@cartouche
$ gcal -f/dev/null -#0*d1#999_%:__%- %19950308 -x --moon=8
@print{}
@print{} Mi, < 8>Mar 1995:          (    @@@@@@@@@@
@print{}                       (           @@@@@@@@@@@@@@@@
@print{}                    (               @@@@@@@@@@@@@@@@@@@@
@print{}                   (                @@@@@@@@@@@@@@@@@@@@@@
@print{}                   (                @@@@@@@@@@@@@@@@@@@@@@
@print{}                    (               @@@@@@@@@@@@@@@@@@@@
@print{}                     (             @@@@@@@@@@@@@@@@@@@@
@print{}                         (        @@@@@@@@@@@@@@ 41%+
@end cartouche
@end group
@end example

@xref{Mondphase, , Mondphase @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte},
f@"ur weitere Details.

@item a
@itemx --include-resource-file-name
@arindex -a
@arindex -ca
@arindex --include-resource-file-name
@cindex Termintext-Modifizierer, @samp{a}
Den Namen der verwendeten Ressourcendatei im Termintext
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 Termintext-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 B
@itemx --bypass-shell-command
@arindex -B
@arindex -cB
@arindex --bypass-shell-command
@cindex Termintext-Modifizierer, @samp{B}
@cindex Shell
@cindex Kommandointerpretierer
Shell Kommando @code{%!@r{[}@var{Argument}@r{]}} Spezialtexte nicht
ausf@"uhren, sondern rein textlich ausgeben.
@xref{Shell Kommando, , Shell Kommando @code{%!}[@var{Argument}] Spezialtext},
f@"ur weitere Details.

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

@item E
@itemx --include-holidays=short
@arindex -E
@arindex -cE
@arindex --include-holidays=short
@cindex Termintext-Modifizierer, @samp{E}
Nur diejenigen Daten aus der ewigen Feiertagsliste in die
Terminliste 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 Termintext-Modifizierer, @samp{g@r{[}@var{Text}@r{]}}
Die Termine tageweise mittels des Separators @var{Text} gruppieren.
Wenn kein @var{Text} angegeben ist, so wird der eingebaute @var{Text}
@footnote{@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 Entwertung von Spezialzeichen
@cindex Entwertungszeichen, @samp{\}
@cindex @samp{\} Entwertungszeichen
@cindex Schutz von Spezialzeichen
@cindex Schutzzeichen, @samp{\}
@cindex @samp{\} Schutzzeichen
Falls das @samp{~} (Tilde) Zeichen als Zeichen selbst verwendet werden
soll, so mu@ss{} dieses durch ein f@"uhrendes @samp{\} (Backslash) Zeichen
hinsichtlich seiner speziellen Bedeutung entwertet werden, z.B.@: @samp{\~}.
Wenn die Zeichen @samp{\~} selbst als Zeichenfolge verwendet werden sollen,
so mu@ss{} das @samp{\} (Backslash) Zeichen mit sich selbst gesch@"utzt
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 Entwertung von Spezialzeichen
@cindex Entwertungszeichen, @samp{\}
@cindex @samp{\} Entwertungszeichen
@cindex Schutz von Spezialzeichen
@cindex Schutzzeichen, @samp{\}
@cindex @samp{\} Schutzzeichen
Falls das @samp{_} (Unterstrich) Zeichen als Zeichen selbst verwendet werden
soll, so mu@ss{} dieses durch ein f@"uhrendes @samp{\} (Backslash) Zeichen
hinsichtlich seiner speziellen Bedeutung entwertet werden, z.B.@: @samp{\_}.
Wenn die Zeichen @samp{\_} selbst als Zeichenfolge verwendet werden sollen,
so mu@ss{} das @samp{\} (Backslash) Zeichen mit sich selbst gesch@"utzt
werden, z.B.@: @samp{\\_}.

@need 1000
@item k
@itemx --include-week-number
@arindex -k
@arindex -ck
@arindex --include-week-number
@cindex Termintext-Modifizierer, @samp{k}
@cindex @sc{iso}-8601:1988
Das eine jede Einzelzeile anf@"uhrende Datum in einer Terminliste
wird mit der @sc{iso}-8601:1988 Wochennummer versehen.

@strong{Bitte beachten:}@*
Es werden die Methoden der @sc{iso}-8601:1988 zur Ermittlung der Wochennummern
verwendet.  Das bedeutet, da@ss{} 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 Termintext-Modifizierer, @samp{o}
Vermeidet die Mehrfachausgabe von einem jede Einzelzeile anf@"uhrendem
Datum in der Terminliste, falls sich weitere Termine auf dieses Datum
beziehen @footnote{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 U
@itemx --suppress-date-part
@arindex -U
@arindex -cU
@arindex --suppress-date-part
@cindex Termintext-Modifizierer, @samp{U}
Unterdr@"uckt die Ausgabe von einem jede Einzelzeile anf@"uhrendem
Datum in der Terminliste, z.B.@::

@example
@group
@cartouche
$ gcal -cU
@print{}
@print{} 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 Termintext-Modifizierer, @samp{x}
@cindex Terminliste, @"Uberschrift unterdr@"ucken
@cindex @"Uberschrift unterdr@"ucken in Terminliste
Die Ausgabe der @"Uberschrift in der Terminliste unterdr@"ucken.

@item z
@itemx --include-consecutive-number
@arindex -z
@arindex -cz
@arindex --include-consecutive-number
@cindex Termintext-Modifizierer, @samp{z}
Die laufende Postennummer des Termins ausgeben.

@item Z
@itemx --zero-dates-only
@arindex -Z
@arindex -cZ
@arindex --zero-dates-only
@cindex Termintext-Modifizierer, @samp{Z}
Nur die Daten ausgeben, zu denen keine Termine vorliegen,
d.h.@: nur die aus dem Datum bestehenden ``leeren'' Termine.
@end table

@page
@cindex Terminzeitraum-Modifizierer und Optionen
@cindex Modifizierer, Terminzeitraum
@cindex Optionen, Terminzeitraum
@noindent
@strong{Terminzeitraum-Modifizierer und Optionen:}

@table @samp
@item --leap-day=february@r{|}march
@arindex --leap-day=february@r{|}march
@cindex Terminzeitraum-Option, @samp{--leap-day=february@r{|}march}
@cindex Schalttag
Den @dfn{Schalttag} @footnote{Der 29'te Februar.} auch in
Nicht-Schaltjahren ber@"ucksichtigen.

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

@item --leap-day=march
@arindex --leap-day=march
@cindex Terminzeitraum-Option, @samp{--leap-day=march}
@cindex Schalttag auf den 1'ten M@"arz legen
Ein Termin, der in jedem Jahr gelten soll und der 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 Terminzeitraum-Modifizierer, @samp{d}
Wenn eine Datumliste erzeugt wird, so wird das aktuelle Datum in dieser
Liste mit eingeschlossen.
@xref{Termin Optionen, @samp{--list-mode}, Termin Optionen: @samp{--list-mode}},
wie eine Datumliste erzeugt wird.

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

@quotation
@strong{Bitte beachten:}@*
In den folgenden Beispielen wird angenommen, da@ss{} das aktuelle Systemdatum
der @strong{17'te Februar eines beliebigen Jahres} (00000217) 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 Terminzeitraum-Modifizierer, @samp{@var{n}d}
@cindex Terminzeitraum-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 Niveau 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 Terminzeitraum-Modifizierer, @samp{l@var{n}d}
@cindex Terminzeitraum-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 Niveau 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 Terminzeitraum-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 Niveau 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 Terminzeitraum-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 Niveau 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 Terminzeitraum-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 Niveau 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.

@cindex Fehlerkode 126
@cindex Exit-Kode 126
@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 Termine ausgegeben und das Programm wird mit
Fehlerkode abgebrochen.
@xref{Fehlerkodes, 126, 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 Terminzeitraum-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 Niveau 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 Terminzeitraum-Modifizierer, @samp{@var{mm}@var{tt}}
Alle Daten zum Tag @var{tt} im Monat @var{mm} des aktuellen Jahres ausgeben;
das Niveau 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 Terminzeitraum-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 Niveau 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 Terminzeitraum-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 Niveau
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 Terminzeitraum-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 Niveau 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 Terminzeitraum-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 Niveau 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.

@cindex Fehlerkode 126
@cindex Exit-Kode 126
@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 Termine ausgegeben und das
Programm wird mit Fehlerkode abgebrochen.
@xref{Fehlerkodes, 126, Fehlerkodes: 126}.

@cindex Fehlerkode 126
@cindex Exit-Kode 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 Termine ausgegeben und das
Programm wird mit Fehlerkode abgebrochen.
@xref{Fehlerkodes, 126, Fehlerkodes: 126}.

@item
Z.B.@: @samp{gcal -c*d99son} gibt alle diejenigen Termine aus, die auf den
letzten Sonntag @footnote{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 Terminzeitraum-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 Niveau 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.

@cindex Fehlerkode 126
@cindex Exit-Kode 126
@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 Termine ausgegeben
und das Programm wird mit Fehlerkode abgebrochen.
@xref{Fehlerkodes, 126, Fehlerkodes: 126}.

@cindex Fehlerkode 126
@cindex Exit-Kode 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 Termine ausgegeben
und das Programm wird mit Fehlerkode abgebrochen.
@xref{Fehlerkodes, 126, 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 @footnote{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 Terminzeitraum-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}-Ka@-len@-der@-wo@-che des aktuellen Jahres ausgeben; das Niveau
ist wie bei der einfachen @samp{-c} Option.  Wenn kein Wochentag @var{www}
angegeben ist, so wird Montag als Wochentag angenommen.

@itemize @bullet
@cindex Fehlerkode 126
@cindex Exit-Kode 126
@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 Termine ausgegeben und das Programm wird
mit Fehlerkode abgebrochen.
@xref{Fehlerkodes, 126, 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.

@cindex Fehlerkode 126
@cindex Exit-Kode 126
@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 Termine ausgegeben und das Programm wird mit Fehlerkode abgebrochen.
@xref{Fehlerkodes, 126, Fehlerkodes: 126}.

@cindex Fehlerkode 126
@cindex Exit-Kode 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 Termine ausgegeben und das Programm wird mit Fehlerkode abgebrochen.
@xref{Fehlerkodes, 126, Fehlerkodes: 126}.

@item
Z.B.@: @samp{gcal -c*w99son} gibt alle diejenigen Termine aus, die auf den
Sonntag der letzten @sc{iso}-Kalenderwoche @footnote{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 Terminzeitraum-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{0@r{|}1@r{@dots{}}51@r{|}52@r{|}53@r{|}99}}
@sc{iso}-Kalenderwoche des aktuellen Jahres ausgeben; das Niveau ist
wie bei der @samp{-cy} Option.  Wenn kein Wochentag @var{www} angegeben ist,
so wird Montag als Wochentag angenommen.

@itemize @bullet
@cindex Fehlerkode 126
@cindex Exit-Kode 126
@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
Termine ausgegeben und das Programm wird mit Fehlerkode abgebrochen.
@xref{Fehlerkodes, 126, 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.

@cindex Fehlerkode 126
@cindex Exit-Kode 126
@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 Termine ausgegeben und
das Programm wird mit Fehlerkode abgebrochen.
@xref{Fehlerkodes, 126, Fehlerkodes: 126}.

@cindex Fehlerkode 126
@cindex Exit-Kode 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 Termine ausgegeben und
das Programm wird mit Fehlerkode abgebrochen.
@xref{Fehlerkodes, 126, 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
@footnote{Das ist entweder die 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 Terminzeitraum-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 Niveau 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 Terminzeitraum-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 Niveau 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 Terminzeitraum-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 Niveau 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 Terminzeitraum-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 Niveau 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{@@t@r{[[}+@r{|}-@r{]}@var{n}@r{]}}
@arindex -@@t@r{[[}+@r{|}-@r{]}@var{n}@r{]}
@arindex -c@@t@r{[[}+@r{|}-@r{]}@var{n}@r{]}
@cindex Terminzeitraum-Modifizierer, @samp{@@t@r{[[}+@r{|}-@r{]}@var{n}@r{]}}
Alle Daten zum @w{@var{n}'ten} Tag relativ zum heutigen Datum des aktuellen
Jahres ausgeben; das Niveau ist wie bei der einfachen @samp{-c} Option.

@itemize @bullet
@item
Z.B.@: @samp{gcal -c@@t} gibt die Termine aus, die am heutigen Datum
stattfinden (@equiv{} @samp{gcal -c}).

@item
Z.B.@: @samp{gcal -c@@t10} bzw.@: @samp{gcal -c@@t+10} gibt die Termine aus,
die 10 Tage nach dem heutigen Datum stattfinden (@equiv{} @samp{gcal -c10+}).

@item
Z.B.@: @samp{gcal -c@@t-10} gibt die Termine aus, die 10 Tage vor dem
heutigen Datum stattfinden (@equiv{} @samp{gcal -c10-}).
@end itemize

@need 1500
@item @samp{l@@t@r{[[}+@r{|}-@r{]}@var{n}@r{]}}
@arindex -l@@t@r{[[}+@r{|}-@r{]}@var{n}@r{]}
@arindex -cl@@t@r{[[}+@r{|}-@r{]}@var{n}@r{]}
@cindex Terminzeitraum-Modifizierer, @samp{l@@t@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 heutigen Datum
des aktuellen Jahres ausgeben; das Niveau ist wie bei der @samp{-cy} Option.

@itemize @bullet
@item
Z.B.@: @samp{gcal -cl@@t} bewirkt nichts.

@item
Z.B.@: @samp{gcal -cl@@t10} bzw.@: @samp{gcal -cl@@t+10} gibt eine Liste aller
derjenigen Termine aus, die am 18'ten Februar beginnen und 10 Tage nach dem
heutigen Datum enden (@equiv{} @samp{gcal -cl10+}).

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

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

@itemize @bullet
@item
Z.B.@: @samp{gcal -c@@t3fr} bzw.@: @samp{gcal -c@@t+3fr} gibt die Termine aus,
die am 3'ten Freitag nach dem heutigen Datum stattfinden.

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

@item @samp{l@@t@r{[}+@r{|}-@r{]}@var{n}@var{www}}
@arindex -l@@t@r{[}+@r{|}-@r{]}@var{n}@var{www}
@arindex -cl@@t@r{[}+@r{|}-@r{]}@var{n}@var{www}
@cindex Terminzeitraum-Modifizierer, @samp{l@@t@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
heutigen Datum des aktuellen Jahres ausgeben; das Niveau ist wie bei
der @samp{-cy} Option.

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

@item
Z.B.@: @samp{gcal -cl@@t-3fr} gibt eine Liste aller derjenigen Termine aus,
die am 16'ten Februar beginnen und am 3'ten Freitag vor dem heutigen Datum
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 Terminzeitraum-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 Niveau 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 Terminzeitraum-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 Niveau 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 Terminzeitraum-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 Niveau 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 Terminzeitraum-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 Niveau 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 Terminzeitraum-Modifizierer, @samp{t@r{|}T}
@cindex Terminzeitraum-Langoption, @samp{--tomorrow}
@cindex Termine 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 Terminzeitraum-Modifizierer, @samp{w@r{|}W@r{[}+@r{|}-@r{]}}
@cindex Terminzeitraum-Langoption, @samp{--week}
@cindex Terminzeitraum-Langoption, @samp{--end-of-week}
@cindex Terminzeitraum-Langoption, @samp{--start-of-week}
@cindex Termine bezogen auf die @emph{Woche}
Liste von Daten ausgeben, die sich auf die Woche beziehen.@*
@xref{Kalender Optionen, @samp{--starting-day@r{[}=@var{Argument}@r{]}}, 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 Terminzeitraum-Modifizierer, @samp{m@r{|}M@r{[}+@r{|}-@r{]}}
@cindex Terminzeitraum-Langoption, @samp{--month}
@cindex Terminzeitraum-Langoption, @samp{--end-of-month}
@cindex Terminzeitraum-Langoption, @samp{--start-of-month}
@cindex Termine 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 Terminzeitraum-Modifizierer, @samp{y@r{|}Y@r{[}+@r{|}-@r{]}}
@cindex Terminzeitraum-Langoption, @samp{--year}
@cindex Terminzeitraum-Langoption, @samp{--end-of-year}
@cindex Terminzeitraum-Langoption, @samp{--start-of-year}
@cindex Termine 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
@arindex @@@var{Datei}

@noindent
Wenn ein @samp{@@@var{Datei}} Argument in der Kommandozeile vorgefunden wird,
so wird eine @dfn{Antwortdatei} namens @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}}, 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@ss{} @strong{keine}
Standard-Antwortdatei ber@"ucksichtigt wird.
@xref{Ressourcendatei, Datei-Suchmechanismus, 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@ss{} 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.

@sp 2

@noindent
Zum Beispiel:

@enumerate 1
@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

@page
@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

@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 Systemdatum zu
verwenden, welches mit der @samp{%@var{Datum}} Option definiert wurde.
Das bedeutet, da@ss{} Termine f@"ur @strong{jedwedes} Jahr gepr@"uft werden
k@"onnen, und diese so ber@"ucksichtigt werden, als ob sie Termine w@"aren,
die sich rein auf das aktuelle Jahr beziehen.

@noindent
Das Datum mu@ss{} in einem dieser Formate angegeben werden:

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

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

@item
@w{@code{@var{jjjj}@@e@r{|}t@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@ss{} das aktuelle Systemdatum
@strong{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}@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@"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.}

@page
@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.}

@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

@need 2000
@item Das @code{@var{jjjj}@@e@r{|}t@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 %1994@@t} @w{(@equiv{} @code{@var{jjjj}@@t})}@*
Das aktuelle Datum wird auf das heutige Datum im Jahr 1994 gesetzt
@w{@result{} 19940217.}

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

@item
@samp{gcal %1994@@t+10} @w{(@equiv{} @code{@var{jjjj}@@t@r{[}+@r{]}@var{n}})}@*
Das aktuelle Datum wird auf das Datum 10 Tage nach dem heutigen Datum
im Jahr 1994 gesetzt @w{@result{} 19940227.}

@item
@samp{gcal %1994@@t-10} @w{(@equiv{} @code{@var{jjjj}@@t-@var{n}})}@*
Das aktuelle Datum wird auf das Datum 10 Tage vor dem heutigen Datum
im Jahr 1994 gesetzt @w{@result{} 19940207.}

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

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

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

@item
@samp{gcal %0000@@t} @w{(@equiv{} @code{@var{jjjj}@@t})}@*
Das aktuelle Datum wird auf das heutige Datum gesetzt
@w{@result{} 19930217.}

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

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

@item
@samp{gcal %0@@t-10} @w{(@equiv{} @code{@var{jjjj}@@t-@var{n}})}@*
Das aktuelle Datum wird auf das Datum 10 Tage vor dem heutigen Datum
gesetzt @w{@result{} 19930207.}

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

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

@item
@samp{gcal %1994@@t-3mi} @w{(@equiv{} @code{@var{jjjj}@@t-@var{n}@var{www}})}@*
Das aktuelle Datum wird auf das Datum 3'ter Mittwoch vor dem heutigen Datum
im Jahr 1994 gesetzt @w{@result{} 19940302.}

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

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

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

@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@ss{} mindestens zwei Elemente enthalten, und darf unbegrenzt viele
Elemente enthalten.

@sp 2

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

@itemize @bullet
@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 itemize

@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@ss{} 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 @footnote{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

@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

@page
@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

@page
@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, Umgebungsvariablen: @code{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}.

@sp 2

@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.

@sp 2

@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, Termine, 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.29} 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{]}}, 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) 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.
@sp 2

@noindent
Einige Anmerkungen:
@sp 2

@noindent
Die folgende Tabelle f@"uhrt alle diejenigen Zeichen auf, die zum Markieren
eines Eintrags in der ewigen Feiertagsliste verwendet werden, d.h.@: direkt
vor dessen Datum stehen:

@multitable @columnfractions .15 .85
@item @strong{Zeichen}
@tab @strong{Beschreibung}
@item @code{+}
@tab Gesetzlicher Feiertag, der im gesamten Land g@"ultig ist.  Wird automatisch
mit Hervorhebungssequenzen bzw.@: Markierungszeichen versehen.
@item @code{#}
@tab Gesetzlicher Feiertag, der @"uberwiegend im gesamten Land g@"ultig ist.
Wird automatisch mit Hervorhebungssequenzen bzw.@: Markierungszeichen versehen.
@item @code{*}
@tab Gesetzlicher Feiertag, der nicht @"uberwiegend im gesamten Land g@"ultig
ist.  Wird nicht mit Hervorhebungssequenzen bzw.@: Markierungszeichen versehen.
@item @code{-}
@tab Sonstiger Feiertag, der nur zu Erinnerungszwecken dient.
Wird nicht mit Hervorhebungssequenzen bzw.@: Markierungszeichen versehen.
@end multitable
@sp 2

@noindent
Mittels der @samp{--cc-holidays=@var{cc}@r{[}+@dots{}@r{]}} Option kann
die ewige Feiertagsliste mit zus@"atzlichen landesspezifischen Feiertagen
ausgestattet werden, die dann zusammen mit den Standardfeiertagen in dieser
Liste enthalten sind.
@xref{Kalender Optionen, @samp{--cc-holidays=@var{cc}@r{[}+@dots{}@r{]}}, Kalender Optionen: @samp{--cc-holidays=@var{cc}@r{[}+@dots{}@r{]}}}.
So bewirkt zum Beispiel:

@example
--cc-holidays=de+fr
@end example

@noindent
die Aufnahme von deutschen und franz@"osischen Feiertagen in die ewige
Feiertagsliste.  Da die Aufnahme von landesspezifischen Feiertagen in die
ewige Feiertagsliste nicht an die vorgenommene Internationalisierung von
Gcal gekoppelt ist
(@pxref{Internationalisierung, , Gesichtspunkte zur Internationalisierung}),
d.h.@: die landesspezifischen Feiertage f@"ur ein bestimmtes Territorium bzw.@:
Land werden nicht automatisch bei Programmstart ber@"ucksichtigt, liegt es
somit in der Hand des Endanwenders, mit welchen landesspezifischen Feiertagen
die ewige Feiertagsliste versehen wird.
@xref{Die GCAL Umgebungsvariable, , Die @code{GCAL} Umgebungsvariable},
f@"ur Informationen, wie Gcal dazu veranla@ss{}t werden kann, die ewige
Feiertagsliste bei Programmstart automatisch mit landesspezifischen Feiertagen
zu versehen.

@page
@noindent
Die beliebige Auswahl der verschiedenen landesspezifischen Feiertage kann
recht sinnvoll genutzt werden, wenn beispielsweise Informationen @"uber ein
bestimmtes Territorium bzw.@: Land ben@"otigt werden.  Angenommen ein
Gesch@"aftsmann in Deutschland beabsichtigt, im Monat November in die USA zu
reisen, und m@"ochte wissen, welche gesetzlichen Feiertage dort auf Werktage
fallen, um seine Terminplanung daraufhin abstimmen zu k@"onnen.  So kann das
wie folgt ermittelt werden:

@example
gcal -f /dev/null -q US -D r -cE nov
@end example

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

@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{Terminzwecke} benutzt werden
kann.  Dazu darf eine Gcal spezifische Ressourcendatei erzeugt werden, welche
Termineintr@"age 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{Termin} 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 Systemdatum (@equiv{}heute) beziehen.
Sodann gibt Gcal ohne einen vorangehenden Kalender alle diejenigen Termine
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 Termine kann auf mehrere Arten und Weisen ausgegeben werden:

@noindent
Wenn Gcal mit dem @emph{Termin} 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 Termine
aus der Ressourcendatei, die sich auf den angegebenen Zeitraum beziehen;
das Niveau ist wie bei der @samp{-cy} Option, wenn sich der Zeitraum auf
ein Jahr bzw.@: Fiskaljahr bezieht oder auf eine 3-Monatsperiode, bzw.@:
wie bei der @samp{-cm} Option, wenn sich der Zeitraum auf einen Monat bezieht.

@noindent
Wenn Gcal ohne explizites Datum mit dem @emph{Termin} 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 Termine
aus der Ressourcendatei aus, die sich auf den angegebenen Zeitraum im
aktuellen Jahr beziehen, und danach alle diejenigen Feiertage aus der
ewigen Feiertagsliste aus, die sich auf das gesamte aktuelle Jahr beziehen.
@xref{Ewige Feiertage},
f@"ur weitere Details zur @emph{ewigen Feiertagsliste}.

@sp 2

@noindent
Anmerkung zu vorhergehenden Beispielen:
@sp 2

@noindent
Falls das @emph{Standard/Spezielle Kalenderformat} Argument
oder das @emph{Starttag der Woche} Argument
@footnote{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}, Kalender Optionen: @samp{--type=special@r{|}standard}},
und
@ref{Kalender Optionen, @samp{--starting-day@r{[}=@var{Argument}@r{]}}, 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{Termin} Argument (evtl.@: mit Modifizierern) und das
@emph{Anzahl der Monatsbl@"ocke} Argument vorgefunden wird
(@pxref{Kalender Optionen, @samp{--blocks=@var{Anzahl}}, 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 Systemdatum (@equiv{}heute) beziehen.  Sodann gibt
Gcal einen vorangehenden Jahreskalender und alle diejenigen Termine aus der
Ressourcendatei aus, die sich auf den aktuellen Tag (Woche/Monat/Jahr) des
aktuellen Jahres beziehen.

@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 Niveau ist wie bei
der @samp{-cy} Option.

@item gcal -c- juli:1993
Ausgabe aller Termine in absteigender Reihenfolge, welche sich auf das
Fiskaljahr --- beginnend im Monat Juli 1993 und endend im Monat Juni
1994 --- beziehen; das Niveau 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@ss{}lich aller ewigen Feiertage dieses Zeitraums,
welche in diese Liste eingef@"ugt werden; das Niveau 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@ss{}lich 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 Niveau
ist wie bei der @samp{-cy} Option.

@item gcal -cm %19920317
Ausgabe aller Termine in aufsteigender Reihenfolge, welche sich auf den
Monat M@"arz 1992 beziehen.

@item gcal %1994@@e -n -c
Ausgabe aller Termine in aufsteigender Reihenfolge, welche sich auf Ostersonntag
1994 beziehen, sowie der ewigen Feiertagsliste in aufsteigender Reihenfolge,
welche sich auf das gesamte Jahr 1994 bezieht.
@end table

@page
@node Ressourcendatei, Ressourcendateibeispiele, Termine, Termine
@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@ss{} der Datumteil aussehen?
* Weitere Datumteil-Attribute::     Was sind weitere Attribute vom Datumteil?
* Textteil einer Zeile::            Wie mu@ss{} der Textteil aussehen?
* Zeile kommentieren::              Wie eine Zeile kommentiert werden kann.
* Include Anweisungen::             Was sind Include Anweisungen?
* Spezialtexte::                    Was sind @code{%@var{?}}@dots{} Spezialtexte?
* Datumvariablen::                  Wie Datumvariablen benutzt werden k@"onnen.
* Textvariablen::                   Wie Textvariablen benutzt werden k@"onnen.
@end menu

@noindent
Dieser Abschnitt beschreibt, wie eine @dfn{Ressourcendatei},
welche Termineintr@"age enth@"alt, benutzt wird.  Der Name der
Standard-Ressourcendatei ist @file{$HOME/.gcalrc} @footnote{Unter @w{MS-DOS},
OS/2 und einigen anderen Betriebssystemen ist der Name der
Standard-Ressourcendatei @file{$HOME/gcalrc} (ohne vorangehenden @samp{.}).}.

@noindent
Gcal benutzt einen speziellen Datei-Suchmechanismus:

@cindex Aktuelles Dateiverzeichnis
@cindex Dateiverzeichnis, aktuelles
@cindex Umgebungsvariable, @code{HOME}
@cindex @code{HOME} Umgebungsvariable
@vindex HOME
@enumerate 1
@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, Umgebungsvariablen: @code{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, Umgebungsvariablen: @code{GCALPATH}})
angegeben sind.  Die Umgebungsvariable @code{GCALPATH} enth@"alt eine durch
@samp{:} Zeichen @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.} getrennte Liste von Dateiverzeichnissen.  Falls eine
solche Umgebungsvariable weder definiert noch gesetzt ist, so @"ubergeht Gcal
auch 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} @footnote{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, Umgebungsvariablen: @code{GCAL_USR_DATADIR}}).
Falls die Umgebungsvariable @code{HOME} weder definiert noch gesetzt ist, so
@"ubergeht Gcal nat@"urlicherweise auch 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{Sys@-tem-Da@-ten@-ver@-zeich@-nis} @footnote{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, Umgebungsvariablen: @code{GCAL_SYS_DATADIR}}).
@end enumerate

@noindent
Falls die Standard-Ressourcendatei nicht w@"ahrend der Schritte @w{1@dots{}4}
des Da@-tei-Such@-me@-cha@-nis@-mus' aufgefunden wurde, so werden keinerlei
Termine erzeugt!

@cindex Fehlerkode 118
@cindex Exit-Kode 118
@noindent
Falls die @w{@samp{--debug=abort}} Option angegeben wurde und keine
Standard-Ressourcendatei w@"ahrend der Schritte @w{1@dots{}4} des
Datei-Suchmechanismus' aufgefunden wurde, so wird das Gcal-Programm
mit Fehlerkode abgebrochen.
@xref{Fehlerkodes, 118, Fehlerkodes: 118},
und
@ref{Globale Optionen, @samp{--debug=abort}, Globale Optionen: @samp{--debug=abort}},
f@"ur weitere Informationen.

@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
Stan@-dard-Res@-sour@-cen@-da@-tei als Ressourcendatei benutzt.
@xref{Termin Optionen, @samp{--resource-file=@var{Dateiname}}, Termin Optionen: @samp{--resource-file=@var{Dateiname}}},
f@"ur weitere Informationen.
@sp 2

@noindent
Anmerkung:
@sp 2

@cindex Erweiterter Dateiname
@cindex Dateiname, erweiterter
@noindent
Ein @dfn{erweiterter Dateiname} enth@"alt ein oder mehrere @samp{/} Zeichen
@footnote{Betriebssysteme wie z.B.@: @w{MS-DOS} oder OS/2 verwenden das
@samp{\} Zeichen, mit dem ein Dateiverzeichnis von einem Dateinamen separiert
wird.} und bezeichnet eine Datei, deren Zugriffspfad entweder vom
Wurzeldateiverzeichnis @footnote{Im Englischen mit @emph{root-directory}
bezeichnet.} 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:

@itemize @bullet
@item
Wenn @var{Dateiname} vorgefunden wird, so wird Gcal diese Datei auswerten.

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

@sp 2

@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:

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

@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@ss{} eine besondere --- aber einfache ---
Zeilenstruktur aufweisen, so da@ss{} Gcal auch in der Lage ist, deren Inhalt
zu interpretieren.  Jeder Termineintrag, der in einer Zeile einer
Ressourcendatei vorgenommen wird, mu@ss{} in zwei Teile aufgespalten werden,
n@"amlich einerseits in einen @emph{Datumteil}, und andererseits in einen
optionalen @emph{Textteil}, die durch mindestens @strong{ein} @dfn{whitespace}
@footnote{Das sind zum Beispiel @emph{Tab}, @emph{Space}, @emph{Form-Feed}
und @"ahnliche Zeichen.} Trennzeichen 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@ss{} 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 @w{@code{INT_MAX}}
@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}@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

@page
@noindent
Neben Termineintr@"agen k@"onnen noch weitere Eintr@"age in einer
Ressourcendatei vorgenommen werden, und zwar:
@sp 2

@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@ss{} 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} --- welcher Gcal die Information,
gibt wann ein Termin stattfindet --- einer Zeile der Gcal Ressourcendatei
ist

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

@quotation
@table @code
@item @var{jjjj}
(4 Ziffern), ist das Jahr einschlie@ss{}lich 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}: @code{@var{jjjj}*d@r{|}w@var{n}@r{[}@var{www}@r{]}}}

@quotation
@table @code
@item @var{jjjj}
(4 Ziffern), ist das Jahr einschlie@ss{}lich 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@ss{}erhalb der
Jahresgrenzen liegt, so wird der Termin unterdr@"uckt.

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

@page
@noindent
@w{@strong{oder}: @code{@var{jjjj}@@e@r{|}t@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{]}}}

@quotation
@table @code
@item @var{jjjj}
(4 Ziffern), ist das Jahr einschlie@ss{}lich 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 @@t
(2 Zeichen), ist ein Bezug auf das heutige Datum.

@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@ss{}erhalb der Jahresgrenzen liegt, so wird der Termin
unterdr@"uckt.
@end table
@end quotation

@noindent
@w{@strong{oder}: @code{@var{jjjj}@@e@r{|}t@r{|}@var{dvar}@r{[}+@r{|}-@r{]}@var{n}@var{www}}}

@quotation
@table @code
@item @var{jjjj}
(4 Ziffern), ist das Jahr einschlie@ss{}lich 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 @@t
(2 Zeichen), ist ein Bezug auf das heutige Datum.

@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@ss{}erhalb der Jahresgrenzen liegt, so wird der Termin 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@ss{} 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 garnicht angegeben
ist:@*
Es wird angenommen, da@ss{} 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 garnicht angegeben
ist:@*
Es wird angenommen, da@ss{} 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-Buchstaben Kurzformat
angegeben ist, z.B.:@: @samp{Mon, Die@dots{}}@*
Es wird angenommen, da@ss{} 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, welcher einen Termineintrag in einer Gcal Ressourcendateizeile
anf@"uhrt, 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@ss{}en strukturierten Datumteile
in einer Gcal Ressourcendateizeile mit weiteren Attributen versehen werden:

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

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

@item
@w{@code{@var{jjjj}@@e@r{|}t@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, in dem der Termin stattfindet, unbestimmt ist, d.h.@: das Jahr
@var{jjjj} ist auf Null gesetzt, so werden solche Datumteile @strong{nur}
innerhalb einfacher Jahresgrenzen korrekt berechnet, also nicht in denjenigen
Terminen, 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{,} Trennzeichen kenntlich gemacht;
diese mu@ss{} 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 einem Eintrag in der Ressourcendatei, welcher
gleicherma@ss{}en 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{@code{@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{@code{@var{jjjj}*d@r{|}w@var{n}@r{|}@var{n}@var{www},@var{n}@r{|}@var{n}@var{www} @dots{}}}

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

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

@table @code
@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.

@item 1996@@t+1,-3,5,+4fr,2fr,-10sa
Im Jahr 1996: einen Tag nach dem heutigen Datum, drei Tage vor dem heutigen
Datum, f@"unf Tage nach dem heutigen Datum, vier Freitage nach dem heutigen
Datum, zwei Freitage nach dem heutigen Datum sowie zehn Samstage vor dem
heutigen Datum.
@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{#} Trennzeichen 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@ss{}lich) 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 @footnote{Einmal abgesehen von der
M@"oglichkeit, da@ss{} 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 einem Eintrag in der Ressourcendatei, welcher
gleicherma@ss{}en 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{@code{@var{jjjj}@var{mm}@var{www}#@var{www}}}

@item
@w{@code{@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{@code{@var{jjjj}*d@r{|}w@var{n}@r{[}@var{www}@r{]}#@var{n}@r{[}@var{www}@r{]}}}

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

@noindent
Aus der vorstehenden Aufstellung kann ersehen werden, da@ss{} als Start-
und Endetag nur Datumformate gleichen Typs links und rechts des @samp{#}
Trennzeichens verwendet werden k@"onnen.  Es ist somit nicht explizit
m@"oglich, da@ss{} ein Bereich von Tagen mit verschiedenartigen Typen von
Datumformaten definiert werden kann, also Termineintr@"age wie z.B.@::

@example
1996@@e+3fr#1012 Im Jahr 1996: An jedem Tag, der in den\
                Zeitraum vom Datum 3'ter Freitag nach Ostersonntag\
                bis zum 12'ten Oktober f@"allt.
@end example

@noindent
k@"onnen so nicht vereinbart werden.  Hier bietet sich aber Abhilfe an, indem
ein inklusive Datum Zeitraum @code{%i@r{[}@var{Datum}@r{][}#@r{[}@var{Datum}@r{]]}}
Spezialtext zur Festlegung des Endetags des Bereichs benutzt wird
@footnote{Implizite L@"osung.}, und die Termine der Einfachheit
halber bis zum letzten Tag des Jahres produziert werden, z.B.@::

@example
1996@@e+3fr#+999 Im Jahr 1996: An jedem Tag, der in den\
                Zeitraum vom Datum 3'ter Freitag nach Ostersonntag\
                bis zum 12'ten Oktober f@"allt.%i0#19961012
@end example

@noindent
@xref{Inklusive Datum Zeitraum, , Inklusive Datum Zeitraum @code{%i@r{[}@var{Datum}@r{][}#@r{[}@var{Datum}@r{]]}} Spezialtext},
f@"ur weitere Details.

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

@table @code
@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.

@item 1996@@t-3#+99fr
Im Jahr 1996: an jedem Tag, der in den Zeitraum
vom Datum drei Tage vor dem heutigen Datum bis zum letzten Freitag des Jahres
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@ss{} dem Tagesfeld, welches einen konkreten
Wert in einem Datumteil einer Gcal Ressourcendatei haben mu@ss{} 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 sonst m@"oglichen Angaben von Datumteilen einer Gcal Ressourcendatei
auftreten.

@noindent
Dieser Faktor darf den Wert 1@dots{}999 annehmen.  Werte, die gr@"o@ss{}er 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@ss{}er 365
@footnote{Oder 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@ss{}lich 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 @footnote{Einmal abgesehen
von der M@"oglichkeit, da@ss{} 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 einem Eintrag in der Ressourcendatei,
welcher gleicherma@ss{}en 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{@code{@var{jjjj}@var{mm}@var{tt}:@var{n}@r{|}@var{www}@var{n}:@var{n}}}

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

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

@item
@w{@code{@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{@code{@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{@code{@var{jjjj}@@e@r{|}t@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 @code
@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.

@item 1996@@t-3:9
Im Jahr 1996: an jedem Tag, der in den Zeitraum
vom Datum drei Tage vor dem heutigen Datum 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@ss{} dem Tagesfeld, welches einen konkreten
Wert in einem Datumteil einer Gcal Ressourcendatei haben mu@ss{} 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 sonst 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 1@dots{}999 annehmen.  Wenn der Faktor Werte
annimmt, die gr@"o@ss{}er 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@ss{}lich 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 @footnote{Einmal abgesehen von der M@"oglichkeit,
da@ss{} 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 einem Eintrag in der Ressourcendatei, welcher
gleicherma@ss{}en 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{@code{@var{jjjj}@var{mm}@var{tt}:@var{n}.@var{n}@r{|}@var{tt}.@var{n}:@var{n}}}

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

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

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

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

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

@item
@w{@code{@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{@code{@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{@code{@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{@code{@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{@code{@var{jjjj}@@e@r{|}t@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{@code{@var{jjjj}@@e@r{|}t@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{@code{@var{jjjj}@var{mm}@var{www}#@var{www}.@var{n}}}

@item
@w{@code{@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{@code{@var{jjjj}*d@r{|}w@var{n}@r{[}@var{www}@r{]}#@var{n}@r{[}@var{www}@r{]}.@var{n}}}

@item
@w{@code{@var{jjjj}@@e@r{|}t@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 @code
@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 jeweils 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).

@item 1996@@t3#-20so.15
Im Jahr 1996: an jedem Tag, der in den Zeitraum
vom Datum drei Tage nach dem heutigen Datum bis zum 20'ten Sonntag vor
dem heutigen Datum 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
@cindex Zeilenumbruchzeichen, @samp{~}
@cindex @samp{~} Zeilenumbruchzeichen
@cindex Zeilenumbruchzeichen, @samp{^}
@cindex @samp{^} Zeilenumbruchzeichen

@noindent
Der @dfn{Textteil} einer Zeile der Ressourcendatei darf jeden beliebigen
Text enthalten, den Sie m@"ogen.  Allerdings haben einige Zeichen eine
Sonderbedeutung (@samp{%}, @samp{$}, @samp{~}, @samp{^} und @samp{\}), und
m@"ussen gegebenenfalls gesch@"utzt werden, falls mit diesen Zeichen besondere
Zeichenkombinationen gebildet werden @footnote{Wie zum Beispiel @samp{%i},
@samp{$a}@dots{}}, die nur rein textlich verwendet werden sollen.  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@ss{}er 127 (dezimal) zugeordnet ist @footnote{Diese
Zeichen sind eventuell 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 @footnote{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@ss{} 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; sonst
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
@noindent
Ferner k@"onnen @emph{lange} Textteile an beliebiger Stelle umgebrochen werden.
Die Bezeichnung @emph{lang} bedeutet in diesem Zusammenhang, da@ss{} der von
Gcal bei der Ausgabe dargestellte Text den rechten Bildschirmrand
@"uberschreiten bzw.@: an diesem umgebrochen w@"urde.

@cindex Zeilenumbruchzeichen, @samp{~}
@cindex @samp{~} Zeilenumbruchzeichen
@noindent
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
--- das hei@ss{}t mit einer bestimmten Anzahl von Leerzeichen aufgef@"ullt.

@cindex Entwertung von Spezialzeichen
@cindex Entwertungszeichen, @samp{\}
@cindex @samp{\} Entwertungszeichen
@cindex Schutz von Spezialzeichen
@cindex Schutzzeichen, @samp{\}
@cindex @samp{\} Schutzzeichen
@noindent
Falls das @samp{~} (Tilde) Zeichen als Zeichen selbst verwendet werden soll,
so mu@ss{} es durch ein f@"uhrendes @samp{\} (Backslash) Zeichen hinsichtlich
seiner speziellen Bedeutung entwertet werden, z.B.@: @samp{\~}.  Wenn die
Zeichen @samp{\~} selbst als Zeichenfolge verwendet werden sollen,
so mu@ss{} das @samp{\} (Backslash) Zeichen mit sich selbst gesch@"utzt
werden, z.B.@: @samp{\\~}.

@cindex Zeilenumbruchzeichen, @samp{~}
@cindex @samp{~} Zeilenumbruchzeichen
@noindent
Jedesmal wenn ein @samp{^} (Caret) Zeichen im Textteil vorgefunden wird, so
wird auch dieses Zeichen durch ein echtes @samp{\n} (Newline) Zeichen ersetzt,
und der so umgebrochene Text bei der Ausgabe in Spalte 1 dargestellt
--- das hei@ss{}t nicht mit Leerzeichen aufgef@"ullt.  Die Schutzregeln
des @samp{^} Zeichens entsprechen denen des @samp{~} Zeichens.

@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 Ich hoffe ich bin auch 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

@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 auch lang genug
@print{} hier, ein Zeilenumbruch
@print{}                   und noch einer
@print{} und nun zum letzten Mal...
@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 Entwertung von Spezialzeichen
@cindex Entwertungszeichen, @samp{\}
@cindex @samp{\} Entwertungszeichen
@cindex Schutz von Spezialzeichen
@cindex Schutzzeichen, @samp{\}
@cindex @samp{\} Schutzzeichen
@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@ss{} das @strong{erste} dieser
@emph{whitespace} Zeichen durch ein f@"uhrendes @samp{\} (Backslash) Zeichen
hinsichtlich seiner speziellen Bedeutung entwertet werden, z.B.@: @samp{\ },
wenn es sich um ein Leerzeichen handelt.  Gcal erkennt an Hand einer solchen
Zeichenfolge, da@ss{} 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. 

@page
@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

@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 in Ressourcendatei
@cindex Ressourcendatei, Zeile kommentieren
@cindex Kommentarzeichen, @samp{;}
@cindex @samp{;} Kommentarzeichen
@cindex Whitespace-Zeichen

@noindent
Eine Zeile @footnote{Physisch wie auch logisch.} 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.
@xref{Textteil einer Zeile},
wo erkl@"art wird, wie ein @code{NUL} Zeichen zur Kommentierung in einem
Textteil benutzt werden kann.

@noindent
Die nun folgende Darstellung der @file{kommentar.rc} Ressourcendatei, die
ihrerseits @strong{nur} aus Kommentaren besteht, sollte gen@"ugen, um
den vorstehenden Sachverhalt zu verdeutlichen:

@example
@group
@cartouche
$ cat kommentar.rc
;00001031 ^\
                        ........^\
                         ;::;;::,^\
                         ;::;;::;,^\
                        ;;:::;;:;;,^\
          .vnmnv\%vnnv\%,.;;;:::;;:;;,  .,vnmnv\%vnmn,^\
       vnmmmn\%vnmmnv\%vnmmnv\%;;;;;;\%nmmmnv\%vnmnv\%vmmnv^\
     vnmmnv\%vmmmmnv\%vnmmmmmnv\%;:\%nmmmmmmnv\%vnmn\%vnmmmnv^\
    vnmmnv\%vnmmmnv\%vnmmmmmmmmnv\%nmmmmmmmmnv\%vnmmn\%vnmmmnv^\
   vnmmnv\%vnmmmnv\%vnmmmmmmmmnv\%vmmmmmmmmmmnv\%vnmmv\%vnmmmnv^\
  vnmmnv\%vnmmmnv\%vnmm;mmmmmmnv\%vmmmmmmmm;mmnv\%vnmnv\%vnmmmnv,^\
 vnmmnv\%vnmmmnv\%vnmm;' mmmmmnv\%vmmmmmmm;' mmnv\%vnmnv\%vnmmmnv,^\
 vnmmnv\%vnmmmnv\%vn;;    mmmmnv\%vmmmmmm;;    nv\%vnmmnv\%vnmmmnv^\
vnmmnv\%vnmmmmnv\%v;;      mmmnv\%vmmmmm;;      v\%vnmmmnv\%vnmmmnv^\
vnmmnv\%vnmmmmnv\%vnmmmmmmmmm;;      mmmmmmmmmnv\%vnmmmmnv\%vnmmmnv^\
vnmmnv\%vnmmmmnv\%vnmmmmmmmmmm;;    mmmmmmmmmmnv\%vnmmmmnv\%vnmmmnv^\
vnmmnv\%vnmmmmnv\%vnmmmmmmmmmmnv;,mmmmmmmmmmmmnv\%vn;mmmnv\%vnmmmnv^\
vnmmnv\%vnmmm. nv\%vnmmmmmmmmmnv\%;mmmmmmmmmmmnv\%vn; mmmnv\%vnmmmnv^\
`vnmmnv\%vnmm,  v\%vnmmmmmmmmmmnv\%nmmmmmmmmmmnv\%v;  mmnv\%vnnmmnv'^\
 vnmmnv\%vnmm;,   \%vnmmmmmmmmmnv\%nmmmmmmmmmnv\%;'   mmv\%vnmmmmnv^\
  vnmmnv\%vnmm;;,   nmmm;'             mmmm;;'    mnv\%vnmmmmnv'^\
  `vnmmnv\%vnmmm;;,.         mmnvv;,            mmnv\%vnmmmmnv'^\
   `vnmmnv\%vnmmmmnv\%vnmmmmmmmmnvvnmmmmmmnv\%vnmmmmv\%vnmmmmnv'^\
     `vnmvn\%vmmmmmnv\%vnmmmmmmmnvvnmmmmmnv\%vnmmmmn\%vnmmmnv'^\
         `vn\%nmmmmmn\%:\%vnmnmmmmn\%vnmmmnv\%:\%vnmnv\%nmnv'

; Ein Zeilenkommentar
      ; Ebenfalls ein Zeilenkommentar
;     Ein                              \
      formatierter und mehrzeiliger    \
      Kommentar
@end cartouche
@end group
@end example

@page
@node Include Anweisungen, Spezialtexte, 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, welche da@ss{} Aufsuchen und Vorladen weiterer Ressourcendateien
bewirken @footnote{Ein Mechanismus @"ahnlich demjenigen, den der C Preprocessor
benutzt.}.  Eine @code{#include} Anweisung veranla@ss{}t 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 @footnote{Also ein Dateiname, der entweder mit @samp{""} oder @samp{<>}
umfa@ss{}t ist.}.

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

@noindent
Nun zu einem etwas konkreteren Beispiel:

@enumerate 1
@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, so versucht Gcal mittels der Schritte @w{1@dots{}4}
des bereits zuvor erkl@"arten Datei-Suchmechanismus' diese Datei einzuf@"ugen
(@pxref{Ressourcendatei, Datei-Suchmechanismus, 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
@w{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 bei
dieser Art von @code{#include} Anweisungen ist die Angabe eines einfachen
oder erweiterten Dateinamens, der mit einer Laufwerksangabe versehen ist,
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.

@cindex Fehlerkode 119
@cindex Exit-Kode 119
@noindent
Eingef@"ugte Dateien d@"urfen ihrerseits wiederum weitere Dateien einf@"ugen.
Allerdings ist die Schachtelungstiefe eingef@"ugter Dateien einerseits durch
die Gr@"o@ss{}e 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.
@xref{Fehlerkodes, 119, Fehlerkodes: 119},
f@"ur weitere Informationen.

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

@page
@node Spezialtexte, Datumvariablen, Include Anweisungen, Ressourcendatei
@subsection @code{%@var{?}}@dots{} Spezialtexte
@cindex @code{%@var{?}}@dots{} Spezialtexte
@cindex Spezialtext-Startzeichen, @samp{%}
@cindex @samp{%} Spezialtext-Startzeichen

@cindex Entwertung von Spezialzeichen
@cindex Entwertungszeichen, @samp{\}
@cindex @samp{\} Entwertungszeichen
@cindex Schutz von Spezialzeichen
@cindex Schutzzeichen, @samp{\}
@cindex @samp{\} Schutzzeichen
@noindent
Der Textteil einer Zeile der Ressourcendatei darf 81 verschiedene
Spezialtexte enthalten, welche in jeder beliebigen @footnote{Vern@"unftigen!}
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 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 Spezialtextes definiert.
Falls das Kennzeichen ein Buchstabe ist, so wird zwischen Gro@ss{}- bzw.@:
Kleinschreibung @strong{unterschieden}.
@sp 2

@noindent
Der Sinn dieser Spezialtexte besteht haupts@"achlich darin, entweder die
Ausgabe von Terminen in bestimmten F@"allen zu unterdr@"ucken, oder aber
diese mit besonderen Texten auszustatten bzw.@: externe Kommandos
auszuf@"uhren.
@xref{Spezialtexte (lang), , @code{%@var{?}}@dots{} Spezialtexte},
f@"ur eine vollst@"andige Darstellung aller verwendbaren Spezialtexte, und
@ref{Spezialtexte (kurz), , Zusammenfassung aller @code{%@var{?}}@dots{} Spezialtexte},
f@"ur deren entsprechende Kurzdarstellung.
@sp 2

@noindent
So wird zum Beispiel die Ressourcendatei @file{spezial.rc}

@example
@group
; Ich bin wahrhaftig sehr speziell :)
;
0 1. Heute ist %o , %u  %M  %Y !
0 2. Es ist der %#  Tag des Jahres.
0 3. Die aktuelle Wochennummer ist: %k .
0 4. Gegenwaertig ist es %t12 Uhr.
@end group
@end example

@noindent
wie folgt ausgegeben (wenn das heutige Datum der 4'te Oktober 1996 ist):

@example
@group
@cartouche
$ gcal --resource-file=spezial.rc -H no -ox
@print{}
@print{} Fr,   4 Okt 1996: 1. Heute ist Freitag, 04'ter Oktober 1996!
@print{}                   2. Es ist der 278'ter Tag des Jahres.
@print{}                   3. Die aktuelle Wochennummer ist: 40.
@print{}                   4. Gegenwaertig ist es 01.25am Uhr.
@end cartouche
@end group
@end example

@page
@node Datumvariablen, Textvariablen, Spezialtexte, 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 Spezialtexts im Textteil einer Zeile der Ressourcendatei verwendet werden
d@"urfen.

@noindent
@xref{Termin Optionen, @samp{--date-variable=@var{Argument}}, Termin Optionen: @samp{--date-variable=@var{Argument}}},
f@"ur weitere Details zu globalen Datumvariablen.

@noindent
Das bedeutet, da@ss{} bis zu @strong{24} benutzerdefinierte Datumvariablen
gesetzt und w@"ahrend der Programmausf@"uhrung referenziert werden k@"onnen.
Der Name einer Datumvariablen @var{dvar} besteht aus einem einzelnen
Buchstaben @footnote{Gro@ss{}- bzw.@: Kleinbuchstaben werden nicht
unterschieden.  Nicht zuweisbar bzw.@: inoperabel ist die Datumvariable @var{e},
welche intern f@"ur das Datum des Ostersonntags reserviert ist.  Ebenfalls nicht
zuweisbar bzw.@: inoperabel ist die Datumvariable @var{t}, welche intern f@"ur
das heutige Datum reserviert ist.}, und wird in einer Definition von dem
Zuweisungsoperator @samp{=} gefolgt, sowie den Zahlenwerten f@"ur Monat @var{mm}
(oder einem Monatsnamen im 3-Buchstaben Kurzformat, z.B.@: @samp{Jan},
@samp{Feb}, @dots{}) und Tag @var{tt}, welche diese Variable aufzunehmen hat
@footnote{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@ss{} 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 zugewiesen werden,
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 sind, 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@ss{} 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.

@page
@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
Terminen, 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
@cindex Fehlerkode 113
@cindex Exit-Kode 113
@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@ss{} 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 bei Weiterverarbeitung der aufrufenden
Datei nicht exportiert werden.  Alle anderen Definitionen von Datumvariablen
@footnote{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
Informationstext auf dem @emph{Standardfehler-Ger@"atekanal} f@"ur
jede undefinierte Datumvariable ausgegeben
(@pxref{Globale Optionen, @samp{--debug=internal}, Globale Optionen: @samp{--debug=internal}}).
Falls die @w{@samp{--debug=abort}} Option angegeben wurde und eine
Referenz einer undefinierten Datumvariable auftrat, so wird das Gcal-Programm
mit Fehlerkode abgebrochen.
@xref{Fehlerkodes, 113, Fehlerkodes: 113},
und
@ref{Globale Optionen, @samp{--debug=abort}, Globale Optionen: @samp{--debug=abort}},
f@"ur weitere Informationen.

@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@ss{} diese Datumvariable keinen lokalen G@"ultigkeitsbereich mehr aufweist
und somit undefiniert ist.  So ist es dann m@"oglich, da@ss{} 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
; dvar.rc
;
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@ss{} die aktuelle Inkarnation einer lokalen
Datumvariablen --- welche zuvor in einer Ressourcendatei definiert wurde
und nicht in einer eingef@"ugten Datei --- 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@ss{}e hinsichtlich der Wirkung
der @samp{--export-date-variables} Option ist, so da@ss{} es nicht
empfohlen werden kann, diese Option zu benutzen.  Sie, der Benutzer,
m@"ussen sehr genau wissen, was Sie mit dieser Option bezwecken 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.  Diese sind:

@multitable @columnfractions .2 .8
@item @strong{Operation}
@tab @strong{Beschreibung}
@item @code{@var{dvar}++}
@cindex Datumvariablen, einfache Inkrementierung von
@cindex Einfache Inkrementierung von Datumvariablen
@tab Einfache Inkrementierung um einen Tag.
@item @code{@var{dvar}--}
@cindex Datumvariablen, einfache Dekrementierung von
@cindex Einfache Dekrementierung von Datumvariablen
@tab Einfache Dekrementierung um einen Tag.
@item @code{@var{dvar}+=@var{n}}
@cindex Datumvariablen, Addition um Tage
@cindex Addition auf Datumvariablen
@tab Addition eines konstanten numerischen Tagesfaktors @var{n}.
@item @code{@var{dvar}-=@var{n}}
@cindex Datumvariablen, Subtraktion um Tage
@cindex Subtraktion auf Datumvariablen
@tab Subtraktion eines konstanten numerischen Tagesfaktors @var{n}.
@item @code{@var{dvar}+=@var{n}@var{www}}
@cindex Datumvariablen, Addition um Wochentage
@cindex Addition auf Datumvariablen
@tab Addition von @var{n} Wochentagen @var{www}.
@item @code{@var{dvar}-=@var{n}@var{www}}
@cindex Datumvariablen, Subtraktion um Wochentage
@cindex Subtraktion auf Datumvariablen
@tab Subtraktion von @var{n} Wochentagen @var{www}.
@end multitable

@cindex G@"ultigkeitsbereich von Datumvariablen
@cindex Datumvariablen, G@"ultigkeitsbereich von
@noindent
Der G@"ultigkeitsbereich der Operationen, welche auf einer lokalen
Datumvariablen durch@-ge@-f@"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
@footnote{Diese werden nur lokal ausgef@"uhrt.}, nicht aber in weiteren
Ressourcendateien, welche verarbeitet werden.  Das bedeutet, da@ss{} die
Initialwerte der globalen Datumvariablen stets restauriert werden, falls
die zu verarbeitende Ressourcendatei wechselt.

@noindent
Bitte beachten Sie abschlie@ss{}end, da@ss{} jede Zuweisung oder
Operation auf eine Datumvariable in einer separaten Zeile der
Ressourcendatei erfolgen mu@ss{}.

@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.

@noindent
@xref{Termin Optionen, @samp{--text-variable=@var{Argument}}, Termin Optionen: @samp{--text-variable=@var{Argument}}},
f@"ur weitere Details zu globalen Textvariablen.

@noindent
Das bedeutet, da@ss{} 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 @footnote{Gro@ss{}- bzw.@: Kleinbuchstaben
werden nicht unterschieden.}, und wird in einer Definition von dem
Zuweisungsoperator @samp{=} gefolgt, sowie 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@ss{} 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 Entwertung von Spezialzeichen
@cindex Entwertungszeichen, @samp{\}
@cindex @samp{\} Entwertungszeichen
@cindex Schutz von Spezialzeichen
@cindex Schutzzeichen, @samp{\}
@cindex @samp{\} Schutzzeichen
@noindent
Falls das @samp{$} Zeichen im Text als Zeichen selbst verwendet werden
soll, so mu@ss{} dieses durch ein f@"uhrendes @samp{\} (Backslash) Zeichen
hinsichtlich seiner speziellen Bedeutung entwertet werden, z.B.@: @samp{\$}.
Wenn die Zeichen @samp{\$} im Text selbst als Zeichenfolge verwendet werden
sollen, so mu@ss{} das @samp{\} (Backslash) Zeichen mit sich selbst
gesch@"utzt 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

@page
@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 Spezialtexte
(@pxref{Spezialtexte, , @code{%@var{?}}@dots{} Spezialtexte})
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@ss{} 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 bei Weiterverarbeitung der aufrufenden
Datei nicht exportiert werden.  Alle anderen Definitionen von Textvariablen
@footnote{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@ss{} die aktuelle Inkarnation einer lokalen
Textvariablen --- welche zuvor in einer Ressourcendatei definiert wurde
und nicht in einer eingef@"ugten Datei --- 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@ss{}e hinsichtlich der Wirkung
der @samp{--export-text-variables} Option ist, so da@ss{} es nicht
empfohlen werden kann, diese Option zu benutzen.  Sie, der Benutzer,
m@"ussen sehr genau wissen was Sie mit dieser Option bezwecken 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 Redefinitionen nur in dieser entsprechenden Datei g@"ultig
@footnote{Diese werden nur lokal ausgef@"uhrt.}, nicht aber in weiteren
Ressourcendateien, welche verarbeitet werden.  Das bedeutet, da@ss{} die
Initialwerte der globalen Textvariablen stets restauriert werden, falls
die zu verarbeitende Ressourcendatei wechselt.

@noindent
Bitte beachten Sie abschlie@ss{}end, da@ss{} jede Zuweisung an eine Textvariable
in einer separaten Zeile der Ressourcendatei erfolgen mu@ss{}.

@page
@node Ressourcendateibeispiele, , Ressourcendatei, Termine
@section Ressourcendateibeispiele
@cindex Ressourcendateibeispiele

@noindent
Um einen konkreten Eindruck von den Einsatzm@"oglichkeiten aller die
Termine 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%i1962#2062
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%i#1979
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
;   Terminzeitraum-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
; oder
0@@a-1mit Buss- und Bettag
@end group
@end example

@page
@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%i0000
$b=#0000
$c=fr2
$d=fr3
00000113 $a01$c$b01$c
00000113 $a01$d$b01$d
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, und zwar unter Ausnutzung
der Tatsache, da@ss{} ein Freitag als 13'ter Tag des Monats nur dann auftreten
kann, wenn der erste Tag des Monats ein Sonntag ist:

@example
@group
$a=Freitag der 13'te ist am %n+12%i0000
$b=#0000
$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

@page
@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

@noindent
Nat@"urlich kann vorstehender Aufwand zur Ermittlung aller Freitage,
die auf den 13'ten eines Monats fallen, auch textlich recht drastisch
reduziert werden, indem einfach nur

@example
0*d1fre#99fre.7 Freitag der 13'te%i00000013#00000013
@end example

@noindent
in der Ressourcendatei @file{demo3.rc} benutzt wird, beziehungsweise

@example
0*d1son#99son.7 Freitag der 13'te ist am %n+12%i00000001#00000001
@end example

@noindent
in der @file{demo4.rc} Ressourcendatei benutzt wird.
@sp 2

@noindent
Allerdings mu@ss{} hier klar gesagt werden, da@ss{} vorstehende @emph{Einzeiler}
zwar den Kodieraufwand in einer Ressourcendatei erheblich reduzieren --- von
28 bzw.@: 15 Zeilen auf jeweils 1 Zeile ---, aber der Pr@"ufaufwand dieser
@emph{Einzeiler} allerdings zum Teil erheblich h@"oher ist, was sich dann
an einer l@"angeren Programmlaufzeit bemerkbar macht.  Beide @emph{Einzeiler}
verursachen intern circa 52 Produktionen bzw.@: effektive Termineintr@"age
ihrer selbst je Jahr, welches von Gcal abgepr@"uft wird, wobei die
@file{demo3.rc} und @file{demo4.rc} Ressourcendateien nur zu 24 bzw.@:
12 effektiven Termineintr@"agen auslaufen.

@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=%VWerktag
$c=%i#0000$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=%VWerktag
$c=%i#0000$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

@page
@noindent
Dann ist das Ergebnis f@"ur den Monat August 1996 wie folgt:

@example
@group
@cartouche
$ gcal -H no -u -x -r '$b=08:$f=demo5.rc' -f ./include.rc Aug 1996
@print{}
@print{} Do,   1 Aug 1996: Werktag
@print{} Fr,   2 Aug 1996: Werktag
@print{} Mo,   5 Aug 1996: Werktag
@print{} Di,   6 Aug 1996: Werktag
@print{} Mi,   7 Aug 1996: Werktag
@print{} Do,   8 Aug 1996: Werktag
@print{} Fr,   9 Aug 1996: Werktag
@print{} Mo,  12 Aug 1996: Werktag
@print{} Di,  13 Aug 1996: Werktag
@print{} Mi,  14 Aug 1996: Werktag
@print{} Do,  15 Aug 1996: Werktag
@print{} Fr,  16 Aug 1996: Werktag
@print{} Mo,  19 Aug 1996: Werktag
@print{} Di,  20 Aug 1996: Werktag
@print{} Mi,  21 Aug 1996: Werktag
@print{} Do,  22 Aug 1996: Werktag
@print{} Fr,  23 Aug 1996: Werktag
@print{} Mo,  26 Aug 1996: Werktag
@print{} Di,  27 Aug 1996: Werktag
@print{} Mi,  28 Aug 1996: Werktag
@print{} Do,  29 Aug 1996: Werktag
@print{} Fr,  30 Aug 1996: Werktag
@end cartouche
@end group
@end example

@noindent
So kann auch hier vorstehender Aufwand zur Ermittlung aller Werktage eines
beliebigen Monats textlich recht drastisch reduziert werden, indem einfach nur

@example
00000001#0099 %V%rWerktag
@end example

@noindent
in der Ressourcendatei @file{demo5.rc} benutzt wird.

@page
@noindent
Und abschlie@ss{}end eine Ressourcendatei mit dem Namen @file{swzeit.rc}, die
Termine 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
;
; `swzeit.rc'; Sommerzeit/Winterzeit BRD
;
$a=zeitumstellung am Sonntag
;
a=03so9
0@@a-2#+2 Sommer$a~+1 Std. (02.00 --> 03.00 Uhr)%i1980
;
a=09so9
0@@a-2#+2 Winter$a~-1 Std. (03.00 --> 02.00 Uhr)%i1980#1995
;
a=10so9
0@@a-2#+2 Winter$a~-1 Std. (03.00 --> 02.00 Uhr)%i1996
@end group
@end example

@node Heutiger Kalender, Gcal Hilfsprogramme, Termine, 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 --- basierend auf Verfahren, die
von den Babyloniern und @"Agyptern entwickelt wurden --- 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@ss{} 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@ss{} 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@ss{}er 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@ss{} sein
Geburtsmonat August im Sinne der regelm@"a@ss{}igen 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@ss{}te der Februar noch weiter, auf 28
bzw.@: 29 Tage, schrumpfen, so da@ss{} nun der 29'te Februar zum Schalttag
wurde.

@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@ss{} 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@ss{} der Fr@"uhlingsanfang im 16'ten Jahrhundert auf den 11'ten
M@"arz fiel --- anstatt auf den 21'ten M@"arz ---, und zwar 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@ss{}te 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@ss{} die Jahrhundertwenden keine Schaltjahre mehr sind, mit der
Ausnahme, da@ss{} 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@ss{} 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@ss{}.  Orthodox christianisierte L@"ander
@"ubernahmen den Gregorianischen Kalender sp@"ater.  Ru@ss{}land war das letzte
europ@"aische Land, da@ss{} diesen Kalender @"ubernahm, und zwar nach der
Kommunistischen Revolution, welche am 25'ten Oktober 1917 (Gregorianisch)
stattfand.  Daraus resultierte, da@ss{} 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@ss{} 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, aber 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?
* Aufruf von gcal2txt::  Wie starte ich das @code{gcal2txt} Programm?
@end menu

@noindent
Drei kleine Hilfsprogramme sind im Gcal @value{GCAL-VERSION} Paket enthalten.
Das @code{tcal} Programm startet das Gcal Programm mit dem Datum des morgigen
Tages.  Das @code{txt2gcal} Programm erzeugt eine wortgetreue Gcal
Ressourcendatei aus einer Textdatei, und im Gegensatz dazu erstellt
das @code{gcal2txt} Programm eine wortgetreue Textdatei aus einer Gcal
Ressourcendatei.

@node Aufruf von tcal, Aufruf von txt2gcal, Gcal Hilfsprogramme, Gcal Hilfsprogramme
@appendixsec Aufruf von @code{tcal}
@cindex Optionen von @code{tcal}
@cindex @code{tcal}, Optionen von
@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 @footnote{Das 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 Systemdatum (@equiv{}heute) entfernt
ist (funktioniert nur f@"ur Gregorianische Jahre).  Die @samp{--shift} Option
mu@ss{} 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, Umgebungsvariablen: @code{GCALPROG}})
definiert und mit dem Dateinamen des ausf@"uhrbaren Gcal Programms gesetzt
ist, so benutzt @code{tcal} diesen Dateinamen, um Gcal aufzurufen.
Andernfalls benutzt @code{tcal} den beim Kompilationsvorgang eingebrannten
Dateinamen @code{gcal}, um das Gcal Progamm aufzurufen.  Ein Programmendestatus
0 bedeutet, da@ss{} 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
erfolgreiche Beendigung des Programms.

@item --version
@arindex --version
Ausgabe der Versionsnummer; sodann erfolgreiche Beendigung des Programms.

@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

@page
@node Aufruf von txt2gcal, Aufruf von gcal2txt, Aufruf von tcal, Gcal Hilfsprogramme
@appendixsec Aufruf von @code{txt2gcal}
@cindex Optionen von @code{txt2gcal}
@cindex @code{txt2gcal}, Optionen von
@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 aber @samp{-} als Argument angegeben,
so liest und verarbeitet das Programm alle Eingaben, die vom
@emph{Standardeingabe-Ger@"atekanal} 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
@emph{Standardausgabe-Ger@"atekanal} ausgegeben.  Ein Programmendestatus 0
bedeutet, da@ss{} 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
erfolgreiche Beendigung des Programms.

@item --version
@arindex --version
Ausgabe der Versionsnummer; sodann erfolgreiche Beendigung des Programms.
@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 folgendem Inhalt:

@example
@group
        Hallo Freunde,

Ich bin der Demo-Text, der lustige Zeichen und Zeichensequenzen
enthaelt 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{} enthaelt 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.

@page
@noindent
Abschlie@ss{}end 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{} enthaelt 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 Aufruf von gcal2txt, , Aufruf von txt2gcal, Gcal Hilfsprogramme
@appendixsec Aufruf von @code{gcal2txt}
@cindex Optionen von @code{gcal2txt}
@cindex @code{gcal2txt}, Optionen von
@cindex Aufruf von @code{gcal2txt}
@cindex @code{gcal2txt}, Aufruf von
@cindex Das @code{gcal2txt} Hilfsprogramm
@cindex Hilfsprogramm @code{gcal2txt}
@cindex @code{gcal2txt}, Hilfsprogramm

@noindent
@code{gcal2txt} ist ein Programm, welches aus einer Gcal Ressourcendatei
eine wortgetreue Textdatei erzeugt.  Seine Argumente sind wie folgt:

@example
gcal2txt @r{[}--help @r{|} --version@r{] | [}@var{Ressourcendatei} @r{|} -@r{]}
@end example

@noindent
Wird keine @var{Ressourcendatei} oder aber @samp{-} als Argument angegeben,
so liest und verarbeitet das Programm alle Eingaben, die vom
@emph{Standardeingabe-Ger@"atekanal} kommen.  Alle Ergebnisse werden stets
auf dem @emph{Standardausgabe-Ger@"atekanal} ausgegeben.  Ein Programmendestatus
0 bedeutet, da@ss{} die Verarbeitung erfolgreich war, ein anderer Endestatus
verweist auf einen Fehler w@"ahrend der Verarbeitung.

@noindent
Sinn und Zweck von @code{gcal2txt} ist, all das, was von @code{txt2gcal}
in die Ausgabe eingebracht wurde, wieder r@"uckg@"angig zu machen!

@noindent
Das Programm akzeptiert die folgenden Optionen:

@table @samp
@item --help
@arindex --help
Ausgabe eines Hilfetextes, der alle verf@"ugbaren Optionen aufzeigt; sodann
erfolgreiche Beendigung des Programms.

@item --version
@arindex --version
Ausgabe der Versionsnummer; sodann erfolgreiche Beendigung des Programms.
@end table
@sp 2

@noindent
Und nun ebenfalls zu einem Beispiel, welches den Einsatz von
@code{gcal2txt} n@"aher erl@"autern soll.  Dazu wird die Ressourcendatei
mit dem Namen @file{demo.rc} benutzt, welche im vorherigen Abschnitt
mittels @code{txt2gcal} aus einer Textdatei erzeugt wurde
(@pxref{Aufruf von txt2gcal, , Aufruf von @code{txt2gcal}}),
und die ja wie folgt aussieht:

@example
@group
@cartouche
$ cat demo.rc
@print{} 0*d1#999 \        Hallo Freunde,~\
@print{} ~\
@print{} Ich bin der Demo-Text, der lustige Zeichen und Zeichensequenzen~\
@print{} enthaelt 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

@noindent
Nun zur Betrachtung, wie diese Ressourcendatei von @code{gcal2txt}
verarbeitet wird:

@example
@group
@cartouche
$ gcal2txt demo.rc
@print{}         Hallo Freunde,
@print{} 
@print{} Ich bin der Demo-Text, der lustige Zeichen und Zeichensequenzen
@print{} enthaelt 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@ss{} 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:

@multitable @columnfractions .33 .66
@item @strong{Landessprache}
@tab @strong{Sprachkode}
@item Englisch
@tab @code{en}
@item Deutsch
@tab @code{de}
@item Franz@"osisch
@tab @code{fr}
@item Niederl@"andisch
@tab @code{nl}
@item Schwedisch
@tab @code{sv}
@end multitable

@sp 2

@cindex Wahl der Landessprache
@cindex Landessprache, Wahl der
@noindent
Um eine andere Landessprache anstelle der englischen Landessprache
vorzuw@"ahlen, so braucht nur in einer der Umgebungsvariablen @footnote{Hier
in absteigender Priorit@"at ihrer Ber@"ucksichtigung aufgestellt.}:

@multitable @columnfractions .04 .96
@item 1.
@vindex LANGUAGE
@cindex @code{LANGUAGE} Umgebungsvariable
@cindex Umgebungsvariable, @code{LANGUAGE}
@tab @code{LANGUAGE}
@item 2.
@vindex LC_ALL
@cindex @code{LC_ALL} Umgebungsvariable
@cindex Umgebungsvariable, @code{LC_ALL}
@tab @code{LC_ALL}
@item 3.
@vindex LC_MESSAGES
@cindex @code{LC_MESSAGES} Umgebungsvariable
@cindex Umgebungsvariable, @code{LC_MESSAGES}
@tab @code{LC_MESSAGES}
@item 4.
@vindex LANG
@cindex @code{LANG} Umgebungsvariable
@cindex Umgebungsvariable, @code{LANG}
@tab @code{LANG}
@end multitable

@noindent
ein entsprechender Sprachkode eintragen zu werden.

@cindex Shell
@cindex Kommandointerpretierer
@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 der @code{sh} shell).
Selbstverst@"andlich kann dieser Befehl auch in der @file{.login} bzw.@:
@file{.profile} Datei beim Endanwender 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 @footnote{Wie zum Beispiel
@code{fr} f@"ur Franz@"osisch, @code{es} f@"ur Spanisch@dots{}}.

@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@ss{}, sind diese
Kriterien ebenfalls an den Sprachkode gebunden @footnote{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
So Mo Di Mi Do Fr Sa
             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 @footnote{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 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 @footnote{Besser gesagt
der erweiterten Sprachkode-Information @code{en_US}.}.

@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@ss{}igste
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@ss{} es aber 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@ss{}stab mache) im
wesentlichen die internen Grundeinstellungen des @code{de} Sprachkodes
verwendet werden.

@cindex @sc{iso}-3166
@cindex Landeskode
@cindex Territoriumskode
@cindex Erweiterte Sprachkode-Information
@cindex Sprachkode-Information, erweiterte
@vindex LANG
@noindent
Nun werden sich britische Endanwender sicherlich fragen, ob auch ihr Datumformat
als interne Grundeinstellung benutzt werden kann @footnote{Alle anderen internen
Grundeinstellungen der einfachen @code{en} Sprachkode-Information entsprechen
ja sonst bereits ihren Kriterien.}.  Die Antwort lautet schlicht und ergreifend
@cite{ja}, allerdings mu@ss{} dieser Benutzerkreis anstelle einer einfachen
Sprachkode-Information eine @dfn{erweiterte Sprachkode-Information} in der
Umgebungsvariable @code{LANG} angeben.

@noindent
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 (Comit@'e Europ@'en 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

@cindex Shell
@cindex Kommandointerpretierer
@noindent
Beide Syntaxen enthalten 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@ss{}britannien
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, Regulaere Ausdruecke, Internationalisierung, Top
@appendix Metasymbole
@cindex Metasymbole in diesem Dokument, Liste aller
@cindex Liste aller Metasymole in diesem Dokument

@noindent
Folgende @emph{metasprachliche} Konventionen werden bei der Darstellung von
Optionen, Kommandos, Argumenten und Schablonen innerhalb dieses Dokuments
verwendet:
@sp 2

@table @code
@item @var{n}
Nichtoptionales Argument, @var{n} mu@ss{} eine zul@"assige Zahl sein.

@item e@r{|}t@r{|}@var{dvar}
Nichtoptionales Argument, welches ein einzelnes alphabetisches Zeichen sein
mu@ss{}.

@item $@var{tvar}
Nichtoptionales Argument, welches ein einzelnes alphabetisches Zeichen sein
mu@ss{}, das von einem @samp{$} Zeichen angef@"uhrt wird.

@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 Anordnung 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{c}
oder @var{b}@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 d@"urfen angegeben werden und sind optional.
@end table

@node Regulaere Ausdruecke, Regexps (kurz), Metasymbole, Top
@appendix Regul@"are Ausdr@"ucke
@c
@c Dieser Anhang ist aus den gawk-3.0.0 und regex-0.12 Handb@"uchern abgeleitet.
@c
@cindex Regul@"arer Ausdruck
@cindex Regexp
@cindex Suchmuster, regul@"are Ausdr@"ucke
@cindex Regul@"are Ausdr@"ucke als Suchmuster

@menu
* Benutzung von Regexp::  Wie regul@"are Ausdr@"ucke benutzt werden k@"onnen.
* Regexp Operatoren::     Was sind regul@"ar-Ausdruck Operatoren?
@end menu

@noindent
Dieser Anhang ist aus den @code{gawk-3.0.0} und @code{regex-0.12} Handb@"uchern
abgeleitet.

@noindent
Ein @dfn{regul@"arer Ausdruck}, oder @dfn{regexp}, ist ein Weg zur
Beschreibung einer Klasse von Zeichenketten, oder @dfn{strings}.  Der
einfachste regul@"are Ausdruck ist eine Folge von Buchstaben, Zahlen,
oder beidem.  Solch ein regexp pa@ss{}t auf jedwede Zeichenkette, die eine
solche Folge enth@"alt.  Deswegen stimmt der regexp @samp{foo} mit jeder
Zeichenkette @"uberein, die @samp{foo} enth@"alt.  Andere Arten von
regul@"aren Ausdr@"ucken erlauben eine weitaus kompliziertere Angabe
von string-Klassen.

@noindent
Gcal benutzt genau eine der folgenden regul@"ar-Ausdruck Programmbibliotheken
bzw.@: Methoden, welche zur Konfigurationszeit, oder genaugenommen,
Kompilationszeit der Software ausgew@"ahlt wird; und die hier in
absteigender Priorit@"at hinsichtlich ihrer Auswahl angegeben sind:

@multitable @columnfractions .05 .75 .2
@item @strong{Nr.}
@tab @strong{Funktion}
@tab @strong{Symbol}
@item 1.
@tab GNU @code{re_compile_pattern()} und @file{regex.h}
@tab @code{GNU-REGEX}
@item 2.
@tab POSIX @code{regcomp()} und @file{regex.h}
@tab @code{POSIX-REGEX}
@item 3.
@tab BSD @code{re_comp()}
@tab @code{BSD-REGEX}
@item 4.
@tab System V @code{regcmp()}
@tab @code{SysV-REGEX}
@item 5.
@tab Henry Spencer V8 @code{regcomp()} und @file{regexp.h}
@tab @code{V8-REGEX}
@item 6.
@tab Mustererkennung wird unterst@"utzt, aber ohne Metazeichen
@tab @code{NO-REGEX}
@end multitable

@noindent
Benutzen Sie @w{@samp{gcal --version}} um festzustellen, welche Art von
regul@"ar-Ausdruck Programmbibliothek bzw.@: Methode in Ihr Gcal Programm
eingebrannt ist!

@node Benutzung von Regexp, Regexp Operatoren, Regulaere Ausdruecke, Regulaere Ausdruecke
@appendixsec Benutzung von regul@"aren Ausdr@"ucken
@cindex Benutzung von regul@"aren Ausdr@"ucken
@cindex Regul@"are Ausdr@"ucke, Benutzen von

@noindent
Ein regul@"arer Ausdruck kann als Suchmuster benutzt werden, wenn bei Aufruf
von Gcal die @samp{--filter-text=@var{Suchmuster}} Option angegeben wird.

@noindent
@xref{Termin Optionen, @samp{--filter-text=@var{Suchmuster}}, Termin Optionen: @samp{--filter-text=@var{Suchmuster}}},
f@"ur weitere Details.

@noindent
Der regul@"are Ausdruck wird mit dem gesamten, vollst@"andig expandierten Text
jedes @strong{g@"ultigen} Termins verglichen, und der Termin wird nur dann
ausgegeben, falls das Suchmuster mit dem Text @footnote{F@"ur einen
erfolgreichen Vergleich wird normalerweise nur eine @"Ubereinstimmung
mit einem Teil des Textes ben@"otigt.} @"ubereinstimmt.

@node Regexp Operatoren, , Benutzung von Regexp, Regulaere Ausdruecke
@appendixsec Regul@"ar-Ausdruck Operatoren
@cindex Metazeichen
@cindex Regul@"ar-Ausdruck Metazeichen
@cindex Regexps, Metazeichen
@cindex Regul@"ar-Ausdruck Operatoren
@cindex Regexps, Operatoren

@noindent
Regul@"are Ausdr@"ucke k@"onnen mit den folgenden Zeichen kombiniert werden,
welche als @dfn{regul@"ar-Ausdruck Operatoren} oder @dfn{Metazeichen}
bezeichnet werden, um die Lei@-stungs@-f@"a@-hig@-keit und Vielseitigkeit
von regul@"aren Ausdr@"ucken zu erh@"ohen.

@page
@noindent
Hier ist eine Tabelle dieser Metazeichen.  Alle Zeichen, die nicht in
dieser Tabelle aufgef@"uhrt sind, stehen f@"ur sich selbst.

@table @code
@item \
Wird benutzt um die Spezialbedeutung eines Zeichens w@"ahrend des Vergleichs
zu unterdr@"ucken.  Zum Beispiel:

@example
\$
@end example

pa@ss{}t auf das Zeichen @samp{$}.

@cindex Anker in regexps
@cindex Regexps, Anker in
@item ^
Pa@ss{}t auf den Anfang einer Zeichenkette.  Zum Beispiel:

@example
^@@chapter
@end example

pa@ss{}t auf @samp{@@chapter} zu Anfang einer Zeichenkette, und kann dazu
benutzt werden, um Kapitelanf@"ange in Texinfo Quellentextdateien zu
identifizieren.  Das @samp{^} Zeichen wird als ein @dfn{Anker} bezeichnet,
da es das Suchmuster dergestalt verankert, da@ss{} es nur zu
@"Ubereinstimmungen kommen kann, die zu Anfang einer Zeichenkette auftreten.

@item $
@"Ahnlich wie @samp{^}, pa@ss{}t aber nur auf das Ende einer Zeichenkette.
Zum Beispiel:

@example
p$
@end example

pa@ss{}t auf einen string, der mit @samp{p} endet.  Das @samp{$} Metazeichen
ist auch ein Anker.

@item .
Der Punkt pa@ss{}t auf jedes Einzelzeichen.  Zum Beispiel:

@example
.P
@end example

f@"uhrt zu @"Ubereinstimmungen jedes Einzelzeichens, welches von einem
@samp{P} in einer Zeichenkette gefolgt wird.  Mittels Verkettung kann
beispielsweise ein regul@"arer Ausdruck wie @w{@samp{U.A}} erzeugt werden,
welcher auf jede 3-Zeichen Folge pa@ss{}t, die mit @samp{U} beginnt und
mit einem @samp{A} endet.

@cindex Zeichenliste in regexps
@cindex Regexps, Zeichenliste
@item [@dots{}]
Wird als @dfn{Zeichenliste} bezeichnet.  Diese pa@ss{}t auf jedes
@emph{Einzelzeichen}, welches in den eckigen Klammern angegeben wird.
Zum Beispiel:

@example
[MVX]
@end example

pa@ss{}t auf jedes einzelne @samp{M}, @samp{V} oder @samp{X} Zeichen
in einem string.

Bereiche von Zeichen werden unter Benutzung eines Bindestrichs zwischen
den Start- und Endezeichen vereinbart, und das ganze wird von eckigen
Klammern umschlossen.  Zum Beispiel:

@example
[0-9]
@end example

pa@ss{}t auf jede Ziffer.  Mehrfache Bereiche sind erlaubt.  Zum Beispiel
ist die Liste @w{@code{[A-Za-z0-9]}} ein @"ublicher Weg, um den Gedanken
``aller alphanumerischen Zeichen'' auszudr@"ucken.

Um eines der @samp{\}, @samp{[}, @samp{]}, @samp{-} oder @samp{^} Zeichen in
eine Zeichenliste einzuf@"ugen, ist es notwendig, diese mit einem anf@"uhrenden
@samp{\} Zeichen auszustatten.  Zum Beispiel:

@example
[d\]]
@end example

pa@ss{}t entweder auf @samp{d} oder @samp{]}.

@page
@cindex Zeichenklassen in regexps
@cindex Regexps, Zeichenklassen in
@cindex POSIX regexps
@cindex Regexps, POSIX
@dfn{Zeichenklassen} sind ein neues Merkmal, die im POSIX Standard
eingef@"uhrt sind.  Eine Zeichenklasse ist eine spezielle Bezeichnung,
um Zeichenlisten, die mit speziellen Eigenschaften ausgestattet sind,
zu beschreiben, wohingegen sich aber die aktuellen Zeichen selbst von
Land zu Land und/oder Zeichensatz zu Zeichensatz ver@"andern.  Zum
Beispiel unterscheidet sich der Begriff, was unter einem alphabetischen
Zeichen zu verstehen ist, in den USA und in Frankreich.

Eine Zeichenklasse ist in einem regexp nur @emph{innerhalb} der Klammern
einer Zeichenliste g@"ultig.  Zeichenklassen bestehen aus @samp{[:} ---
einem Schl@"usselwort, da@ss{} die Klasse bezeichnet --- und @samp{:]}.
Es folgen nun die Zeichenklassen, welche durch den POSIX Standard
definiert werden:

@table @code
@item [:alnum:]
Alphanumerische Zeichen.

@item [:alpha:]
Alphabetische Zeichen.

@item [:blank:]
Leerzeichen und Tabulatorzeichen.

@item [:cntrl:]
Steuerzeichen.

@item [:digit:]
Numerische Zeichen.

@item [:graph:]
Zeichen, die druckbar und zugleich sichtbar sind @footnote{Ein Leerzeichen
ist zwar druckbar, aber nicht sichtbar, w@"ahrend ein @samp{a} Zeichen beides
ist.}.

@item [:lower:]
Kleinbuchstaben.

@item [:print:]
Druckbare Zeichen @footnote{Zeichen, die nicht Steuerzeichen sind.}.

@item [:punct:]
Interpunktionszeichen @footnote{Zeichen, die weder Buchstabe, Zahl,
Steuerzeichen noch Leerzeichen sind.}.

@item [:space:]
Leerzeichen @footnote{Solche wie das Leerzeichen, Tabulatorzeichen und
Seitenvorschubzeichen, um ein paar zu nennen.}.

@item [:upper:]
Gro@ss{}buchstaben.

@item [:xdigit:]
Hexadezimalziffern.
@end table

Zum Beispiel mu@ss{}te vor Einf@"uhrung des POSIX Standards
@w{@code{[A-Za-z0-9]}} geschrieben werden, um eine @"Uber@-ein@-stim@-mung
mit allen alphanumerischen Zeichen zu erhalten.  Falls der verwendete
Zeichensatz nun aber andere alphabetische Zeichen enth@"alt, so w@"urde
vorstehendes Suchmuster keine @"Uber@-ein@-stim@-mung mit diesen erbringen.
Mit den POSIX Zeichenklassen kann nun aber @w{@code{[[:alnum]]}} geschrieben
werden, mit dem Resultat, da@ss{} @emph{alle} alphabetischen und numerischen
Zeichen des verwendeten Zeichensatzes @"Ubereinstimmungen erbringen w@"urden.

@cindex Vergleichende Elemente in regexps
@cindex Regexps, vergleichende Elemente in
Zwei zus@"atzliche Spezialfolgen k@"onnen in Zeichenlisten auftreten.  Diese
lassen sich auf nicht-@sc{ascii} Zeichens@"atze anwenden, welche einzelne
Symbole haben k@"onnen (auch @dfn{vergleichende Elemente} @footnote{Im
Englischen mit @emph{collating elements} bezeichnet.} genannt), die mit
mehr als einem Zeichen dargestellt werden, ebensogut wie zahlreiche Zeichen,
die gleichwertig f@"ur Vergleichs- oder Sortierungszwecke benutzt werden
k@"onnen.  (Zum Beispiel sind im Franz@"osischen das einfache @samp{e} und
ein @emph{grave} akzentuiertes @samp{@`e} identisch.)

@table @asis
@cindex Vergleichende Symbole in regexps
@cindex Regexps, vergleichende Symbole in
@item Vergleichende Symbole
Ein @dfn{vergleichendes Symbol} @footnote{Im Englischen mit @emph{collating
symbol} bezeichnet.} ist ein Multi-Zeichen vergleichendes Element, das mit
@samp{[.} und @samp{.]} umschlossen wird.  Wenn beispielsweise @samp{ch} ein
vergleichendes Element ist, so ist @w{@code{[[.ch.]]}} ein regexp, der auf
dieses vergleichende Element pa@ss{}t, wohingegen @w{@code{[ch]}} ein regexp
ist, der entweder auf @samp{c} oder auf @samp{h} pa@ss{}t.

@cindex Gleichwertigkeitsklassen in regexps
@cindex Regexps, Gleichwertigkeitsklassen in
@item Gleichwertigkeitsklassen in regexps
Eine @dfn{Gleichwertigkeitsklasse} @footnote{Im Englischen mit @emph{equivalence
class} bezeichnet.} ist eine Liste von gleichwertigen Zeichen, die mit @samp{[=}
und @samp{=]} umschlossen sind.  Deswegen ist @w{@code{[[=e@`e=]]}} ein regexp,
der entweder auf @samp{e} oder @samp{@`e} pa@ss{}t.
@end table

Diese Besonderheiten sind ein sehr wertvolles Hilfsmittel in
nicht englischsprachig ausgerichteten Umgebungen.
@sp 2

@strong{Vorsicht:}
@sp 2

Die Bibliotheksfunktionen, die von @code{gcal} f@"ur die regul@"ar-Ausdruck
Vergleiche benutzt werden, erkennen derzeit nur POSIX Zeichenklassen
(m@"oglicherweise); sie erkennen weder vergleichende Elemente noch
Gleichwertigkeitsklassen.

@page
@cindex Komplement@"are Zeichenliste in regexps
@cindex Regexps, komplement@"are Zeichenliste in
@cindex Zeichenliste, komplement@"are in regexps
@cindex Negierte Zeichenliste in regexps
@cindex Regexps, negierte Zeichenliste in
@cindex Zeichenliste, negierte in regexps
@item [^ @dots{}]
Bezeichnet eine @dfn{negierte Zeichenliste} bzw.@: @dfn{komplement@"are
Zeichenliste}.  Das erste Zeichen nach der @samp{[} Klammer @emph{mu@ss{}} das
@samp{^} Zeichen sein.  Diese Zeichenliste pa@ss{}t auf jedes Zeichen, das
@emph{nicht} innerhalb der eckigen Klammern aufgef@"uhrt ist.  Zum Beispiel:

@example
[^0-9]
@end example

pa@ss{}t auf jedes Zeichen, das keine Ziffer ist.

@item |
Das ist der @dfn{Auswahl-Operator}, und dieser wird benutzt, um
Alternativen zu vereinbaren.  Zum Beispiel:

@example
^P|[0-9]
@end example

pa@ss{}t auf jeden string, der entweder mit @samp{^P} oder mit @w{@samp{[0-9]}}
@"ubereinstimmt.  Das bedeutet, da@ss{} @"Ubereinstimmungen mit jeder
Zeichenkette bestehen, die mit @samp{P} beginnt oder eine Ziffer enth@"alt.

Die Alternative gilt f@"ur den gr@"o@ss{}tm@"oglichen regul@"ar-Ausdruck auf
der jeweiligen Seite.  Mit anderen Worten, @samp{|} hat den geringsten Vorrang
aller regul@"ar-Ausdruck Operatoren.

@item (@dots{})
Runde Klammern werden in regul@"aren Ausdr@"ucken genauso zum Gruppieren
verwendet, wie in der Arithmetik.  Diese k@"onnen benutzt werden, um
regul@"are Ausdr@"ucke zu verketten, die den @samp{|} Auswahl-Operator
enthalten.@*
Zum Beispiel pa@ss{}t @w{@samp{@@(samp|code)\@{[^@}]+\@}}} beiderseits auf
@w{@samp{@@code@{foo@}}} und auf @w{@samp{@@samp@{bar@}}}.
(Das sind Texinfo Steueranweisungen zur Textformatierung.)

@item *
Dieses Symbol bedeutet, da@ss{} der vorangehende regul@"are Ausdruck so oft
wiederholt wird, wie es notwendig ist, um eine @"Ubereinstimmung zu finden.
Zum Beispiel:

@example
ph*
@end example

verwendet das @samp{*} Symbol zum vorangehenden @samp{h}, und pr@"uft auf
@"Uber@-ein@-stim@-mung@-en, die sich aus einem @samp{p}, welches von einer
beliebigen Anzahl von @samp{h}'s gefolgt wird, ergeben.  @w{@samp{ph*}}
pa@ss{}t auch auf ein einzelnes @samp{p}, falls keine @samp{h}'s vorhanden
sind.

Das @samp{*} Metazeichen wiederholt den @emph{geringstm@"oglichen} vorangehenden
Ausdruck.  (Benutzen Sie die runden Klammern, falls ein gr@"o@ss{}erer Ausdruck
wiederholt werden soll.)  Es werden so viele Wiederholungen wie m@"oglich
gefunden.  Zum Beispiel:

@example
gcal --filter-text='\(c[ad][ad]*r x\)' -f beispiel.rc -y
@end example

gibt jeden Termin aus @file{beispiel.rc} aus, der einen Termintext der Form
@w{@samp{(car x)}}, @w{@samp{(cdr x)}}, @w{@samp{(cadr x)}}, usw.@: enth@"alt.
Beachten Sie das Entwerten der runden Klammern durch Voranstellen eines
@samp{\} Zeichens an diese.

@page
@item +
Dieses Symbol ist @"ahnlich wie @samp{*}, nur mu@ss{} der vorangehende Ausdruck
letztlich einmal gepa@ss{}t haben.  Das bedeutet, da@ss{}:

@example
ul+m
@end example

zwar auf @w{@samp{ulm}} und @w{@samp{ullm}} passen w@"urde, aber nicht auf
@w{@samp{um}}, wohingegen @w{@samp{ul*m}} auf alle drei vorstehenden
Zeichenketten passen w@"urde.  Hier ist eine einfachere Art, wie das
letzte @samp{*} Beispiel geschrieben werden kann:

@example
gcal --filter-text='\(c[ad]+r x\)' -f beispiel.rc -y
@end example

@item ?
Dieses Symbol ist @"ahnlich wie @samp{*}, aber der vorangehende Ausdruck
kann entweder einmal gepa@ss{}t haben, oder nicht in G@"anze.  Zum Beispiel:

@example
fe?d
@end example

pa@ss{}t nur auf @w{@samp{fed}} und @w{@samp{fd}}, und nichts anderes.

@cindex Intervall-Ausdr@"ucke in regexps
@cindex Regexps, Intervall-Ausdr@"ucke in
@cindex POSIX regexps
@cindex Regexps, POSIX
@item @{@var{n}@}
@itemx @{@var{n},@}
@itemx @{@var{n},@var{m}@}
Eine oder zwei Zahlen innerhalb geschweifter Klammern bezeichnen einen
@dfn{Intervall-Ausdruck}, der im POSIX Standard verf@"ugbar ist.  Falls
eine Zahl in den Klammern vorhanden ist, so wird der vorangehende regexp
@var{n}-fach wiederholt.  Wenn zwei Zahlen --- separiert durch ein
Komma --- in den Klammern vorhanden sind, so wird der vorangehende
regexp @var{n} bis @var{m}-fach wiederholt.  Nun, falls eine Zahl
--- gefolgt von einem Komma --- in den Klammern vorhanden ist, dann
wird der vorangehende regexp letztlich @var{n}-fach wiederholt.

@table @code
@item ul@{3@}m
pa@ss{}t auf @w{@samp{ulllm}}, aber nicht auf @w{@samp{ulm}} oder
@w{@samp{ullllm}}.

@item ul@{3,5@}m
pa@ss{}t nur auf @w{@samp{ulllm}} oder @w{@samp{ullllm}} oder
@w{@samp{ulllllm}}.

@item ul@{2,@}m
pa@ss{}t auf @w{@samp{ullm}} oder @w{@samp{ulllm}} und so weiter.
@end table
@end table

@sp 2

@cindex Regexps, Operatoren
@cindex Regexp Operatoren, GNU spezifische
@cindex GNU spezifische regexp Operatoren
@cindex Regul@"ar-Ausdruck Operatoren, GNU spezifische
@cindex GNU spezifische regul@"ar-Ausdruck Operatoren
@noindent
GNU Software, die mit regul@"aren Ausdr@"ucken umgeht, unterst@"utzt
zus@"atzlich weitere regul@"ar-Ausdruck Operatoren.  Diese Operatoren
sind hier beschrieben.

@cindex Definition eines Wortes in regexps
@cindex Regexps, Definition eines Wortes
@noindent
Die meisten der zus@"atzlichen Operatoren sind geschaffen worden, damit
@"Ubereinstimmungen in W@"ortern festgestellt werden k@"onnen.  F@"ur unsere
Zwecke ist ein @dfn{Wort} eine Folge von einem oder mehreren Buchstaben,
Zahlen oder Unterstrichzeichen (@samp{_}).

@table @code
@cindex @code{\w} regexp Operator
@cindex Regexp Operator, @code{\w}
@cindex @code{\w} regul@"ar-Ausdruck Operator
@cindex Regul@"ar-Ausdruck Operator @code{\w}
@item \w
Dieser Operator pa@ss{}t auf jedes Zeichen, welches ein Wort konstituiert,
d.h.@: jeder Buchstabe, Zahl oder Unterstrich.  Denken Sie es sich als
eine Abk@"urzung f@"ur @w{@code{[A-Za-z0-9_]}} oder @w{@code{[[:alnum:]_]}}.

@cindex @code{\W} regexp Operator
@cindex Regexp Operator, @code{\W}
@cindex @code{\W} regul@"ar-Ausdruck Operator
@cindex Regul@"ar-Ausdruck Operator @code{\W}
@item \W
Dieser Operator pa@ss{}t auf jedes Zeichen, welches kein Wort konstituiert.
Denken Sie es sich als eine Abk@"urzung f@"ur @w{@code{[^A-Za-z0-9_]}} oder
@w{@code{[^[:alnum:]_]}}.

@cindex @code{\<} regexp Operator
@cindex Regexp Operator, @code{\<}
@cindex @code{\<} regul@"ar-Ausdruck Operator
@cindex Regul@"ar-Ausdruck Operator @code{\<}
@item \<
Dieser Operator pa@ss{}t auf jeden leeren string zu Anfang eines Wortes.
Beispielsweise pa@ss{}t @code{\<kennen} auf @samp{kennen}, aber nicht auf
@samp{erkennen}.

@cindex @code{\>} regexp Operator
@cindex Regexp Operator, @code{\>}
@cindex @code{\>} regul@"ar-Ausdruck Operator
@cindex Regul@"ar-Ausdruck Operator @code{\>}
@item \>
Dieser Operator pa@ss{}t auf jede leere Zeichenkette zu Ende eines Wortes.
Zum Beispiel pa@ss{}t @code{er\>} auf @samp{er}, aber nicht auf @samp{erkennen}.

@cindex @code{\b} regexp Operator
@cindex Regexp Operator, @code{\b}
@cindex @code{\b} regul@"ar-Ausdruck Operator
@cindex Regul@"ar-Ausdruck Operator @code{\b}
@cindex Wortgrenzen, Erkennen in regexps
@cindex Erkennen von Wortgrenzen in regexps
@cindex Regexps, Erkennen von Wortgrenzen in
@item \b
Dieser Operator pa@ss{}t auf einen leeren string, der entweder zu Anfang
oder zu Ende eines Wortes auftritt.  Zum Beispiel pa@ss{}t @samp{\bFalle?\b}
entweder auf das einzelne Wort @samp{Fall} oder auf das einzelne Wort
@samp{Falle}.

@cindex @code{\B} regexp Operator
@cindex Regexp Operator, @code{\B}
@cindex @code{\B} regul@"ar-Ausdruck Operator
@cindex Regul@"ar-Ausdruck Operator @code{\B}
@item \B
Dieser Operator pa@ss{}t auf eine leere Zeichenkette, die innerhalb eines Wortes
auftritt.  Mit anderen Worten, @samp{\B} pa@ss{}t auf einen leeren string, der
zwischen zwei Zeichen auftritt, die ein Wort konstituieren.  Beispielsweise
pa@ss{}t @code{\Brechnet\B} auf @samp{berechnete}, aber es pa@ss{}t nicht auf
@samp{so rechnet man}.  @samp{\B} ist im Grunde genommen das genaue Gegenteil
von @samp{\b}.
@end table

@noindent
Es gibt noch zwei weitere Operatoren, die auf einen Puffer anwendbar sind.
Im Emacs ist ein @dfn{Puffer} nat@"urlich ein Emacs Puffer.  In anderen
Programmen betrachten die regul@"ar-Ausdruck Bibliotheksfunktionen, die
von @code{gcal} benutzt werden, die gesamte Zeichenkette, welche auf
@"Ubereinstimmungen hin untersucht werden soll, als den Puffer @footnote{Das
ist der @emph{Textteil} einer Gcal Ressourcendateizeile.}.

@noindent
F@"ur @code{gcal} erbringen diese Operatoren keine neuen F@"ahigkeiten,
da die @samp{^} und @samp{$} Operatoren benutzt werden k@"onnen, um
@"Ubereinstimmungen zu Anfang und zu Ende von Zeichenketten festzustellen.
Sie sind nur zwecks Kompatibilit@"at zu anderer GNU Software bereitgestellt.

@cindex Auf Puffer wirkende Operatoren in regexps
@cindex Regexps, auf Puffer wirkende Operatoren in
@table @code
@cindex @code{\`} regexp Operator
@cindex Regexp Operator, @code{\`}
@cindex @code{\`} regul@"ar-Ausdruck Operator
@cindex Regul@"ar-Ausdruck Operator @code{\`}
@item \`
Dieser Operator pa@ss{}t auf eine leere Zeichenkette zu Anfang eines Puffers.

@cindex @code{\'} regexp Operator
@cindex Regexp Operator, @code{\'}
@cindex @code{\'} regul@"ar-Ausdruck Operator
@cindex Regul@"ar-Ausdruck Operator @code{\'}
@item \'
Dieser Operator pa@ss{}t auf eine leere Zeichenkette zu Ende eines Puffers.
@end table

@sp 2

@cindex Vorrang von regexps Operatoren
@cindex Regexps, Vorrang von Operatoren in
@noindent
Die @samp{*}, @samp{+} und @samp{?} Operatoren und die geschweiften Klammern
@samp{@{} und @samp{@}} haben den h@"ochsten Vorrang in regul@"aren
Ausdr@"ucken, gefolgt von der Verkettung, und abschlie@ss{}end dem @samp{|}
Operator.  Wie in der Arithmetik @"ublich, so kann auch hier mittels
Klammerung (runde Klammern) die Gruppierung der Operatoren ver@"andert werden.

@cindex Gro@ss{}-/ Kleinschreibung in regexps
@cindex Regexps, Gro@ss{}-/ Kleinschreibung in
@noindent
Die Gro@ss{}-/ Kleinschreibung ist normalerweise von Bedeutung in regul@"aren
Ausdr@"ucken, und zwar beiderseits beim Aufsp@"uren von gew@"ohnlichen Zeichen
(d.h.@: Nicht-Metazeichen), und innerhalb Zeichenklassen.  Deswegen pa@ss{}t
ein @samp{w} in einem regul@"aren Ausdruck nur auf einen @samp{w}
Kleinbuchstaben, und nicht etwa auf einen @samp{W} Gro@ss{}buchstaben.

@cindex Gro@ss{}-/ Kleinschreibung in regexps ignorieren
@cindex Regexps, Gro@ss{}-/ Kleinschreibung ignorieren in
@noindent
Der einfachste Weg, um ein Gro@ss{}-/ Kleinschreibungsunabh@"angiges Zeichen
aufzusp@"uren, ist die Benutzung einer Zeichenliste: @w{@samp{[Ww]}}.  Wie auch
immer, so kann es doch sehr l@"astig sein, falls soetwas des @"ofteren gebraucht
wird; und ungl@"ucklicherweise kann der regul@"are Ausdruck dadurch schwer
lesbar werden.

@node Regexps (kurz), Spezialtexte (lang), Regulaere Ausdruecke, Top
@appendix Zusammenfassung aller regul@"aren Ausdr@"ucke
@cindex Regul@"are Ausdr@"ucke, Kurzliste aller
@cindex Regul@"are Ausdr@"ucke, Zusammenfassung aller
@cindex Kurzliste aller regul@"aren Ausdr@"ucke
@cindex Zusammenfassung aller regul@"aren Ausdr@"ucke

@noindent
Regul@"are Ausdr@"ucke basieren auf den POSIX ERAs (Erweiterte Regul@"are
Ausdr@"ucke).  Regexps werden aus Zeichen zusammengesetzt.  Hier ist
eine Kurzliste aller dieser Zeichen:
@sp 2

@table @code
@item @var{c}
pa@ss{}t auf das Zeichen @var{c} (in der Annahme, das @var{c} keines der
nachfolgend aufgef@"uhrten Zeichen ist).

@item \@var{c}
pa@ss{}t auf das textliche Zeichen @var{c}.

@item .
pa@ss{}t auf jedes Zeichen.

@item ^
pa@ss{}t auf den Anfang einer Zeichenkette.

@item $
pa@ss{}t auf das Ende einer Zeichenkette.

@item [@var{abc}@dots{}]
pa@ss{}t auf jedes der Zeichen @var{abc}@dots{} (Zeichenliste).

@item [[:@var{Klasse}:]]
pa@ss{}t auf jedes Zeichen in der Zeichenklasse @var{Klasse}.
Erlaubte Klassen sind @code{alnum}, @code{alpha}, @code{blank},
@code{cntrl}, @code{digit}, @code{graph}, @code{lower}, @code{print},
@code{punct}, @code{space}, @code{upper} und @code{xdigit}.

@item [[.@var{Symbol}.]]
pa@ss{}t auf das Multi-Zeichen vergleichende Element @var{Symbol}.
@code{gcal} unterst@"utzt gegenw@"artig keine vergleichenden Elemente.

@item [[=@var{Zeichen}=]]
pa@ss{}t auf jedes der gleichwertigen Zeichen in @var{Zeichen}.
@code{gcal} unterst@"utzt gegenw@"artig keine Gleichwertigkeitsklassen.

@item [^@var{abc}@dots{}]
pa@ss{}t auf jedes Zeichen, ausgenommen @var{abc}@dots{} (negierte bzw.@:
komplement@"are Zeichenliste).

@item @var{r1}|@var{r2}
pa@ss{}t entweder auf @var{r1} oder auf @var{r2} (Alternative).

@item @var{r1r2}
pa@ss{}t auf @var{r1}, und dann auf @var{r2} (Verkettung).

@item @var{r}+
pa@ss{}t auf ein @var{r} oder auf mehrere @var{r}'s.

@item @var{r}*
pa@ss{}t auf kein @var{r} oder auf mehrere @var{r}'s.

@item @var{r}?
pa@ss{}t auf kein @var{r} oder auf genau ein @var{r}.

@item (@var{r})
pa@ss{}t auf @var{r} (Gruppierung).

@item @var{r}@{@var{n}@}
@itemx @var{r}@{@var{n},@}
@itemx @var{r}@{@var{n},@var{m}@}
pa@ss{}t auf letztlich @var{n}, @var{n} bis hin zu jeder Anzahl, oder @var{n}
bis @var{m} Vorkommen von @var{r} (Intervall-Ausdr@"ucke).

@item \b
pa@ss{}t auf eine leere Zeichenkette entweder zu Anfang
oder zu Ende eines Wortes.

@item \B
pa@ss{}t auf die leere Zeichenkette innerhalb eines Wortes.

@item \<
pa@ss{}t auf die leere Zeichenkette zu Anfang eines Wortes.

@item \>
pa@ss{}t auf die leere Zeichenkette zu Ende eines Wortes.

@item \w
pa@ss{}t auf jedes Zeichen, welches ein Wort konstituiert (Alphanumerische
Zeichen und der Unterstrich).

@item \W
pa@ss{}t auf jedes Zeichen, welches kein Wort konstituiert.

@item \`
pa@ss{}t auf die leere Zeichenkette zu Anfang eines Puffers @footnote{Identisch
mit dem @emph{Textteil} einer Ressourcendateizeile von @code{gcal}.}.

@item \'
pa@ss{}t auf die leere Zeichenkette zu Ende eines Puffers.
@end table

@node Spezialtexte (lang), Spezialtexte (kurz), Regexps (kurz), Top
@appendix Beschreibung aller @code{%@var{?}}@dots{} Spezialtexte
@cindex @code{%@var{?}}@dots{} Spezialtexte, Beschreibung aller
@cindex Beschreibung aller @code{%@var{?}}@dots{} Spezialtexte

@menu
* Ausschliessen::   Datum ausschlie@ss{}en.
* Ersetzen::        Texte ersetzen.
* Shell Kommando::  Shell Kommando ausf@"uhren.
@end menu

@noindent
Die im Textteil einer Zeile der Gcal Ressourcendatei verwendbaren
@code{%@var{?}}@dots{} Spezialtexte k@"onnen grob in drei Kategorien
eingeteilt werden.  So gibt es Spezialtexte, welche die Ausgabe von
Terminen in bestimmten F@"allen unterdr@"ucken.  Andere werden durch
besondere Texte ersetzt, und noch andere veranlassen die shell dazu,
externe Kommandos auszuf@"uhren.
@xref{Spezialtexte, , @code{%@var{?}}@dots{} Spezialtexte},
f@"ur eine allgemeine Beschreibung der Spezialtexte, die im Textteil
einer Zeile von Gcal Ressourcendateien auftreten d@"urfen.

@noindent
Bei einigen dieser Spezialtexte darf noch optional ein einfaches oder
besonderes Datumargument (im weiteren mit @var{Datum} bezeichnet) oder
ein sonstiges Argument (im weiteren mit @var{Argument} bezeichnet) angegeben
werden.  Wenn ein Spezialtext direkt von einem @var{Datum} Argument gefolgt
wird, so mu@ss{} @var{Datum} einem der nachstehenden Datumformate entsprechen:

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

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

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

@noindent
Spezialtexte, die ein @var{Datum} Argument annehmen d@"urfen, @strong{m@"ussen}
stets von einem @emph{whitespace} Zeichen gefolgt werden, welches seinerseits
in der Ausgabe entfernt wird, und zwar unabh@"angig davon, ob @var{Datum}
angegeben wurde oder nicht!

@noindent
@xref{Spezialtexte (kurz), , Zusammenfassung aller @code{%@var{?}}@dots{} Spezialtexte},
f@"ur eine Kurzdarstellung aller verwendbaren Spezialtexte.

@node Ausschliessen, Ersetzen, Spezialtexte (lang), Spezialtexte (lang)
@appendixsec @code{%@var{?}}@dots{} Spezialtexte um Datum auszuschlie@ss{}en
@cindex @code{%@var{?}}@dots{} Spezialtexte um Datum auszuschliessen

@menu
* Ausschliessen mit Datumargument::
* Ausschliessen ohne Argument::
@end menu

@noindent
@code{%@var{?}}@dots{} Spezialtexte zum Ausschlie@ss{}en von Zeitpunkten oder
Zeitr@"aumen sind sehr n@"utzlich, wenn sie zusammen mit Datumbereichen verwendet
werden
(@pxref{Bereiche von Tagen}).
Wird der Termintext ausgegeben, so wird stets der gesamte Spezialtext
in der Ausgabe unterdr@"uckt.

@node Ausschliessen mit Datumargument, Ausschliessen ohne Argument, Ausschliessen, Ausschliessen
@appendixsubsec Ausschlie@ss{}en mit Datumargument @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte
@cindex Ausschliessen mit Datumargument @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte

@menu
* Inklusive Datum Zeitraum::
* Exklusive Datum Zeitraum::
@end menu

@noindent
Zun@"achst einmal kann ein @dfn{inklusive Datum} Zeitraum
@code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtext angegeben werden,
mit der Wirkung, da@ss{} nur die Termine, die in diesem Zeitraum liegen,
ausgegeben werden.  Und die Angabe eines @dfn{exklusive Datum} Zeitraums
@code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexts bewirkt, da@ss{} alle Termine,
die in diesem Zeitraum liegen, nicht ausgegeben werden.

@noindent
Geschickt kombiniert, bieten sich diese Spezialtexte als wirksame Filter
an, mit deren Hilfe sich spezielle Zeitr@"aume sehr flexibel definieren
lassen k@"onnen, zum Beispiel:

@example
0*d1#999 Jeder Tag des Jahres: Von Januar@dots{}August ausgenommen April\
         %i00001#00008 %e00004#00004
;
0*d1#999 Jeder Tag des Jahres: Von 1991@dots{}1993 und ab 1996\
         ausgenommen Februar 1992 und aller September\
         %i1991#1993 %i1996# %e19922#19922 %e00009#00009
@end example

@node Inklusive Datum Zeitraum, Exklusive Datum Zeitraum, Ausschliessen mit Datumargument, Ausschliessen mit Datumargument
@appendixsubsubsec Inklusive Datum Zeitraum @code{%i@r{[}@var{Datum}@r{][}#@r{[}@var{Datum}@r{]]}} Spezialtext
@cindex Spezialtext @code{%i@r{[}@var{Datum}@r{][}#@r{[}@var{Datum}@r{]]}}
@cindex Inklusive Datum Zeitraum, @code{%i@r{[}@var{Datum}@r{][}#@r{[}@var{Datum}@r{]]}} Spezialtext
@cindex @code{%i@r{[}@var{Datum}@r{][}#@r{[}@var{Datum}@r{]]}} Spezialtext, inklusive Datum Zeitraum

@noindent
@w{@code{%i@r{[}@var{Datum}@r{][}#@r{[}@var{Datum}@r{]]}}}
bezeichnet einen inklusive Datum Zeitraum, d.h.@: alle Daten, die in dem
gegebenen Zeitraum liegen, sind g@"ultig und werden ausgegeben.  Das bedeutet
nat@"urlich, da@ss{} alle Termine, die nicht in diesem Zeitraum liegen, ung@"ultig
sind und somit auch nicht ausgegeben werden.

@cindex Termin, Startdatum eines
@cindex Startdatum eines Termins
@noindent
Das erste angegebene Datum bestimmt das @dfn{Startdatum} eines Termins,
d.h.@: das erste Datum, an dem dieser Termin auftreten darf.  F@"ur das
Startdatum gelten folgende Regeln hinsichtlich bestimmter Auslassungswerte,
verdeutlicht am
@w{@code{@var{jjjj}@r{[}@var{mm}@r{[}@var{tt}@r{|}@var{www}@var{n}@r{]]}}}
Datumformat:

@itemize @bullet
@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, bei 99 der Dezember.

@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, bei 99 der letzte Tag des Monats @var{mm}.

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

@cindex Termin, Endedatum eines
@cindex Endedatum eines Termins
@noindent
Das zweite angegebene Datum bestimmt das @dfn{Endedatum} eines Termins,
d.h.@: das letzte Datum, an dem dieser Termin auftreten darf.  F@"ur das
Endedatum gelten folgende Regeln hinsichtlich bestimmter Auslassungswerte,
ebenfalls verdeutlicht am
@w{@code{@var{jjjj}@r{[}@var{mm}@r{[}@var{tt}@r{|}@var{www}@var{n}@r{]]}}}
Datumformat:

@itemize @bullet
@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, bei 99 der Dezember.

@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, bei 99 der letzte Tag des Monats @var{mm}.

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

@noindent
F@"ur die anderen erlaubten Datumformate gelten die vorstehenden Regeln
sinngem@"a@ss{}!

@noindent
Wenn das Startdatum, welches im @w{@code{%i@dots{}}} Spezialtext kodiert ist,
gr@"o@ss{}er dem Endedatum ist, so wird der @w{@code{%i@dots{}}} Spezialtext
ignoriert.

@noindent
Ist weder Startdatum noch Endedatum angegeben, also nur @samp{%i}, so gilt
der implizite Zeitraum 1'ter Januar 1@dots{}31'ter Dezember 9999
@w{(00010101@dots{}99991231)}.

@noindent
Ist nur das Startdatum angegeben, also entweder @samp{%i@var{Datum}} oder
@samp{%i@var{Datum}#}, so gilt das implizite Endedatum 31'ter Dezember 9999
@w{(99991231)}.

@noindent
Ist nur das Endedatum angegeben, also @samp{%i#@var{Datum}}, so gilt das
implizite Startdatum 1'ter Januar 1 @w{(00010101)}.

@page
@noindent
Zum Beispiel:

@example
0d*1#999 Jeder Tag des Jahres: nur April und Juli\
         %i00004#00004 %i00007#00007
;
0*d1#999 Jeder Tag des Jahres: von Januar@dots{}Oktober\
         %i#000010
;
0*d1#999 Jeder Tag des Jahres: ab August 1990\
         %i19908
;
0*d1#999 Jeder Tag des Jahres: von August@dots{}Dezember\
         %i00008
;
0*d1#999 Jeder Tag des Jahres: nur heute%i0@@t#0@@t
@end example

@node Exklusive Datum Zeitraum, , Inklusive Datum Zeitraum, Ausschliessen mit Datumargument
@appendixsubsubsec Exklusive Datum Zeitraum @code{%e@r{[}@var{Datum}@r{][}#@r{[}@var{Datum}@r{]]}} Spezialtext
@cindex Spezialtext @code{%e@r{[}@var{Datum}@r{][}#@r{[}@var{Datum}@r{]]}}
@cindex Exklusive Datum Zeitraum, @code{%e@r{[}@var{Datum}@r{][}#@r{[}@var{Datum}@r{]]}} Spezialtext
@cindex @code{%e@r{[}@var{Datum}@r{][}#@r{[}@var{Datum}@r{]]}} Spezialtext, exklusive Datum Zeitraum

@noindent
@w{@code{%e@r{[}@var{Datum}@r{][}#@r{[}@var{Datum}@r{]]}}}
bezeichnet einen exklusive Datum Zeitraum, d.h.@: alle Daten, die in dem
gegebenen Zeitraum liegen, sind ung@"ultig und werden nicht ausgegeben.
Das bedeutet nat@"urlich, da@ss{} alle Termine, die nicht in diesem Zeitraum
liegen, g@"ultig sind und somit auch ausgegeben werden.

@cindex Termin, Startdatum eines
@cindex Startdatum eines Termins
@noindent
Das erste angegebene Datum bestimmt das Startdatum eines Termins,
d.h.@: das erste Datum, an dem dieser Termin auftreten darf.  F@"ur das
Startdatum gelten folgende Regeln hinsichtlich bestimmter Auslassungswerte,
verdeutlicht am
@w{@code{@var{jjjj}@r{[}@var{mm}@r{[}@var{tt}@r{|}@var{www}@var{n}@r{]]}}}
Datumformat:

@itemize @bullet
@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, bei 99 der Dezember.

@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, bei 99 der letzte Tag des Monats @var{mm}.

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

@cindex Termin, Endedatum eines
@cindex Endedatum eines Termins
@noindent
Das zweite angegebene Datum bestimmt das Endedatum eines Termins,
d.h.@: das letzte Datum, an dem dieser Termin auftreten darf.  F@"ur das
Endedatum gelten folgende Regeln hinsichtlich bestimmter Auslassungswerte,
ebenfalls verdeutlicht am
@w{@code{@var{jjjj}@r{[}@var{mm}@r{[}@var{tt}@r{|}@var{www}@var{n}@r{]]}}}
Datumformat:

@itemize @bullet
@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, bei 99 der Dezember.

@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, bei 99 der letzte Tag des Monats @var{mm}.

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

@noindent
F@"ur die anderen erlaubten Datumformate gelten die vorstehenden Regeln
sinngem@"a@ss{}!

@noindent
Wenn das Startdatum, welches im @w{@code{%e@dots{}}} Spezialtext kodiert ist,
gr@"o@ss{}er dem Endedatum ist, so wird der @w{@code{%e@dots{}}} Spezialtext
ignoriert.

@noindent
Ist weder Startdatum noch Endedatum angegeben, also nur @samp{%e}, so gilt
der implizite Zeitraum 1'ter Januar 1@dots{}31'ter Dezember 9999
@w{(00010101@dots{}99991231)}.

@noindent
Ist nur das Startdatum angegeben, also entweder @samp{%e@var{Datum}} oder
@samp{%e@var{Datum}#}, so gilt das implizite Endedatum 31'ter Dezember 9999
@w{(99991231)}.

@noindent
Ist nur das Endedatum angegeben, also @samp{%e#@var{Datum}}, so gilt das
implizite Startdatum 1'ter Januar 1 @w{(00010101)}.

@noindent
Zum Beispiel:

@example
0d*1#999 Jeder Tag des Jahres: ausgenommen April und Juli\
        %e00004#00004 %e00007#00007
;
0*d1#999 Jeder Tag des Jahres: ausgenommen Januar@dots{}Oktober\
         %e#000010
;
0*d1#999 Jeder Tag des Jahres: bis Juli 1990\
         %e19908
;
0*d1#999 Jeder Tag des Jahres: ausgenommen August@dots{}Dezember\
         %e00008
;
0*d1#999 Jeder Tag des Jahres: ausgenommen heute%e0@@t#0@@t
@end example

@node Ausschliessen ohne Argument, , Ausschliessen mit Datumargument, Ausschliessen
@appendixsubsec Ausschlie@ss{}en ohne Argument @code{%@var{?}} Spezialtexte
@cindex Ausschliessen ohne Argument @code{%@var{?}} Spezialtexte

@menu
* Inklusive Tag Zeitraum::
* Exklusive Tag Zeitraum::
@end menu

@noindent
Zun@"achst einmal kann ein @dfn{inklusive Tag} Zeitraum @code{%@var{?}}
Spezialtext angegeben werden, mit der Wirkung, da@ss{} nur die Termine,
die in diesem Zeitraum liegen, ausgegeben werden.  Und die Angabe eines
@dfn{exklusive Tag} Zeitraums @code{%@var{?}} Spezialtexts bewirkt,
da@ss{} alle die Termine, die nicht in diesem Zeitraum liegen, ausgegeben
werden.

@noindent
Geschickt kombiniert, bieten auch diese Spezialtexte wirksame Filter, mit
deren Hilfe sehr spezielle Zeitr@"aume definiert werden k@"onnen, zum Beispiel:

@example
0*d1#999 Jeder Tag des Jahres: Von Montags@dots{}Freitags\
         ausgenommen Mittwochs und aller gesetzlichen Feiertage\
         %r%F%V
;
00001001#9999 Jeder Tag im letzten Quartal des Jahres: Alle Feiertage\
              die nicht auf einen Sonntag fallen%x %P
@end example

@node Inklusive Tag Zeitraum, Exklusive Tag Zeitraum, Ausschliessen ohne Argument, Ausschliessen ohne Argument
@appendixsubsubsec Inklusive Tag Zeitraum @code{%@var{?}} Spezialtexte
@cindex Inklusive Tag Zeitraum @code{%@var{?}} Spezialtexte

@noindent
Folgende inklusive Tag Zeitr@"aume @code{%@var{?}} Spezialtexte werden
ber@"ucksichtigt, wobei in diesem Zusammenhang mit @emph{inklusive} der
Zeitraum gemeint ist, welcher nicht ausgeschlossen wird:

@table @code
@item %v
@cindex Spezialtext @code{%v}
@cindex @code{%v} Spezialtext, inklusive gesetzlicher Feiertage
@cindex Inklusive gesetzlicher Feiertage, @code{%v} Spezialtext
Bewirkt den Ausschlu@ss{} eines Termins, falls dieser nicht als gesetzlicher
Feiertag in der @emph{ewigen Feiertagsliste} aufgef@"uhrt ist.

@item %x
@cindex Spezialtext @code{%x}
@cindex @code{%x} Spezialtext, inklusive aller Feiertage
@cindex Inklusive aller Feiertage, @code{%x} Spezialtext
Bewirkt den Ausschlu@ss{} eines Termins, falls dieser weder als gesetzlicher
Feiertag noch als Gedenktag in der @emph{ewigen Feiertagsliste} aufgef@"uhrt
ist.

@item %a
@cindex Spezialtext @code{%a}
@cindex @code{%a} Spezialtext, inklusive Montag
@cindex Inklusive Montag, @code{%a} Spezialtext
Bewirkt den Ausschlu@ss{} eines Termins, falls dieser nicht auf einen
Montag f@"allt.

@item %c
@cindex Spezialtext @code{%c}
@cindex @code{%c} Spezialtext, inklusive Dienstag
@cindex Inklusive Dienstag, @code{%c} Spezialtext
Bewirkt den Ausschlu@ss{} eines Termins, falls dieser nicht auf einen
Dienstag f@"allt.

@item %f
@cindex Spezialtext @code{%f}
@cindex @code{%f} Spezialtext, inklusive Mittwoch
@cindex Inklusive Mittwoch, @code{%f} Spezialtext
Bewirkt den Ausschlu@ss{} eines Termins, falls dieser nicht auf einen
Mittwoch f@"allt.

@item %g
@cindex Spezialtext @code{%g}
@cindex @code{%g} Spezialtext, inklusive Donnerstag
@cindex Inklusive Donnerstag, @code{%g} Spezialtext
Bewirkt den Ausschlu@ss{} eines Termins, falls dieser nicht auf einen
Donnerstag f@"allt.

@item %h
@cindex Spezialtext @code{%h}
@cindex @code{%h} Spezialtext, inklusive Freitag
@cindex Inklusive Freitag, @code{%h} Spezialtext
Bewirkt den Ausschlu@ss{} eines Termins, falls dieser nicht auf einen
Freitag f@"allt.

@item %l
@cindex Spezialtext @code{%l}
@cindex @code{%l} Spezialtext, inklusive Samstag
@cindex Inklusive Samstag, @code{%l} Spezialtext
Bewirkt den Ausschlu@ss{} eines Termins, falls dieser nicht auf einen
Samstag f@"allt.

@item %p
@cindex Spezialtext @code{%p}
@cindex @code{%p} Spezialtext, inklusive Sonntag
@cindex Inklusive Sonntag, @code{%p} Spezialtext
Bewirkt den Ausschlu@ss{} eines Termins, falls dieser nicht auf einen
Sonntag f@"allt.

@item %q
@cindex Spezialtext @code{%q}
@cindex @code{%q} Spezialtext, inklusive Montag@dots{}Donnerstag
@cindex Inklusive Montag@dots{}Donnerstag, @code{%q} Spezialtext
Bewirkt den Ausschlu@ss{} eines Termins, falls dieser nicht auf einen
Montag@dots{}Don@-ners@-tag f@"allt.

@item %r
@cindex Spezialtext @code{%r}
@cindex @code{%r} Spezialtext, inklusive Zeitraum
@cindex Inklusive Montag@dots{}Freitag, @code{%r} Spezialtext
Bewirkt den Ausschlu@ss{} eines Termins, falls dieser nicht auf einen
Montag@dots{}Frei@-tag f@"allt.
@end table

@node Exklusive Tag Zeitraum, , Inklusive Tag Zeitraum, Ausschliessen ohne Argument
@appendixsubsubsec Exklusive Tag Zeitraum @code{%@var{?}} Spezialtexte
@cindex Exklusive Tag Zeitraum @code{%@var{?}} Spezialtexte

@noindent
Folgende exklusive Tag Zeitr@"aume @code{%@var{?}} Spezialtexte werden
ber@"ucksichtigt, wobei in diesem Zusammenhang mit @emph{exklusive} der
Zeitraum gemeint ist, welcher ausgeschlossen wird:

@table @code
@item %V
@cindex Spezialtext @code{%V}
@cindex @code{%V} Spezialtext, exklusive gesetzlicher Feiertage
@cindex Exklusive gesetzlicher Feiertage, @code{%V} Spezialtext
Bewirkt den Ausschlu@ss{} eines Termins, falls dieser auf einen Tag
f@"allt, der als gesetzlicher Feiertag
in der @emph{ewigen Feiertagsliste} aufgef@"uhrt ist.

@item %X
@cindex Spezialtext @code{%X}
@cindex @code{%X} Spezialtext, exklusive aller Feiertage
@cindex Exklusive aller Feiertage, @code{%X} Spezialtext
Bewirkt den Ausschlu@ss{} eines Termins, falls dieser auf einen Tag
f@"allt, der entweder als gesetzlicher Feiertag oder als Gedenktag
in der @emph{ewigen Feiertagsliste} aufgef@"uhrt ist.

@item %A
@cindex Spezialtext @code{%A}
@cindex @code{%A} Spezialtext, exklusive Montag
@cindex Exklusive Montag, @code{%A} Spezialtext
Bewirkt den Ausschlu@ss{} eines Termins, falls dieser auf einen Montag
f@"allt.

@item %C
@cindex Spezialtext @code{%C}
@cindex @code{%C} Spezialtext, exklusive Dienstag
@cindex Exklusive Dienstag, @code{%C} Spezialtext
Bewirkt den Ausschlu@ss{} eines Termins, falls dieser auf einen Dienstag
f@"allt.

@item %F
@cindex Spezialtext @code{%F}
@cindex @code{%F} Spezialtext, exklusive Mittwoch
@cindex Exklusive Mittwoch, @code{%F} Spezialtext
Bewirkt den Ausschlu@ss{} eines Termins, falls dieser auf einen Mittwoch
f@"allt.

@item %G
@cindex Spezialtext @code{%G}
@cindex @code{%G} Spezialtext, exklusive Donnerstag
@cindex Exklusive Donnerstag, @code{%G} Spezialtext
Bewirkt den Ausschlu@ss{} eines Termins, falls dieser auf einen Donnerstag
f@"allt.

@item %H
@cindex Spezialtext @code{%H}
@cindex @code{%H} Spezialtext, exklusive Freitag
@cindex Exklusive Freitag, @code{%H} Spezialtext
Bewirkt den Ausschlu@ss{} eines Termins, falls dieser auf einen Freitag
f@"allt.

@item %L
@cindex Spezialtext @code{%L}
@cindex @code{%L} Spezialtext, exklusive Samstag
@cindex Exklusive Samstag, @code{%L} Spezialtext
Bewirkt den Ausschlu@ss{} eines Termins, falls dieser auf einen Samstag
f@"allt.

@item %P
@cindex Spezialtext @code{%P}
@cindex @code{%P} Spezialtext, exklusive Sonntag
@cindex Exklusive Sonntag, @code{%P} Spezialtext
Bewirkt den Ausschlu@ss{} eines Termins, falls dieser auf einen Sonntag
f@"allt.

@item %Q
@cindex Spezialtext @code{%Q}
@cindex @code{%Q} Spezialtext, exklusive Montag@dots{}Donnerstag
@cindex Exklusive Montag@dots{}Donnerstag, @code{%Q} Spezialtext
Bewirkt den Ausschlu@ss{} eines Termins, falls dieser auf einen
Montag@dots{}Don@-ners@-tag f@"allt.

@item %R
@cindex Spezialtext @code{%R}
@cindex @code{%R} Spezialtext, exklusive Montag@dots{}Freitag
@cindex Exklusive Montag@dots{}Freitag, @code{%R} Spezialtext
Bewirkt den Ausschlu@ss{} eines Termins, falls dieser auf einen
Montag@dots{}Frei@-tag f@"allt.
@end table

@node Ersetzen, Shell Kommando, Ausschliessen, Spezialtexte (lang)
@appendixsec @code{%@var{?}}@dots{} Spezialtexte zum Textersatz
@cindex @code{%@var{?}}@dots{} Spezialtexte zum Textersatz

@menu
* Ersetzen mit Datumargument::
* Ersetzen mit anderem Argument::
* Ersetzen ohne Argument::
@end menu

@noindent
@code{%@var{?}}@dots{} Spezialtexte, die zur Programmlaufzeit durch besonderen
Text ersetzt werden, bewirken das Einstreuen von Daten in den Termintext, deren
Auspr@"agung im wesentlichen von den Kommandozeilenargumenten abh@"angen, welche
bei Programmausf@"uhrung angegeben worden sind.  Wird der Termintext ausgegeben,
so wird stets der gesamte Spezialtext in der Ausgabe entsprechend ersetzt.

@noindent
Geschickt kombiniert, bieten sich auch diese Spezialtexte als wirksame
Mechanismen an, mit deren Hilfe sich spezielle Texte sehr flexibel
erzeugen lassen k@"onnen, zum Beispiel:

@example
0*d1#999 Jeder Tag des Jahres: Heute ist %o, der %n (%+)
@end example

@node Ersetzen mit Datumargument, Ersetzen mit anderem Argument, Ersetzen, Ersetzen
@appendixsubsec Ersetzen mit Datumargument @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte
@cindex Ersetzen mit Datumargument @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte

@menu
* Wochentagsname::
* Wochentag::
* Tageszahl::
* Tag::
* Woche::
* Monatsname::
* Monat::
* Jahr::
* Mondphase::
* Biorhythmus::
* Differenzwert::
@end menu

@noindent
Neben verschiedenen Darstellungen von einem Wochentagsnamen kann auch dessen
Wochentagsnummer erzeugt werden.  Ebenso kann der laufende Tag des Jahres,
die Tagesnummer, die Wochennummer, der Monatsname, die Monatsnummer, die
Jahresnummer, die Mondphase und der Biorhythmus produziert werden, sowie
einige n@"utzliche Differenzwerte.

@noindent
F@"ur das @var{Datum}, da@ss{} diese @code{%@var{?}@r{[}@var{Datum}@r{]}}
Spezialtexte annehmen d@"urfen, gelten folgende Regeln hinsichtlich
bestimmter Auslassungswerte, verdeutlicht am
@w{@code{@var{jjjj}@r{[}@var{mm}@r{[}@var{tt}@r{|}@var{www}@var{n}@r{]]}}}
Datumformat @footnote{F@"ur die anderen erlaubten Datumformate gelten die
nachfolgenden Regeln sinngem@"a@ss{}.}:

@itemize @bullet
@item
Falls @var{jjjj}@dots{} nicht angegeben ist (@equiv{}@strong{kein} Datum
kodiert), so wird das 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, bei 99 der Dezember.

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

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

@page
@node Wochentagsname, Wochentag, Ersetzen mit Datumargument, Ersetzen mit Datumargument
@appendixsubsubsec Wochentagsname @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte
@cindex Wochentagsname @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte

@noindent
Folgende Wochentagsname @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte werden
ber@"ucksichtigt:

@table @code
@item %o@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%o@r{[}@var{Datum}@r{]}}
@cindex @code{%o@r{[}@var{Datum}@r{]}} Spezialtext, vollst@"andiger Wochentagsname
@cindex Vollst@"andiger Wochentagsname, @code{%o@r{[}@var{Datum}@r{]}} Spezialtext
Wird in einen vollst@"andigen @strong{Wochentagsnamen} f@"ur den laufenden Tag
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 Systemdatum der 10'te Juni 1996 ist.
@end quotation

@item %O@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%O@r{[}@var{Datum}@r{]}}
@cindex @code{%O@r{[}@var{Datum}@r{]}} Spezialtext, 3-Buchstaben Wochentagsname
@cindex 3-Buchstaben Wochentagsname, @code{%O@r{[}@var{Datum}@r{]}} Spezialtext
Wird in einen 3-Buchstaben @strong{Wochentagsnamen} f@"ur den laufenden Tag
umgesetzt, z.B.@::

@quotation
Der Text @w{@samp{Heute ist %O0@@t+1 , der %n+1}}
wird umgesetzt in@*
@w{@expansion{} @samp{Heute ist Die, der 11-Jun-1996}},
falls das aktuelle Systemdatum der 10'te Juni 1996 ist.
@end quotation

@item %K@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%K@r{[}@var{Datum}@r{]}}
@cindex @code{%K@r{[}@var{Datum}@r{]}} Spezialtext, 2-Buchstaben Wochentagsname
@cindex 2-Buchstaben Wochentagsname, @code{%K@r{[}@var{Datum}@r{]}} Spezialtext
Wird in einen 2-Buchstaben @strong{Wochentagsnamen} f@"ur den laufenden Tag
umgesetzt, z.B.@::

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

@node Wochentag, Tageszahl, Wochentagsname, Ersetzen mit Datumargument
@appendixsubsubsec Wochentag @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte
@cindex Wochentag @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte

@noindent
Folgende Wochentagsnummer @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte
werden ber@"ucksichtigt:

@table @code
@item %S@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%S@r{[}@var{Datum}@r{]}}
@cindex @code{%S@r{[}@var{Datum}@r{]}} Spezialtext, Wochentagsnummer
@cindex Wochentagsnummer, @code{%S@r{[}@var{Datum}@r{]}} Spezialtext
Wird in eine @strong{Wochentagsnummer} f@"ur den laufenden Tag umgesetzt,
die nach der @cite{Montag@equiv{}1@dots{}Sonntag@equiv{}7}
Z@"ahlweise ermittelt wird, z.B.@::

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

@item %I@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%I@r{[}@var{Datum}@r{]}}
@cindex @code{%I@r{[}@var{Datum}@r{]}} Spezialtext, Wochentagsnummer
@cindex Wochentagsnummer, @code{%I@r{[}@var{Datum}@r{]}} Spezialtext
Wird in eine @strong{Wochentagsnummer} mit nachfolgendem Ordnungszahlanhang
f@"ur den laufenden Tag umgesetzt, die nach der
@cite{Montag@equiv{}1@dots{}Sonntag@equiv{}7}
Z@"ahlweise ermittelt wird, z.B.@::

@quotation
Der Text @w{@samp{Heute ist Wochentag %I0@@t+1 , der %n+1}}
wird umgesetzt in@*
@w{@expansion{} @samp{Heute ist Wochentag 2'ter, der 11-Jun-1996}},
falls das aktuelle Systemdatum der 10'te Juni 1996 ist.
@end quotation

@item %E@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%E@r{[}@var{Datum}@r{]}}
@cindex @code{%E@r{[}@var{Datum}@r{]}} Spezialtext, Wochentagsnummer
@cindex Wochentagsnummer, @code{%E@r{[}@var{Datum}@r{]}} Spezialtext
Wird in eine @strong{Wochentagsnummer} f@"ur den laufenden Tag umgesetzt,
die nach der @cite{Montag@equiv{}0@dots{}Sonntag@equiv{}6}
Z@"ahlweise ermittelt wird, z.B.@::

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

@item %J@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%J@r{[}@var{Datum}@r{]}}
@cindex @code{%J@r{[}@var{Datum}@r{]}} Spezialtext, Wochentagsnummer
@cindex Wochentagsnummer, @code{%J@r{[}@var{Datum}@r{]}} Spezialtext
Wird in eine @strong{Wochentagsnummer} mit nachfolgendem Ordnungszahlanhang
f@"ur den laufenden Tag umgesetzt, die nach der
@cite{Montag@equiv{}0@dots{}Sonntag@equiv{}6}
Z@"ahlweise ermittelt wird, z.B.@::

@quotation
Der Text @w{@samp{Heute ist Wochentag %J , der %n}}
wird umgesetzt in@*
@w{@expansion{} @samp{Heute ist Wochentag 0'ter, der 10-Jun-1996}},
falls das aktuelle Systemdatum der 10'te Juni 1996 ist.
@end quotation

@item %(@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%(@r{[}@var{Datum}@r{]}}
@cindex @code{%(@r{[}@var{Datum}@r{]}} Spezialtext, Wochentagsnummer
@cindex Wochentagsnummer, @code{%(@r{[}@var{Datum}@r{]}} Spezialtext
Wird in eine @strong{Wochentagsnummer} f@"ur den laufenden Tag umgesetzt,
die nach der @cite{Sonntag@equiv{}1@dots{}Samstag@equiv{}7}
Z@"ahlweise ermittelt wird, z.B.@::

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

@item %<@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%<@r{[}@var{Datum}@r{]}}
@cindex @code{%<@r{[}@var{Datum}@r{]}} Spezialtext, Wochentagsnummer
@cindex Wochentagsnummer, @code{%<@r{[}@var{Datum}@r{]}} Spezialtext
Wird in eine @strong{Wochentagsnummer} mit nachfolgendem Ordnungszahlanhang
f@"ur den laufenden Tag umgesetzt, die nach der
@cite{Sonntag@equiv{}1@dots{}Samstag@equiv{}7}
Z@"ahlweise ermittelt wird, z.B.@::

@quotation
Der Text @w{@samp{Heute ist Wochentag %< , der %n}}
wird umgesetzt in@*
@w{@expansion{} @samp{Heute ist Wochentag 2'ter, der 10-Jun-1996}},
falls das aktuelle Systemdatum der 10'te Juni 1996 ist.
@end quotation

@item %)@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%)@r{[}@var{Datum}@r{]}}
@cindex @code{%)@r{[}@var{Datum}@r{]}} Spezialtext, Wochentagsnummer
@cindex Wochentagsnummer, @code{%)@r{[}@var{Datum}@r{]}} Spezialtext
Wird in eine @strong{Wochentagsnummer} f@"ur den laufenden Tag umgesetzt,
die nach der @cite{Sonntag@equiv{}0@dots{}Samstag@equiv{}6}
Z@"ahlweise ermittelt wird, z.B.@::

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

@need 1500
@item %>@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%>@r{[}@var{Datum}@r{]}}
@cindex @code{%>@r{[}@var{Datum}@r{]}} Spezialtext, Wochentagsnummer
@cindex Wochentagsnummer, @code{%>@r{[}@var{Datum}@r{]}} Spezialtext
Wird in eine @strong{Wochentagsnummer} mit nachfolgendem Ordnungszahlanhang
f@"ur den laufenden Tag umgesetzt, die nach der
@cite{Sonntag@equiv{}0@dots{}Samstag@equiv{}6}
Z@"ahlweise ermittelt wird, z.B.@::

@quotation
Der Text @w{@samp{Heute ist Wochentag %> , der %n}}
wird umgesetzt in@*
@w{@expansion{} @samp{Heute ist Wochentag 1'ter, der 10-Jun-1996}},
falls das aktuelle Systemdatum der 10'te Juni 1996 ist.
@end quotation

@item %[@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%[@r{[}@var{Datum}@r{]}}
@cindex @code{%[@r{[}@var{Datum}@r{]}} Spezialtext, Wochentagsnummer
@cindex Wochentagsnummer, @code{%[@r{[}@var{Datum}@r{]}} Spezialtext
Wird in eine @strong{Wochentagsnummer} f@"ur den laufenden Tag umgesetzt,
die nach der
@cite{@var{Starttag der Woche}@equiv{}1@dots{}@var{Endetag der Woche}@equiv{}7}
Z@"ahlweise ermittelt wird
(@pxref{Kalender Optionen, @samp{--starting-day=@var{Argument}}, Kalender Optionen: @samp{--starting-day=@var{Argument}}}),
z.B.@::

@quotation
Der Text @w{@samp{Heute ist Wochentag %[ , der %n}}
wird umgesetzt in@*
@w{@expansion{} @samp{Heute ist Wochentag 4, der 10-Jun-1996}},
falls das aktuelle Systemdatum der 10'te Juni 1996 und der Starttag der
Woche ein Freitag (@equiv{}5) ist.
@end quotation

@item %@{@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%@{@r{[}@var{Datum}@r{]}}
@cindex @code{%@{@r{[}@var{Datum}@r{]}} Spezialtext, Wochentagsnummer
@cindex Wochentagsnummer, @code{%@{@r{[}@var{Datum}@r{]}} Spezialtext
Wird in eine @strong{Wochentagsnummer} mit nachfolgendem Ordnungszahlanhang
f@"ur den laufenden Tag umgesetzt, die nach der
@cite{@var{Starttag der Woche}@equiv{}1@dots{}@var{Endetag der Woche}@equiv{}7}
Z@"ahlweise ermittelt wird@*
(@pxref{Kalender Optionen, @samp{--starting-day=@var{Argument}}, Kalender Optionen: @samp{--starting-day=@var{Argument}}}),
z.B.@::

@quotation
Der Text @w{@samp{Heute ist Wochentag %@{ , der %n}}
wird umgesetzt in@*
@w{@expansion{} @samp{Heute ist Wochentag 4'ter, der 10-Jun-1996}},
falls das aktuelle Systemdatum der 10'te Juni 1996 und der Starttag der
Woche ein Freitag (@equiv{}5) ist.
@end quotation

@item %]@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%]@r{[}@var{Datum}@r{]}}
@cindex @code{%]@r{[}@var{Datum}@r{]}} Spezialtext, Wochentagsnummer
@cindex Wochentagsnummer, @code{%]@r{[}@var{Datum}@r{]}} Spezialtext
Wird in eine @strong{Wochentagsnummer} f@"ur den laufenden Tag umgesetzt,
die nach der
@cite{@var{Starttag der Woche}@equiv{}0@dots{}@var{Endetag der Woche}@equiv{}6}
Z@"ahlweise ermittelt wird
(@pxref{Kalender Optionen, @samp{--starting-day=@var{Argument}}, Kalender Optionen: @samp{--starting-day=@var{Argument}}}),
z.B.@::

@quotation
Der Text @w{@samp{Heute ist Wochentag %] , der %n}}
wird umgesetzt in@*
@w{@expansion{} @samp{Heute ist Wochentag 3, der 10-Jun-1996}},
falls das aktuelle Systemdatum der 10'te Juni 1996 und der Starttag der
Woche ein Freitag (@equiv{}5) ist.
@end quotation

@item %@}@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%@}@r{[}@var{Datum}@r{]}}
@cindex @code{%@}@r{[}@var{Datum}@r{]}} Spezialtext, Wochentagsnummer
@cindex Wochentagsnummer, @code{%@}@r{[}@var{Datum}@r{]}} Spezialtext
Wird in eine @strong{Wochentagsnummer} mit nachfolgendem Ordnungszahlanhang
f@"ur den laufenden Tag umgesetzt, die nach der
@cite{@var{Starttag der Woche}@equiv{}0@dots{}@var{Endetag der Woche}@equiv{}6}
Z@"ahlweise ermittelt wird@*
(@pxref{Kalender Optionen, @samp{--starting-day=@var{Argument}}, Kalender Optionen: @samp{--starting-day=@var{Argument}}}),
z.B.@::

@quotation
Der Text @w{@samp{Heute ist Wochentag %@} , der %n}}
wird umgesetzt in@*
@w{@expansion{} @samp{Heute ist Wochentag 3'ter, der 10-Jun-1996}},
falls das aktuelle Systemdatum der 10'te Juni 1996 und der Starttag der
Woche ein Freitag (@equiv{}5) ist.
@end quotation
@end table

@node Tageszahl, Tag, Wochentag, Ersetzen mit Datumargument
@appendixsubsubsec Tageszahl @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte
@cindex Tageszahl @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte

@noindent
Folgende Tageszahl @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte werden
ber@"ucksichtigt:

@table @code
@item %+@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%+@r{[}@var{Datum}@r{]}}
@cindex @code{%+@r{[}@var{Datum}@r{]}} Spezialtext, Tageszahl
@cindex Tageszahl, @code{%+@r{[}@var{Datum}@r{]}} Spezialtext
Wird in eine @strong{Tageszahl} f@"ur den laufenden Tag im Jahr umgesetzt,
z.B.@::

@quotation
Der Text @w{@samp{Tag %+ @ des Jahres, der %n}}
wird umgesetzt in@*
@w{@expansion{} @samp{Tag 53 des Jahres, der 22-Feb-1996}},
falls das aktuelle Systemdatum der 22'te Februar 1996 ist.
@end quotation

@item %*@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%*@r{[}@var{Datum}@r{]}}
@cindex @code{%*@r{[}@var{Datum}@r{]}} Spezialtext, Tageszahl
@cindex Tageszahl, @code{%*@r{[}@var{Datum}@r{]}} Spezialtext
Wird in eine dreiziffrige @strong{Tageszahl} mit f@"uhrenden Nullen
f@"ur den laufenden Tag im Jahr umgesetzt, z.B.@::

@quotation
Der Text @w{@samp{Tag %*0@@t-1 @ des Jahres, der %n-1}}
wird umgesetzt in@*
@w{@expansion{} @samp{Tag 052 des Jahres, der 21-Feb-1996}},
falls das aktuelle Systemdatum der 22'te Februar 1996 ist.
@end quotation

@item %&@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%&@r{[}@var{Datum}@r{]}}
@cindex @code{%&@r{[}@var{Datum}@r{]}} Spezialtext, Tageszahl
@cindex Tageszahl, @code{%&@r{[}@var{Datum}@r{]}} Spezialtext
Wird in eine @strong{Tageszahl} mit nachfolgendem Ordnungszahlanhang
f@"ur den laufenden Tag im Jahr umgesetzt, z.B.@::

@quotation
Der Text @w{@samp{Tag %& @ des Jahres, der %n}}
wird umgesetzt in@*
@w{@expansion{} @samp{Tag 53'ter des Jahres, der 22-Feb-1996}},
falls das aktuelle Systemdatum der 22'te Februar 1996 ist.
@end quotation

@item %#@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%#@r{[}@var{Datum}@r{]}}
@cindex @code{%#@r{[}@var{Datum}@r{]}} Spezialtext, Tageszahl
@cindex Tageszahl, @code{%#@r{[}@var{Datum}@r{]}} Spezialtext
Wird in eine dreiziffrige @strong{Tageszahl} mit f@"uhrenden Nullen und
nachfolgendem Ordnungszahlanhang f@"ur den laufenden Tag im Jahr umgesetzt,
z.B.@::

@quotation
Der Text @w{@samp{Tag %# @ des Jahres, der %n}}
wird umgesetzt in@*
@w{@expansion{} @samp{Tag 053'ter des Jahres, der 22-Feb-1996}},
falls das aktuelle Systemdatum der 22'te Februar 1996 ist.
@end quotation
@end table

@node Tag, Woche, Tageszahl, Ersetzen mit Datumargument
@appendixsubsubsec Tag @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte
@cindex Tag @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte

@noindent
Folgende Tag @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte werden
ber@"ucksichtigt:

@table @code
@item %D@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%D@r{[}@var{Datum}@r{]}}
@cindex @code{%D@r{[}@var{Datum}@r{]}} Spezialtext, Tag
@cindex Tag, @code{%D@r{[}@var{Datum}@r{]}} Spezialtext
Wird in eine @strong{Tageszahl} f@"ur den laufenden Tag im Monat umgesetzt,
z.B.@::

@quotation
Der Text @w{@samp{Tag %D , %n}}
wird umgesetzt in@*
@w{@expansion{} @samp{Tag 2, 02-Feb-1996}},
falls das aktuelle Systemdatum der 2'te Februar 1996 ist.
@end quotation

@need 2000
@item %N@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%N@r{[}@var{Datum}@r{]}}
@cindex @code{%N@r{[}@var{Datum}@r{]}} Spezialtext, Tag
@cindex Tag, @code{%N@r{[}@var{Datum}@r{]}} Spezialtext
Wird in eine zweiziffrige @strong{Tageszahl} mit f@"uhrender Null
f@"ur den laufenden Tag im Monat umgesetzt, z.B.@::

@quotation
Der Text @w{@samp{Tag %N0@@t-1 , %n-1}}
wird umgesetzt in@*
@w{@expansion{} @samp{Tag 01, 01-Feb-1996}},
falls das aktuelle Systemdatum der 2'te Februar 1996 ist.
@end quotation

@item %s@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%s@r{[}@var{Datum}@r{]}}
@cindex @code{%s@r{[}@var{Datum}@r{]}} Spezialtext, Tag
@cindex Tag, @code{%s@r{[}@var{Datum}@r{]}} Spezialtext
Wird in eine @strong{Tageszahl} mit nachfolgendem Ordnungszahlanhang
f@"ur den laufenden Tag im Monat umgesetzt, z.B.@::

@quotation
Der Text @w{@samp{Tag %s , %n}}
wird umgesetzt in@*
@w{@expansion{} @samp{Tag 2'ter, 02-Feb-1996}},
falls das aktuelle Systemdatum der 2'te Februar 1996 ist.
@end quotation

@item %u@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%u@r{[}@var{Datum}@r{]}}
@cindex @code{%u@r{[}@var{Datum}@r{]}} Spezialtext, Tag
@cindex Tag, @code{%u@r{[}@var{Datum}@r{]}} Spezialtext
Wird in eine zweiziffrige @strong{Tageszahl} mit f@"uhrender Null und
nachfolgendem Ordnungszahlanhang f@"ur den laufenden Tag im Monat umgesetzt,
z.B.@::

@quotation
Der Text @w{@samp{Tag %u , %n}}
wird umgesetzt in@*
@w{@expansion{} @samp{Tag 02'ter, 02-Feb-1996}},
falls das aktuelle Systemdatum der 2'te Februar 1996 ist.
@end quotation
@end table

@page
@node Woche, Monatsname, Tag, Ersetzen mit Datumargument
@appendixsubsubsec Woche @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtext
@cindex Woche @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtext

@noindent
Folgender Woche @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtext wird
ber@"ucksichtigt:

@table @code
@item %k@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%k@r{[}@var{Datum}@r{]}}
@cindex @code{%k@r{[}@var{Datum}@r{]}} Spezialtext, Woche
@cindex Woche, @code{%k@r{[}@var{Datum}@r{]}} Spezialtext
@cindex @sc{iso}-8601:1988
Wird in eine @strong{@sc{iso}-Wochennummer} f@"ur die laufende Woche im Jahr
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 Systemdatum der 10'te Juni 1996 ist.
@end quotation
@end table

@node Monatsname, Monat, Woche, Ersetzen mit Datumargument
@appendixsubsubsec Monatsname @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte
@cindex Monatsname @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte

@noindent
Folgende Monatsname @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte werden
ber@"ucksichtigt:

@table @code
@item %M@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%M@r{[}@var{Datum}@r{]}}
@cindex @code{%M@r{[}@var{Datum}@r{]}} Spezialtext, vollst@"andiger Monatsname
@cindex Vollst@"andiger Monatsname, @code{%M@r{[}@var{Datum}@r{]}} Spezialtext
Wird in einen vollst@"andigen @strong{Monatsnamen} f@"ur den laufenden Monat
im Jahr umgesetzt, z.B.@::

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

@need 1000
@item %T@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%T@r{[}@var{Datum}@r{]}}
@cindex @code{%T@r{[}@var{Datum}@r{]}} Spezialtext, 3-Buchstaben Monatsname
@cindex 3-Buchstaben Monatsname, @code{%T@r{[}@var{Datum}@r{]}} Spezialtext
Wird in einen 3-Buchstaben @strong{Monatsnamen} f@"ur den laufenden Monat
im Jahr umgesetzt, z.B.@::

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

@node Monat, Jahr, Monatsname, Ersetzen mit Datumargument
@appendixsubsubsec Monat @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte
@cindex Monat @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte

@noindent
Folgende Monat @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte werden
ber@"ucksichtigt:

@table @code
@item %U@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%U@r{[}@var{Datum}@r{]}}
@cindex @code{%U@r{[}@var{Datum}@r{]}} Spezialtext, Monat
@cindex Monat, @code{%U@r{[}@var{Datum}@r{]}} Spezialtext
Wird in eine @strong{Monatszahl} f@"ur den laufenden Monat im Jahr umgesetzt,
z.B.@::

@quotation
Der Text @w{@samp{Monat %U , %n}}
wird umgesetzt in@*
@w{@expansion{} @samp{Monat 2, 22-Feb-1996}},
falls das aktuelle Systemdatum der 22'te Februar 1996 ist.
@end quotation

@cindex Spezialtext @code{%W@r{[}@var{Datum}@r{]}}
@item %W@r{[}@var{Datum}@r{]}
@cindex @code{%W@r{[}@var{Datum}@r{]}} Spezialtext, Monat
@cindex Monat, @code{%W@r{[}@var{Datum}@r{]}} Spezialtext
Wird in eine zweiziffrige @strong{Monatszahl} mit f@"uhrender Null
f@"ur den laufenden Monat im Jahr umgesetzt, z.B.@::

@quotation
Der Text @w{@samp{Monat %W000001 , %n}}
wird umgesetzt in@*
@w{@expansion{} @samp{Monat 01, 22-Feb-1996}},
falls das aktuelle Systemdatum der 22'te Februar 1996 ist.
@end quotation

@page
@item %z@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%z@r{[}@var{Datum}@r{]}}
@cindex @code{%z@r{[}@var{Datum}@r{]}} Spezialtext, Monat
@cindex Monat, @code{%z@r{[}@var{Datum}@r{]}} Spezialtext
Wird in eine @strong{Monatszahl} mit nachfolgendem Ordnungszahlanhang
f@"ur den laufenden Monat im Jahr umgesetzt, z.B.@::

@quotation
Der Text @w{@samp{Monat %z , %n}}
wird umgesetzt in@*
@w{@expansion{} @samp{Monat 2'ter, 22-Feb-1996}},
falls das aktuelle Systemdatum der 22'te Februar 1996 ist.
@end quotation

@item %Z@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%Z@r{[}@var{Datum}@r{]}}
@cindex @code{%Z@r{[}@var{Datum}@r{]}} Spezialtext, Monat
@cindex Monat, @code{%Z@r{[}@var{Datum}@r{]}} Spezialtext
Wird in eine zweiziffrige @strong{Monatszahl} mit f@"uhrender Null und
nachfolgendem Ordnungszahlanhang f@"ur den laufenden Monat im Jahr umgesetzt,
z.B.@::

@quotation
Der Text @w{@samp{Monat %Z , %n}}
wird umgesetzt in@*
@w{@expansion{} @samp{Monat 02'ter, 22-Feb-1996}},
falls das aktuelle Systemdatum der 22'te Februar 1996 ist.
@end quotation
@end table

@node Jahr, Mondphase, Monat, Ersetzen mit Datumargument
@appendixsubsubsec Jahr @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte
@cindex Jahr @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte

@noindent
Folgende Jahr @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte werden
ber@"ucksichtigt:

@table @code
@item %Y@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%Y@r{[}@var{Datum}@r{]}}
@cindex @code{%Y@r{[}@var{Datum}@r{]}} Spezialtext, Jahr
@cindex Jahr, @code{%Y@r{[}@var{Datum}@r{]}} Spezialtext
Wird in eine @strong{Jahreszahl} f@"ur das laufende Jahr umgesetzt, z.B.@::

@quotation
Der Text @w{@samp{Jahr %Y , %n}}
wird umgesetzt in@*
@w{@expansion{} @samp{Jahr 933, 22-Feb-0933}},
falls das aktuelle Systemdatum der 22'te Februar 933 ist.
@end quotation

@item %=@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%=@r{[}@var{Datum}@r{]}}
@cindex @code{%=@r{[}@var{Datum}@r{]}} Spezialtext, Jahr
@cindex Jahr, @code{%=@r{[}@var{Datum}@r{]}} Spezialtext
Wird in eine vierziffrige @strong{Jahreszahl} mit f@"uhrenden Nullen f@"ur das
laufende Jahr umgesetzt, z.B.@::

@quotation
Der Text @w{@samp{Jahr %=0015 , %n}}
wird umgesetzt in@*
@w{@expansion{} @samp{Jahr 0015, 22-Feb-0933}},
falls das aktuelle Systemdatum der 22'te Februar 933 ist.
@end quotation
@end table

@node Mondphase, Biorhythmus, Jahr, Ersetzen mit Datumargument
@appendixsubsubsec Mondphase @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte
@cindex Mondphase @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte

@noindent
Gcal benutzt eine sehr einfache Rechenvorschrift um die Mondphase
zu ermitteln, welche ihrerseits nur N@"aherungswerte liefert.  Die
Mondphase wird stets um 0 Uhr Weltzeit berechnet.  Folgende Mondphase
@code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte werden ber@"ucksichtigt:

@table @code
@item %-@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%-@r{[}@var{Datum}@r{]}}
@cindex @code{%-@r{[}@var{Datum}@r{]}} Spezialtext, Mondphasentext
@cindex Mondphase, @code{%-@r{[}@var{Datum}@r{]}} Spezialtext
Wird in einen @strong{Mondphasentext} f@"ur den laufenden Tag im Jahr
umgesetzt, z.B.@::

@quotation
Der Text @w{@samp{Mondphase %- , %n}}
wird umgesetzt in@*
@w{@expansion{} @samp{Mondphase 94%+, 22-Dez-1996}},
falls das aktuelle Systemdatum der 22'te Dezember 1996 ist.
@end quotation

Der konstruierte Mondphasentext besteht aus einem Prozentwert, der @"uber
den beleuchteten Bruchteil der Mondscheibe informiert, und ein nachfolgendes
Zeichen, das etwas @"uber den Status des Mondes aussagt.  Ein nachfolgendes
@samp{+} Zeichen bezeichnet einen zunehmenden Mond, ein @samp{-} Zeichen
einen abnehmenden Mond, ein @samp{@@} Zeichen steht f@"ur eine Vollmondphase,
und ein @samp{!} Zeichen f@"ur eine Neumondphase.

@item %_@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%_@r{[}@var{Datum}@r{]}}
@cindex @code{%_@r{[}@var{Datum}@r{]}} Spezialtext, Mondphasentext
@cindex Mondphase, @code{%_@r{[}@var{Datum}@r{]}} Spezialtext
Wird in einen dreiziffrigen @strong{Mondphasentext} mit f@"uhrenden Nullen
f@"ur den laufenden Tag im Jahr umgesetzt, z.B.@::

@quotation
Der Text @w{@samp{Mondphase %_0@@t+1 , %n+1}}
wird umgesetzt in@*
@w{@expansion{} @samp{Mondphase 098%+, 23-Dez-1996}},
falls das aktuelle Systemdatum der 22'te Dezember 1996 ist.
@end quotation

Der konstruierte Mondphasentext besteht aus einem Prozentwert, der @"uber
den beleuchteten Bruchteil der Mondscheibe informiert, und ein nachfolgendes
Zeichen, das etwas @"uber den Status des Mondes aussagt.  Ein nachfolgendes
@samp{+} Zeichen bezeichnet einen zunehmenden Mond, ein @samp{-} Zeichen
einen abnehmenden Mond, ein @samp{@@} Zeichen steht f@"ur eine Vollmondphase,
und ein @samp{!} Zeichen f@"ur eine Neumondphase.

@item %:@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%:@r{[}@var{Datum}@r{]}}
@cindex @code{%:@r{[}@var{Datum}@r{]}} Spezialtext, Mondphasen-Textgrafik
@cindex Mondphasen-Textgrafik, @code{%:@r{[}@var{Datum}@r{]}} Spezialtext
Wird in eine @strong{Mondphasen-Textgrafik} f@"ur den laufenden Tag im
Jahr umgesetzt, z.B.@::

@quotation
Der Text @w{@samp{Datum %n %: @ --- Mondphase %_ ~Text}}
wird umgesetzt in@*
@w{@expansion{} @samp{Datum 08-Mar-1995 }}@*
@w{@expansion{} @samp{ @ @ @ @ @ @ @ @ @ @ ( @ @ @ @ @ @ @@@@@@@@@@@@}}@*
@w{@expansion{} @samp{ @ @ @ @ @ ( @ @ @ @ @ @ @ @ @ @ @ @ @ @@@@@@@@@@@@@@@@@@}}@*
@w{@expansion{} @samp{ @ @ @ ( @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @@@@@@@@@@@@@@@@@@@@@@}}@*
@w{@expansion{} @samp{ @ ( @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @@@@@@@@@@@@@@@@@@@@@@@@}}@*
@w{@expansion{} @samp{ ( @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @@@@@@@@@@@@@@@@@@@@@@@@@@}}@*
@w{@expansion{} @samp{( @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @@@@@@@@@@@@@@@@@@@@@@@@@@}}@*
@w{@expansion{} @samp{( @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @@@@@@@@@@@@@@@@@@@@@@@@@@}}@*
@w{@expansion{} @samp{ ( @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @@@@@@@@@@@@@@@@@@@@@@@@@@}}@*
@w{@expansion{} @samp{ @ ( @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @@@@@@@@@@@@@@@@@@@@@@@@}}@*
@w{@expansion{} @samp{ @ @ ( @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @@@@@@@@@@@@@@@@@@@@@@}}@*
@w{@expansion{} @samp{ @ @ @ @ @ ( @ @ @ @ @ @ @ @ @ @ @ @ @@@@@@@@@@@@@@@@@@}}@*
@w{@expansion{} @samp{ @ @ @ @ @ @ @ @ @ @ ( @ @ @ @ @ @ @ @@@@@@@@@@@@@@ --- Mondphase 041%+}}@*
@w{@expansion{} @samp{Text}},
falls das aktuelle Systemdatum der 8'te M@"arz 1995 ist.
@end quotation

@xref{Termin Optionen, @samp{--moonimage-lines=@var{Anzahl}}, Termin Optionen: @samp{--moonimage-lines=@var{Anzahl}}},
wo erkl@"art wird, wie die Gr@"o@ss{}e einer Mondphasen-Textgrafik ge@"andert
werden kann.
@end table

@node Biorhythmus, Differenzwert, Mondphase, Ersetzen mit Datumargument
@appendixsubsubsec Biorhythmus @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte
@cindex Biorhythmus @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte

@noindent
Gcal besitzt die F@"ahigkeit, f@"ur jedes angegebene Geburtsdatum
einen @dfn{Biorhythmus} zu erzeugen.  Der erzeugte Text zeigt die drei
Standard-Biorhythmuszyklen, und zwar den 28 Tage w@"ahrenden emotionalen
Zyklus, den 33 Tage w@"ahrenden geistigen Zyklus, und den 23 Tage w@"ahrenden
physischen Zyklus.  Der emotionale Zyklus wird vom Empfindungsverm@"ogen, der
geistigen Gesundheit, der Gem@"utsverfassung und der Kreativit@"at beherrscht.
Der geistige Zyklus spiegelt Intelligenz, Ged@"achtnis, geistige Wachheit und
analytisches Denkverm@"ogen wider.  Der physische Zyklus stellt die
K@"orperkraft, Ausdauer,  Leistungs- und Widerstandsf@"ahigkeit dar.
Alle Zyklen beginnen im Nullpunkt am Geburtsdatum und schwingen wie
Sinuskurven zwischen ihren positiven und negativen Maximalwerten.
Die Zeitr@"aume oberhalb des Nullpunktes zeigen die Tage voller
Lebenskraft und Leistungsf@"ahigkeit an, w@"ahrend die Zeitr@"aume
unterhalb des Nullpunktes die Tage verringerter Leistungsf@"ahigkeit
darstellen.  Der Biorhythmus wurde nur zu Unterhaltungszwecken eingebaut!
Die Interpretation der Biorhythmustexte liegt in den H@"anden des Benutzers.

@cindex Biorhythmus, Kritischer Tag 
@cindex Kritischer Tag, Biorhythmus 
@cindex Biorhythmus, Positiver Tag
@cindex Positiver Tag, Biorhythmus 
@cindex Biorhythmus, Negativer Tag
@cindex Negativer Tag, Biorhythmus 
@noindent
Gcal z@"ahlt @dfn{kritische} Tage, @dfn{positive} ebenso wie @dfn{negative}
Tage.
Kritische Tage sind solche Tage, an denen eine oder mehrere der biologischen
Zyklen den Nullpunkt @"uberqueren.  Zu einem solchen Zeitpunkt, so wird gesagt,
soll sich der Organismus in einem Stadium des Umbruchs befinden, und es scheint
angebracht zu sein, Vorsicht walten zu la@ss{}en.
Positive Tage sind solche Tage, an denen eine oder mehrere der biologischen
Zyklen einen positiven Maximalwert haben.  Zu einem solchen Zeitpunkt, so wird
gesagt, soll sich der Organismus in einem gesteigerten Stadium befinden. 
Negative Tage sind solche Tage, an denen eine oder mehrere der biologischen
Zyklen einen negativen Maximalwert haben.  Zu einem solchen Zeitpunkt, so wird
gesagt, soll sich der Organismus in einem verminderten Stadium befinden.

@noindent
Folgende Biorhythmus @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte werden
ber@"ucksichtigt:

@table @code
@item %,@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%,@r{[}@var{Datum}@r{]}}
@cindex @code{%,@r{[}@var{Datum}@r{]}} Spezialtext, Biorhythmus
@cindex Biorhythmus, @code{%,@r{[}@var{Datum}@r{]}} Spezialtext
Wird in einen @strong{Biorhythmustext} f@"ur den laufenden Tag im Jahr
umgesetzt, z.B.@::

@quotation
Der Text @w{@samp{%,19620921}}
wird umgesetzt in@*
@w{@expansion{} @samp{1! 0+ 0- , Emo=+022%- Gei=-091%+ Phy=-014%-}},
falls das aktuelle Systemdatum der 12'te Dezember 1996 ist.
@end quotation

Das vorangehende Beispiel zeigt den berechneten Biorhythmus als eine Folge
von Werten f@"ur eine Person an, die am 21'ten September 1962 geboren ist.
Der konstruierte Text besteht aus zwei Teilen, und zwar einerseits aus einem
Tripel von Gesamtwerten, welches den kritischen, positiven und negativen
Tag bezeichnet.  Und aus einem weiteren Tripel von Werten, welches den
emotionalen, geistigen und physischen Zyklus bezeichnet.

Im ersten Tripel von Gesamtwerten bezeichnet ein nachgestelltes @samp{!}
Zeichen einen kritischen Tag, ein @samp{+} einen positiven Tag, und ein
@samp{-} Anhang markiert einen negativen Tag.

Im zweiten Tripel von Werten besteht jeder einzelne Zyklus-Prozentwert aus
einem anf@"uhrenden positiven oder negativen Vorzeichen, welches etwas @"uber
die Distanz dieses Wertes zum Nullpunkt aussagt, und einem nachgestellten
Zeichen, das etwas @"uber den Status jedes einzelnen Zyklus' aussagt.  Ein
nachfolgendes @samp{+} Zeichen markiert eine zunehmende Phase, ein @samp{-}
Anhang bezeichnet eine abnehmende Phase, und ein @samp{@@} Kennzeichen den
Maximalwert einer Phase.

@item %;@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%;@r{[}@var{Datum}@r{]}}
@cindex @code{%;@r{[}@var{Datum}@r{]}} Spezialtext, Biorhythmus-Textgrafik
@cindex Biorhythmus-Textgrafik, @code{%;@r{[}@var{Datum}@r{]}} Spezialtext
Wird in eine @strong{Biorhythmus-Textgrafik} f@"ur den laufenden Tag im
Jahr umgesetzt, z.B.@::

@quotation
Der Text @w{@samp{%;19620921}}
wird umgesetzt in@*
@w{@expansion{} @samp{0- @ G @ @ @ @ @ @ @ @ @ @ @ @ @ @ P 1 @ @ E @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ +0}},
falls das aktuelle Systemdatum der 12'te Dezember 1996 ist.
@end quotation

Das vorhergehende Beispiel zeigt den berechneten Biorhythmus als eine
Zeile einer Textgrafik f@"ur eine Person an, die am 21'ten September
1962 geboren ist.  Die konstruierte Zeile ist ein Balken mit einer
negativen und positiven Achse von einstellbarer L@"ange
(@pxref{Termin Optionen, @samp{--biorhythm-axis=@var{Anzahl}}, Termin Optionen: @samp{--biorhythm-axis=@var{Anzahl}}}),
dessen linke Grenze durch den Gesamtwert der negativen Tage dargestellt
wird (die @samp{0-} in diesem Fall), und dessen rechte Grenze durch den
Gesamtwert der positiven Tage repr@"asentiert wird (die @samp{+0} in
diesem Fall).  Der Nullpunkt der Koordinaten wird durch den Gesamtwert
der kritischen Tage dargestellt, welcher in diesem Fall die @samp{1} ist.
Der emotionale, geistige und der physische Phasenwert wird entsprechend
skaliert auf dem Balken abgetragen, und zwar dargestellt durch den
Anfangsbuchstaben des jeweiligen Zyklus' (@samp{E}, @samp{G} und @samp{P}).
Zusammenfallende Phasenwerte werden durch ein @samp{@@} Zeichen markiert.
@end table

@node Differenzwert, , Biorhythmus, Ersetzen mit Datumargument
@appendixsubsubsec Differenzwert @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte
@cindex Differenzwert @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte

@noindent
Folgende Differenzwert @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte werden
ber@"ucksichtigt:

@table @code
@item %y@var{Datum}
@cindex Spezialtext @code{%y@var{Datum}}
@cindex @code{%y@var{Datum}} Spezialtext, relative Jahreszahl
@cindex Relative Jahreszahl, @code{%y@var{Datum}} Spezialtext
@cindex Jahresdifferenzwert
Wird in einen @strong{Jahresdifferenzwert} 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

@item %b@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%b@r{[}@var{Datum}@r{]}}
@cindex @code{%b@r{[}@var{Datum}@r{]}} Spezialtext, Geburtstag
@cindex Geburtstag, @code{%b@r{[}@var{Datum}@r{]}} Spezialtext
@cindex Alterswert
Wird in einen @strong{Alterswert} umgesetzt, z.B.@::

@quotation
Der Text @w{@samp{Mein %b1962 @ Geburtstag%i1952#2062}}
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@ss{}er Null ergibt.  Zudem wird der Termin in diesem vorangehenen
Beispiel nur w@"ahrend der Jahre 1952 bis 2062 (einschlie@ss{}lich) ausgegeben.

@item %B@r{[}@var{Datum}@r{]}
@cindex Spezialtext @code{%B@r{[}@var{Datum}@r{]}}
@cindex @code{%B@r{[}@var{Datum}@r{]}} Spezialtext, Geburtstag
@cindex Geburtstag, @code{%B@r{[}@var{Datum}@r{]}} Spezialtext
@cindex Alterswert
Wird in einen @strong{Alterswert} mit nachfolgendem Ordnungszahlanhang
umgesetzt, z.B.@::

@quotation
Der Text @w{@samp{Mein %B1962 @ Geburtstag%i1952#2062}}
wird umgesetzt in@*
@w{@expansion{} @samp{Mein 32'ter 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@ss{}er Null ergibt.  Zudem wird der Termin in diesem vorangehenen
Beispiel nur w@"ahrend der Jahre 1952 bis 2062 (einschlie@ss{}lich) ausgegeben.
@end table

@node Ersetzen mit anderem Argument, Ersetzen ohne Argument, Ersetzen mit Datumargument, Ersetzen
@appendixsubsec Ersetzen mit anderem Argument @code{%@var{?}@r{[}@var{Argument}@r{]}} Spezialtexte
@cindex Ersetzen mit anderem Argument @code{%@var{?}@r{[}@var{Argument}@r{]}} Spezialtexte

@menu
* Aktuelle Uhrzeit::
* Textliches Datum::
* Julianische Tageszahl::
@end menu

@noindent
Neben verschiedenen Darstellungen der aktuellen Systemuhrzeit kann
auch ein fester Datumtext erzeugt werden.  Zudem kann eine Tageszahl
produziert werden, deren Basisdatum ausgehend vom Julianischen Datum
beliebig verlagert werden kann.

@noindent
F@"ur das @var{Argument}, da@ss{} diese @code{%@var{?}@r{[}@var{Argument}@r{]}}
Spezialtexte annehmen d@"urfen, gelten keine besonderen Regeln hinsichtlich
bestimmter Auslassungswerte.

@node Aktuelle Uhrzeit, Textliches Datum, Ersetzen mit anderem Argument, Ersetzen mit anderem Argument
@appendixsubsubsec Aktuelle Uhrzeit @code{%t@r{[}@var{Argument}@r{]}} Spezialtext
@cindex Spezialtext @code{%t@r{[}@var{Argument}@r{]}}
@cindex Aktuelle Uhrzeit @code{%t@r{[}@var{Argument}@r{]}} Spezialtext
@cindex @code{%t@r{[}@var{Argument}@r{]}} Spezialtext, aktuelle Uhrzeit
@cindex Systemuhrzeit, Ausgabe der

@noindent
@code{%t@r{[}12@r{|}24@r{]}} bezeichnet die @strong{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

@cindex @code{%t12} Spezialtext
@cindex @code{%t24} Spezialtext
@noindent
Wenn nur @code{%t} angegeben ist, so wird der Systemuhrzeitwert implizit
im @emph{24-Stunden} Format ausgegeben (@equiv{}@code{%t24}).  Um im
@emph{12-Stunden} Format auszugeben, mu@ss{} die Zahl 12 direkt hinter
@code{%t} angegeben werden, z.B.@: @samp{%t12}.

@node Textliches Datum, Julianische Tageszahl, Aktuelle Uhrzeit, Ersetzen mit anderem Argument
@appendixsubsubsec Textliches Datum @code{%n@r{[}@var{Argument}@r{]}} Spezialtext
@cindex Spezialtext @code{%n@r{[}@var{Argument}@r{]}}
@cindex Textliches Datum @code{%n@r{[}@var{Argument}@r{]}} Spezialtext
@cindex @code{%n@r{[}@var{Argument}@r{]}} Spezialtext, Textliches Datum
@cindex Datumtext

@noindent
@code{%n@r{[[}+@r{|}-@r{]}@var{n}@r{]}} bezeichnet die laufende
bzw.@: abgefragte @strong{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
@strong{Datumtext} im @samp{@var{tt}-@var{mmm}-@var{jjjj}} Format
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}}, Einfache Kommandos: @samp{@var{mm} @var{jjjj}}}).
@end quotation

@node Julianische Tageszahl, , Textliches Datum, Ersetzen mit anderem Argument
@appendixsubsubsec Julianische Tageszahl @code{%j@r{[}@var{Argument}@r{]}} Spezialtext
@cindex Spezialtext @code{%j@r{[}@var{Argument}@r{]}}
@cindex Julianische Tageszahl @code{%j@r{[}@var{Argument}@r{]}} Spezialtext
@cindex @code{%j@r{[}@var{Argument}@r{]}} Spezialtext, Julianische Tageszahl

@noindent
@code{%j@r{[[}-@r{]}@var{n}@r{]}} bezeichnet die laufende bzw.@: abgefragte
@strong{Julianische Tageszahl} relativ zum aktuellen Systemdatum
(@equiv{}heute).  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 gegen@"artig nicht die Zeitzone des vom Rechner
gelieferten Systemdatum auswertet, wird diese Tageszahl nur ganzzahlig
dargestellt in der Annahme, da@ss{} der Tageswechsel bereits Mittags
stattgefunden hat.  Wer den Tageswechsel als Mittags noch nicht bereits
vollzogen haben m@"ochte, der soll die sich aus dem Spezialtext ergebende
Julianische Tageszahl stets um den Faktor eins vermindern, z.B.@: @samp{%j-1}.

@noindent
Zum 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 @footnote{Ein negatives
Vorzeichen kann der besseren Lesbarkeit wegen angegeben werden.}, so da@ss{} im
Text mit beliebigen Bezugsgr@"o@ss{}en gearbeitet werden kann, z.B.@::

@page
@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 Ersetzen ohne Argument, , Ersetzen mit anderem Argument, Ersetzen
@appendixsubsec Ersetzen ohne Argument @code{%@var{?}} Spezialtexte
@cindex Ersetzen ohne Argument @code{%@var{?}} Spezialtexte

@menu
* Andere Differenzwerte::
* Hervorhebung::
@end menu

@noindent
Neben weiteren n@"utzlichen Differenzwerten kann der Termintext auch mit
verschiedenen Hervorhebungen ausgestattet werden.

@node Andere Differenzwerte, Hervorhebung, Ersetzen ohne Argument, Ersetzen ohne Argument
@appendixsubsubsec Differenzwert @code{%@var{?}} Spezialtexte
@cindex Differenzwert @code{%@var{?}} Spezialtexte

@noindent
Folgende andere Differenzwert @code{%@var{?}} Spezialtexte werden
ber@"ucksichtigt:

@table @code
@item %d
@cindex Spezialtext @code{%d}
@cindex @code{%d} Spezialtext, relative Tageszahl
@cindex Relative Tageszahl, @code{%d} Spezialtext
Bezeichnet den laufenden bzw.@: abgefragten @strong{Tag}
relativ zum aktuellen Systemdatum (@equiv{}heute), 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

@item %w
@cindex Spezialtext @code{%w}
@cindex @code{%w} Spezialtext, relative Wochenzahl
@cindex Relative Wochenzahl, @code{%w} Spezialtext
Bezeichnet die laufende bzw.@: abgefragte @strong{Woche}
relativ zum aktuellen Systemdatum (@equiv{}heute).

@item %m
@cindex Spezialtext @code{%m},
@cindex @code{%m} Spezialtext, relative Monatszahl
@cindex Relative Monatszahl, @code{%m} Spezialtext
Bezeichnet den laufenden bzw.@: abgefragten @strong{Monat}
relativ zum aktuellen Systemdatum (@equiv{}heute).

@item %y
@cindex Spezialtext @code{%y}
@cindex @code{%y} Spezialtext, relative Jahreszahl
@cindex Relative Jahreszahl, @code{%y} Spezialtext
Bezeichnet das laufende bzw.@: abgefragte @strong{Jahr}
relativ zum aktuellen Systemdatum (@equiv{}heute).
@end table

@node Hervorhebung, , Andere Differenzwerte, Ersetzen ohne Argument
@appendixsubsubsec Hervorhebung @code{%@var{?}} Spezialtexte
@cindex Hervorhebung @code{%@var{?}} Spezialtexte

@noindent
Folgende Hervorhebung @code{%@var{?}} Spezialtexte werden ber@"ucksichtigt:

@table @code
@item %1
@cindex Spezialtext @code{%1}
@cindex @code{%1} Spezialtext, Start-Hervorhebung 1
@cindex Start-Hervorhebung 1, @code{%1} Spezialtext
@code{%1} wird ersetzt durch die Start-Hervorhebungssequenz bzw.@:
das Start-Mar@-kie@-rungs@-zei@-chen, welches zur Hervorhebung
des aktuellen Tages benutzt wird
(@pxref{Globale Optionen, @samp{--highlighting=@var{Text}}, Globale Optionen: @samp{--highlighting=@var{Text}}}).
Damit wird erreicht, da@ss{} der diesem Spezialtext 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} Spezialtext
benutzt, welcher 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

@page
@item %2
@cindex Spezialtext @code{%2}
@cindex @code{%2} Spezialtext, Ende-Hervorhebung 1
@cindex Ende-Hervorhebung 1, @code{%2} Spezialtext
@code{%2} wird ersetzt durch die Ende-Hervorhebungssequenz bzw.@: das
Ende-Mar@-kie@-rungs@-zei@-chen, welches zur Hervorhebung des aktuellen
Tages benutzt wird.  Damit wird erreicht, da@ss{} ab der Stelle des Auftretens
dieses Spezialtexts 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} Spezialtext
benutzt.  Sollte vor einem @code{%2} Text kein @code{%1} Text auf der Zeile
vorgefunden werden, so hat der @code{%2} Text keinerlei Wirkung.

@item %3
@cindex Spezialtext @code{%3}
@cindex @code{%3} Spezialtext, Start-Hervorhebung 2
@cindex Start-Hervorhebung 2, @code{%3} Spezialtext
@code{%3} wird ersetzt durch die Start-Hervorhebungssequenz bzw.@:
das Start-Mar@-kie@-rungs@-zei@-chen, welches zur Hervorhebung
eines Feiertages benutzt wird
(@pxref{Globale Optionen, @samp{--highlighting=@var{Text}}, Globale Optionen: @samp{--highlighting=@var{Text}}}).
Damit wird erreicht, da@ss{} der diesem Spezialtext nachfolgende Text der Zeile
in gleicher Weise ausgegeben wird, wie ein hervorgehobener bzw.@: markierter
Feiertag.  @code{%3} wird in Verbindung mit dem @code{%4} Spezialtext benutzt,
welcher 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

@item %4
@cindex Spezialtext @code{%4}
@cindex @code{%4} Spezialtext, Ende-Hervorhebung 2
@cindex Ende-Hervorhebung 2, @code{%4} Spezialtext
@code{%4} wird ersetzt durch die Ende-Hervorhebungssequenz bzw.@: das
Ende-Mar@-kie@-rungs@-zei@-chen, welches zur Hervorhebung eines Feiertages
benutzt wird.  Damit wird erreicht, da@ss{} ab der Stelle des Auftretens
dieses Spezialtexts 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} Spezialtext
benutzt.  Sollte vor einem @code{%4} Text kein @code{%3} Text auf der Zeile
vorgefunden werden, so hat der @code{%4} Text keinerlei Wirkung.

@item %5
@cindex Spezialtext @code{%5}
@cindex @code{%5} Spezialtext, Start-Hervorhebung 1
@cindex Start-Hervorhebung 1, @code{%5} Spezialtext
@code{%5} wird ersetzt durch die Start-Hervorhebungssequenz bzw.@: das
Start-Mar@-kie@-rungs@-zei@-chen, welches zur Hervorhebung des aktuellen
Tages benutzt wird, falls ein Termin auf das heutige Datum f@"allt
(@pxref{Globale Optionen, @samp{--highlighting=@var{Text}}, Globale Optionen: @samp{--highlighting=@var{Text}}}).
Damit wird erreicht, da@ss{} der diesem Spezialtext nachfolgende Text der Zeile
in gleicher Weise ausgegeben wird, wie der hervorgehobene bzw.@: markierte
aktuelle Tag.  @code{%5} wird in Verbindung mit dem @code{%6} Spezialtext
benutzt, welcher die mit @code{%5} eingeschaltete Hervorhebung wieder
ausschaltet bzw.@: ein Ende-Markierungszeichen produziert.  Sollte einem
@code{%5} Text kein @code{%6} Text auf der Zeile nachfolgen, so f@"ugt Gcal
automatisch einen solchen @code{%6} Text am Zeilenende ein.

@item %6
@cindex Spezialtext @code{%6}
@cindex @code{%6} Spezialtext, Ende-Hervorhebung 1
@cindex Ende-Hervorhebung 1, @code{%6} Spezialtext
@code{%6} wird ersetzt durch die Ende-Hervorhebungssequenz bzw.@: das
Ende-Mar@-kie@-rungs@-zei@-chen, welches zur Hervorhebung des aktuellen Tages
benutzt wird, falls ein Termin auf das heutige Datum f@"allt.  Damit wird
erreicht, da@ss{} ab der Stelle des Auftretens dieses Spezialtexts eine
m@"oglicherweise aktive Hervorhebung, entsprechend der des aktuellen Tages,
wieder abgeschaltet bzw.@: ein Ende-Markierungszeichen produziert wird.
@code{%6} wird in Verbindung mit dem @code{%5} Spezialtext benutzt.  Sollte
vor einem @code{%6} Text kein @code{%5} Text auf der Zeile vorgefunden werden,
so hat der @code{%6} Text keinerlei Wirkung.

@item %7
@cindex Spezialtext @code{%7}
@cindex @code{%7} Spezialtext, Start-Hervorhebung 2
@cindex Start-Hervorhebung 2, @code{%7} Spezialtext
@code{%7} wird ersetzt durch die Start-Hervorhebungssequenz bzw.@: das
Start-Mar@-kie@-rungs@-zei@-chen, welches zur Hervorhebung eines Feiertages
benutzt wird, falls ein Termin auf einen gesetzlichen Feiertag f@"allt
(@pxref{Globale Optionen, @samp{--highlighting=@var{Text}}, Globale Optionen: @samp{--highlighting=@var{Text}}}).
Damit wird erreicht, da@ss{} der diesem Spezialtext nachfolgende Text der Zeile
in gleicher Weise ausgegeben wird, wie ein hervorgehobener bzw.@: markierter
Feiertag.  @code{%7} wird in Verbindung mit dem @code{%8} Spezialtext benutzt,
welcher die mit @code{%7} eingeschaltete Hervorhebung wieder ausschaltet bzw.@:
ein Ende-Markierungszeichen produziert.  Sollte einem @code{%7} Text kein
@code{%8} Text auf der Zeile nachfolgen, so f@"ugt Gcal automatisch einen
solchen @code{%8} Text am Zeilenende ein.

@item %8
@cindex Spezialtext @code{%8}
@cindex @code{%8} Spezialtext, Ende-Hervorhebung 2
@cindex Ende-Hervorhebung 2, @code{%8} Spezialtext
@code{%8} wird ersetzt durch die Ende-Hervorhebungssequenz bzw.@: das
Ende-Mar@-kie@-rungs@-zei@-chen, welches zur Hervorhebung eines Feiertages
benutzt wird, falls ein Termin auf einen gesetzlichen Feiertag f@"allt.
Damit wird erreicht, da@ss{} ab der Stelle des Auftretens dieses Spezialtexts
eine m@"oglicherweise aktive Hervorhebung, entsprechend der eines Feiertages,
wieder abgeschaltet bzw.@: ein Ende-Markierungszeichen produziert wird.
@code{%8} wird in Verbindung mit dem @code{%7} Spezialtext benutzt.  Sollte
vor einem @code{%8} Text kein @code{%7} Text auf der Zeile vorgefunden werden,
so hat der @code{%8} Text keinerlei Wirkung.

@item %9
@cindex Spezialtext @code{%9}
@cindex @code{%9} Spezialtext, Start-Hervorhebung 1 oder 2
@cindex Start-Hervorhebung 1 oder 2, @code{%9} Spezialtext
@code{%9} wird ersetzt durch die Start-Hervorhebungssequenz bzw.@: das
Start-Mar@-kie@-rungs@-zei@-chen, welches zur Hervorhebung des aktuellen
Tages benutzt wird, falls ein Termin auf das heutige Datum f@"allt;
sonst wird @code{%9} durch die Start-Hervorhebungssequenz bzw.@: das
Start-Mar@-kie@-rungs@-zei@-chen ersetzt, welches zur Hervorhebung
eines Feiertages benutzt wird, falls ein Termin auf einen gesetzlichen
Feiertag f@"allt
(@pxref{Globale Optionen, @samp{--highlighting=@var{Text}}, Globale Optionen: @samp{--highlighting=@var{Text}}}).
Damit wird erreicht, da@ss{} der diesem Spezialtext nachfolgende Text der Zeile
in gleicher Weise ausgegeben wird, wie ein hervorgehobener bzw.@: markierter
aktueller Tag oder Feiertag.  @code{%9} wird in Verbindung mit dem @code{%0}
Spezialtext benutzt, welcher die mit @code{%9} eingeschaltete Hervorhebung
wieder ausschaltet bzw.@: ein Ende-Markierungszeichen produziert.  Sollte
einem @code{%9} Text kein @code{%0} Text auf der Zeile nachfolgen, so f@"ugt
Gcal automatisch einen solchen @code{%0} Text am Zeilenende ein.

@item %0
@cindex Spezialtext @code{%0}
@cindex @code{%0} Spezialtext, Ende-Hervorhebung 1 oder 2
@cindex Ende-Hervorhebung 1 oder 2, @code{%0} Spezialtext
@code{%0} wird ersetzt durch die Ende-Hervorhebungssequenz bzw.@: das
Ende-Mar@-kie@-rungs@-zei@-chen, welches zur Hervorhebung des aktuellen
Tages benutzt wird, falls ein Termin auf das heutige Datum f@"allt;
sonst wird @code{%0} durch die Ende-Hervorhebungssequenz bzw.@: das
Ende-Mar@-kie@-rungs@-zei@-chen ersetzt, welches zur Hervorhebung eines
Feiertages benutzt wird, falls ein Termin auf einen gesetzlichen Feiertag
f@"allt.  Damit wird erreicht, da@ss{} ab der Stelle des Auftretens dieses
Spezialtexts eine m@"oglicherweise aktive Hervorhebung, entsprechend der
des aktuellen Tages oder eines Feiertages, wieder abgeschaltet bzw.@: ein
Ende-Markierungszeichen produziert wird.  @code{%0} wird in Verbindung mit
dem @code{%9} Spezialtext benutzt.  Sollte vor einem @code{%0} Text kein
@code{%9} Text auf der Zeile vorgefunden werden, so hat der @code{%0} Text
keinerlei Wirkung.
@end table

@node Shell Kommando, , Ersetzen, Spezialtexte (lang)
@appendixsec Shell Kommando @code{%!@r{[}@var{Argument}@r{]}} Spezialtext
@cindex Spezialtext @code{%!@r{[}@var{Argument}@r{]}}
@cindex Shell Kommando @code{%!@r{[}@var{Argument}@r{]}} Spezialtext
@cindex @code{%!@r{[}@var{Argument}@r{]}} Spezialtext, shell Kommando
@cindex Shell Kommando, Ausf@"uhrung von
@cindex Fehlerkode von ausgef@"uhrten Kommandos
@cindex Ausgef@"uhrte Kommandos, Fehlerkode von
@cindex Exit-Kode von ausgef@"uhrten Kommandos
@cindex Ausgef@"uhrte Kommandos, Exit-Kode von
@cindex Shell
@cindex Kommandointerpretierer

@noindent
Das @var{Argument}, das @code{%!} bis zum Ende der Zeile folgt, wird der
shell als Kommando zur weiteren Verarbeitung @"ubergeben.  Zuvor werden
allerdings noch alle @code{%@var{?}}@dots{} Spezialtexte zum Textersatz,
die im @var{Argument} auftreten, von Gcal interpretiert.
@xref{Ersetzen, , @code{%@var{?}}@dots{} Spezialtexte zum Textersatz}.
Falls Text vor dem @code{%!} Spezialtext angegeben ist, so wird dieser
von Gcal wie @"ublich verarbeitet.  Wenn die einfache @samp{--debug}
bzw.@: @w{@samp{--debug=internal}} Option bei Programmstart angegeben wurde,
so wird ein Text auf dem @emph{Standardfehler-Ger@"atekanal} ausgegeben,
der mit Informationen zum ausgef@"uhrten Kommando und dessen @emph{exit}-Kode
ausgestattet ist
(@pxref{Globale Optionen, @samp{--debug=internal}, Globale Optionen: @samp{--debug=internal}}).

@cindex Fehlerkode 2
@cindex Exit-Kode 2
@noindent
Falls die @w{@samp{--debug=abort}} Option angegeben wurde und sich ein
@emph{exit}-Kode ungleich Null bei der Ausf@"uhrung des Kommandos ergab,
so wird das Gcal-Programm mit Fehlerkode abgebrochen.
@xref{Fehlerkodes, 2, Fehlerkodes: 2},
sowie
@ref{Globale Optionen, @samp{--debug=abort}, Globale Optionen: @samp{--debug=abort}},
f@"ur weitere Informationen.

@noindent
Wenn die @samp{--bypass-shell-command} Option benutzt wird, so werden alle
@code{%!@r{[}@var{Argument}@r{]}} Spezialtexte rein textlich ausgegeben
und nicht von der shell ausgef@"uhrt.
@xref{Termin Optionen, @samp{--bypass-shell-command}, Termin Optionen: @samp{--bypass-shell-command}},
f@"ur weitere Details.

@node Spezialtexte (kurz), Kodierschema, Spezialtexte (lang), Top
@appendix Zusammenfassung aller @code{%@var{?}}@dots{} Spezialtexte
@cindex @code{%@var{?}}@dots{} Spezialtexte, Kurzliste aller
@cindex @code{%@var{?}}@dots{} Spezialtexte, Zusammenfassung aller
@cindex Kurzliste aller @code{%@var{?}}@dots{} Spezialtexte
@cindex Zusammenfassung aller @code{%@var{?}}@dots{} Spezialtexte

@noindent
Hier ist eine Kurzliste aller @code{%@var{?}}@dots{} Spezialtexte, die
im Textteil einer Zeile von Gcal Ressourcendateien benutzt werden k@"onnen:
@sp 2

@table @asis
@item @code{%i@r{[}@var{Datum}@r{][}#@r{[}@var{Datum}@r{]]}}
@cindex Inklusive Datum Zeitraum, @code{%i@r{[}@var{Datum}@r{][}#@r{[}@var{Datum}@r{]]}} Spezialtext
Ausschlu@ss{} aller nicht inklusive Datum Zeitr@"aume

@item @code{%e@r{[}@var{Datum}@r{][}#@r{[}@var{Datum}@r{]]}}
@cindex Exklusive Datum Zeitraum, @code{%e@r{[}@var{Datum}@r{][}#@r{[}@var{Datum}@r{]]}} Spezialtext
Ausschlu@ss{} aller exklusive Datum Zeitr@"aume

@item @code{%@var{?}} Inklusive Tag Zeitraum
@cindex Inklusive Tag Zeitraum @code{%@var{?}} Spezialtexte

@table @asis
@item @code{%v}
@cindex @code{%v} Spezialtext, inklusive gesetzlicher Feiertage
Ausschlu@ss{} aller nicht gesetzlichen Feiertage

@item @code{%x}
@cindex @code{%x} Spezialtext, inklusive aller Feiertage
Ausschlu@ss{} aller Nicht-Feiertage

@item @code{%a}
@cindex @code{%a} Spezialtext, inklusive Montag
Ausschlu@ss{} aller Nicht-Montage

@item @code{%c}
@cindex @code{%c} Spezialtext, inklusive Dienstag
Ausschlu@ss{} aller Nicht-Dienstage

@item @code{%f}
@cindex @code{%f} Spezialtext, inklusive Mittwoch
Ausschlu@ss{} aller Nicht-Mittwoche

@item @code{%g}
@cindex @code{%g} Spezialtext, inklusive Donnerstag
Ausschlu@ss{} aller Nicht-Donnerstage

@item @code{%h}
@cindex @code{%h} Spezialtext, inklusive Freitag
Ausschlu@ss{} aller Nicht-Freitage

@item @code{%l}
@cindex @code{%l} Spezialtext, inklusive Samstag
Ausschlu@ss{} aller Nicht-Samstage

@item @code{%p}
@cindex @code{%p} Spezialtext, inklusive Sonntag
Ausschlu@ss{} aller Nicht-Sonntage

@item @code{%q}
@cindex @code{%q} Spezialtext, inklusive Montag@dots{}Donnerstag
Ausschlu@ss{} aller Nicht-Montage@dots{}Donnerstage

@item @code{%r}
@cindex @code{%r} Spezialtext, inklusive Montag@dots{}Freitag
Ausschlu@ss{} aller Nicht-Montage@dots{}Freitage
@end table

@item @code{%@var{?}} Exklusive Tag Zeitraum
@cindex Exklusive Tag Zeitraum @code{%@var{?}} Spezialtexte

@table @asis
@item @code{%V}
@cindex @code{%V} Spezialtext, exklusive gesetzlicher Feiertage
Ausschlu@ss{} aller gesetzlichen Feiertage

@item @code{%X}
@cindex @code{%X} Spezialtext, exklusive aller Feiertage
Ausschlu@ss{} aller Feiertage

@item @code{%A}
@cindex @code{%A} Spezialtext, exklusive Montag
Ausschlu@ss{} aller Montage

@item @code{%C}
@cindex @code{%C} Spezialtext, exklusive Dienstag
Ausschlu@ss{} aller Dienstage

@item @code{%F}
@cindex @code{%F} Spezialtext, exklusive Mittwoch
Ausschlu@ss{} aller Mittwoche

@item @code{%G}
@cindex @code{%G} Spezialtext, exklusive Donnerstag
Ausschlu@ss{} aller Donnerstage

@item @code{%H}
@cindex @code{%H} Spezialtext, exklusive Freitag
Ausschlu@ss{} aller Freitage

@item @code{%L}
@cindex @code{%L} Spezialtext, exklusive Samstag
Ausschlu@ss{} aller Samstage

@item @code{%P}
@cindex @code{%P} Spezialtext, exklusive Sonntag
Ausschlu@ss{} aller Sonntage

@item @code{%Q}
@cindex @code{%Q} Spezialtext, exklusive Montag@dots{}Donnerstag
Ausschlu@ss{} aller Montage@dots{}Donnerstage

@item @code{%R}
@cindex @code{%R} Spezialtext, exklusive Montag@dots{}Freitag
Ausschlu@ss{} aller Montage@dots{}Freitage
@end table

@page
@item @code{%@var{?}@r{[}@var{Datum}@r{]}} Wochentagsname
@cindex Wochentagsname @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte

@table @asis
@item @code{%o@r{[}@var{Datum}@r{]}}
@cindex @code{%o@r{[}@var{Datum}@r{]}} Spezialtext, vollst@"andiger Wochentagsname
Vollst@"andiger Wochentagsname

@item @code{%O@r{[}@var{Datum}@r{]}}
@cindex @code{%O@r{[}@var{Datum}@r{]}} Spezialtext, 3-Buchstaben Wochentagsname
3-Buchstaben Wochentagsname

@item @code{%K@r{[}@var{Datum}@r{]}}
@cindex @code{%K@r{[}@var{Datum}@r{]}} Spezialtext, 2-Buchstaben Wochentagsname
2-Buchstaben Wochentagsname
@end table

@item @code{%@var{?}@r{[}@var{Datum}@r{]}} Wochentag
@cindex Wochentag @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte

@table @asis
@item @code{%S@r{[}@var{Datum}@r{]}}
@cindex @code{%S@r{[}@var{Datum}@r{]}} Spezialtext, Wochentagsnummer
Wochentagsnummer, Mon@equiv{}1@dots{}Son@equiv{}7

@item @code{%I@r{[}@var{Datum}@r{]}}
@cindex @code{%I@r{[}@var{Datum}@r{]}} Spezialtext, Wochentagsnummer
Wochentagsnummer, Mon@equiv{}1@dots{}Son@equiv{}7, Ordnungszahlanhang

@item @code{%E@r{[}@var{Datum}@r{]}}
@cindex @code{%E@r{[}@var{Datum}@r{]}} Spezialtext, Wochentagsnummer
Wochentagsnummer, Mon@equiv{}0@dots{}Son@equiv{}6

@item @code{%J@r{[}@var{Datum}@r{]}}
@cindex @code{%J@r{[}@var{Datum}@r{]}} Spezialtext, Wochentagsnummer
Wochentagsnummer, Mon@equiv{}0@dots{}Son@equiv{}6, Ordnungszahlanhang

@item @code{%(@r{[}@var{Datum}@r{]}}
@cindex @code{%(@r{[}@var{Datum}@r{]}} Spezialtext, Wochentagsnummer
Wochentagsnummer, Son@equiv{}1@dots{}Sam@equiv{}7

@item @code{%<@r{[}@var{Datum}@r{]}}
@cindex @code{%<@r{[}@var{Datum}@r{]}} Spezialtext, Wochentagsnummer
Wochentagsnummer, Son@equiv{}1@dots{}Sam@equiv{}7, Ordnungszahlanhang

@item @code{%)@r{[}@var{Datum}@r{]}}
@cindex @code{%)@r{[}@var{Datum}@r{]}} Spezialtext, Wochentagsnummer
Wochentagsnummer, Son@equiv{}0@dots{}Sam@equiv{}6, Ordnungszahlanhang

@item @code{%>@r{[}@var{Datum}@r{]}}
@cindex @code{%>@r{[}@var{Datum}@r{]}} Spezialtext, Wochentagsnummer
Wochentagsnummer, Son@equiv{}0@dots{}Sam@equiv{}6, Ordnungszahlanhang

@item @code{%[@r{[}@var{Datum}@r{]}}
@cindex @code{%[@r{[}@var{Datum}@r{]}} Spezialtext, Wochentagsnummer
Wochentagsnummer, @var{Starttag der Woche}@equiv{}1

@item @code{%@{@r{[}@var{Datum}@r{]}}
@cindex @code{%@{@r{[}@var{Datum}@r{]}} Spezialtext, Wochentagsnummer
Wochentagsnummer, @var{Starttag der Woche}@equiv{}1, Ordnungszahlanhang

@item @code{%]@r{[}@var{Datum}@r{]}}
@cindex @code{%]@r{[}@var{Datum}@r{]}} Spezialtext, Wochentagsnummer
Wochentagsnummer, @var{Starttag der Woche}@equiv{}0

@item @code{%@}@r{[}@var{Datum}@r{]}}
@cindex @code{%@}@r{[}@var{Datum}@r{]}} Spezialtext, Wochentagsnummer
Wochentagsnummer, @var{Starttag der Woche}@equiv{}0, Ordnungszahlanhang
@end table

@item @code{%@var{?}@r{[}@var{Datum}@r{]}} Tageszahl
@cindex Tageszahl @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte

@table @asis
@item @code{%+@r{[}@var{Datum}@r{]}}
@cindex @code{%+@r{[}@var{Datum}@r{]}} Spezialtext, Tageszahl
Tageszahl

@item @code{%*@r{[}@var{Datum}@r{]}}
@cindex @code{%*@r{[}@var{Datum}@r{]}} Spezialtext, Tageszahl
Tageszahl, zweiziffrig mit f@"uhrender Null

@item @code{%&@r{[}@var{Datum}@r{]}}
@cindex @code{%&@r{[}@var{Datum}@r{]}} Spezialtext, Tageszahl
Tageszahl, Ordnungszahlanhang

@item @code{%#@r{[}@var{Datum}@r{]}}
@cindex @code{%#@r{[}@var{Datum}@r{]}} Spezialtext, Tageszahl
Tageszahl, zweiziffrig mit f@"uhrender Null, Ordnungszahlanhang
@end table

@item @code{%@var{?}@r{[}@var{Datum}@r{]}} Tag
@cindex Tag @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte

@table @asis
@item @code{%D@r{[}@var{Datum}@r{]}}
@cindex @code{%D@r{[}@var{Datum}@r{]}} Spezialtext, Tag
Tag

@item @code{%N@r{[}@var{Datum}@r{]}}
@cindex @code{%N@r{[}@var{Datum}@r{]}} Spezialtext, Tag
Tag, zweiziffrig mit f@"uhrender Null

@item @code{%s@r{[}@var{Datum}@r{]}}
@cindex @code{%s@r{[}@var{Datum}@r{]}} Spezialtext, Tag
Tag, Ordnungszahlanhang

@item @code{%u@r{[}@var{Datum}@r{]}}
@cindex @code{%u@r{[}@var{Datum}@r{]}} Spezialtext, Tag
Tag, zweiziffrig mit f@"uhrender Null, Ordnungszahlanhang
@end table

@item @code{%k@r{[}@var{Datum}@r{]}}
@cindex Woche @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtext
@sc{iso}-Wochennummer

@item @code{%@var{?}@r{[}@var{Datum}@r{]}} Monatsname
@cindex Monatsname @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte

@table @asis
@item @code{%M@r{[}@var{Datum}@r{]}}
@cindex @code{%M@r{[}@var{Datum}@r{]}} Spezialtext, vollst@"andiger Monatsname
Vollst@"andiger Monatsname

@item @code{%T@r{[}@var{Datum}@r{]}}
@cindex @code{%T@r{[}@var{Datum}@r{]}} Spezialtext, 3-Buchstaben Monatsname
3-Buchstaben Monatsname
@end table

@item @code{%@var{?}@r{[}@var{Datum}@r{]}} Monat
@cindex Monat @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte

@table @asis
@item @code{%U@r{[}@var{Datum}@r{]}}
@cindex @code{%U@r{[}@var{Datum}@r{]}} Spezialtext, Monat
Monat

@item @code{%W@r{[}@var{Datum}@r{]}}
@cindex @code{%W@r{[}@var{Datum}@r{]}} Spezialtext, Monat
Monat, zweiziffrig mit f@"uhrender Null

@item @code{%z@r{[}@var{Datum}@r{]}}
@cindex @code{%z@r{[}@var{Datum}@r{]}} Spezialtext, Monat
Monat, Ordnungszahlanhang

@item @code{%Z@r{[}@var{Datum}@r{]}}
@cindex @code{%Z@r{[}@var{Datum}@r{]}} Spezialtext, Monat
Monat, zweiziffrig mit f@"uhrender Null, Ordnungszahlanhang
@end table

@item @code{%@var{?}@r{[}@var{Datum}@r{]}} Jahr
@cindex Jahr @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte

@table @asis
@item @code{%Y@r{[}@var{Datum}@r{]}}
@cindex @code{%Y@r{[}@var{Datum}@r{]}} Spezialtext, Jahr
Jahr

@item @code{%=@r{[}@var{Datum}@r{]}}
@cindex @code{%=@r{[}@var{Datum}@r{]}} Spezialtext, Jahr
Jahr, vierziffrig mit f@"uhrenden Nullen
@end table

@item @code{%@var{?}@r{[}@var{Datum}@r{]}} Mondphase
@cindex Mondphase @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte

@table @asis
@item @code{%-@r{[}@var{Datum}@r{]}}
@cindex @code{%-@r{[}@var{Datum}@r{]}} Spezialtext, Mondphasentext
Mondphasentext

@item @code{%_@r{[}@var{Datum}@r{]}}
@cindex @code{%_@r{[}@var{Datum}@r{]}} Spezialtext, Mondphasentext
Mondphasentext, dreiziffrig mit f@"uhrenden Nullen

@item @code{%:@r{[}@var{Datum}@r{]}}
@cindex @code{%:@r{[}@var{Datum}@r{]}} Spezialtext, Mondphasen-Textgrafik
Mondphasen-Textgrafik
@end table

@item @code{%@var{?}@r{[}@var{Datum}@r{]}} Biorhythmus
@cindex Biorhythmus @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte

@table @asis
@item @code{%,@r{[}@var{Datum}@r{]}}
@cindex @code{%,@r{[}@var{Datum}@r{]}} Spezialtext, Biorhythmus
Biorhythmustext (Folge von Werten)

@item @code{%;@r{[}@var{Datum}@r{]}}
@cindex @code{%;@r{[}@var{Datum}@r{]}} Spezialtext, Biorhythmus-Textgrafik
Biorhythmus-Textgrafik (Balken)
@end table

@item @code{%@var{?}@r{[}@var{Datum}@r{]}} Differenzwert
@cindex Differenzwert @code{%@var{?}@r{[}@var{Datum}@r{]}} Spezialtexte

@table @asis
@item @code{%y@var{Datum}}
@cindex @code{%y@var{Datum}} Spezialtext, relative Jahreszahl
Relative Jahreszahl

@item @code{%b@r{[}@var{Datum}@r{]}}
@cindex @code{%b@r{[}@var{Datum}@r{]}} Spezialtext, Geburtstag
Geburtstag (Alterswert)

@item @code{%B@r{[}@var{Datum}@r{]}}
@cindex @code{%B@r{[}@var{Datum}@r{]}} Spezialtext, Geburtstag
Geburtstag (Alterswert), Ordnungszahlanhang
@end table

@item @code{%t@r{[}12@r{|}24@r{]}}
@cindex Aktuelle Uhrzeit @code{%t@r{[}@var{Argument}@r{]}} Spezialtext
Aktuelle Uhrzeit

@item @code{%n@r{[[}+@r{|}-@r{]}@var{n}@r{]}}
@cindex Textliches Datum @code{%n@r{[}@var{Argument}@r{]}} Spezialtext
Textliches Datum im @samp{@var{tt}-@var{mmm}-@var{jjjj}} Format

@item @code{%j@r{[[}-@r{]}@var{n}@r{]}}
@cindex Julianische Tageszahl @code{%j@r{[}@var{Argument}@r{]}} Spezialtext
Julianische Tageszahl

@item @code{%@var{?}} Differenzwert
@cindex Differenzwert @code{%@var{?}} Spezialtexte

@table @asis
@item @code{%d}
@cindex @code{%d} Spezialtext, relative Tageszahl
Relative Tageszahl

@item @code{%w}
@cindex @code{%w} Spezialtext, relative Wochenzahl
Relative Wochenzahl

@item @code{%m}
@cindex @code{%m} Spezialtext, relative Monatszahl
Relative Monatszahl

@item @code{%y}
@cindex @code{%y} Spezialtext, relative Jahreszahl
Relative Jahreszahl
@end table

@item @code{%@var{?}} Hervorhebung
@cindex Hervorhebung @code{%@var{?}} Spezialtexte

@table @asis
@item @code{%1}
@cindex @code{%1} Spezialtext, Start-Hervorhebung 1
Start-Hervorhebung 1

@item @code{%2}
@cindex @code{%2} Spezialtext, Ende-Hervorhebung 1
Ende-Hervorhebung 1

@item @code{%3}
@cindex @code{%3} Spezialtext, Start-Hervorhebung 2
Start-Hervorhebung 2

@item @code{%4}
@cindex @code{%4} Spezialtext, Ende-Hervorhebung 2
Ende-Hervorhebung 2

@item @code{%5}
@cindex @code{%5} Spezialtext, Start-Hervorhebung 1
Start-Hervorhebung 1, falls ein Termin auf das heutige Datum f@"allt

@item @code{%6}
@cindex @code{%6} Spezialtext, Ende-Hervorhebung 1
Ende-Hervorhebung 1, falls ein Termin auf das heutige Datum f@"allt

@item @code{%7}
@cindex @code{%7} Spezialtext, Start-Hervorhebung 2
Start-Hervorhebung 2, falls ein Termin auf einen gesetzlichen Feiertag f@"allt

@item @code{%8}
@cindex @code{%8} Spezialtext, Ende-Hervorhebung 2
Ende-Hervorhebung 2, falls ein Termin auf einen gesetzlichen Feiertag f@"allt

@item @code{%9}
@cindex @code{%9} Spezialtext, Start-Hervorhebung 1 oder 2
Start-Hervorhebung 1, falls ein Termin auf das heutige Datum f@"allt, sonst
Start-Hervorhebung 2, falls ein Termin auf einen gesetzlichen Feiertag f@"allt

@item @code{%0}
@cindex @code{%0} Spezialtext, Ende-Hervorhebung 1 oder 2
Ende-Hervorhebung 1, falls ein Termin auf das heutige Datum f@"allt, sonst
Ende-Hervorhebung 2, falls ein Termin auf einen gesetzlichen Feiertag f@"allt
@end table

@item @code{%!@r{[}@var{Argument}@r{]}}
@cindex Shell Kommando @code{%!@r{[}@var{Argument}@r{]}} Spezialtext
Shell f@"uhrt @var{Argument} als Kommando aus
@end table

@node Kodierschema, Umgebungsvariablen, Spezialtexte (kurz), 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{Terminargumente}
mit welchem @emph{Datumteil} einer Zeile der Ressourcendatei korrespondieren,
d.h.@: bei Anwahl eines @emph{Terminarguments} 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{Terminargument} 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 Monatsnamen
im 3-Buchstaben 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 Wochentagsnamen im 2@dots{}3-Buchstaben Kurzformat
(Mon@dots{}Son).

@item ?
steht f@"ur jeden Einzelbuchstaben des Alphabets (Gro@ss{}- 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

@noindent
@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@@@var{?}@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}!
@sp 2

@multitable @columnfractions .35 .65
@item @strong{Datumteil}
@tab @strong{Kurzoption @samp{-c@r{|}C@r{[]}}}
@item @code{00000000}
@tab @w{@code{-c@var{n}+@r{|}-}}
@item @code{000000@var{tt}}
@tab @w{@code{-c@var{n}w@r{|}+@r{|}-},}
@w{@code{-cw@r{[}+@r{|}-@r{]}},}
@w{@code{-cm@r{[}+@r{|}-@r{]}}}
@item @code{0000@var{mm}00}
@tab @w{@code{-c@var{n}+@r{|}-}}
@item @code{0000@var{mm}@var{tt}}
@tab @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@@@var{?}@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 @code{@var{jjjj}0000}
@tab @w{@code{-c@var{n}+@r{|}-}}
@item @code{@var{jjjj}00@var{tt}}
@tab @w{@code{-c@var{n}w@r{|}+@r{|}-},}
@w{@code{-cw@r{[}+@r{|}-@r{]}},}
@w{@code{-cm@r{[}+@r{|}-@r{]}}}
@item @code{@var{jjjj}@var{mm}00}
@tab @w{@code{-c@var{n}+@r{|}-}}
@item @code{@var{jjjj}@var{mm}@var{tt}}
@tab @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@@@var{?}@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 @code{000000@var{www}@var{n}}
@tab @w{@code{-c@var{n}w@r{|}+@r{|}-},}
@w{@code{-cw@r{[}+@r{|}-@r{]}},}
@w{@code{-cm@r{[}+@r{|}-@r{]}}}
@item @code{0000@var{mm}@var{www}@var{n}}
@tab @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@@@var{?}@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 @code{@var{jjjj}00@var{www}@var{n}}
@tab @w{@code{-c@var{n}w@r{|}+@r{|}-},}
@w{@code{-cw@r{[}+@r{|}-@r{]}},}
@w{@code{-cm@r{[}+@r{|}-@r{]}}}
@item @code{@var{jjjj}@var{mm}@var{www}@var{n}}
@tab @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@@@var{?}@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 @code{0000*d@var{n}@r{[}@var{www}@r{]}}
@tab @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@@@var{?}@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 @code{@var{jjjj}*d@var{n}@r{[}@var{www}@r{]}}
@tab @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@@@var{?}@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 @code{0000*w@var{n}@r{[}@var{www}@r{]}}
@tab @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@@@var{?}@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 @code{@var{jjjj}*w@var{n}@r{[}@var{www}@r{]}}
@tab @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@@@var{?}@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 @code{0000@@@var{?}@r{[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]}}
@tab @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@@@var{?}@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 @code{@var{jjjj}@@@var{?}@r{[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]}}
@tab @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@@@var{?}@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 multitable

@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

@multitable @columnfractions .35 .65
@item @strong{Kurzoption @samp{-c@r{|}C@r{[]}}}
@tab @strong{Datumteil}
@item @code{-c}
@item @code{-ct}
@item @code{-c@var{n}d@r{|}+@r{|}-}
@item @code{-c@var{mm}@var{tt}}
@item @code{-c@var{mm}@var{www}@var{n}}
@item @code{-c*d@r{|}w@var{n}@r{[}@var{www}@r{]}}
@item @code{-c@@@var{?}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}}
@tab @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}@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 @code{-c@var{n}w}
@item @code{-cw@r{[}+@r{|}-@r{]}}
@tab @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 @code{-cm@r{[}+@r{|}-@r{]}}
@tab @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 @code{-cy@r{[}+@r{|}-@r{]}}
@item @code{-cl@var{n}d@r{|}w@r{|}+@r{|}-}
@item @code{-cl@var{mm}@var{tt}}
@item @code{-cl@var{mm}@var{www}@var{n}}
@item @code{-cl*d@r{|}w@var{n}@r{[}@var{www}@r{]}}
@item @code{-cl@@@var{?}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}}
@tab @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 multitable

@node Umgebungsvariablen, Fehlerkodes, Kodierschema, Top
@appendix Umgebungsvariablen
@cindex Umgebungsvariablen, Liste aller
@cindex Liste aller Umgebungsvariablen

@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, die 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.@: erg@"anzt, 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.  Dieses 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 MAILPROG
@cindex Umgebungsvariable, @code{MAILPROG}
@cindex @code{MAILPROG} Umgebungsvariable
@vindex MAILPROG
Der Name des Mailprogramms, das verwendet wird, wenn Postversand
gew@"unscht wird.
@xref{Globale Optionen, @samp{--mail=@var{Adresse}}, Globale Optionen: @samp{--mail=@var{Adresse}}},
f@"ur weitere Details.

@item PAGER
@cindex Umgebungsvariable, @code{PAGER}
@cindex @code{PAGER} Umgebungsvariable
@vindex PAGER
Der Name des externen Paginiererprogramms, das verwendet wird, wenn
Paginierung gew@"unscht wird.
@xref{Globale Optionen, @samp{--pager}, Globale Optionen: @samp{--pager}},
f@"ur weitere Details.

@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}, 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 versandten eMails,
erzeugten Anwortdateien und erzeugten shell script Dateien versehen wird.
@end table

@node Fehlerkodes, Argumentenindex, Umgebungsvariablen, Top
@appendix Fehlerkodes
@cindex Fehlerkodes, Tabelle aller
@cindex Tabelle aller Fehlerkodes
@cindex Exit-Kodes, Tabelle aller
@cindex Endestatus, Programm
@cindex Programmendestatus, Tabelle aller
@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@ss{}erhalb 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@ss{}gebildete @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@ss{}e einer internen Tabelle
aufgetreten.

@item 106
Ung@"ultiger Datumformattext angegeben.

@item 105
Illegale Textvariablen-Definition.

@item 104
Ung@"ultiges regul@"ar-Ausdruck Suchmuster angegeben.

@item 3
Programmabbruch durch Signal.

@item 2
@emph{Exit}-Kode ungleich Null bei Kommandoausf@"uhrung aufgetreten.

@item 1
Keine Ausgabe von Terminen obwohl Option @w{@samp{-c@r{|}C@r{[]}}},
@w{@samp{-f@r{|}F @var{Dateiname}@r{[}+@dots{}@r{]}}} oder
@w{@samp{-# @var{Zeile}}} aktiviert.

@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
Hier ist eine alphabetische Liste der Kommandozeilenargumente, die von Gcal
verarbeitet werden:
@printindex ar

@node Variablenindex, Begriffsindex, Argumentenindex, Top
@unnumbered Index von Umgebungsvariablen
@noindent
Hier 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
