diff options
Diffstat (limited to 'Master/texmf-dist/doc/generic/pgf/text-en/pgfmanual-en-pgfcalendar.tex')
-rw-r--r-- | Master/texmf-dist/doc/generic/pgf/text-en/pgfmanual-en-pgfcalendar.tex | 665 |
1 files changed, 331 insertions, 334 deletions
diff --git a/Master/texmf-dist/doc/generic/pgf/text-en/pgfmanual-en-pgfcalendar.tex b/Master/texmf-dist/doc/generic/pgf/text-en/pgfmanual-en-pgfcalendar.tex index 220955bc514..c22c2c2884a 100644 --- a/Master/texmf-dist/doc/generic/pgf/text-en/pgfmanual-en-pgfcalendar.tex +++ b/Master/texmf-dist/doc/generic/pgf/text-en/pgfmanual-en-pgfcalendar.tex @@ -14,30 +14,30 @@ This section describes the package |pgfcalendar|. \begin{package}{pgfcalendar} - This package can be used independently of \pgfname. It has two - purposes: - \begin{enumerate} - \item It provides functions for working with dates. Most noticeably, - it can convert a date in ISO-standard format (like 1975-12-26) to - a so-called Julian day number, which is defined in Wikipedia as - follows: ``The Julian day or Julian day number is the - (integer) number of days that have elapsed since the initial epoch - at noon Universal Time (UT) Monday, January 1, 4713 BC in the - proleptic Julian calendar.'' The package also provides a function - for converting a Julian day number to an ISO-format date. - - Julian day numbers make it very easy to work with days. For - example, the date ten days in the future of 2008-02-20 can - be computed by converting this date to a Julian day number, adding - 10, and then converting it back. Also, the day of week of a given - date can be computed by taking the Julian day number modulo~7. - \item It provides a macro for typesetting a calendar. This macro - is highly configurable and flexible (for example, it can produce - both plain text calendars and also complicated \tikzname-based - calendars), but most users will not use the macro directly. It is - the job of a frontend to provide useful configurations for - typesetting calendars based on this command. - \end{enumerate} + This package can be used independently of \pgfname. It has two purposes: + % + \begin{enumerate} + \item It provides functions for working with dates. Most noticeably, it + can convert a date in ISO-standard format (like 1975-12-26) to a + so-called Julian day number, which is defined in Wikipedia as + follows: ``The Julian day or Julian day number is the (integer) + number of days that have elapsed since the initial epoch at noon + Universal Time (UT) Monday, January 1, 4713 BC in the proleptic + Julian calendar''. The package also provides a function for + converting a Julian day number to an ISO-format date. + + Julian day numbers make it very easy to work with days. For + example, the date ten days in the future of 2008-02-20 can be + computed by converting this date to a Julian day number, adding 10, + and then converting it back. Also, the day of week of a given date + can be computed by taking the Julian day number modulo~7. + \item It provides a macro for typesetting a calendar. This macro is + highly configurable and flexible (for example, it can produce both + plain text calendars and also complicated \tikzname-based + calendars), but most users will not use the macro directly. It is + the job of a frontend to provide useful configurations for + typesetting calendars based on this command. + \end{enumerate} \end{package} @@ -46,191 +46,188 @@ This section describes the package |pgfcalendar|. \subsubsection{Conversions Between Date Types} \begin{command}{\pgfcalendardatetojulian\marg{date}\marg{counter}} - This macro converts a date in a format to be described in a moment - to the Julian day number in the Gregorian calendar. The \meta{date} - should expand to a string of the following form: - \begin{enumerate}\label{calendar-date-format} - \item It should start with a number representing the year. Use - |\year| for the current year, that is, the year the file is being - typeset. - \item The year must be followed by a hyphen. - \item Next should come a number representing the month. Use |\month| - for the current month. You can, but need not, use leading - zeros. For example, |02| represents February, just like |2|. - \item The month must also be followed by a hyphen. - \item Next you must either provide a day of month (again, a number - and, again, |\day| yields the current day of month) or the keyword - |last|. This keyword refers to the last day of the month, which is - automatically computed (and which is a bit tricky to compute, - especially for February). - \item Optionally, you can next provide a plus sign followed by - positive or negative number. This number of days will be added to - the computed date. - \end{enumerate} - - Here are some examples: - \begin{itemize} - \item |2006-01-01| refers to the first day of 2006. - \item |2006-02-last| refers to February 28, 2006. - \item |\year-\month-\day| refers to today. - \item |2006-01-01+2| refers to January 3, 2006. - \item |\year-\month-\day+1| refers to tomorrow. - \item |\year-\month-\day+-1| refers to yesterday. - \end{itemize} - - The conversion method is taken from the English Wikipedia entry on - Julian days. - - \newcount\mycount - \example |\pgfcalendardatetojulian{2007-01-14}{\mycount}| sets - |\mycount| to - \pgfcalendardatetojulian{2007-01-14}{\mycount}\the\mycount. + This macro converts a date in a format to be described in a moment to the + Julian day number in the Gregorian calendar. The \meta{date} should expand + to a string of the following form: + % + \begin{enumerate} + \label{calendar-date-format} + \item It should start with a number representing the year. Use |\year| + for the current year, that is, the year the file is being typeset. + \item The year must be followed by a hyphen. + \item Next should come a number representing the month. Use |\month| + for the current month. You can, but need not, use leading zeros. + For example, |02| represents February, just like |2|. + \item The month must also be followed by a hyphen. + \item Next you must either provide a day of month (again, a number and, + again, |\day| yields the current day of month) or the keyword + |last|. This keyword refers to the last day of the month, which is + automatically computed (and which is a bit tricky to compute, + especially for February). + \item Optionally, you can next provide a plus sign followed by positive + or negative number. This number of days will be added to the + computed date. + \end{enumerate} + + Here are some examples: + % + \begin{itemize} + \item |2006-01-01| refers to the first day of 2006. + \item |2006-02-last| refers to February 28, 2006. + \item |\year-\month-\day| refers to today. + \item |2006-01-01+2| refers to January 3, 2006. + \item |\year-\month-\day+1| refers to tomorrow. + \item |\year-\month-\day+-1| refers to yesterday. + \end{itemize} + + The conversion method is taken from the English Wikipedia entry on Julian + days. + + \newcount\mycount + \example |\pgfcalendardatetojulian{2007-01-14}{\mycount}| sets + |\mycount| to + \pgfcalendardatetojulian{2007-01-14}{\mycount}\the\mycount. +\end{command} +\begin{command}{\pgfcalendarjuliantodate\marg{Julian day}\marg{year macro}\marg{month macro}\marg{day macro}} + This command converts a Julian day number to an ISO-date. The \meta{Julian + day} must be a number or \TeX\ counter, the \meta{year macro}, \meta{month + macro} and \meta{day macro} must be \TeX\ macro names. They will be set to + numbers representing the year, month, and day of the given Julian day in + the Gregorian calendar. -\end{command} + The \meta{year macro} will be assigned the year without leading zeros. Note + that this macro will produce year 0 (as opposed to other calendars, where + year 0 does not exist). However, if you really need calendars for before + the year 1, it is expected that you know what you are doing anyway. + + The \meta{month macro} gets assigned a two-digit number representing the + month (with a leading zero, if necessary). Thus, the macro is set to |01| + for January. -\begin{command}{\pgfcalendarjuliantodate\marg{Julian day}\marg{year - macro}\marg{month macro}\marg{day macro}} - This command converts a Julian day number to an ISO-date. The - \meta{Julian day} must be a number or \TeX\ counter, the \meta{year macro}, - \meta{month macro} and \meta{day macro} must be \TeX\ macro - names. They will be set to numbers representing the year, month, and - day of the given Julian day in the Gregorian calendar. - - The \meta{year macro} will be assigned the year without leading - zeros. Note that this macro will produce year 0 (as opposed to other - calendars, where year 0 does not exist). However, if you really need - calendars for before the year 1, it is expected that you know what - you are doing anyway. - - The \meta{month macro} gets assigned a two-digit number representing - the month (with a leading zero, if necessary). Thus, the macro is - set to |01| for January. - - The \meta{day macro} gets assigned a two-digit number representing - the day of the month (again, possibly with a leading zero). - - To convert a Julian day number to an ISO-date you use code like the - following: + The \meta{day macro} gets assigned a two-digit number representing the day + of the month (again, possibly with a leading zero). + + To convert a Julian day number to an ISO-date you use code like the + following: + % \begin{verbatim} \pgfcalendardatetojulian{2454115}{\myyear}{\mymonth}{\myday} \edef\isodate{\myyear-\mymonth-\myday} \end{verbatim} - The above code sets |\isodate| to - \pgfcalendarjuliantodate{2454115}{\myyear}{\mymonth}{\myday}% - \edef\isodate{\myyear-\mymonth-\myday}\texttt{\isodate}. + % + The above code sets |\isodate| to + \pgfcalendarjuliantodate{2454115}{\myyear}{\mymonth}{\myday}% + \edef\isodate{\myyear-\mymonth-\myday}\texttt{\isodate}. \end{command} - \begin{command}{\pgfcalendarjuliantoweekday\marg{Julian day}\marg{week day counter}} - This command converts a Julian day to a week day by computing the - day modulo 7. The \meta{week day counter} must be a \TeX\ - counter. It will be set to 0 for a Monday, to 1 for a Tuesday, and - so on. - - \example |\pgfcalendarjuliantoweekday{2454115}{\mycount}| sets - |\mycount| to - \pgfcalendarjuliantoweekday{2454115}{\mycount}\the\mycount\ (it was a Sunday). + This command converts a Julian day to a week day by computing the day + modulo 7. The \meta{week day counter} must be a \TeX\ counter. It will be + set to 0 for a Monday, to 1 for a Tuesday, and so on. + + \example |\pgfcalendarjuliantoweekday{2454115}{\mycount}| sets + |\mycount| to + \pgfcalendarjuliantoweekday{2454115}{\mycount}\the\mycount\ (it was a Sunday). \end{command} \subsubsection{Checking Dates} - \begin{command}{\pgfcalendarifdate\marg{date}\marg{tests}\marg{code}\marg{else code}} - \label{pgfcalendarifdate} - This command is used to execute code based on properties of - \meta{date}. The \meta{date} must be a date in ISO-format. For - this date, the \meta{tests} are checked (to be detailed later) - and if one of the tests succeeds, the \meta{code} is - executed. If none of the tests succeeds, the \meta{else code} is - executed. - - \example |\pgfcalendarifdate{2007-02-07}{Wednesday}{Is a Wednesday}{Is not a Wednesday}| - yields \texttt{\pgfcalendarifdate{2007-02-07}{Wednesday}{Is a - Wednesday}{Is not a Wednesday}}. - - The \meta{tests} is a comma-separated list of key-value - pairs. The following are defined by default: - \begin{itemize} - \itemcalendaroption{all} This test is passed by all dates. - \itemcalendaroption{Monday} This test is passed by all dates that - are Mondays. - \itemcalendaroption{Tuesday} as above. - \itemcalendaroption{Wednesday} as above. - \itemcalendaroption{Thursday} as above. - \itemcalendaroption{Friday} as above. - \itemcalendaroption{Saturday} as above. - \itemcalendaroption{Sunday} as above. - \itemcalendaroption{workday} Passed by Mondays, Tuesdays, - Wednesdays, Thursdays, and Fridays. - \itemcalendaroption{weekend} Passed by Saturdays and Sundays. - \itemcalendaroption{equals}|=|\meta{reference} The \meta{reference} - can be in one of two forms: Either, it is a full ISO format date - like |2007-01-01| or the year may be missing as in |12-31|. In the - first case, the test is passed if \meta{date} is the same as - \meta{reference}. In the second case, the test is passed if the - month and day part of \meta{date} is the same as \meta{reference}. - - For example, the test |equals=2007-01-10| will only be passed by this - particular date. The test |equals=05-01| will be passed by every first - of May on any year. - \itemcalendaroption{at least}|=|\meta{reference} This test works - similarly to the |equals| test, only it is checked whether - \meta{date} is equal to \meta{reference} or to any later - date. Again, the \meta{reference} can be a full date like - |2007-01-01| or a short version like |07-01|. For example, - |at least=07-01| is true for every day in the second half of any - year. - \itemcalendaroption{at most}|=|\meta{reference} as above. - \itemcalendaroption{between}|=|\meta{start reference}| and |\meta{end - reference} This test checks whether the current date lies between - the two given reference dates. Both full and short version may be - given. - - For example |between=2007-01-01 and 2007-02-28| is true for the days - in January and February of 2007. - - For another example, |between=05-01 and 05-07| is true for the - days of the first week of May of any year. - \itemcalendaroption{day of month}|=|\meta{number} Passed by the day - of month of the \meta{date} that is \meta{number}. For example, the test - |day of month=1| is passed by every first of every month. - \itemcalendaroption{end of month}\opt{|=|\meta{number}} Passed by - the day of month of the \meta{date} that is \meta{number} from the - end of the month. For example, the test |end of month=1| is passed - by the last day of every month, the test |end of month=2| is passed - by the second last day of every month. If \meta{number} is omitted, - it is assumed to be |1|. - \end{itemize} - - In addition to the above checks, you can also define new checks. To - do so, you must add a new key to the path |/pgf/calendar/| using - the |\pgfkeys| command. The job of the - code of this new key is to possibly set the \TeX-if |\ifpgfcalendarmatches| to true (if it is - already true, no action should be taken) to indicate that the - \meta{date} passes the test setup by this new key. - - In order to perform the test, the key code needs to know the date - that should be checked. The date is available through a macro, but a - whole bunch of additional information about this date is also - available through the following macros: - \begin{itemize} - \item |\pgfcalendarifdatejulian| - is the Julian day number of the \meta{date} to be checked. - \item |\pgfcalendarifdateweekday| - is the weekday of the \meta{date} to be checked. - \item |\pgfcalendarifdateyear| - is the year of the \meta{date} to be checked. - \item |\pgfcalendarifdatemonth| - is the month of the \meta{date} to be checked. - \item |\pgfcalendarifdateday| - is the day of month of the \meta{date} to be checked. - \end{itemize} - - For example, let us define a new key that checks whether the - \meta{date} is a Workers day (May 1st). This can be done as - follows: +\label{pgfcalendarifdate} + This command is used to execute code based on properties of \meta{date}. + The \meta{date} must be a date in ISO-format. For this date, the + \meta{tests} are checked (to be detailed later) and if one of the tests + succeeds, the \meta{code} is executed. If none of the tests succeeds, the + \meta{else code} is executed. + + \example |\pgfcalendarifdate{2007-02-07}{Wednesday}{Is a Wednesday}{Is not a Wednesday}| + yields \texttt{\pgfcalendarifdate{2007-02-07}{Wednesday}{Is a Wednesday}{Is + not a Wednesday}}. + + The \meta{tests} is a comma-separated list of key--value pairs. The + following are defined by default: + % + \begin{itemize} + \itemcalendaroption{all} This test is passed by all dates. + \itemcalendaroption{Monday} This test is passed by all dates that are + Mondays. + \itemcalendaroption{Tuesday} as above. + \itemcalendaroption{Wednesday} as above. + \itemcalendaroption{Thursday} as above. + \itemcalendaroption{Friday} as above. + \itemcalendaroption{Saturday} as above. + \itemcalendaroption{Sunday} as above. + \itemcalendaroption{workday} Passed by Mondays, Tuesdays, Wednesdays, + Thursdays, and Fridays. \itemcalendaroption{weekend} Passed by + Saturdays and Sundays. + \itemcalendaroption{equals}|=|\meta{reference} The \meta{reference} + can be in one of two forms: Either, it is a full ISO format date + like |2007-01-01| or the year may be missing as in |12-31|. In the + first case, the test is passed if \meta{date} is the same as + \meta{reference}. In the second case, the test is passed if the + month and day part of \meta{date} is the same as \meta{reference}. + + For example, the test |equals=2007-01-10| will only be passed by + this particular date. The test |equals=05-01| will be passed by + every first of May on any year. + \itemcalendaroption{at least}|=|\meta{reference} This test works + similarly to the |equals| test, only it is checked whether + \meta{date} is equal to \meta{reference} or to any later date. + Again, the \meta{reference} can be a full date like |2007-01-01| or + a short version like |07-01|. For example, |at least=07-01| is true + for every day in the second half of any year. + \itemcalendaroption{at most}|=|\meta{reference} as above. + \itemcalendaroption{between}|=|\meta{start reference}| and |\meta{end + reference} This test checks whether the current date lies between + the two given reference dates. Both full and short version may be + given. + + For example |between=2007-01-01 and 2007-02-28| is true for the + days in January and February of 2007. + + For another example, |between=05-01 and 05-07| is true for the days + of the first week of May of any year. + \itemcalendaroption{day of month}|=|\meta{number} Passed by the day of + month of the \meta{date} that is \meta{number}. For example, the + test |day of month=1| is passed by every first of every month. + \itemcalendaroption{end of month}\opt{|=|\meta{number}} Passed by the + day of month of the \meta{date} that is \meta{number} from the end + of the month. For example, the test |end of month=1| is passed by + the last day of every month, the test |end of month=2| is passed by + the second last day of every month. If \meta{number} is omitted, it + is assumed to be |1|. + \end{itemize} + + In addition to the above checks, you can also define new checks. To do so, + you must add a new key to the path |/pgf/calendar/| using the |\pgfkeys| + command. The job of the code of this new key is to possibly set the \TeX-if + |\ifpgfcalendarmatches| to true (if it is already true, no action should be + taken) to indicate that the \meta{date} passes the test setup by this new + key. + + In order to perform the test, the key code needs to know the date that + should be checked. The date is available through a macro, but a whole bunch + of additional information about this date is also available through the + following macros: + % + \begin{itemize} + \item |\pgfcalendarifdatejulian| is the Julian day number of the + \meta{date} to be checked. + \item |\pgfcalendarifdateweekday| is the weekday of the \meta{date} to + be checked. + \item |\pgfcalendarifdateyear| is the year of the \meta{date} to be + checked. + \item |\pgfcalendarifdatemonth| is the month of the \meta{date} to be + checked. + \item |\pgfcalendarifdateday| is the day of month of the \meta{date} to + be checked. + \end{itemize} + + For example, let us define a new key that checks whether the \meta{date} is + a Workers day (May 1st). This can be done as follows: + % \begin{verbatim} \pgfkeys{/pgf/calendar/workers day/.code=% { @@ -241,144 +238,137 @@ This section describes the package |pgfcalendar|. \fi }} \end{verbatim} + % \end{command} \subsubsection{Typesetting Dates} - - - \begin{command}{\pgfcalendarweekdayname\marg{week day number}} - This command expands to a textual representation of the day of week, - given by the \meta{week day number}. Thus, - |\pgfcalendarweekdayname{0}| expands to |Monday| if the current - language is English and to |Montag| if the current language is - German, and so on. See Section~\ref{section-calendar-locale} for - more details on translations. - - \example |\pgfcalendarweekdayname{2}| yields - \texttt{\pgfcalendarweekdayname{2}}. + This command expands to a textual representation of the day of week, given + by the \meta{week day number}. Thus, |\pgfcalendarweekdayname{0}| expands + to |Monday| if the current language is English and to |Montag| if the + current language is German, and so on. See + Section~\ref{section-calendar-locale} for more details on translations. + + \example |\pgfcalendarweekdayname{2}| yields + \texttt{\pgfcalendarweekdayname{2}}. \end{command} - \begin{command}{\pgfcalendarweekdayshortname\marg{week day number}} - This command works similarly to the previous command, only an - abbreviated version of the week day is produced. + This command works similarly to the previous command, only an abbreviated + version of the week day is produced. - \example |\pgfcalendarweekdayshortname{2}| yields - \texttt{\pgfcalendarweekdayshortname{2}}. + \example |\pgfcalendarweekdayshortname{2}| yields + \texttt{\pgfcalendarweekdayshortname{2}}. \end{command} - \begin{command}{\pgfcalendarmonthname\marg{month number}} - This command expands to a textual representation of the month, which - is given by the \meta{month number}. + This command expands to a textual representation of the month, which is + given by the \meta{month number}. - \example |\pgfcalendarmonthname{12}| yields - \texttt{\pgfcalendarmonthname{12}}. + \example |\pgfcalendarmonthname{12}| yields + \texttt{\pgfcalendarmonthname{12}}. \end{command} - \begin{command}{\pgfcalendarmonthshortname\marg{month number}} - As above, only an abbreviated version is produced. + As above, only an abbreviated version is produced. - \example |\pgfcalendarmonthshortname{12}| yields - \texttt{\pgfcalendarmonthshortname{12}}. + \example |\pgfcalendarmonthshortname{12}| yields + \texttt{\pgfcalendarmonthshortname{12}}. \end{command} - \subsubsection{Localization} - \label{section-calendar-locale} -All textual representations of week days or months (like ``Monday'' or -``February'') are wrapped with |\translate| commands from the -|translator| package (it this package is not loaded, no translation -takes place). Furthermore, the |pgfcalendar| package will try to load -the |translator-months-dictionary|, if the |translator| package is -loaded. -The net effect of all this is that all dates will be translated to the -current language setup in the |translator| package. See the -documentation of this package for more details. +All textual representations of week days or months (like ``Monday'' or +``February'') are wrapped with |\translate| commands from the |translator| +package (it this package is not loaded, no translation takes place). +Furthermore, the |pgfcalendar| package will try to load the +|translator-months-dictionary|, if the |translator| package is loaded. +The net effect of all this is that all dates will be translated to the current +language setup in the |translator| package. See the documentation of this +package for more details. \subsection{Typesetting Calendars} -\begin{command}{\pgfcalendar\marg{prefix}\marg{start date}\marg{end - date}\marg{rendering code}} - This command can be used to typeset a calendar. It is a very general - command, the actual work has to be done by giving clever - implementations of \meta{rendering code}. Note that this macro need - \emph{not} be called inside a |{pgfpicture}| environment (even - though it typically will be) and you can use it to typeset calendars - in normal \TeX\ or using packages other than \pgfname. - - \medskip - \textbf{Basic typesetting process.} - A calendar is typeset as follows: The \meta{start date} and - \meta{end date} specify a range of dates. For each date in this - range the \meta{rendering code} is executed with certain macros - setup to yield information about the \emph{current date} - (the current date in the enumeration of dates of the - range). Typically, the \meta{rendering code} places nodes inside a - picture, but it can do other things as well. Note that it is also - the job of the \meta{rendering code} to position the calendar - correctly. - - The different calls of the \meta{rending code} are not - surrounded by \TeX\ groups (though you can do so yourself, of - course). This means that settings can accumulate between different - calls, which is often desirable and useful. - - \medskip - \textbf{Information about the current date.} - Inside the \meta{rendering code}, different macros can be access: - - \begin{itemize} - \item |\pgfcalendarprefix| - The \meta{prefix} parameter. This prefix is recommended for nodes - inside the calendar, but you have to use it yourself explicitly. - \item |\pgfcalendarbeginiso| - The \meta{start date} of range being typeset in ISO format (like 2006-01-10). - \item |\pgfcalendarbeginjulian| - Julian day number of \meta{start date}. - \item |\pgfcalendarendiso| - The \meta{end date} of range being typeset in ISO format. - \item |\pgfcalendarendjulian| - Julian day number of \meta{end date}. - \item |\pgfcalendarcurrentjulian| This \TeX\ count holds the - Julian day number of the day currently being rendered. - \item |\pgfcalendarcurrentweekday| The weekday - (a number with zero representing Monday) of the current date. - \item |\pgfcalendarcurrentyear| The year of the current date. - \item |\pgfcalendarcurrentmonth| The month of the current date - (always two digits with a leading zero, if necessary). - \item |\pgfcalendarcurrentday| The day of month of the current date - (always two digits). - \end{itemize} - - \medskip - {\bfseries The |\ifdate| command.} - Inside the |\pgfcalendar| the macro |\ifdate| is available - locally: - \begin{command}{\ifdate\marg{tests}\marg{code}\marg{else code}} +\begin{command}{\pgfcalendar\marg{prefix}\marg{start date}\marg{end date}\marg{rendering code}} + This command can be used to typeset a calendar. It is a very general + command, the actual work has to be done by giving clever implementations of + \meta{rendering code}. Note that this macro need \emph{not} be called + inside a |{pgfpicture}| environment (even though it typically will be) and + you can use it to typeset calendars in normal \TeX\ or using packages other + than \pgfname. + + + \medskip + \textbf{Basic typesetting process.} + A calendar is typeset as follows: The \meta{start date} and \meta{end date} + specify a range of dates. For each date in this range the \meta{rendering + code} is executed with certain macros setup to yield information about the + \emph{current date} (the current date in the enumeration of dates of the + range). Typically, the \meta{rendering code} places nodes inside a picture, + but it can do other things as well. Note that it is also the job of the + \meta{rendering code} to position the calendar correctly. + + The different calls of the \meta{rending code} are not surrounded by \TeX\ + groups (though you can do so yourself, of course). This means that settings + can accumulate between different calls, which is often desirable and + useful. + + + \medskip + \textbf{Information about the current date.} + Inside the \meta{rendering code}, different macros can be access: + % + \begin{itemize} + \item |\pgfcalendarprefix| The \meta{prefix} parameter. This prefix is + recommended for nodes inside the calendar, but you have to use it + yourself explicitly. + \item |\pgfcalendarbeginiso| The \meta{start date} of range being + typeset in ISO format (like 2006-01-10). + \item |\pgfcalendarbeginjulian| Julian day number of \meta{start date}. + \item |\pgfcalendarendiso| The \meta{end date} of range being typeset + in ISO format. + \item |\pgfcalendarendjulian| Julian day number of \meta{end date}. + \item |\pgfcalendarcurrentjulian| This \TeX\ count holds the Julian day + number of the day currently being rendered. + \item |\pgfcalendarcurrentweekday| The weekday (a number with zero + representing Monday) of the current date. + \item |\pgfcalendarcurrentyear| The year of the current date. + \item |\pgfcalendarcurrentmonth| The month of the current date (always + two digits with a leading zero, if necessary). + \item |\pgfcalendarcurrentday| The day of month of the current date + (always two digits). + \end{itemize} + + + \medskip + {\bfseries The |\ifdate| command.} + Inside the |\pgfcalendar| the macro |\ifdate| is available locally: + % + \begin{command}{\ifdate\marg{tests}\marg{code}\marg{else code}} \label{ifdate}% - This command has the same effect as calling |\pgfcalendarifdate| - for the current date. - \end{command} - - \medskip - \textbf{Examples.} - In a first example, let us create a very simple calendar: It just - lists the dates in a certain range. + This command has the same effect as calling |\pgfcalendarifdate| + for the current date. + \end{command} + + + \medskip + \textbf{Examples.} + In a first example, let us create a very simple calendar: It just lists the + dates in a certain range. + % \begin{codeexample}[vbox,ignorespaces] \pgfcalendar{cal}{2007-01-20}{2007-02-10}{\pgfcalendarcurrentday\ } \end{codeexample} - Let us now make this a little more interesting: Let us add a line - break after each Sunday. + % + Let us now make this a little more interesting: Let us add a line break + after each Sunday. + % \begin{codeexample}[vbox,ignorespaces] \pgfcalendar{cal}{2007-01-20}{2007-02-10} { @@ -386,9 +376,11 @@ documentation of this package for more details. \ifdate{Sunday}{\par}{} } \end{codeexample} - We now want to have all Mondays to be aligned on a column. For this, - different approaches work. Here is one based positioning each day - horizontally using a skip. + % + We now want to have all Mondays to be aligned on a column. For this, + different approaches work. Here is one based positioning each day + horizontally using a skip. + % \begin{codeexample}[vbox,ignorespaces] \pgfcalendar{cal}{2007-01-20}{2007-02-10} {% @@ -397,7 +389,9 @@ documentation of this package for more details. \ifdate{Sunday}{\par}{}% } \end{codeexample} - Let us now typeset two complete months. + % + Let us now typeset two complete months. + % \begin{codeexample}[vbox,ignorespaces] \pgfcalendar{cal}{2007-01-01}{2007-02-28}{% \ifdate{day of month=1}{ @@ -414,7 +408,9 @@ documentation of this package for more details. \ifdate{Sunday}{\par}{}% } \end{codeexample} - For our final example, we use a |{tikzpicture}|. + % + For our final example, we use a |{tikzpicture}|. + % \begin{codeexample}[vbox,ignorespaces] \begin{tikzpicture} \pgfcalendar{cal}{2007-01-20}{2007-02-10}{% @@ -428,46 +424,47 @@ documentation of this package for more details. \draw (cal-2007-01-21) -- (cal-2007-02-03); \end{tikzpicture} \end{codeexample} + % \end{command} - \begin{command}{\pgfcalendarshorthand\marg{kind}\marg{representation}} - \label{pgfcalendarshorthand} - This command can be used inside a |\pgfcalendar|, where it will - expand to a representation of the current day, month, year or day of - week, depending on whether \meta{kind} is |d|, |m|, |y| or |w|. The - \meta{representation} can be one of the following: |-|, |=|, |0|, - |.|, and |t|. They have the following meanings: - \begin{itemize} - \item The minus sign selects the shortest numerical representation - possible (no leading zeros). - \item The equal sign also selects the shortest numerical - representation, but a space is added to single digit days and - months (thereby ensuring that they have the same length as other - days). - \item The zero digit selects a two-digit numerical representation - for days and months. For years it is allowed, but has no effect. - \item The letter |t| selects a textual representation. - \item The dot selects an abbreviated textual representation. - \end{itemize} - Normally, you should say |\let\%=\pgfcalendarshorthand| locally, so - that you can write |\%wt| instead of the much more cumbersome - |\pgfcalendarshorthand{w}{t}|. - +\label{pgfcalendarshorthand} + This command can be used inside a |\pgfcalendar|, where it will expand to a + representation of the current day, month, year or day of week, depending on + whether \meta{kind} is |d|, |m|, |y| or |w|. The \meta{representation} can + be one of the following: |-|, |=|, |0|, |.|, and |t|. They have the + following meanings: + % + \begin{itemize} + \item The minus sign selects the shortest numerical representation + possible (no leading zeros). + \item The equal sign also selects the shortest numerical + representation, but a space is added to single digit days and + months (thereby ensuring that they have the same length as other + days). + \item The zero digit selects a two-digit numerical representation for + days and months. For years it is allowed, but has no effect. + \item The letter |t| selects a textual representation. + \item The dot selects an abbreviated textual representation. + \end{itemize} + % + Normally, you should say |\let\%=\pgfcalendarshorthand| locally, so that + you can write |\%wt| instead of the much more cumbersome + |\pgfcalendarshorthand{w}{t}|. + % \begin{codeexample}[leave comments] \let\%=\pgfcalendarshorthand \pgfcalendar{cal}{2007-01-20}{2007-01-20} { ISO form: \%y0-\%m0-\%d0, long form: \%wt, \%mt \%d-, \%y0} \end{codeexample} + % \end{command} - \begin{command}{\pgfcalendarsuggestedname} - This macro expands to a suggested name for nodes representing days - in a calendar. If the \meta{prefix} is empty, it expands to the - empty string, otherwise it expands to the \meta{prefix} of the - calendar, followed by a hyphen, followed by the ISO format version - of the date. Thus, when the date |2007-01-01| is typeset in a - calendar for the prefix |mycal|, the macro expands to - |mycal-2007-01-01|. + This macro expands to a suggested name for nodes representing days in a + calendar. If the \meta{prefix} is empty, it expands to the empty string, + otherwise it expands to the \meta{prefix} of the calendar, followed by a + hyphen, followed by the ISO format version of the date. Thus, when the date + |2007-01-01| is typeset in a calendar for the prefix |mycal|, the macro + expands to |mycal-2007-01-01|. \end{command} |