diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/calendar/evntlist.dtx |
Initial commit
Diffstat (limited to 'macros/latex/contrib/calendar/evntlist.dtx')
-rw-r--r-- | macros/latex/contrib/calendar/evntlist.dtx | 284 |
1 files changed, 284 insertions, 0 deletions
diff --git a/macros/latex/contrib/calendar/evntlist.dtx b/macros/latex/contrib/calendar/evntlist.dtx new file mode 100644 index 0000000000..f2412966ce --- /dev/null +++ b/macros/latex/contrib/calendar/evntlist.dtx @@ -0,0 +1,284 @@ +%\iffalse +% +% file: evntlist.dtx +% Copyright (C) 1996-1997 by Frank Bennett. All rights reserved. +% +% IMPORTANT NOTICE: +% +% You are not allowed to change this file. You may however copy +% this file to a file with a different name and then change the +% copy if (a) you do not charge for the modified code, (b) you +% acknowledge the author of this file in the new file, if it +% is distributed to others, and (c) you attach these same +% conditions to the new file. +% +% You are not allowed to distribute this file alone. You are not +% allowed to take money for the distribution or use of this file +% (or a changed version) except for a nominal charge for copying +% etc. +% +% You are allowed to distribute this file under the condition that +% it is distributed with all of its contents, intact. +% +% For error reports, or offers to help make this a more powerful, +% friendlier, and altogether more thrilling package, please contact me on +% fb@soas.ac.uk. Better yet, make a contribution to +% my pension. Account details available on request. +% +%\fi +% +% \def\fileversion{2.2} +% \def\filedate{1997/11/07 10:44:05} +% +% \iffalse +% +%<*driver> +\documentclass{ltxdoc} +%\CodelineIndex +%\EnableCrossrefs +\begin{document} +\OnlyDescription % Comment out for implementation details +\DocInput{evntlist.dtx} +\end{document} +%</driver> +%\fi +% +%\iffalse +% evntlist.dtx,v +% Revision 3.1.1.1 1998/01/17 18:14:57 root +% Release code, checksum verified +% +% Revision 3.1 1998/01/17 17:12:58 root +% Release code +% +% Revision 1.3 1998/01/16 17:46:34 root +% *** empty log message *** +% +% Revision 1.2 1998/01/15 23:39:20 root +% *** empty log message *** +% +% Revision 1.1 1997/11/26 07:20:12 bennett +% Initial revision +% +%\fi +% +% \title{User's Guide to the Event List +% package\thanks{This file is version number +% \fileversion{}. It was last revised on +% \filedate{}.}} +% +% \author{Frank G. Bennett, Jr.} +% +% \maketitle +% +% \setcounter{StandardModuleDepth}{1} +% \DeleteShortVerb{\|} +% \MakeShortVerb{\"} +% +% \begin{abstract} +% \noindent This package makes a cronological list +% of events. +% \end{abstract} +% +% \CheckSum{133} +% +% Please see the file \texttt{calguide.tex} for details on the +% use of this package. +% +% \StopEventually{\PrintIndex} +% +% \section{The Class File} +% +% \subsection{Preliminaries} +% Use \LaTeXe, and tell the user who we are. +% \begin{macrocode} +%<*style> +\NeedsTeXFormat{LaTeX2e}[1995/06/01] +\ProvidesPackage{evntlist} + [1997/11/07 10:44:05 2.2 Event List (Frank Bennett)] +% \end{macrocode} +% Define some more variables and switches for use in the body +% of the style. +% +% \subsection{Options} +% +% In common with all other packages in the Calendar +% bundle, we +% include some code for declaring languages. +% +% \begin{macrocode} +\input calopts.cfg +\InputIfFileExists{dates.cfg}{}{} +\ProcessOptions +% \end{macrocode} +% +% \subsection{Option Postprocessing} +% +% Now that the options lists are available to us, +% we can start loading packages. The following packages +% are always loaded. +% \begin{macrocode} +\RequirePackage{calendar} +% \end{macrocode} +% The "color" package is only loaded if the user asked +% for it as an option to \sc{documentclass}, or in the +% "weekly.cfg" file. +% \begin{macrocode} + \newif\if@el@noheadyet + \@el@noheadyettrue + \def\el@output#1{\protected@write\@el@outputfile{}{#1}} + \def\el@maybeheader{\if@el@noheadyet% + \begin{itemize}\item\theday\space\themonth\space\theyear\@el@noheadyetfalse\fi} + \def\el@maybeitem{\if@el@noheadyet\else\item\theday\space\themonth\space\theyear% + \fi} +% \end{macrocode} +% +% \subsection{Calendar Setup} +% +% \subsection{Calendar Definition} +% +% The calendar definition itself consists of a single command +% and its associated arguments. +% \begin{macrocode} +\newcalendar% +% \end{macrocode} +% We give the environment a name. +% \begin{macrocode} +{eventlist} +% \end{macrocode} +% We're producing DVI, so we use the standard +% macro for dropping text into the hopper. +% \begin{macrocode} +{\cal@insert} +% \end{macrocode} +% Starting day for the calendar is not fixed here, +% because we don't pad with blank entries. Season to taste. +% Use integers "0" through "6". A value over 7 means no padding. +% \begin{macrocode} +{8} +% \end{macrocode} +% The length of a group is one day. +% \begin{macrocode} +{1} +% \end{macrocode} +% The length of a subgroup is one day. +% \begin{macrocode} +{1} +% \end{macrocode} +% Our delimiter is an \cs{item}. +% \begin{macrocode} +{\relax} +% \end{macrocode} +% Increment the date counter with every item. +% \begin{macrocode} +{I} +% \end{macrocode} +% Define the header. +% \begin{macrocode} +{\relax} +% \end{macrocode} +% We define the end of the calendar. This spits out +% all of the boxes one last time, and closes the page +% formatting environment. +% \begin{macrocode} +{\end{itemize}} +% \end{macrocode} +% We define a way to open a new group. In this case, +% we just relax. +% \begin{macrocode} +{\relax} +% \end{macrocode} +% We define the way to end a subgroup. This spits out +% all of the boxes built for a page of text. +% \begin{macrocode} +{\relax} +% \end{macrocode} +% We set up to require a month and day in the environment typed +% into the user's document. +% \begin{macrocode} +{\dates@requiremonthtrue\dates@requiredaytrue} +% \end{macrocode} +% The next section runs after the calendar dates have been +% scanned from the environment, but before the table is +% opened. +% \textit{Start date.} +% \begin{macrocode} +{\global\dates@date\cal@range@start% + \caldate% +% \end{macrocode} +% \textit{We tell the user where we're starting.} +% \begin{macrocode} + \message{^^JStart: \theshortweekday\space% + \theday\space\theshortmonth\space\theyear}% +% \end{macrocode} +% \textit{End date.} +% \begin{macrocode} + \global\dates@date\cal@range@end% + \caldate% +% \end{macrocode} +% \textit{We let the user know where we plan to stop.} +% \begin{macrocode} + \message{^^JEnd: \theshortweekday\space% + \theday\space\theshortmonth\space\theyear}% +% \end{macrocode} +% \textit{We jump back to the starting date and reset the +% human-side values.} +% \begin{macrocode} + \global\dates@date\cal@range@start% + \caldate}% +% \end{macrocode} +% Events are delimited by \cs{item}. +% \begin{macrocode} +{\item}% +% \end{macrocode} +% The next argument is dropped on DVI for each item. +% We use it here to fetch the text of appointments and +% events to the standard list macros, using the +% standard text-fetching commands. Each generates a +% stack delimited by the phrase that was set above. +% \begin{macrocode} +{\cal@get@appointments\cal@get@events}% +% \end{macrocode} +% This sets \cs{cal@entry@text}. It is executed for every +% event or appointment in the database that applies +% to a given item. We differentiate between whole-day events, +% pinpointed events and ranged events. +% \begin{macrocode} +{\relax% + \ifnum\dates@time@start>0\relax% + \ifnum\dates@time@start=\dates@time@end% + \protected@edef\cal@entry@text{% + \thetimestart\space% + \cal@textcolor{\calcolor}{\thelongtext}}% + \else% + \protected@edef\cal@entry@text{% + \thetimestart--\thetimeend\space% + \cal@textcolor{\calcolor}{\thelongtext}}% + \fi% + \else% + \protected@edef\cal@entry@text{% + \cal@textcolor{\calcolor}{\thelongtext}}% + \fi}% +% \end{macrocode} +% Finally ... +% \begin{macrocode} +{\ifcat$\theevents\theappointments$\else% +\el@maybeitem% +\el@maybeheader% +\fi% +\bgroup% +\let\item\par% +\ifcat$\theevents$\else% + \par% + \theevents% +\fi% +\egroup% +\ifcat$\theappointments$\else% +\begin{itemize}% +\item% +\theappointments% +\end{itemize}% +\fi} +%</style> +% \end{macrocode} +% \Finale \PrintChanges |