texlive[51772] Master: schedule (29jul19)

commits+karl at tug.org commits+karl at tug.org
Mon Jul 29 23:20:08 CEST 2019


Revision: 51772
          http://tug.org/svn/texlive?view=revision&revision=51772
Author:   karl
Date:     2019-07-29 23:20:08 +0200 (Mon, 29 Jul 2019)
Log Message:
-----------
schedule (29jul19)

Modified Paths:
--------------
    trunk/Master/tlpkg/bin/tlpkg-ctan-check
    trunk/Master/tlpkg/libexec/ctan2tds
    trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/schedule/
    trunk/Master/texmf-dist/doc/latex/schedule/README.md
    trunk/Master/texmf-dist/doc/latex/schedule/README.txt
    trunk/Master/texmf-dist/doc/latex/schedule/schedule.pdf
    trunk/Master/texmf-dist/source/latex/schedule/
    trunk/Master/texmf-dist/source/latex/schedule/schedule.dtx
    trunk/Master/texmf-dist/source/latex/schedule/schedule.ins
    trunk/Master/texmf-dist/tex/latex/schedule/
    trunk/Master/texmf-dist/tex/latex/schedule/schedule.sty
    trunk/Master/tlpkg/tlpsrc/schedule.tlpsrc

Added: trunk/Master/texmf-dist/doc/latex/schedule/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/schedule/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/schedule/README.md	2019-07-29 21:20:08 UTC (rev 51772)
@@ -0,0 +1,15 @@
+----------------------------------------------------------------
+schedule.sty --- A style for personal weekly schedules
+E-mail: edeneault at ut.edu
+Released under the LaTeX Project Public License v1.3c or later
+See http://www.latex-project.org/lppl.txt
+----------------------------------------------------------------
+
+This package defines the schedule environment. This is primarily intended for
+constructing charts of recurring weekly appointments.  It may also
+be used to create a schedule of events and sign-up sheets (for example,
+scheduling mandatory office visits with students for discussing paper topics,
+etc.)
+
+This package requires the packages calc and xcolor.
+


Property changes on: trunk/Master/texmf-dist/doc/latex/schedule/README.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/schedule/README.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/schedule/README.txt	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/schedule/README.txt	2019-07-29 21:20:08 UTC (rev 51772)
@@ -0,0 +1,42 @@
+%%
+%% This is file `README.txt',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% schedule.dtx  (with options: `readme')
+%% 
+%% This is a generated file.
+%% 
+%% Copyright (c) Ethan Deneault <edeneault at ut.edu>, 2019
+%%                       (current maintainer)
+%% Copyright (c) Jason Alexander, 1997-2001
+%%                        (author)
+%% 
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in:
+%% 
+%% http://www.latex-project.org/lppl.txt
+%% 
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%% 
+----------------------------------------------------------------
+schedule.sty --- A style for personal weekly schedules
+E-mail: edeneault at ut.edu
+Released under the LaTeX Project Public License v1.3c or later
+See http://www.latex-project.org/lppl.txt
+----------------------------------------------------------------
+
+This package defines the {\ttfamily schedule} environment. This is primarily intended for
+constructing charts of recurring weekly appointments.  It may also
+be used to create a schedule of events and sign-up sheets (for example,
+scheduling mandatory office visits with students for discussing paper topics,
+etc.)
+
+This package requires the packages {\ttfamily calc} and {\ttfamily xcolor}.
+\endinput
+%%
+%% End of file `README.txt'.


Property changes on: trunk/Master/texmf-dist/doc/latex/schedule/README.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/schedule/schedule.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/schedule/schedule.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/schedule/schedule.pdf	2019-07-29 21:18:39 UTC (rev 51771)
+++ trunk/Master/texmf-dist/doc/latex/schedule/schedule.pdf	2019-07-29 21:20:08 UTC (rev 51772)

Property changes on: trunk/Master/texmf-dist/doc/latex/schedule/schedule.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/schedule/schedule.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/schedule/schedule.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/schedule/schedule.dtx	2019-07-29 21:20:08 UTC (rev 51772)
@@ -0,0 +1,731 @@
+% \iffalse
+%
+% Single-source dtx file built on Will Robertson's dtxgallery single-source.dtx example. 
+%
+%<*internal>
+\iffalse
+%</internal>
+%<*readme>
+----------------------------------------------------------------
+schedule.sty --- A style for personal weekly schedules
+E-mail: edeneault at ut.edu
+Released under the LaTeX Project Public License v1.3c or later
+See http://www.latex-project.org/lppl.txt
+----------------------------------------------------------------
+
+This package defines the {\ttfamily schedule} environment. This is primarily intended for
+constructing charts of recurring weekly appointments.  It may also
+be used to create a schedule of events and sign-up sheets (for example,
+scheduling mandatory office visits with students for discussing paper topics,
+etc.)
+
+This package requires the packages {\ttfamily calc} and {\ttfamily xcolor}.
+%</readme>
+%<*internal>
+\fi
+\begingroup
+%</internal>
+%<*batchfile>
+\input docstrip.tex
+\keepsilent\askforoverwritefalse
+\preamble
+
+This is a generated file.
+
+Copyright (c) Ethan Deneault <edeneault at ut.edu>, 2019
+                      (current maintainer)
+Copyright (c) Jason Alexander, 1997-2001
+                       (author)
+                       
+This file may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in:
+
+	http://www.latex-project.org/lppl.txt
+
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+\endpreamble
+\usedir{tex/latex/schedule}
+\generate{\file{\jobname.sty}{\from{\jobname.dtx}{package}}}
+%</batchfile>
+%<batchfile>\endbatchfile
+%<*internal>
+\generate{\file{\jobname.ins}{\from{\jobname.dtx}{batchfile}}}
+\generate{\file{README.txt}{\from{\jobname.dtx}{readme}}}
+\endgroup
+%</internal>
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{schedule}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+%\OnlyDescription
+\begin{document}
+\DocInput{\jobname.dtx} 
+\end{document}
+%</driver>
+% \fi
+%
+%
+% \changes{v1.00}{1997/10/11}{Initial version.}
+% \changes{v1.10}{2019/7/26}{Clarified `noon' and `midnight' for 12:00}
+%
+% \GetFileInfo{schedule.sty}
+%
+% \DoNotIndex{\if,\else,\fi,\expandafter}
+% \DoNotIndex{\csname,\endcsname}
+% \DoNotIndex{\addtocounter,\stepcounter,\advance,\Alph,\alph,\arabic}
+% \DoNotIndex{\begin,\end,\begingroup,\endgroup,\catcode,\centerline,\day,\def}
+% \DoNotIndex{\divide,\do,\edef,\endgroup,\evensidemargin,\fbox,\gdef,\global}
+% \DoNotIndex{\headheight,\headsep,\hfill,\hphantom,\Huge,\ifnum,\ifx,\large}
+% \DoNotIndex{\long,\m at ne,\mbox,\medskip,\message,\month,\multiply}
+% \DoNotIndex{\noindent,\nopagebreak,\normalsize,\oddsidemargin,\pagebreak}
+% \DoNotIndex{\par,\relax,\rightmargin,\roman,\setcounter,\setlength}
+% \DoNotIndex{\smallskipamount,\space,\textheight,\textsf,\textwidth}
+% \DoNotIndex{\the,\topmargin,\undefined,\underline,\value,\vspace}
+% \DoNotIndex{\xdef,\year,\z@,\time,\topsep}
+%
+% \title{The \textsf{schedule} package\thanks{This file
+%        has version number \fileversion, last
+%        revised \filedate.}}
+% \author{Jason Alexander \\
+%		Ethan Deneault\footnote{Current maintainer, please send bug reports to:
+%              \texttt{edeneault at ut.edu}}}
+% \date{\filedate}
+% \maketitle
+%
+% \MakeShortVerb{\|}
+%
+% \begin{abstract}
+%This package defines the {\ttfamily schedule} environment. This is primarily intended for
+%constructing charts of recurring weekly appointments.  It may also
+%be used to create a schedule of events and sign-up sheets (for example,
+%scheduling mandatory office visits with students for discussing paper topics,
+%etc.)
+%
+%This package requires the packages {\ttfamily calc} and {\ttfamily xcolor}.
+% \end{abstract}
+%
+% \section{Introduction}
+% \texttt{schedule} provides a simple interface for creating graphical charts
+% displaying weekly appointments.  Many respects of the overall layout can be
+% customized to suit the user's desires.  Unless these default settings are
+% changed, the created schedule will run from Monday to Friday, 8:00am to 5:00pm,
+% and the only predefined command to insert appointments will be |\class|, which
+% draws the appointment using black text on a medium-gray background.
+%
+% The main feature of the \texttt{schedule} package is its accuracy in
+% diagramming the length of appointments.  Unlike some professionally available
+% schedule creation programs, the representation of the length of appointments in
+% the \texttt{schedule} package is accurate to the minute.  In other
+% words, if you have two appointments, one running from 2:00pm to 3:30pm on
+% Tuesday and another running from 2:00pm to 3:31pm on Wednesday, there is a
+% visible difference between the two representations.  Unfortunately, unless you
+% have a high-resolution printer (by which I mean more than 600 dpi) these
+% differences will likely only be noticeable by a on-screen previewing program like
+% \texttt{ghostview}.
+%
+% \section{Examples}
+%
+% The following schedule is typeset using the commands:
+%
+% \pagebreak
+%
+% \begin{verbatim}
+% \CellHeight{.4in}
+% \CellWidth{1in}
+% \TimeRange{12:00-15:00}
+% \SubUnits{30}
+% \BeginOn{Monday}
+% \TextSize{\tiny}
+% \FiveDay
+%
+% \NewAppointment{meeting}{red}{white}
+% \NewAppointment{workshop}{green}{blue}
+%
+% \begin{schedule}[Fall Quarter, 1997]
+%   \class{Moral Philosophy}{HOB2 233}{M}{14:00-16:50}
+%   \class{Math Logic}{EIC 128}{T,Th}{11:00-12:20}
+%   \class{Critical Reasoning}{SSL 290}{M,W,F}{13:00-13:50}
+%   \meeting{Departmental Meeting}{HOB2 233}{W}{12:00-12:50}
+%   \workshop{Crit. Reas. Workshop}{HOB2 233}{T}{13:00-13:50}
+%   \class{Office Hours}{HOB2 210}{W,F}{14:00-14:50}
+% \end{schedule}
+% \end{verbatim}
+%
+% The result is:
+% \CellHeight{.4in}
+% \CellWidth{1in}
+% \TimeRange{12:00-15:00}
+% \SubUnits{30}
+% \BeginOn{Monday}
+% \TextSize{\tiny}
+% \FiveDay
+%
+% \NewAppointment{meeting}{red}{white}
+% \NewAppointment{workshop}{green}{blue}
+%
+%\begin{schedule}[Fall Quarter, 1997]%
+%  \class{Moral Philosophy}{HOB2 233}{M}{14:00-16:50}
+%  \class{Math Logic}{EIC 128}{T,Th}{11:00-12:20}
+%  \class{Critical Reasoning}{SSL 290}{M,W,F}{13:00-13:50}
+%  \meeting{Departmental Meeting}{HOB2 233}{W}{12:00-12:50}
+%  \workshop{Crit. Reas. Workshop}{HOB2 233}{T}{13:00-13:50}
+%  \class{Office Hours}{HOB2 210}{W,F}{14:00-14:50}
+%\end{schedule}%
+%
+% This example demonstrates all of the user-customizable options.  Note
+% several ``features'' of the package:
+% \begin{enumerate}
+%    \item Appointments falling outside of the specified time range
+%          for the schedule are automatically truncated to fit.  If the
+%          appointment falls entirely outside of the time range, it is not
+%          printed at all.
+%
+%    \item The command |\class| is predefined to chart appointments pertaining
+%          to class attendence.  New appointment types may be defined by the
+%          user via the |\NewAppointment| command.  The new appointments may
+%          use any predefined color for the text or background.  Note that the
+%          \textsf{color} package allows one to define new colors.
+%
+%    \item The boxes created to represent appointments are sized to be
+%          accurate to the minute.  In other words, if you have two
+%          appointments, one 52 minutes long and the other 53 minutes long, the
+%          box representing the second appointment will be slightly longer.
+%
+%    \item The schedule is typeset in a centered displayed environment.
+% \end{enumerate}
+%
+% \section{User Commands}
+%
+% \begin{macro}{\CellHeight}
+% Including |\CellHeight|\meta{length} before the \textsf{schedule} environment
+% tells \LaTeXe\ what height to make the cells in the schedule (all cells have
+% the same height).  Since a
+% cell corresponds to an hour in the schedule, this command allows the user to
+% specify how much vertical space a single hour ought to take up.
+% \end{macro}
+%
+% \begin{macro}{\CellWidth}
+% Including |\CellWidth|\meta{width} before the \textsf{schedule} environment
+% tells \LaTeXe\ how wide to make every cell in the schedule.  The overall
+% width of the schedule is determined by multiplying this value by the number of
+% days (set by the |\FiveDay| or |\SevenDay| command), plus the width of the
+% time labels on the left-hand side.
+% \end{macro}
+%
+% \begin{macro}{\TimeRange}
+% This command must appear before the \textsf{schedule} environment, otherwise
+% \LaTeXe\ will not know how deep to make the grid.  It is important to note
+% that the time range is specified using a 24-hour format, with a \emph{single}
+% hyphen between the two times.  Deviating from this format will generate an
+% error.
+% \end{macro}
+%
+% \begin{macro}{\SubUnits}
+% The |\SubUnits|\meta{number} tells the package how to subdivide the hour.  If
+% one does not want any subdivisions, simply use |\SubUnits{60}|.  The value of
+% \meta{number} can be any number than evenly divides 60.  It is assumed that,
+% in specifying this value, you know what you are doing: i.e., if you tell
+% \LaTeXe\ to use a |\CellHeight| of 1in, but then set |\SubUnits{3}|, you will
+% get 20 subdivisions (with times) in a cell only 1in high.  In other words, the
+% text on the left-hand side of the schedule will be typeset as a horrible mess.
+% The solution is simple: if you want a large number of subdivisions, simply set
+% |\CellHeight| to a greater value.
+% \end{macro}
+%
+% \begin{macro}{\BeginOn}
+% Including |\BeginOn|\meta{day} tells \LaTeX\ what day of the week to start
+% the schedule on.  The possible values are `Sunday', `Monday', `Tuesday', `Wednesday',
+% `Thursday', `Friday', or `Saturday'.  My apologies for non-English speaking
+% users of \LaTeX.  If there is a demand for it, I will fix this in future
+% releases.
+% \end{macro}
+%
+% \begin{macro}{\TextSize}
+% With the |\TextSize|\meta{font-size} command, the user tells \LaTeX\ what
+% size font to use when typesetting the text inside the boxes.  This command
+% ought to be one of the standard \LaTeX\ font-size commands, e.g., |\tiny|,
+% |\scriptsize|, etc.  Using two large of a font will almost always result in
+% bad line breaks inside the boxes, though, due to the narrow width of a cell.
+% \end{macro}
+%
+% \begin{macro}{\FiveDay}
+% Tells \LaTeX\ to typeset a five-day schedule.
+% \end{macro}
+%
+% \begin{macro}{\SevenDay}
+% Tells \LaTeX\ to typeset a seven-day schedule.
+% \end{macro}
+%
+% \begin{macro}{\NewAppointment}
+% By using the |\NewAppointment| command, the user can customize the appearance
+% of the schedule by changing the color of the text or the background color.
+% The syntax is |\NewAppointment|\meta{appointment-name}\meta{background-color}\meta{text-color}.
+% \end{macro}
+%
+% \StopEventually{}
+%\newpage
+%\section{Source Code}
+% \iffalse
+%<*package> 
+% \fi
+%    \begin{macrocode}
+\ProvidesFile{schedule.sty}
+\NeedsTeXFormat{LaTeX2e}[2005/12/01]
+\ProvidesPackage{schedule}[2019/7/26 v1.10 schedule package]
+\RequirePackage{calc}
+\RequirePackage{xcolor}
+\definecolor{dark}{gray}{.75}
+%
+% CONSTANTS FOR THE WEEK
+%
+\def\@sunday{Su}
+ \def\@Sunday{Sunday}
+\def\@monday{M}
+ \def\@Monday{Monday}
+\def\@tuesday{T}
+ \def\@Tuesday{Tuesday}
+\def\@wednesday{W}
+ \def\@Wednesday{Wednesday}
+\def\@thursday{Th}
+ \def\@Thursday{Thursday}
+\def\@friday{F}
+ \def\@Friday{Friday}
+\def\@saturday{Sa}
+ \def\@Saturday{Saturday}
+%
+% COUNTERS, LENGTHS, ETC.
+%
+\newlength{\cell at height}
+ \setlength{\cell at height}{1in}
+\newlength{\cell at width}
+ \setlength{\cell at width}{1in}
+\newlength{\box at depth}
+\newcounter{sch at col@width} \setcounter{sch at col@width}{60}
+\newlength{\box at width}
+ \setlength{\box at width}{1in*(\value{sch at col@width}/60)}
+\newlength{\col at width}
+ \setlength{\col at width}{1in*(\value{sch at col@width}/60)}
+\newlength{\sch at depth} \setlength{\sch at depth}{9in}
+\newlength{\fill at length}
+\newlength{\@temp at length}
+\newlength{\@@temp at length}
+\newlength{\line at thickness} % The thickness of the lines in the drawing
+ \setlength{\line at thickness}{.4pt}
+\newlength{\adjusted at cell@width}
+\newlength{\adjusted at cell@height}
+
+\newcounter{picture at units@wide}
+\newcounter{xcoords}
+\newcounter{ycoords}
+\newcounter{timea}
+\newcounter{timeb}
+\newcounter{grid at width}
+\newcounter{grid at height}
+\newcounter{number at of@cells} % The number of VERTICAL cells
+\newcounter{number at of@subcells}
+\newcounter{number at of@days} % The number of days in the grid
+\newcounter{dp at vlines} % The number of vertical lines actually needed is
+                       % \value{number at of@days} + 1 ...
+\newcounter{dp at hlines} % The number of horizontal lines actually needed is
+                       % \value{number at of@cells} + 1 ...
+\newcounter{dp at hcell@lines} % The number of horizontal lines that are
+                       % either (1) associated with an hour, or
+                       %        (2) on the top or bottom of the grid.
+\newcounter{pu at cell@width}
+\newcounter{pu at cell@height}
+ \setcounter{pu at cell@height}{60}
+\newcounter{pu at grid@top}
+\newcounter{pu at grid@width}
+\newcounter{pu at subticks}
+\newcounter{start at time}
+\newcounter{end at time}
+\newcounter{x at coord} % Temporary x-coordinate
+\newcounter{y at coord} % Temporary y-coordinate
+\newcounter{@tempc}
+\newcounter{@tempd}
+\newcounter{label at sep}  % distance from label to gride
+ \setcounter{label at sep}{5} %initialized to 5 picture units
+
+\newcounter{x at Sunday}
+\newcounter{x at Monday}
+\newcounter{x at Tuesday}
+\newcounter{x at Wednesday}
+\newcounter{x at Thursday}
+\newcounter{x at Friday}
+\newcounter{x at Saturday}
+
+\newsavebox{\temp at box}
+\newif\ifweekends
+\newcount\@i
+\newcount\@j
+
+\def\TimeRange#1{\compute at number@of at cells #1\end at compute}
+\def\compute at number@of at cells#1:#2-#3:#4\end at compute{%
+  \setcounter{number at of@cells}{#3-#1}%
+  \setcounter{start at time}{#1}%
+  \setcounter{end at time}{#3}}
+
+\def\TextSize#1{\def\appt at textsize{#1}}
+\TextSize{\scriptsize}
+
+\def\IncludeWeekends{\weekendstrue}
+\def\NoWeekends{\weekendsfalse}
+
+\def\SevenDay{\weekendstrue}
+\def\FiveDay{\weekendsfalse}
+
+\def\CellHeight#1{\setlength{\cell at height}{#1}%
+                  \setlength{\unitlength}{\cell at height*\ratio{1pt}{60pt}}}
+\def\CellWidth#1{\setlength{\cell at width}{#1}%
+                 \setcounter{pu at cell@width}{1*\ratio{\cell at width}{\unitlength}}}
+\def\SubUnits#1{\setcounter{pu at subticks}{#1}%
+                \setcounter{number at of@subcells}{60/\value{pu at subticks}}}
+
+\def\calculate at grid@dimensions{%
+  \ifweekends \setcounter{number at of@days}{7}
+   \else \setcounter{number at of@days}{5}%
+    \fi%
+  \setcounter{dp at hcell@lines}{\value{number at of@cells}+1}
+  \setcounter{grid at width}{\value{number at of@days}*\value{pu at cell@width}}%
+  \setcounter{grid at height}{\value{number at of@cells}*60}
+  \setcounter{dp at vlines}{\value{number at of@days}+1}
+  \setcounter{dp at hlines}{\value{number at of@cells}*(60/\value{pu at subticks}) + 1}}
+
+
+\def\draw at grid{%\calculate at grid@dimensions
+  \linethickness{.2pt}%
+  \multiput(0,0)(0,\value{pu at subticks}){\value{dp at hlines}}{\line(1,0){\value{grid at width}}}%
+  \thicklines
+  \multiput(0,0)(0,60){\value{dp at hcell@lines}}{\line(1,0){\value{grid at width}}}
+  \thinlines}
+
+\def\LineThickness#1{\setlength{\line at thickness}{#1}%
+                     \linethickness{\line at thickness}%
+                     \setlength{\adjusted at cell@width}{\cell at width - 1\line at thickness}
+                     \setlength{\adjusted at cell@height}{\cell at height - 1\line at thickness}}
+
+
+\def\@Su at week{{Sunday} {Monday} {Tuesday} {Wednesday} {Thursday} {Friday} {Saturday}}
+\def\@M at week{{Monday} {Tuesday} {Wednesday} {Thursday} {Friday} {Saturday} {Sunday}}
+\def\@T at week{{Tuesday} {Wednesday} {Thursday} {Friday} {Saturday} {Sunday} {Monday}}
+\def\@W at week{{Wednesday} {Thursday} {Friday} {Saturday} {Sunday} {Monday} {Tuesday}}
+\def\@Th at week{{Thursday} {Friday} {Saturday} {Sunday} {Monday} {Tuesday} {Wednesday}}
+\def\@F at week{{Friday} {Saturday} {Sunday} {Monday} {Tuesday} {Wednesday} {Thursday}}
+\def\@Sa at week{{Saturday} {Sunday} {Monday} {Tuesday} {Wednesday} {Thursday} {Friday}}
+
+\def\BeginOn#1{\def\start at day{#1}}
+
+\def\add at labels{%
+ \ifx\start at day\@Sunday \expandafter\do at days\@Su at week \relax
+  \else\ifx\start at day\@Monday \expandafter\do at days\@M at week \relax
+   \else\ifx\start at day\@Tuesday \expandafter\do at days\@T at week \relax
+    \else\ifx\start at day\@Wednesday \expandafter\do at days\@W at week \relax
+     \else\ifx\start at day\@Thursday \expandafter\do at days\@Th at week \relax
+      \else\ifx\start at day\@Friday \expandafter\do at days\@F at week \relax
+       \else\expandafter\do at days\@Sa at week \relax
+    \fi\fi\fi\fi\fi\fi}
+
+
+\def\@sfor #1:=#2 \upto #3 \step #4 \do #5{%
+  #1=#2\relax%
+  \@whilenum #1<#3 \do {#5 \advance#1 by #4}#5}
+
+\def\add at times{%
+  \setcounter{@tempc}{\value{start at time}}%
+  \@sfor \@i :=0 \upto \value{number at of@cells} \step 1 \do%
+    {\setcounter{x at coord}{0}%                               Set the x-coord right
+     \setcounter{y at coord}{\value{grid at height}-60*\@i}%      adjust for the right hour cell
+     \ifnum\value{@tempc}=0%
+        \setcounter{@tempd}{\value{@tempc}+12}%
+         \put(\value{x at coord},\value{y at coord}){%
+         \makebox(0,0)[r]{\the at tempd:00 midnight\ }}% Midnight Hack
+     \else\ifnum\value{@tempc}=24%
+        \setcounter{@tempd}{\value{@tempc}-12}%
+         \put(\value{x at coord},\value{y at coord}){%
+         \makebox(0,0)[r]{\the at tempd:00 midnight\ }}% Midnight Hack
+     \else\ifnum\value{@tempc}>12%
+        \setcounter{@tempd}{\value{@tempc}-12}%
+        \put(\value{x at coord},\value{y at coord}){%
+         \makebox(0,0)[r]{\the at tempd:00 pm\ }}%
+     \else\ifnum\value{@tempc}=12%
+        \setcounter{@tempd}{\value{@tempc}}%
+          \put(\value{x at coord},\value{y at coord}){%
+           \makebox(0,0)[r]{\the at tempd:00 noon\ }}% Noontime Hack
+     \else\put(\value{x at coord},\value{y at coord}){%
+      \makebox(0,0)[r]{\the at tempc:00 am\ }}%
+     \fi\relax%
+     \fi\relax%
+     \fi\relax%
+     \fi\relax%
+     \@sfor \@j := \value{pu at subticks} \upto 59 \step \value{pu at subticks} \do%
+       {\ifnum\@i=\value{number at of@cells}%  Test to see if this should be the last label
+           \relax%
+        \else%
+           \ifnum\@j=60%
+             \relax%
+           \else%
+             \ifnum\@j<10%
+               \def\the at minutes{0\the\@j}%
+             \else\def\the at minutes{\the\@j}%
+             \fi%
+             \setcounter{y at coord}{\value{y at coord}-\@j}%
+             \ifnum\value{@tempc}=0%
+                \setcounter{@tempd}{\value{@tempc}+12}%
+                \put(\value{x at coord},\value{y at coord}){%
+                 \makebox(0,0)[r]{\tiny\the at tempd:\the at minutes\ am\ }}% Hack to get 12:xx AM right.
+             \else\ifnum\value{@tempc}=24%
+                \setcounter{@tempd}{\value{@tempc}-12}%
+                \put(\value{x at coord},\value{y at coord}){%
+                 \makebox(0,0)[r]{\tiny\the at tempd:\the at minutes\ am\ }}% Hack to get 12:xx AM right.
+             \else\ifnum\value{@tempc}>12%
+                \setcounter{@tempd}{\value{@tempc}-12}%
+                \put(\value{x at coord},\value{y at coord}){%
+                 \makebox(0,0)[r]{\tiny\the at tempd:\the at minutes\ pm\ }}% ...write the time (using pm)...
+             \else\ifnum\value{@tempc}=12%
+                \setcounter{@tempd}{\value{@tempc}}%
+                \put(\value{x at coord},\value{y at coord}){%
+                 \makebox(0,0)[r]{\tiny\the at tempd:\the at minutes\ pm\ }}% Hack to get 12:xx PM right.
+             \else\put(\value{x at coord},\value{y at coord}){%
+              \makebox(0,0)[r]{\tiny\the at tempc:\the at minutes\ am\ }}% ...write the time (using am).
+             \fi%
+             \fi%
+     \fi%
+           \fi%
+        \fi%
+        \fi%
+        \setcounter{y at coord}{\value{y at coord}+\@j}}
+     \addtocounter{@tempc}{1}}}%
+
+\def\do at days#1#2#3#4#5#6#7{%
+  \setcounter{x at coord}{1*\ratio{\value{pu at cell@width} pt}{2 pt}}%
+  \setcounter{y at coord}{\value{grid at height}+\value{label at sep}}%
+  \put(\value{x at coord},\value{y at coord}){\makebox(0,0)[b]{\large #1}}%
+  \setcounter{x at coord}{\value{x at coord}+\value{pu at cell@width}}%
+  \put(\value{x at coord},\value{y at coord}){\makebox(0,0)[b]{\large #2}}%
+  \setcounter{x at coord}{\value{x at coord}+\value{pu at cell@width}}%
+  \put(\value{x at coord},\value{y at coord}){\makebox(0,0)[b]{\large #3}}%
+  \setcounter{x at coord}{\value{x at coord}+\value{pu at cell@width}}%
+  \put(\value{x at coord},\value{y at coord}){\makebox(0,0)[b]{\large #4}}%
+  \setcounter{x at coord}{\value{x at coord}+\value{pu at cell@width}}%
+  \put(\value{x at coord},\value{y at coord}){\makebox(0,0)[b]{\large #5}}%
+  \setcounter{x at coord}{\value{x at coord}+\value{pu at cell@width}}%
+  \ifweekends
+  \put(\value{x at coord},\value{y at coord}){\makebox(0,0)[b]{\large #6}}%
+  \setcounter{x at coord}{\value{x at coord}+\value{pu at cell@width}}%
+  \put(\value{x at coord},\value{y at coord}){\makebox(0,0)[b]{\large #7}}\fi}
+
+
+\def\set at x@coords at for@days{%
+  \ifx\start at day\@Sunday%
+    \@i=0\relax%
+    \@tfor \@temp := {Sunday} {Monday} {Tuesday} {Wednesday} {Thursday} {Friday} {Saturday} \do%
+      {\setcounter{x@\@temp}{\@i*\value{pu at cell@width}}%
+       \advance\@i by 1}
+    \def\skipday at i{F}
+    \def\skipday at ii{Sa}\fi
+  \ifx\start at day\@Monday
+    \@i=0\relax%
+    \@tfor \@temp := {Monday} {Tuesday} {Wednesday} {Thursday} {Friday} {Saturday} {Sunday} \do%
+      {\setcounter{x@\@temp}{\@i*\value{pu at cell@width}}%
+       \advance\@i by 1}
+    \def\skipday at i{Sa}
+    \def\skipday at ii{Su}\fi
+  \ifx\start at day\@Tuesday
+    \@i=0\relax%
+    \@tfor \@temp := {Tuesday} {Wednesday} {Thursday} {Friday} {Saturday} {Sunday} {Monday} \do%
+      {\setcounter{x@\@temp}{\@i*\value{pu at cell@width}}%
+       \advance\@i by 1}
+    \def\skipday at i{Su}
+    \def\skipday at ii{M}\fi
+  \ifx\start at day\@Wednesday
+    \@i=0\relax%
+    \@tfor \@temp := {Wednesday} {Thursday} {Friday} {Saturday} {Sunday} {Monday} {Tuesday} \do%
+      {\setcounter{x@\@temp}{\@i*\value{pu at cell@width}}%
+       \advance\@i by 1}
+    \def\skipday at i{M}
+    \def\skipday at ii{T}\fi
+  \ifx\start at day\@Thursday
+    \@i=0\relax%
+    \@tfor \@temp := {Thursday} {Friday} {Saturday} {Sunday} {Monday} {Tuesday} {Wednesday} \do%
+      {\setcounter{x@\@temp}{\@i*\value{pu at cell@width}}%
+       \advance\@i by 1}
+    \def\skipday at i{T}
+    \def\skipday at ii{W}\fi
+  \ifx\start at day\@Friday
+    \@i=0\relax%
+    \@tfor \@temp := {Friday} {Saturday} {Sunday} {Monday} {Tuesday} {Wednesday} {Thursday} \do%
+      {\setcounter{x@\@temp}{\@i*\value{pu at cell@width}}%
+       \advance\@i by 1}
+    \def\skipday at i{W}
+    \def\skipday at ii{Th}\fi
+  \ifx\start at day\@Saturday
+    \@i=0\relax%
+    \@tfor \@temp := {Saturday} {Sunday} {Monday} {Tuesday} {Wednesday} {Thursday} {Friday} \do%
+      {\setcounter{x@\@temp}{\@i*\value{pu at cell@width}}%
+       \advance\@i by 1}
+    \def\skipday at i{Th}
+    \def\skipday at ii{F}\fi
+  }
+
+% ------------------------------------------------------------------------
+% Commands to insert info about an appointment
+% ------------------------------------------------------------------------
+\newif\ifset at start@time
+\newif\ifset at end@time
+\newif\ifsetboxdepth
+\newif\ifinrange
+
+\def\NewAppointment#1#2#3{% #1 = name, #2 = background color, #3 = textcolor
+  \expandafter\def\csname #1\endcsname##1##2##3##4{%
+     \setboxdepthtrue% assume we want to calculate the box depth
+     \inrangetrue% assume the appt is in range
+     \set at start@timetrue% assume we want to calculate the start time
+     \set at end@timetrue% assume we want to calculate the end time
+     \@includetrue% assume we will include it
+     \edef\appt at name{#1}% save the appt name
+     \edef\appt at color{#2}% save the background color
+     \edef\appt at textcolor{#3}% save the save color
+     \expandafter\def\csname #1 at name\endcsname{##1}% save the name
+     \expandafter\def\csname #1 at location\endcsname{##2}% save the loc.
+     \expandafter\def\csname #1 at days\endcsname{##3}% save the days
+     \expandafter\def\csname #1 at time\endcsname{##4}% save the time
+     \place at appt@box##3,\stop}}
+
+\NewAppointment{class}{dark}{black}
+
+\def\place at appt@box#1{%
+  \ifx#1\stop \let\@next=\@gobble%
+   \else \let\@next=\set at x@coords\fi\@next#1}
+
+\def\set at x@coords#1,{\def\the at day{#1}%
+ \ifx\the at day\@sunday\setcounter{xcoords}{\value{x at Sunday}}%
+  \else\ifx\the at day\@monday\setcounter{xcoords}{\value{x at Monday}}%
+   \else\ifx\the at day\@tuesday\setcounter{xcoords}{\value{x at Tuesday}}%
+    \else\ifx\the at day\@wednesday\setcounter{xcoords}{\value{x at Wednesday}}%
+     \else\ifx\the at day\@thursday\setcounter{xcoords}{\value{x at Thursday}}%
+      \else\ifx\the at day\@friday\setcounter{xcoords}{\value{x at Friday}}%
+       \else\setcounter{xcoords}{\value{x at Saturday}}%
+        \fi\fi\fi\fi\fi\fi%
+         \edef\@@temp{\csname \appt at name @time\endcsname}%
+          \expandafter\set at y@coords\@@temp\stop}
+
+\def\set at y@coords#1:#2-#3:#4\stop{%
+  \def\@starthour{#1}%
+  \def\@startminutes{#2}
+  \def\@endhour{#3}%
+  \def\@endminutes{#4}%
+  \ifnum#1<\value{start at time} \setcounter{ycoords}{\value{grid at height}}%
+                              \edef\@starthour{\value{start at time}}
+                              \def\@startminutes{0}
+                              \set at start@timefalse%
+                              \fi%
+  \ifnum#3<\value{end at time} \relax%
+    \else \edef\@endhour{\value{end at time}}
+          \def\@endminutes{0}%
+          \setcounter{ycoords at bot}{0}
+          \set at end@timefalse
+  \fi %
+  \ifset at start@time%
+   \setcounter{ycoords}{\value{grid at height}-(60*(#1-\value{start at time})+#2)}\fi%
+  \ifset at end@time%
+    \setcounter{ycoords at bot}{\value{grid at height}-(60*(#3-\value{start at time})+#4)}\fi%
+  \setlength{\box at depth}{\@endhour\cell at height + (\cell at height*\ratio{\@endminutes pt}{60pt}) %
+         - \@starthour\cell at height - (\cell at height*\ratio{\@startminutes pt}{60pt})}%
+  \ifnum#1<\value{end at time} \relax\else \inrangefalse \fi%
+  \draw at appt@box\place at appt@box}
+
+\newif\if at include
+
+\def\draw at appt@box{%
+   \ifweekends \relax % if we use 7-days, this won't change
+   \else \ifx \the at day\skipday at i \@includefalse \fi % first condition for change
+         \ifx \the at day\skipday at ii \@includefalse \fi\fi % second condition for change
+  \ifinrange \relax\else \@includefalse \fi %
+  \if at include %
+  \put(\value{xcoords},\value{ycoords}){\colorbox{\appt at color}{\parbox[t]{\cell at width}{\ %
+        \vspace{\box at depth}}}}
+  \thinlines
+  \put(\value{xcoords},\value{ycoords}){\line(1,0){\value{pu at cell@width}}}
+  \put(\value{xcoords},\value{ycoords at bot}){\line(1,0){\value{pu at cell@width}}}
+  \put(\value{xcoords},\value{ycoords}){%
+        \  \parbox[t]{\cell at width-8pt}{\mbox{}\\ \appt at textsize %
+        \ifdim\box at depth>\baselineskip
+        \textcolor{\appt at textcolor}{\csname \appt at name @name\endcsname} \\ %
+        \ifdim\box at depth>2\baselineskip
+        \textcolor{\appt at textcolor}{\csname \appt at name
+        @location\endcsname}\fi\fi }}\fi}
+
+\def\convert at class@time#1:#2-#3:#4\end at time{%
+  {\count1=#1\relax%
+   \count3=#3\relax%
+   \ifnum#1>12 \advance\count1 by -12\fi\relax%
+   \ifnum#3>12 \advance\count3 by -12\fi\relax%
+   \ifnum#1<12\relax%
+    \ifnum#3<12\relax \mbox{\the\count1:#2am--\the\count3:#4am}\relax%
+     \else \mbox{\the\count1:#2am--\the\count3:#4pm}\fi\relax%
+      \else \mbox{\the\count1:#2pm--\the\count3:#4pm}\fi\relax}}
+
+\def\compute at box@depth#1:#2-#3:#4\end at bx{%
+  \setlength{\box at depth}{#3\cell at height + (\cell at height*\ratio{#4pt}{60pt}) %
+         - #1\cell at height - (\cell at height*\ratio{#2pt}{60pt})}}
+
+\newcounter{ycoords at bot}
+
+\newcounter{x at tempa}
+\newcounter{x at tempb}
+\newcounter{y at tempa}
+\newcounter{y at tempb}
+\newcounter{temp at cnt@a}
+
+\newlength{\title at height}
+\newlength{\label at height}
+ \settoheight{\label at height}{Wednesday}
+
+\newcounter{pu at label@width}
+\newlength{\center at hack}
+
+\newenvironment{schedule}[1][:]%
+{\bigskip
+ \calculate at grid@dimensions%
+ \setcounter{pu at grid@width}{\value{pu at cell@width}*\value{number at of@days}}%
+ \settowidth{\@temp at length}{\normalsize 12:00\ pm\ }%
+ \setcounter{pu at label@width}{1*\ratio{\@temp at length}{\unitlength}}%
+ \setcounter{pu at grid@top}{\value{grid at height}+(1*\ratio{\label at height}{\unitlength}) + %
+    (1*\ratio{.25in}{\unitlength})}%
+ \if#1:\relax \else%
+  \settoheight{\title at height}{\large #1}%
+  \addtocounter{pu at grid@top}{1*\ratio{\title at height}{\unitlength}}%
+ \fi%
+ \setlength{\center at hack}{(.5\linewidth-.5\unitlength*\value{pu at grid@width}+%
+   .5\unitlength*\value{pu at label@width})}%
+ \noindent\hspace*{\center at hack}%
+ \begin{picture}(\value{pu at grid@width},\value{pu at grid@top})%
+ \draw at grid
+ \add at labels
+ \if#1:\relax \else
+  \setcounter{ycoords}{\value{grid at height}+(1*\ratio{\label at height}{\unitlength}) + %
+     (1*\ratio{.25in}{\unitlength})}
+  \setcounter{xcoords}{1*\ratio{\value{pu at grid@width} pt}{2 pt}}
+ \put(\value{xcoords},\value{ycoords}){\makebox(0,0)[b]{\Large #1}}
+ \fi
+ \add at times
+ \set at x@coords at for@days}
+{\multiput(0,0)(\value{pu at cell@width},0){\value{dp at vlines}}{\line(0,1){\value{grid at height}}}
+ \end{picture}\bigskip}
+
+\setlength{\fboxsep}{0in}
+%    \end{macrocode} 
+% \iffalse
+%</package> 
+% \fi
+% \newpage
+% \PrintChanges
+% \PrintIndex
+% \Finale 


Property changes on: trunk/Master/texmf-dist/source/latex/schedule/schedule.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/schedule/schedule.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/schedule/schedule.ins	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/schedule/schedule.ins	2019-07-29 21:20:08 UTC (rev 51772)
@@ -0,0 +1,53 @@
+%%
+%% This is file `schedule.ins',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% schedule.dtx  (with options: `batchfile')
+%% 
+%% This is a generated file.
+%% 
+%% Copyright (c) Ethan Deneault <edeneault at ut.edu>, 2019
+%%                       (current maintainer)
+%% Copyright (c) Jason Alexander, 1997-2001
+%%                        (author)
+%% 
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in:
+%% 
+%% http://www.latex-project.org/lppl.txt
+%% 
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%% 
+\input docstrip.tex
+\keepsilent\askforoverwritefalse
+\preamble
+
+This is a generated file.
+
+Copyright (c) Ethan Deneault <edeneault at ut.edu>, 2019
+                      (current maintainer)
+Copyright (c) Jason Alexander, 1997-2001
+                       (author)
+
+This file may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in:
+
+http://www.latex-project.org/lppl.txt
+
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+\endpreamble
+\usedir{tex/latex/schedule}
+\generate{\file{\jobname.sty}{\from{\jobname.dtx}{package}}}
+\endbatchfile
+\endinput
+%%
+%% End of file `schedule.ins'.

Added: trunk/Master/texmf-dist/tex/latex/schedule/schedule.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/schedule/schedule.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/schedule/schedule.sty	2019-07-29 21:20:08 UTC (rev 51772)
@@ -0,0 +1,460 @@
+%%
+%% This is file `schedule.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% schedule.dtx  (with options: `package')
+%% 
+%% This is a generated file.
+%% 
+%% Copyright (c) Ethan Deneault <edeneault at ut.edu>, 2019
+%%                       (current maintainer)
+%% Copyright (c) Jason Alexander, 1997-2001
+%%                        (author)
+%% 
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in:
+%% 
+%% http://www.latex-project.org/lppl.txt
+%% 
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%% 
+\ProvidesFile{schedule.sty}
+\NeedsTeXFormat{LaTeX2e}[2005/12/01]
+\ProvidesPackage{schedule}[2019/7/26 v1.10 schedule package]
+\RequirePackage{calc}
+\RequirePackage{xcolor}
+\definecolor{dark}{gray}{.75}
+\def\@sunday{Su}
+ \def\@Sunday{Sunday}
+\def\@monday{M}
+ \def\@Monday{Monday}
+\def\@tuesday{T}
+ \def\@Tuesday{Tuesday}
+\def\@wednesday{W}
+ \def\@Wednesday{Wednesday}
+\def\@thursday{Th}
+ \def\@Thursday{Thursday}
+\def\@friday{F}
+ \def\@Friday{Friday}
+\def\@saturday{Sa}
+ \def\@Saturday{Saturday}
+\newlength{\cell at height}
+ \setlength{\cell at height}{1in}
+\newlength{\cell at width}
+ \setlength{\cell at width}{1in}
+\newlength{\box at depth}
+\newcounter{sch at col@width} \setcounter{sch at col@width}{60}
+\newlength{\box at width}
+ \setlength{\box at width}{1in*(\value{sch at col@width}/60)}
+\newlength{\col at width}
+ \setlength{\col at width}{1in*(\value{sch at col@width}/60)}
+\newlength{\sch at depth} \setlength{\sch at depth}{9in}
+\newlength{\fill at length}
+\newlength{\@temp at length}
+\newlength{\@@temp at length}
+\newlength{\line at thickness} % The thickness of the lines in the drawing
+ \setlength{\line at thickness}{.4pt}
+\newlength{\adjusted at cell@width}
+\newlength{\adjusted at cell@height}
+
+\newcounter{picture at units@wide}
+\newcounter{xcoords}
+\newcounter{ycoords}
+\newcounter{timea}
+\newcounter{timeb}
+\newcounter{grid at width}
+\newcounter{grid at height}
+\newcounter{number at of@cells} % The number of VERTICAL cells
+\newcounter{number at of@subcells}
+\newcounter{number at of@days} % The number of days in the grid
+\newcounter{dp at vlines} % The number of vertical lines actually needed is
+                       % \value{number at of@days} + 1 ...
+\newcounter{dp at hlines} % The number of horizontal lines actually needed is
+                       % \value{number at of@cells} + 1 ...
+\newcounter{dp at hcell@lines} % The number of horizontal lines that are
+                       % either (1) associated with an hour, or
+                       %        (2) on the top or bottom of the grid.
+\newcounter{pu at cell@width}
+\newcounter{pu at cell@height}
+ \setcounter{pu at cell@height}{60}
+\newcounter{pu at grid@top}
+\newcounter{pu at grid@width}
+\newcounter{pu at subticks}
+\newcounter{start at time}
+\newcounter{end at time}
+\newcounter{x at coord} % Temporary x-coordinate
+\newcounter{y at coord} % Temporary y-coordinate
+\newcounter{@tempc}
+\newcounter{@tempd}
+\newcounter{label at sep}  % distance from label to gride
+ \setcounter{label at sep}{5} %initialized to 5 picture units
+
+\newcounter{x at Sunday}
+\newcounter{x at Monday}
+\newcounter{x at Tuesday}
+\newcounter{x at Wednesday}
+\newcounter{x at Thursday}
+\newcounter{x at Friday}
+\newcounter{x at Saturday}
+
+\newsavebox{\temp at box}
+\newif\ifweekends
+\newcount\@i
+\newcount\@j
+
+\def\TimeRange#1{\compute at number@of at cells #1\end at compute}
+\def\compute at number@of at cells#1:#2-#3:#4\end at compute{%
+  \setcounter{number at of@cells}{#3-#1}%
+  \setcounter{start at time}{#1}%
+  \setcounter{end at time}{#3}}
+
+\def\TextSize#1{\def\appt at textsize{#1}}
+\TextSize{\scriptsize}
+
+\def\IncludeWeekends{\weekendstrue}
+\def\NoWeekends{\weekendsfalse}
+
+\def\SevenDay{\weekendstrue}
+\def\FiveDay{\weekendsfalse}
+
+\def\CellHeight#1{\setlength{\cell at height}{#1}%
+                  \setlength{\unitlength}{\cell at height*\ratio{1pt}{60pt}}}
+\def\CellWidth#1{\setlength{\cell at width}{#1}%
+                 \setcounter{pu at cell@width}{1*\ratio{\cell at width}{\unitlength}}}
+\def\SubUnits#1{\setcounter{pu at subticks}{#1}%
+                \setcounter{number at of@subcells}{60/\value{pu at subticks}}}
+
+\def\calculate at grid@dimensions{%
+  \ifweekends \setcounter{number at of@days}{7}
+   \else \setcounter{number at of@days}{5}%
+    \fi%
+  \setcounter{dp at hcell@lines}{\value{number at of@cells}+1}
+  \setcounter{grid at width}{\value{number at of@days}*\value{pu at cell@width}}%
+  \setcounter{grid at height}{\value{number at of@cells}*60}
+  \setcounter{dp at vlines}{\value{number at of@days}+1}
+  \setcounter{dp at hlines}{\value{number at of@cells}*(60/\value{pu at subticks}) + 1}}
+
+\def\draw at grid{%\calculate at grid@dimensions
+  \linethickness{.2pt}%
+  \multiput(0,0)(0,\value{pu at subticks}){\value{dp at hlines}}{\line(1,0){\value{grid at width}}}%
+  \thicklines
+  \multiput(0,0)(0,60){\value{dp at hcell@lines}}{\line(1,0){\value{grid at width}}}
+  \thinlines}
+
+\def\LineThickness#1{\setlength{\line at thickness}{#1}%
+                     \linethickness{\line at thickness}%
+                     \setlength{\adjusted at cell@width}{\cell at width - 1\line at thickness}
+                     \setlength{\adjusted at cell@height}{\cell at height - 1\line at thickness}}
+
+\def\@Su at week{{Sunday} {Monday} {Tuesday} {Wednesday} {Thursday} {Friday} {Saturday}}
+\def\@M at week{{Monday} {Tuesday} {Wednesday} {Thursday} {Friday} {Saturday} {Sunday}}
+\def\@T at week{{Tuesday} {Wednesday} {Thursday} {Friday} {Saturday} {Sunday} {Monday}}
+\def\@W at week{{Wednesday} {Thursday} {Friday} {Saturday} {Sunday} {Monday} {Tuesday}}
+\def\@Th at week{{Thursday} {Friday} {Saturday} {Sunday} {Monday} {Tuesday} {Wednesday}}
+\def\@F at week{{Friday} {Saturday} {Sunday} {Monday} {Tuesday} {Wednesday} {Thursday}}
+\def\@Sa at week{{Saturday} {Sunday} {Monday} {Tuesday} {Wednesday} {Thursday} {Friday}}
+
+\def\BeginOn#1{\def\start at day{#1}}
+
+\def\add at labels{%
+ \ifx\start at day\@Sunday \expandafter\do at days\@Su at week \relax
+  \else\ifx\start at day\@Monday \expandafter\do at days\@M at week \relax
+   \else\ifx\start at day\@Tuesday \expandafter\do at days\@T at week \relax
+    \else\ifx\start at day\@Wednesday \expandafter\do at days\@W at week \relax
+     \else\ifx\start at day\@Thursday \expandafter\do at days\@Th at week \relax
+      \else\ifx\start at day\@Friday \expandafter\do at days\@F at week \relax
+       \else\expandafter\do at days\@Sa at week \relax
+    \fi\fi\fi\fi\fi\fi}
+
+\def\@sfor #1:=#2 \upto #3 \step #4 \do #5{%
+  #1=#2\relax%
+  \@whilenum #1<#3 \do {#5 \advance#1 by #4}#5}
+
+\def\add at times{%
+  \setcounter{@tempc}{\value{start at time}}%
+  \@sfor \@i :=0 \upto \value{number at of@cells} \step 1 \do%
+    {\setcounter{x at coord}{0}%                               Set the x-coord right
+     \setcounter{y at coord}{\value{grid at height}-60*\@i}%      adjust for the right hour cell
+     \ifnum\value{@tempc}=0%
+        \setcounter{@tempd}{\value{@tempc}+12}%
+         \put(\value{x at coord},\value{y at coord}){%
+         \makebox(0,0)[r]{\the at tempd:00 midnight\ }}% Midnight Hack
+     \else\ifnum\value{@tempc}=24%
+        \setcounter{@tempd}{\value{@tempc}-12}%
+         \put(\value{x at coord},\value{y at coord}){%
+         \makebox(0,0)[r]{\the at tempd:00 midnight\ }}% Midnight Hack
+     \else\ifnum\value{@tempc}>12%
+        \setcounter{@tempd}{\value{@tempc}-12}%
+        \put(\value{x at coord},\value{y at coord}){%
+         \makebox(0,0)[r]{\the at tempd:00 pm\ }}%
+     \else\ifnum\value{@tempc}=12%
+        \setcounter{@tempd}{\value{@tempc}}%
+          \put(\value{x at coord},\value{y at coord}){%
+           \makebox(0,0)[r]{\the at tempd:00 noon\ }}% Noontime Hack
+     \else\put(\value{x at coord},\value{y at coord}){%
+      \makebox(0,0)[r]{\the at tempc:00 am\ }}%
+     \fi\relax%
+     \fi\relax%
+     \fi\relax%
+     \fi\relax%
+     \@sfor \@j := \value{pu at subticks} \upto 59 \step \value{pu at subticks} \do%
+       {\ifnum\@i=\value{number at of@cells}%  Test to see if this should be the last label
+           \relax%
+        \else%
+           \ifnum\@j=60%
+             \relax%
+           \else%
+             \ifnum\@j<10%
+               \def\the at minutes{0\the\@j}%
+             \else\def\the at minutes{\the\@j}%
+             \fi%
+             \setcounter{y at coord}{\value{y at coord}-\@j}%
+             \ifnum\value{@tempc}=0%
+                \setcounter{@tempd}{\value{@tempc}+12}%
+                \put(\value{x at coord},\value{y at coord}){%
+                 \makebox(0,0)[r]{\tiny\the at tempd:\the at minutes\ am\ }}% Hack to get 12:xx AM right.
+             \else\ifnum\value{@tempc}=24%
+                \setcounter{@tempd}{\value{@tempc}-12}%
+                \put(\value{x at coord},\value{y at coord}){%
+                 \makebox(0,0)[r]{\tiny\the at tempd:\the at minutes\ am\ }}% Hack to get 12:xx AM right.
+             \else\ifnum\value{@tempc}>12%
+                \setcounter{@tempd}{\value{@tempc}-12}%
+                \put(\value{x at coord},\value{y at coord}){%
+                 \makebox(0,0)[r]{\tiny\the at tempd:\the at minutes\ pm\ }}% ...write the time (using pm)...
+             \else\ifnum\value{@tempc}=12%
+                \setcounter{@tempd}{\value{@tempc}}%
+                \put(\value{x at coord},\value{y at coord}){%
+                 \makebox(0,0)[r]{\tiny\the at tempd:\the at minutes\ pm\ }}% Hack to get 12:xx PM right.
+             \else\put(\value{x at coord},\value{y at coord}){%
+              \makebox(0,0)[r]{\tiny\the at tempc:\the at minutes\ am\ }}% ...write the time (using am).
+             \fi%
+             \fi%
+     \fi%
+           \fi%
+        \fi%
+        \fi%
+        \setcounter{y at coord}{\value{y at coord}+\@j}}
+     \addtocounter{@tempc}{1}}}%
+
+\def\do at days#1#2#3#4#5#6#7{%
+  \setcounter{x at coord}{1*\ratio{\value{pu at cell@width} pt}{2 pt}}%
+  \setcounter{y at coord}{\value{grid at height}+\value{label at sep}}%
+  \put(\value{x at coord},\value{y at coord}){\makebox(0,0)[b]{\large #1}}%
+  \setcounter{x at coord}{\value{x at coord}+\value{pu at cell@width}}%
+  \put(\value{x at coord},\value{y at coord}){\makebox(0,0)[b]{\large #2}}%
+  \setcounter{x at coord}{\value{x at coord}+\value{pu at cell@width}}%
+  \put(\value{x at coord},\value{y at coord}){\makebox(0,0)[b]{\large #3}}%
+  \setcounter{x at coord}{\value{x at coord}+\value{pu at cell@width}}%
+  \put(\value{x at coord},\value{y at coord}){\makebox(0,0)[b]{\large #4}}%
+  \setcounter{x at coord}{\value{x at coord}+\value{pu at cell@width}}%
+  \put(\value{x at coord},\value{y at coord}){\makebox(0,0)[b]{\large #5}}%
+  \setcounter{x at coord}{\value{x at coord}+\value{pu at cell@width}}%
+  \ifweekends
+  \put(\value{x at coord},\value{y at coord}){\makebox(0,0)[b]{\large #6}}%
+  \setcounter{x at coord}{\value{x at coord}+\value{pu at cell@width}}%
+  \put(\value{x at coord},\value{y at coord}){\makebox(0,0)[b]{\large #7}}\fi}
+
+\def\set at x@coords at for@days{%
+  \ifx\start at day\@Sunday%
+    \@i=0\relax%
+    \@tfor \@temp := {Sunday} {Monday} {Tuesday} {Wednesday} {Thursday} {Friday} {Saturday} \do%
+      {\setcounter{x@\@temp}{\@i*\value{pu at cell@width}}%
+       \advance\@i by 1}
+    \def\skipday at i{F}
+    \def\skipday at ii{Sa}\fi
+  \ifx\start at day\@Monday
+    \@i=0\relax%
+    \@tfor \@temp := {Monday} {Tuesday} {Wednesday} {Thursday} {Friday} {Saturday} {Sunday} \do%
+      {\setcounter{x@\@temp}{\@i*\value{pu at cell@width}}%
+       \advance\@i by 1}
+    \def\skipday at i{Sa}
+    \def\skipday at ii{Su}\fi
+  \ifx\start at day\@Tuesday
+    \@i=0\relax%
+    \@tfor \@temp := {Tuesday} {Wednesday} {Thursday} {Friday} {Saturday} {Sunday} {Monday} \do%
+      {\setcounter{x@\@temp}{\@i*\value{pu at cell@width}}%
+       \advance\@i by 1}
+    \def\skipday at i{Su}
+    \def\skipday at ii{M}\fi
+  \ifx\start at day\@Wednesday
+    \@i=0\relax%
+    \@tfor \@temp := {Wednesday} {Thursday} {Friday} {Saturday} {Sunday} {Monday} {Tuesday} \do%
+      {\setcounter{x@\@temp}{\@i*\value{pu at cell@width}}%
+       \advance\@i by 1}
+    \def\skipday at i{M}
+    \def\skipday at ii{T}\fi
+  \ifx\start at day\@Thursday
+    \@i=0\relax%
+    \@tfor \@temp := {Thursday} {Friday} {Saturday} {Sunday} {Monday} {Tuesday} {Wednesday} \do%
+      {\setcounter{x@\@temp}{\@i*\value{pu at cell@width}}%
+       \advance\@i by 1}
+    \def\skipday at i{T}
+    \def\skipday at ii{W}\fi
+  \ifx\start at day\@Friday
+    \@i=0\relax%
+    \@tfor \@temp := {Friday} {Saturday} {Sunday} {Monday} {Tuesday} {Wednesday} {Thursday} \do%
+      {\setcounter{x@\@temp}{\@i*\value{pu at cell@width}}%
+       \advance\@i by 1}
+    \def\skipday at i{W}
+    \def\skipday at ii{Th}\fi
+  \ifx\start at day\@Saturday
+    \@i=0\relax%
+    \@tfor \@temp := {Saturday} {Sunday} {Monday} {Tuesday} {Wednesday} {Thursday} {Friday} \do%
+      {\setcounter{x@\@temp}{\@i*\value{pu at cell@width}}%
+       \advance\@i by 1}
+    \def\skipday at i{Th}
+    \def\skipday at ii{F}\fi
+  }
+
+\newif\ifset at start@time
+\newif\ifset at end@time
+\newif\ifsetboxdepth
+\newif\ifinrange
+
+\def\NewAppointment#1#2#3{% #1 = name, #2 = background color, #3 = textcolor
+  \expandafter\def\csname #1\endcsname##1##2##3##4{%
+     \setboxdepthtrue% assume we want to calculate the box depth
+     \inrangetrue% assume the appt is in range
+     \set at start@timetrue% assume we want to calculate the start time
+     \set at end@timetrue% assume we want to calculate the end time
+     \@includetrue% assume we will include it
+     \edef\appt at name{#1}% save the appt name
+     \edef\appt at color{#2}% save the background color
+     \edef\appt at textcolor{#3}% save the save color
+     \expandafter\def\csname #1 at name\endcsname{##1}% save the name
+     \expandafter\def\csname #1 at location\endcsname{##2}% save the loc.
+     \expandafter\def\csname #1 at days\endcsname{##3}% save the days
+     \expandafter\def\csname #1 at time\endcsname{##4}% save the time
+     \place at appt@box##3,\stop}}
+
+\NewAppointment{class}{dark}{black}
+
+\def\place at appt@box#1{%
+  \ifx#1\stop \let\@next=\@gobble%
+   \else \let\@next=\set at x@coords\fi\@next#1}
+
+\def\set at x@coords#1,{\def\the at day{#1}%
+ \ifx\the at day\@sunday\setcounter{xcoords}{\value{x at Sunday}}%
+  \else\ifx\the at day\@monday\setcounter{xcoords}{\value{x at Monday}}%
+   \else\ifx\the at day\@tuesday\setcounter{xcoords}{\value{x at Tuesday}}%
+    \else\ifx\the at day\@wednesday\setcounter{xcoords}{\value{x at Wednesday}}%
+     \else\ifx\the at day\@thursday\setcounter{xcoords}{\value{x at Thursday}}%
+      \else\ifx\the at day\@friday\setcounter{xcoords}{\value{x at Friday}}%
+       \else\setcounter{xcoords}{\value{x at Saturday}}%
+        \fi\fi\fi\fi\fi\fi%
+         \edef\@@temp{\csname \appt at name @time\endcsname}%
+          \expandafter\set at y@coords\@@temp\stop}
+
+\def\set at y@coords#1:#2-#3:#4\stop{%
+  \def\@starthour{#1}%
+  \def\@startminutes{#2}
+  \def\@endhour{#3}%
+  \def\@endminutes{#4}%
+  \ifnum#1<\value{start at time} \setcounter{ycoords}{\value{grid at height}}%
+                              \edef\@starthour{\value{start at time}}
+                              \def\@startminutes{0}
+                              \set at start@timefalse%
+                              \fi%
+  \ifnum#3<\value{end at time} \relax%
+    \else \edef\@endhour{\value{end at time}}
+          \def\@endminutes{0}%
+          \setcounter{ycoords at bot}{0}
+          \set at end@timefalse
+  \fi %
+  \ifset at start@time%
+   \setcounter{ycoords}{\value{grid at height}-(60*(#1-\value{start at time})+#2)}\fi%
+  \ifset at end@time%
+    \setcounter{ycoords at bot}{\value{grid at height}-(60*(#3-\value{start at time})+#4)}\fi%
+  \setlength{\box at depth}{\@endhour\cell at height + (\cell at height*\ratio{\@endminutes pt}{60pt}) %
+         - \@starthour\cell at height - (\cell at height*\ratio{\@startminutes pt}{60pt})}%
+  \ifnum#1<\value{end at time} \relax\else \inrangefalse \fi%
+  \draw at appt@box\place at appt@box}
+
+\newif\if at include
+
+\def\draw at appt@box{%
+   \ifweekends \relax % if we use 7-days, this won't change
+   \else \ifx \the at day\skipday at i \@includefalse \fi % first condition for change
+         \ifx \the at day\skipday at ii \@includefalse \fi\fi % second condition for change
+  \ifinrange \relax\else \@includefalse \fi %
+  \if at include %
+  \put(\value{xcoords},\value{ycoords}){\colorbox{\appt at color}{\parbox[t]{\cell at width}{\ %
+        \vspace{\box at depth}}}}
+  \thinlines
+  \put(\value{xcoords},\value{ycoords}){\line(1,0){\value{pu at cell@width}}}
+  \put(\value{xcoords},\value{ycoords at bot}){\line(1,0){\value{pu at cell@width}}}
+  \put(\value{xcoords},\value{ycoords}){%
+        \  \parbox[t]{\cell at width-8pt}{\mbox{}\\ \appt at textsize %
+        \ifdim\box at depth>\baselineskip
+        \textcolor{\appt at textcolor}{\csname \appt at name @name\endcsname} \\ %
+        \ifdim\box at depth>2\baselineskip
+        \textcolor{\appt at textcolor}{\csname \appt at name
+        @location\endcsname}\fi\fi }}\fi}
+
+\def\convert at class@time#1:#2-#3:#4\end at time{%
+  {\count1=#1\relax%
+   \count3=#3\relax%
+   \ifnum#1>12 \advance\count1 by -12\fi\relax%
+   \ifnum#3>12 \advance\count3 by -12\fi\relax%
+   \ifnum#1<12\relax%
+    \ifnum#3<12\relax \mbox{\the\count1:#2am--\the\count3:#4am}\relax%
+     \else \mbox{\the\count1:#2am--\the\count3:#4pm}\fi\relax%
+      \else \mbox{\the\count1:#2pm--\the\count3:#4pm}\fi\relax}}
+
+\def\compute at box@depth#1:#2-#3:#4\end at bx{%
+  \setlength{\box at depth}{#3\cell at height + (\cell at height*\ratio{#4pt}{60pt}) %
+         - #1\cell at height - (\cell at height*\ratio{#2pt}{60pt})}}
+
+\newcounter{ycoords at bot}
+
+\newcounter{x at tempa}
+\newcounter{x at tempb}
+\newcounter{y at tempa}
+\newcounter{y at tempb}
+\newcounter{temp at cnt@a}
+
+\newlength{\title at height}
+\newlength{\label at height}
+ \settoheight{\label at height}{Wednesday}
+
+\newcounter{pu at label@width}
+\newlength{\center at hack}
+
+\newenvironment{schedule}[1][:]%
+{\bigskip
+ \calculate at grid@dimensions%
+ \setcounter{pu at grid@width}{\value{pu at cell@width}*\value{number at of@days}}%
+ \settowidth{\@temp at length}{\normalsize 12:00\ pm\ }%
+ \setcounter{pu at label@width}{1*\ratio{\@temp at length}{\unitlength}}%
+ \setcounter{pu at grid@top}{\value{grid at height}+(1*\ratio{\label at height}{\unitlength}) + %
+    (1*\ratio{.25in}{\unitlength})}%
+ \if#1:\relax \else%
+  \settoheight{\title at height}{\large #1}%
+  \addtocounter{pu at grid@top}{1*\ratio{\title at height}{\unitlength}}%
+ \fi%
+ \setlength{\center at hack}{(.5\linewidth-.5\unitlength*\value{pu at grid@width}+%
+   .5\unitlength*\value{pu at label@width})}%
+ \noindent\hspace*{\center at hack}%
+ \begin{picture}(\value{pu at grid@width},\value{pu at grid@top})%
+ \draw at grid
+ \add at labels
+ \if#1:\relax \else
+  \setcounter{ycoords}{\value{grid at height}+(1*\ratio{\label at height}{\unitlength}) + %
+     (1*\ratio{.25in}{\unitlength})}
+  \setcounter{xcoords}{1*\ratio{\value{pu at grid@width} pt}{2 pt}}
+ \put(\value{xcoords},\value{ycoords}){\makebox(0,0)[b]{\Large #1}}
+ \fi
+ \add at times
+ \set at x@coords at for@days}
+{\multiput(0,0)(\value{pu at cell@width},0){\value{dp at vlines}}{\line(0,1){\value{grid at height}}}
+ \end{picture}\bigskip}
+
+\setlength{\fboxsep}{0in}
+\endinput
+%%
+%% End of file `schedule.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/schedule/schedule.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/tlpkg/bin/tlpkg-ctan-check
===================================================================
--- trunk/Master/tlpkg/bin/tlpkg-ctan-check	2019-07-29 21:18:39 UTC (rev 51771)
+++ trunk/Master/tlpkg/bin/tlpkg-ctan-check	2019-07-29 21:20:08 UTC (rev 51772)
@@ -603,7 +603,8 @@
     sapthesis sasnrdisplay sauerj
     sauter sauterfonts savefnmark savesym savetrees
     scale scalebar scalerel scanpages
-    schemabloc schemata sclang-prettifier schule schulschriften schwalbe-chess
+    schedule schemabloc schemata sclang-prettifier
+    schule schulschriften schwalbe-chess
     sciposter scientific-thesis-cover
     scratch scratch3 scratchx screenplay screenplay-pkg
     scrjrnl scrlttr2copy scsnowman

Modified: trunk/Master/tlpkg/libexec/ctan2tds
===================================================================
--- trunk/Master/tlpkg/libexec/ctan2tds	2019-07-29 21:18:39 UTC (rev 51771)
+++ trunk/Master/tlpkg/libexec/ctan2tds	2019-07-29 21:20:08 UTC (rev 51772)
@@ -1098,7 +1098,6 @@
  'sagetex',     "die 'skipping, omitted at author request (25 Jan 2010 19:50:16)'",
  'sansmathaccent',      "&MAKEflatten",
  'sansmathfonts',       "&MAKEflatten",
- 'schedule',            "die 'skipping, noinfo license, too old to matter'",
  'schulschriften',      "&MAKEflatten",
  'schwell',             "die 'skipping, use gothic'",
  'scientifixpaper',     "die 'skipping, noinfo license'",

Modified: trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc	2019-07-29 21:18:39 UTC (rev 51771)
+++ trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc	2019-07-29 21:20:08 UTC (rev 51772)
@@ -981,6 +981,7 @@
 depend scalebar
 depend scalerel
 depend scanpages
+depend schedule
 depend scrlttr2copy
 depend sdrt
 depend secdot

Added: trunk/Master/tlpkg/tlpsrc/schedule.tlpsrc
===================================================================


More information about the tex-live-commits mailing list