summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/termcal/termcal.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/termcal/termcal.sty')
-rw-r--r--Master/texmf-dist/tex/latex/termcal/termcal.sty169
1 files changed, 169 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/termcal/termcal.sty b/Master/texmf-dist/tex/latex/termcal/termcal.sty
new file mode 100644
index 00000000000..41b5c609145
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/termcal/termcal.sty
@@ -0,0 +1,169 @@
+%%
+%% This is file `termcal.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% termcal.dtx (with options: `package')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from termcal.sty.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file termcal.dtx.
+%%
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+\def\RCSID$#1 #2 #3 #4 #5${\def\fileversion{#3}\def\filedate{#4}}
+\RCSID$Id: termcal.dtx,v 1.8 1997/01/11 17:04:40 mitchell Exp $
+\def\docdate{1996/01/10}
+
+
+\newcommand{\calprintdate}{%
+ \ifnewmonth\framebox{\monthname\ \ordinaldate}%
+ \else \ordinaldate\fi
+ }
+\newcommand{\calprintclass}{\textbf{\small\theclassnum}}
+\ProvidesPackage{termcal}[\filedate\space\fileversion\space
+ Latex2e package to print a Term calendar]
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{longtable}
+\RequirePackage{ifthen}
+\newlength{\calboxdepth}\setlength\calboxdepth{1in}
+\newlength\calwidth\setlength\calwidth{\textwidth}
+\newlength{\ca@boxwidth} %% set by \endcalendar
+\newcounter{ca@dpw}
+\newcounter{ca@numwks} %% weeks in calendar
+\newcounter{ca@wknum}
+\newtoks\ca@doaweek
+\newtoks\ca@doweeks
+\newtoks\ca@colhead
+\newif\ifca@chead
+\newenvironment{calendar}[2]%
+ {%
+ \setcounter{ca@numwks}{#2}
+ \setdate{#1}
+ \setcounter{ca@dpw}{0}
+ \setcounter{classnum}{1}
+ }
+ {
+ \ifca@chead\ca@doweeks{\the\ca@colhead\endhead\hline\hline}\fi
+ \setcounter{ca@wknum}{0}
+ \whiledo{\value{ca@wknum}<\value{ca@numwks}}%
+ {\stepcounter{ca@wknum}%
+ \addtotoks{\ca@doweeks}{\the\ca@doaweek\\\hline}}
+ \ca@boxwidth=\calwidth
+ \divide\ca@boxwidth by \c@ca@dpw\relax
+ \advance\ca@boxwidth by -2\tabcolsep\relax
+ \setlength\@tempdima\arrayrulewidth\relax
+ \multiply\@tempdima\c@ca@dpw\relax
+ \advance\@tempdima\arrayrulewidth\relax
+ \divide\@tempdima\c@ca@dpw\relax
+ \advance\ca@boxwidth by -\@tempdima\relax
+ \begin{longtable}[l]
+ {|*{\theca@dpw}{p{\ca@boxwidth}|}@{}}%
+ \hline
+ \the\ca@doweeks
+ \end{longtable}
+ }
+\newcommand\addtotoks[2]{#1\expandafter{\the#1#2}}
+\ca@doaweek={\stepcounter{ca@wknum}\ignorespaces}
+\newcommand\calday[2][]{\stepcounter{ca@dpw}%
+ \ifca@fday\addtotoks\ca@doaweek{&}\addtotoks\ca@colhead{&}\fi
+ \addtotoks\ca@doaweek{\ca@doaday{#2}}
+ \def\@tempa{#1}\ifx\@tempa\@empty
+ \else\addtotoks\ca@colhead{\strut\scshape\centering #1}\ca@cheadtrue\fi
+ \ca@fdaytrue
+}
+\newif\ifca@fday
+\newcommand\skipday{\addtotoks\ca@doaweek{\advancedate}}
+\newcounter{classnum}
+\let\ca@normbs=\\
+\newcommand\ca@doaday[1]{
+ \hbox{\vrule depth \calboxdepth height 0pt width 0pt\vtop{
+ #1% %options specified by |\calday|
+ \csname\curdate options\endcsname% % options specified by date
+ \ifclassday\csname C\theclassnum options\endcsname\fi %by classnumber
+ \hbox to \hsize{\calprintdate\hfill\ifclassday\calprintclass\fi}
+ \vspace{2pt}
+ \begingroup
+ \let\\=\ca@normbs
+ \raggedright
+ \sloppy
+
+ \the\weeklytext\par
+ \csname\curdate text\endcsname
+ \ifclassday\csname C\theclassnum text\endcsname
+ \stepcounter{classnum}\fi
+ \endgroup
+ }}
+ \global\newmonthfalse
+ \advancedate
+}
+\long\def\ca@addmacro#1#2{
+ \expandafter\ifx\csname#1\endcsname\relax%
+ \expandafter\def\csname#1\endcsname{#2}
+ \else
+ \toks0=
+ \expandafter\expandafter\expandafter{\csname#1\endcsname}
+ \toks2={#2}
+ \expandafter
+ \edef\csname#1\endcsname{\the\toks0 \the\toks2 }\fi}
+\newcommand\options[1]{\ca@addmacro{#1options}}
+\newif\ifclassday
+\newcommand{\classday}{\classdaytrue}
+\newcommand{\noclassday}{\classdayfalse}
+\newtoks\weeklytext
+\newcommand\caltext[2]{\ca@addmacro{#1text}{#2\par}}
+\newcounter{textdaycount}\setcounter{textdaycount}1
+\newcommand\caltexton[2]{\setcounter{textdaycount}{#1}
+ \caltext{C#1}{#2}}
+\newcommand\caltextnext[1]{\advance\c@textdaycount by 1
+ \caltext{C\thetextdaycount}{#1}}
+ \newcounter{date}
+ \newcounter{month}
+ \newcounter{year}
+\newcommand\curdate{\arabic{month}/\arabic{date}/\arabic{year}}
+\newcommand\monthname{\ifcase\c@month\or Jan\or Feb\or Mar\or Apr%
+ \or May\or June\or July\or Aug\or Sep\or Oct%
+ \or Nov\or Dec\fi}
+\newcommand\advancedate{\stepcounter{date}
+ \ifnum\thedate>\monthlength\relax
+ \addtocounter{date}{-\monthlength}\advancemonth\fi}
+\newif\ifnewmonth\newmonthtrue
+\newcommand\advancemonth{%
+ \global\newmonthtrue\stepcounter{month}
+ \ifnum\c@month>12
+ \stepcounter{year}\setleap\setcounter{month}1\fi}
+ \newif\ifleap
+\newcommand\setleap{%
+ \@tempcnta=\c@year
+ \divide\@tempcnta by 4 \multiply\@tempcnta by 4
+ \ifnum\@tempcnta=\c@year\global\leaptrue
+ \else\global\leapfalse\fi}
+\newcommand\monthlength{%
+ \ifcase\c@month\or31\or\ifleap29\else28\fi
+ \or31\or30\or31\or30\or31\or31\or30\or31\or30\or31\fi%
+ \relax}
+\newcommand\setdate[1]{\setdate@#1!}
+\def\setdate@#1/#2/#3!{
+ \setcounter{month}{#1}
+ \setcounter{date}{#2}
+ \setcounter{year}{#3}
+ \global\newmonthtrue\setleap}
+\newcommand\ordinaldate{\ordinal{\c@date}}
+\newcommand\ordinal[1]{%
+ \let\last@=\relax\let\last@@=\relax
+ \expandafter\@rd\the#1x}
+\newcommand\@rd[1]{\ifx#1x\if\last@@1th\else\@rdend{\last@}\fi\else
+ \let\last@@=\last@\def\last@{#1}#1\expandafter\@rd\fi}
+\newcommand\@rdend[1]{\ifcase#1 th\or st\or nd\or rd\else th\fi}
+\endinput
+%%
+%% End of file `termcal.sty'.