summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2012-03-31 22:27:14 +0000
committerKarl Berry <karl@freefriends.org>2012-03-31 22:27:14 +0000
commit9c01b63974296c5795e3a8b63460ff6a46bf3b4d (patch)
tree0cfc63d976ce7f9ba9276b710f8bf0b55dbc194b
parent277834d3584f8e4b77c4cffa285491e19f0a5871 (diff)
prerex 6.3.2 (31mar12)
git-svn-id: svn://tug.org/texlive/trunk@25800 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/prerex/README2
-rw-r--r--Master/texmf-dist/doc/latex/prerex/doc/intro.pdfbin245045 -> 245523 bytes
-rw-r--r--Master/texmf-dist/doc/latex/prerex/doc/intro.tex25
-rw-r--r--Master/texmf-dist/doc/latex/prerex/doc/introFonts.pngbin15287 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/latex/prerex/doc/prerex.pdfbin140328 -> 140709 bytes
-rw-r--r--Master/texmf-dist/doc/latex/prerex/doc/prerex.sty.724
-rw-r--r--Master/texmf-dist/doc/latex/prerex/doc/prerex.tex15
-rw-r--r--Master/texmf-dist/doc/latex/prerex/prerex-6.2.tar.gzbin112032 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/latex/prerex/prerex-6.3.2.tar.gzbin0 -> 113434 bytes
-rw-r--r--Master/texmf-dist/doc/latex/prerex/vprerex-6.3.1.tar.gzbin15819 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/latex/prerex/vprerex-6.3.2.tar.gzbin0 -> 15461 bytes
-rw-r--r--Master/texmf-dist/tex/latex/prerex/prerex.sty217
12 files changed, 233 insertions, 50 deletions
diff --git a/Master/texmf-dist/doc/latex/prerex/README b/Master/texmf-dist/doc/latex/prerex/README
index ab65eeae9fb..7249e000697 100644
--- a/Master/texmf-dist/doc/latex/prerex/README
+++ b/Master/texmf-dist/doc/latex/prerex/README
@@ -1,4 +1,4 @@
-prerex, version 6.3: Macros for prerequisite charts, with associated
+prerex, version 6.3.2: Macros for prerequisite charts, with associated
editor and viewer applications.
This package consists of
diff --git a/Master/texmf-dist/doc/latex/prerex/doc/intro.pdf b/Master/texmf-dist/doc/latex/prerex/doc/intro.pdf
index 9365ec1d354..36b5d2f2641 100644
--- a/Master/texmf-dist/doc/latex/prerex/doc/intro.pdf
+++ b/Master/texmf-dist/doc/latex/prerex/doc/intro.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/prerex/doc/intro.tex b/Master/texmf-dist/doc/latex/prerex/doc/intro.tex
index 054ec301e86..e6d4a0580f3 100644
--- a/Master/texmf-dist/doc/latex/prerex/doc/intro.tex
+++ b/Master/texmf-dist/doc/latex/prerex/doc/intro.tex
@@ -594,6 +594,11 @@ and then ``pasted'' elsewhere, the target or source coordinates of arrows into o
adjusted accordingly, and similarly if nodes are shifted or raised. To allow permutations of two or more
chart elements, the
editor maintains a ``stack'' of elements that have been cut but not yet pasted.
+The notation
+$x_0,y_0:x_1,y_1$
+denotes all the nodes (course boxes, minis, texts) in the rectangle whose northwest and southeast corners are at
+coordinates
+$x_0,y_0$ and $x_1,y_1$.
\begin{table}
\begin{center}\small
\begin{tabular}{|l|l|}
@@ -605,11 +610,11 @@ editor maintains a ``stack'' of elements that have been cut but not yet pasted.
\verb\file> mini x,y \ & [create and] edit mini course at $x,y$\\
\verb\file> text x,y \ & [create and] edit text centered at $x,y$\\
\verb\file> arrow x0,y0,x1,y1\ & [create and] edit arrow from $x0,y0$ to $x1,y1$\\
-\verb\file> cut x,y \ & (temporarily) remove box, mini, or text at $x,y$\\
-\verb\file> paste [x,y] \ & re-insert removed box, mini, or text [at $x,y$]\\
-\verb\file> delete [x,y | x0,y0,x1,y1] ...\ & remove specified elements/arrows\\
-\verb\file> shift [-]x [xi,yi ...]\ & move [specified] elements $x$ units right [left]\\
-\verb\file> raise [-]y [xi,yi ...]\ & move [specified] elements $y$ units up [down]\\
+\verb\file> cut x,y ... \ & (temporarily) remove box, mini, or text at $x,y$\\
+\verb\file> paste x,y \ & re-insert removed box, mini, or text at $x,y$\\
+\verb\file> delete [x,y | x0,y0,x1,y1 | x0,y0:x1,y1] ...\ & remove specified elements/arrows\\
+\verb\file> shift [-]x x0,y0[:x1,y1] ...\ & move [specified] elements $x$ units right [left]\\
+\verb\file> raise [-]y x0,y0[:x1,y1] ...\ & move [specified] elements $y$ units up [down]\\
\verb\file> undo \ & undo the effect of the previous editing command\\
\verb\file> write | ! \ & save to \verb\file\ and process (with \verb\pdflatex)\\\
\verb\file> quit | exit | x | ^D\& turn off grid, save to \verb\file\, process, and exit\\
@@ -621,7 +626,7 @@ editor maintains a ``stack'' of elements that have been cut but not yet pasted.
\hline
\end{tabular}
\end{center}
-\caption{\texttt{prerex} Command Summary (version 6.2)}
+\caption{\texttt{prerex} Command Summary (version 6.3)}
\label{help}
\end{table}
@@ -711,11 +716,15 @@ the instructions defined by \texttt{prerex.sty}.
\verb|\halfcourse |$x,y$:\verb|{|\emph{course code}\verb|}{|\emph{course title}\verb|}{|\emph{timetable code}\verb|}| \\
\verb|\fullcourse |$x,y$:\verb|{|\emph{course code}\verb|}{|\emph{course title}\verb|}{|\emph{timetable code}\verb|}| \\
\verb|\reqhalfcourse |$x,y$:\verb|{|\emph{course code}\verb|}{|\emph{course title}\verb|}{|\emph{timetable code}\verb|}| \\
+\verb|\opthalfcourse |$x,y$:\verb|{|\emph{course code}\verb|}{|\emph{course title}\verb|}{|\emph{timetable code}\verb|}| \\
\verb|\reqfullcourse |$x,y$:\verb|{|\emph{course code}\verb|}{|\emph{course title}\verb|}{|\emph{timetable code}\verb|}| \\
+\verb|\optfullcourse |$x,y$:\verb|{|\emph{course code}\verb|}{|\emph{course title}\verb|}{|\emph{timetable code}\verb|}| \\
\verb|\halfcoursec | $x,y$ \verb|:{| \emph{course code} \verb|}{| \emph{course title} \verb|}{| \emph{timetable code} \verb|}| \verb|{| \emph{color} \verb|}| \\
\verb|\reqhalfcoursec | $x,y$ \verb|:{| \emph{course code} \verb|}{| \emph{course title} \verb|}{| \emph{timetable code} \verb|}| \verb|{| \emph{color} \verb|}| \\
+\verb|\opthalfcoursec | $x,y$ \verb|:{| \emph{course code} \verb|}{| \emph{course title} \verb|}{| \emph{timetable code} \verb|}| \verb|{| \emph{color} \verb|}| \\
\verb|\fullcoursec | $x,y$ \verb|:{| \emph{course code} \verb|}{| \emph{course title} \verb|}{| \emph{timetable code} \verb|}| \verb|{| \emph{color} \verb|}| \\
\verb|\reqfullcoursec | $x,y$ \verb|:{| \emph{course code} \verb|}{| \emph{course title} \verb|}{| \emph{timetable code} \verb|}| \verb|{| \emph{color} \verb|}| \\
+\verb|\optfullcoursec | $x,y$ \verb|:{| \emph{course code} \verb|}{| \emph{course title} \verb|}{| \emph{timetable code} \verb|}| \verb|{| \emph{color} \verb|}| \\
\verb|\mini |$x,y:$\verb|{|\emph{course code}\verb|}| \\
\verb|\text |$x,y:$\verb|{|\emph{line of text}\verb|}| \\
\hline
@@ -739,6 +748,7 @@ the instructions defined by \texttt{prerex.sty}.
\verb|\dashedarrow| \\
\verb|\lightbox| \\
\verb|\boldbox| \\
+\verb|\dottedbox| \\
\hline
\end{tabular}
\renewcommand{\arraystretch}{1.0}
@@ -776,7 +786,8 @@ in explanatory notes outside of the \verb\chart\ environment:
\verb|\dottedarrow| & \dottedarrow \\
\verb|\dashedarrow| & \dashedarrow \\
\verb|\lightbox| & \lightbox \\
-\verb|\boldbox| & \boldbox
+\verb|\boldbox| & \boldbox \\
+\verb|\dottedbox| & \dottedbox
\end{tabular}
\renewcommand{\arraystretch}{1.0}
\end{list}
diff --git a/Master/texmf-dist/doc/latex/prerex/doc/introFonts.png b/Master/texmf-dist/doc/latex/prerex/doc/introFonts.png
deleted file mode 100644
index 13d49ce3c4f..00000000000
--- a/Master/texmf-dist/doc/latex/prerex/doc/introFonts.png
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/prerex/doc/prerex.pdf b/Master/texmf-dist/doc/latex/prerex/doc/prerex.pdf
index d22fe030093..d32cfedb8fb 100644
--- a/Master/texmf-dist/doc/latex/prerex/doc/prerex.pdf
+++ b/Master/texmf-dist/doc/latex/prerex/doc/prerex.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/prerex/doc/prerex.sty.7 b/Master/texmf-dist/doc/latex/prerex/doc/prerex.sty.7
index 1a8bc41f65d..21da7194fb5 100644
--- a/Master/texmf-dist/doc/latex/prerex/doc/prerex.sty.7
+++ b/Master/texmf-dist/doc/latex/prerex/doc/prerex.sty.7
@@ -1,4 +1,4 @@
-.TH PREREX.STY 7 2011-08-18 "prerex.sty-6.1.0" ""
+.TH PREREX.STY 7 2012-03-21 "prerex.sty-6.3" ""
.SH NAME
prerex.sty \- a LaTeX document style for prerequisite charts
.SH DESCRIPTION
@@ -30,7 +30,10 @@ Courses are either
or
.I full,
and may be
-.I required.
+.I required
+or
+.I optional
+(or neither).
Each course box can contain a course
.I code
(upper left corner),
@@ -97,9 +100,7 @@ to produce course boxes, minis, text-lines, and arrows.
The order of commands is not significant except
that the commands for the source and target boxes of an arrow should
.I precede
-the command for the arrow, and the
-.B grid
-command should precede all other commands.
+the command for the arrow.
.SH COURSE BOXES
The commands producing course boxes have the following forms:
.IP
@@ -110,6 +111,10 @@ The commands producing course boxes have the following forms:
.BI \ereqhalfcourse " x,y" :{ code }{ title }{ timetable }
.IP
.BI \ereqfullcourse " x,y" :{ code }{ title }{ timetable }
+.IP
+.BI \eopthalfcourse " x,y" :{ code }{ title }{ timetable }
+.IP
+.BI \eoptfullcourse " x,y" :{ code }{ title }{ timetable }
.LP
where
.I x,y
@@ -134,6 +139,10 @@ background color of the course box:
.BI \ereqhalfcoursec " x,y" :{ code }{ title }{ timetable }{ color }
.IP
.BI \ereqfullcoursec " x,y" :{ code }{ title }{ timetable }{ color }
+.IP
+.BI \eopthalfcoursec " x,y" :{ code }{ title }{ timetable }{ color }
+.IP
+.BI \eoptfullcoursec " x,y" :{ code }{ title }{ timetable }{ color }
.LP
.SH MINI COURSE BOXES AND TEXT LINES
A mini course "box" is produced by a command of the form
@@ -210,8 +219,7 @@ useful for editing a diagram:
.IP
.B \egrid
.LP
-This is normally placed before all the other chart commands so that
-grid lines are in the background, covered by course boxes, minis, and arrows.
+The grid lines will be covered by course boxes and arrows.
The
.B \egrid
command
@@ -269,6 +277,8 @@ environment, such as in the explanatory notes for a chart:
.B \elightbox
.IP
.B \eboldbox
+.IP
+.B \edashedbox
.LP
.SH CONFIGURATION
The following are defined by the style file but may be re-defined by the
diff --git a/Master/texmf-dist/doc/latex/prerex/doc/prerex.tex b/Master/texmf-dist/doc/latex/prerex/doc/prerex.tex
index bab1356d499..12bd6aa8d27 100644
--- a/Master/texmf-dist/doc/latex/prerex/doc/prerex.tex
+++ b/Master/texmf-dist/doc/latex/prerex/doc/prerex.tex
@@ -6,7 +6,7 @@
%\def\LaTeX{\mbox{LaTeX}}
\begin{document}
-\title{\textsf{prerex.sty}: Prerequisite Charts in \LaTeX\\{\large Version 6.2}}
+\title{\textsf{prerex.sty}: Prerequisite Charts in \LaTeX\\{\large Version 6.3}}
\author{R. D. Tennent\\\texttt{rdt@cs.queensu.ca}}
\date{\today}
\maketitle
@@ -97,8 +97,8 @@ Courses are either
\emph{half}
or
\emph{full},
-and may be
-\emph{required}.
+and may be
+\emph{required} or \emph{optional} (or neither).
Each course box can contain a course
\emph{code}
(upper left corner),
@@ -148,6 +148,8 @@ An
is described by the
coordinates of the centre points of its source and target boxes/minis/text-lines.
+
+
\section{Usage}
The command
\verb|\usepackage{prerex}|
@@ -169,8 +171,10 @@ The commands producing course boxes have the following forms:
\begin{list}{}{}
\item \verb|\halfcourse | $x,y$ \verb|:{| \emph{code} \verb|}{| \emph{title} \verb|}{| \emph{timetable} \verb|}|
\item \verb|\reqhalfcourse | $x,y$ \verb|:{| \emph{code} \verb|}{| \emph{title} \verb|}{| \emph{timetable} \verb|}|
+\item \verb|\opthalfcourse | $x,y$ \verb|:{| \emph{code} \verb|}{| \emph{title} \verb|}{| \emph{timetable} \verb|}|
\item \verb|\fullcourse | $x,y$ \verb|:{| \emph{code} \verb|}{| \emph{title} \verb|}{| \emph{timetable} \verb|}|
\item \verb|\reqfullcourse | $x,y$ \verb|:{| \emph{code} \verb|}{| \emph{title} \verb|}{| \emph{timetable} \verb|}|
+\item \verb|\optfullcourse | $x,y$ \verb|:{| \emph{code} \verb|}{| \emph{title} \verb|}{| \emph{timetable} \verb|}|
\end{list}
where
$x,y$
@@ -190,8 +194,10 @@ the (non-default) background color of the course box:
\begin{list}{}{}
\item \verb|\halfcoursec | $x,y$ \verb|:{| \emph{code} \verb|}{| \emph{title} \verb|}{| \emph{timetable} \verb|}| \verb|{| \emph{color} \verb|}|
\item \verb|\reqhalfcoursec | $x,y$ \verb|:{| \emph{code} \verb|}{| \emph{title} \verb|}{| \emph{timetable} \verb|}| \verb|{| \emph{color} \verb|}|
+\item \verb|\opthalfcoursec | $x,y$ \verb|:{| \emph{code} \verb|}{| \emph{title} \verb|}{| \emph{timetable} \verb|}| \verb|{| \emph{color} \verb|}|
\item \verb|\fullcoursec | $x,y$ \verb|:{| \emph{code} \verb|}{| \emph{title} \verb|}{| \emph{timetable} \verb|}| \verb|{| \emph{color} \verb|}|
\item \verb|\reqfullcoursec | $x,y$ \verb|:{| \emph{code} \verb|}{| \emph{title} \verb|}{| \emph{timetable} \verb|}| \verb|{| \emph{color} \verb|}|
+\item \verb|\optfullcoursec | $x,y$ \verb|:{| \emph{code} \verb|}{| \emph{title} \verb|}{| \emph{timetable} \verb|}| \verb|{| \emph{color} \verb|}|
\end{list}
\subsection{Mini Course Boxes and Text-Lines}
@@ -352,6 +358,7 @@ environment, such as in the explanatory notes for a chart:
\verb|\dashedarrow| & \dashedarrow \\
\verb|\lightbox| & \lightbox \\
\verb|\boldbox| & \boldbox \\
+\verb|\dottedbox| & \dottedbox \\
\end{tabular}
\end{center}
@@ -522,6 +529,8 @@ PDF viewers to compute chart coordinates.
\subsection{Chart Images}
+\enlargethispage*{8ex}
+
To support HTML versions of charts,
\texttt{prerex.sty}
generates a script to crop a chart image at the southeast corner, allowing
diff --git a/Master/texmf-dist/doc/latex/prerex/prerex-6.2.tar.gz b/Master/texmf-dist/doc/latex/prerex/prerex-6.2.tar.gz
deleted file mode 100644
index 1e373438d06..00000000000
--- a/Master/texmf-dist/doc/latex/prerex/prerex-6.2.tar.gz
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/prerex/prerex-6.3.2.tar.gz b/Master/texmf-dist/doc/latex/prerex/prerex-6.3.2.tar.gz
new file mode 100644
index 00000000000..cf21cc9189f
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/prerex/prerex-6.3.2.tar.gz
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/prerex/vprerex-6.3.1.tar.gz b/Master/texmf-dist/doc/latex/prerex/vprerex-6.3.1.tar.gz
deleted file mode 100644
index df7bb3e1752..00000000000
--- a/Master/texmf-dist/doc/latex/prerex/vprerex-6.3.1.tar.gz
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/prerex/vprerex-6.3.2.tar.gz b/Master/texmf-dist/doc/latex/prerex/vprerex-6.3.2.tar.gz
new file mode 100644
index 00000000000..c4dbf9fc212
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/prerex/vprerex-6.3.2.tar.gz
Binary files differ
diff --git a/Master/texmf-dist/tex/latex/prerex/prerex.sty b/Master/texmf-dist/tex/latex/prerex/prerex.sty
index 4059f122835..f60a1c06484 100644
--- a/Master/texmf-dist/tex/latex/prerex/prerex.sty
+++ b/Master/texmf-dist/tex/latex/prerex/prerex.sty
@@ -1,6 +1,6 @@
%% This is file 'prerex.sty'
%%
-%% Copyright (C) 2006-11 R. D. Tennent, rdt@cs.queensu.ca
+%% Copyright (C) 2006-12 R. D. Tennent, rdt@cs.queensu.ca
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -14,7 +14,7 @@
%
% Instructions supported inside \begin{chart} ... \end{chart}:
%
-% \[req]{half|full}course[c] x,y: {course code}{course title}{timetable code}[{color}]
+% \[req|opt]{half|full}course[c] x,y: {course code}{course title}{timetable code}[{color}]
%
% \mini x,y: {course code}
%
@@ -32,8 +32,9 @@
% \dottedarrow in-line dotted arrow
% \dashedarrow in-line dashed arrow
%
-% \lightbox in-line light course box
-% \boldbox in-line bold course box
+% \lightbox in-line light course box
+% \boldbox in-line bold course box
+% \dottedbox in-line dotted course box
%
% The following defaults are defined in prerex.sty (but may be re-defined by the user):
%
@@ -62,10 +63,19 @@
% The nominal diagram width is 10 + (\textwidth divided by \unit).
%
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesPackage{prerex}[2011/10/28 v6.2 LaTeX style for prerequisite charts, pgf version]
+\ProvidesPackage{prerex}[2012/03/29 v6.3.2 LaTeX style for prerequisite charts, pgf version]
% Changelog:
%
+% Version 6.3.2
+%
+% Use pgf layers to keep grid below arrows below boxes (thanks to Ryan Kavanagh).
+% Add struts to stand-alone \...box commands.
+%
+% Version 6.3
+%
+% Allow "opt" course boxes (with dotted outlines).
+%
% Version 6.2
%
% Allow for multi-line "timetable" arguments by using nested tabular environments.
@@ -221,6 +231,7 @@
\definecolor{verylight}{gray}{0.85}
\definecolor{white}{rgb}{1.0,1.0,1.0} % not transparent, hides grid
+
\newcommand{\DefaultCurvature}{20} % 0 for no curvature
\newcommand{\CourseURL}[3]{file:#3.html}
\newcommand{\background}{yellow!15}
@@ -279,7 +290,45 @@
\immediate\write\@imapfile{<area shape=rect coords="\thexNW,\theyNW,\thexSE,\theySE" href="\CourseURL{#1}{#2}{#3}" target="new" alt="#3">}%
}
+\pgfsetlayers{}
+\def\solidarrow{%
+\tikz[x=\unit,y=\unit,baseline=\baselineAdj]
+\draw[-latex',line width =\solidwidth] (0,0) -- (4,0);
+}
+
+\def\dottedarrow{%
+\tikz[x=\unit,y=\unit,baseline=\baselineAdj]
+\draw[loosely dotted,line width=\dottedwidth,-latex'] (0,0) -- (4,0);
+}
+
+\def\dashedarrow{%
+\tikz[x=\unit,y=\unit,baseline=\baselineAdj]
+\draw[dashed,line width=\dashedwidth,-latex'] (0,0) -- (4,0);
+}
+
+\def\lightbox{%
+\tikz[thin,baseline=\baselineAdj]\node[draw,fill=\background,rounded corners=2pt,inner xsep=1.8pt]
+{\rule[-2pt]{0pt}{4pt}\textsf{light}};
+}
+
+\def\boldbox{%
+\tikz[baseline=\baselineAdj]\node[draw,line width=\boldwidth,fill=\background,rounded corners=2pt,inner xsep=1.8pt]
+{\rule[-2pt]{0pt}{4pt}\textsf{\textbf{bold}}};
+}
+
+
+\def\dottedbox{%
+\tikz[baseline=\baselineAdj]\node[draw,dotted,line width=\boldwidth,fill=\background,rounded corners=2pt,inner xsep=1.8pt]
+{\rule[-2pt]{0pt}{4pt}\textsf{\textsf{dotted}}};
+}
+
+\pgfdeclarelayer{arrows}
+\pgfdeclarelayer{courses}
+\pgfdeclarelayer{grid}
+\pgfsetlayers{grid,arrows,courses,main}
+
\def\@halfcourse#1,#2:#3#4#5{%
+\begin{pgfonlayer}{courses}%
\node[draw,thin,fill=\background,rounded corners=2pt,inner ysep=0.5pt,minimum height=\@unitmult](x#1y#2) at (#1,#2)%
{\textsf{%
\renewcommand{\arraystretch}{0.8}%
@@ -291,9 +340,11 @@
\end{tabular}}}%
};%
\@outputImapData#1,#2:{#3}{4}{2}%
+\end{pgfonlayer}%
}
\def\@halfcoursec#1,#2:#3#4#5#6{%
+\begin{pgfonlayer}{courses}%
\node[draw,thin,fill=#6,rounded corners=2pt,inner ysep=0.5pt,minimum height=\@unitmult](x#1y#2) at (#1,#2)%
{\textsf{%
\renewcommand{\arraystretch}{0.8}%
@@ -305,9 +356,11 @@
\end{tabular}}}%
};%
\@outputImapData#1,#2:{#3}{4}{2}%
+\end{pgfonlayer}%
}
\def\@reqhalfcourse#1,#2:#3#4#5{%
+\begin{pgfonlayer}{courses}%
\node[draw,line width=\boldwidth,fill=\background,rounded corners=2pt,inner ysep=0.5pt,minimum height=\@unitmult](x#1y#2) at (#1,#2)%
{\textsf{\textbf{%
\renewcommand{\arraystretch}{0.8}%
@@ -319,9 +372,11 @@
\end{tabular}}}%
}};%
\@outputImapData#1,#2:{#3}{4}{2}%
+\end{pgfonlayer}%
}
\def\@reqhalfcoursec#1,#2:#3#4#5#6{%
+\begin{pgfonlayer}{courses}%
\node[draw,line width=\boldwidth,fill=#6,rounded corners=2pt,inner ysep=0.5pt,minimum height=\@unitmult](x#1y#2) at (#1,#2)%
{\textsf{\textbf{%
\renewcommand{\arraystretch}{0.8}%
@@ -333,9 +388,44 @@
\end{tabular}}}%
}};%
\@outputImapData#1,#2:{#3}{4}{2}%
+\end{pgfonlayer}%
+}
+
+
+\def\@opthalfcourse#1,#2:#3#4#5{%
+\begin{pgfonlayer}{courses}%
+\node[draw,dotted,line width=\boldwidth,fill=\background,rounded corners=2pt,inner ysep=0.5pt,minimum height=\@unitmult](x#1y#2) at (#1,#2)%
+{\textsf{%
+\renewcommand{\arraystretch}{0.8}%
+\href{\CourseURL{#1}{#2}{#3}}{\begin{tabular}{@{\hspace{1pt}}c@{\hspace{1pt}}}%
+\mbox{\smallersize#3}%
+\,\hfill\,%
+\mbox{\smallersize\renewcommand{\arraystretch}{0.5}\begin{tabular}[t]{@{}r@{}}#5\end{tabular}}%
+\\ #4%
+\end{tabular}}}%
+};%
+\@outputImapData#1,#2:{#3}{4}{2}%
+\end{pgfonlayer}%
+}
+
+\def\@opthalfcoursec#1,#2:#3#4#5#6{%
+\begin{pgfonlayer}{courses}%
+\node[draw,dotted,line width=\boldwidth,fill=#6,rounded corners=2pt,inner ysep=0.5pt,minimum height=\@unitmult](x#1y#2) at (#1,#2)%
+{\textsf{%
+\renewcommand{\arraystretch}{0.8}%
+\href{\CourseURL{#1}{#2}{#3}}{\begin{tabular}{@{\hspace{1pt}}c@{\hspace{1pt}}}%
+\mbox{\smallersize#3}%
+\,\hfill\,%
+\mbox{\smallersize\renewcommand{\arraystretch}{0.5}\begin{tabular}[t]{@{}r@{}}#5\end{tabular}}%
+\\ #4%
+\end{tabular}}}%
+};%
+\@outputImapData#1,#2:{#3}{4}{2}%
+\end{pgfonlayer}%
}
\def\@fullcourse#1,#2:#3#4#5{%
+\begin{pgfonlayer}{courses}%
\node[draw,thin,fill=\background,rounded corners=2pt,inner ysep=0.5pt](x#1y#2) at (#1,#2)%
{\textsf{%
\renewcommand{\arraystretch}{1.7}%
@@ -347,9 +437,11 @@
\end{tabular}}}%
};%
\@outputImapData#1,#2:{#3}{4}{5}%
+\end{pgfonlayer}%
}
\def\@fullcoursec#1,#2:#3#4#5#6{%
+\begin{pgfonlayer}{courses}%
\node[draw,thin,fill=#6,rounded corners=2pt,inner ysep=0.5pt](x#1y#2) at (#1,#2)%
{\textsf{%
\renewcommand{\arraystretch}{1.7}%
@@ -360,10 +452,12 @@
\\ #4%
\end{tabular}}}%
};%
+\end{pgfonlayer}%
\@outputImapData#1,#2:{#3}{4}{5}%
}
\def\@reqfullcourse#1,#2:#3#4#5{%
+\begin{pgfonlayer}{courses}%
\node[draw,line width=\boldwidth,fill=\background,rounded corners=2pt,inner ysep=0.5pt](x#1y#2) at (#1,#2)%
{\textsf{\textbf{%
\renewcommand{\arraystretch}{1.7}%
@@ -375,9 +469,11 @@
\end{tabular}}}}%
};%
\@outputImapData#1,#2:{#3}{4}{5}%
+\end{pgfonlayer}%
}
\def\@reqfullcoursec#1,#2:#3#4#5#6{%
+\begin{pgfonlayer}{courses}%
\node[draw,line width=\boldwidth,fill=#6,rounded corners=2pt,inner ysep=0.5pt](x#1y#2) at (#1,#2)%
{\textsf{\textbf{%
\renewcommand{\arraystretch}{1.7}%
@@ -389,24 +485,85 @@
\end{tabular}}}}%
};%
\@outputImapData#1,#2:{#3}{4}{5}%
+\end{pgfonlayer}%
}
-\def\@mini#1,#2:#3{%
-\node[fill=white,draw=white,inner ysep=1.8pt](x#1y#2) at (#1,#2)%
+\def\@fullcoursec#1,#2:#3#4#5#6{%
+\begin{pgfonlayer}{courses}%
+\node[draw,thin,fill=#6,rounded corners=2pt,inner ysep=0.5pt](x#1y#2) at (#1,#2)%
{\textsf{%
-\href{\CourseURL{#1}{#2}{#3}}{%
-\mbox{\smallersize#3}}}};%
+\renewcommand{\arraystretch}{1.7}%
+\href{\CourseURL{#1}{#2}{#3}}{\begin{tabular}{@{\hspace{1pt}}c@{\hspace{1pt}}}%
+\mbox{\smallersize#3}%
+\,\hfill\,%
+\mbox{\smallersize\renewcommand{\arraystretch}{0.5}\begin{tabular}[t]{@{}r@{}}#5\end{tabular}}%
+\\ #4%
+\end{tabular}}}%
+};%
+\@outputImapData#1,#2:{#3}{4}{5}%
+\end{pgfonlayer}%
+}
+
+\def\@optfullcourse#1,#2:#3#4#5{%
+\begin{pgfonlayer}{courses}%
+\node[draw,dotted,line width=\boldwidth,fill=\background,rounded corners=2pt,inner ysep=0.5pt](x#1y#2) at (#1,#2)%
+{\textsf{%
+\renewcommand{\arraystretch}{1.7}%
+\href{\CourseURL{#1}{#2}{#3}}{\begin{tabular}{@{\hspace{1pt}}c@{\hspace{1pt}}}%
+\mbox{\smallersize#3}%
+\,\hfill\,%
+\mbox{\smallersize\renewcommand{\arraystretch}{0.5}\begin{tabular}[t]{@{}r@{}}#5\end{tabular}}%
+\\ #4%
+\end{tabular}}}%
+};%
+\@outputImapData#1,#2:{#3}{4}{5}%
+\end{pgfonlayer}%
+}
+
+
+\def\@optfullcoursec#1,#2:#3#4#5#6{%
+\begin{pgfonlayer}{courses}%
+\node[draw,dotted,line width=\boldwidth,fill=#6,rounded corners=2pt,inner ysep=0.5pt](x#1y#2) at (#1,#2)%
+{\textsf{%
+\renewcommand{\arraystretch}{1.7}%
+\href{\CourseURL{#1}{#2}{#3}}{\begin{tabular}{@{\hspace{1pt}}c@{\hspace{1pt}}}%
+\mbox{\smallersize#3}%
+\,\hfill\,%
+\mbox{\smallersize\renewcommand{\arraystretch}{0.5}\begin{tabular}[t]{@{}r@{}}#5\end{tabular}}%
+\\ #4%
+\end{tabular}}}%
+};%
+\@outputImapData#1,#2:{#3}{4}{5}%
+\end{pgfonlayer}%
+}
+
+\def\@mini#1,#2:#3{%
+\begin{pgfonlayer}{courses}%
+\ifgridon
+ \node[fill=white,draw=white,inner ysep=1.8pt](x#1y#2) at (#1,#2)%
+ {\textsf{%
+ \href{\CourseURL{#1}{#2}{#3}}{%
+ \mbox{\smallersize#3}}}};%
+\else
+ \node[fill=none,draw=none,inner ysep=1.8pt](x#1y#2) at (#1,#2)%
+ {\textsf{%
+ \href{\CourseURL{#1}{#2}{#3}}{%
+ \mbox{\smallersize#3}}}};%
+\fi
\@outputImapData#1,#2:{#3}{2}{1}%
+\end{pgfonlayer}%
}
\def\@text#1,#2:#3{%
% include coordinates if grid on, but don't hyperlink if grid off
+\begin{pgfonlayer}{courses}%
\ifgridon
\node[fill=white,draw=white,inner ysep=1.8pt](x#1y#2) at (#1,#2)%
{\href{coord: #1,#2}{\mbox{#3}}};%
\else
- \node[fill=white,draw=white,inner ysep=1.8pt](x#1y#2) at (#1,#2){\mbox{#3}};%
+ \node[fill=none,draw=none,inner ysep=1.8pt](x#1y#2) at (#1,#2){\mbox{#3}};%
\fi
+\end{pgfonlayer}%
}
\def\@prereq#1,#2,#3,#4:{%
@@ -475,6 +632,7 @@
\def\@straight#1,#2,#3,#4:{%
+ \begin{pgfonlayer}{arrows}
\draw[draw=white,line width=1.5pt](x#1y#2) -- (x#3y#4) ;
\draw[-latex',draw=white,very thin](x#1y#2) -- (x#3y#4) ;
\ifgridon
@@ -482,6 +640,7 @@
\else
\draw[line width=\solidwidth](x#1y#2) -- (x#3y#4) ;
\fi
+ \end{pgfonlayer}
}
@@ -496,6 +655,7 @@
\fi
\setcounter{@myangle}{\the@myangle / ((\the@dx + \the@dy) * (\the@dx + \the@dy))}
\setcounter{@inangle}{180 - \the@myangle}
+ \begin{pgfonlayer}{arrows}
\draw[draw=white,line width=1.5pt](x#1y#2) to[out=\the@myangle,in=\the@inangle,relative] (x#3y#4) ;
\draw[-latex',draw=white,very thin](x#1y#2) to[out=\the@myangle,in=\the@inangle,relative] (x#3y#4) ;
\ifgridon
@@ -503,9 +663,11 @@
\else
\draw[line width=\solidwidth](x#1y#2) to[out=\the@myangle,in=\the@inangle,relative] (x#3y#4) ;
\fi
+ \end{pgfonlayer}
}
\def\@straightDashed#1,#2,#3,#4:{%
+\begin{pgfonlayer}{arrows}
\draw[draw=white,line width=1.5pt] (x#1y#2) -- (x#3y#4);
\draw[-latex',draw=white,very thin] (x#1y#2) -- (x#3y#4);
\ifgridon
@@ -513,6 +675,7 @@
\else
\draw[dashed,line width=\dashedwidth] (x#1y#2) -- (x#3y#4);
\fi
+\end{pgfonlayer}
}
\def\@curvedDashed#1,#2,#3,#4;#5:{
@@ -526,6 +689,7 @@
\fi
\setcounter{@myangle}{\the@myangle / ((\the@dx + \the@dy) * (\the@dx + \the@dy))}
\setcounter{@inangle}{180 - \the@myangle}
+ \begin{pgfonlayer}{arrows}
\draw[draw=white,line width=1.5pt](x#1y#2) to[out=\the@myangle,in=\the@inangle,relative] (x#3y#4) ;
\draw[-latex',draw=white,very thin](x#1y#2) to[out=\the@myangle,in=\the@inangle,relative] (x#3y#4) ;
\ifgridon
@@ -533,9 +697,11 @@
\else
\draw[dashed,line width=\dashedwidth](x#1y#2) to[out=\the@myangle,in=\the@inangle,relative] (x#3y#4);
\fi
+ \end{pgfonlayer}
}
\def\@straightDotted#1,#2,#3,#4:{%
+ \begin{pgfonlayer}{arrows}
\draw[draw=white,line width=1.5pt] (x#1y#2) -- (x#3y#4);
\draw[-latex',draw=white,very thin] (x#1y#2) -- (x#3y#4);
\ifgridon
@@ -543,6 +709,7 @@
\else
\draw[loosely dotted,line width=\dottedwidth] (x#1y#2) -- (x#3y#4);
\fi
+ \end{pgfonlayer}
}
\def\@curvedDotted#1,#2,#3,#4;#5:{
@@ -556,6 +723,7 @@
\fi
\setcounter{@myangle}{\the@myangle / ((\the@dx + \the@dy) * (\the@dx + \the@dy))}
\setcounter{@inangle}{180 - \the@myangle}
+ \begin{pgfonlayer}{arrows}
\draw[draw=white,line width=1.5pt](x#1y#2) to[out=\the@myangle,in=\the@inangle,relative] (x#3y#4) ;
\draw[-latex',draw=white,very thin](x#1y#2) to[out=\the@myangle,in=\the@inangle,relative] (x#3y#4) ;
\ifgridon
@@ -563,35 +731,15 @@
\else
\draw[loosely dotted,line width=\dottedwidth](x#1y#2) to[out=\the@myangle,in=\the@inangle,relative] (x#3y#4) ;
\fi
+ \end{pgfonlayer}
}
-\def\solidarrow{%
-\tikz[x=\unit,y=\unit,baseline=\baselineAdj]
-\draw[-latex',line width =\solidwidth] (0,0) -- (4,0);
-}
-
-\def\dottedarrow{%
-\tikz[x=\unit,y=\unit,baseline=\baselineAdj]
-\draw[loosely dotted,line width=\dottedwidth,-latex'] (0,0) -- (4,0);
-}
-
-\def\dashedarrow{%
-\tikz[x=\unit,y=\unit,baseline=\baselineAdj]
-\draw[dashed,line width=\dashedwidth,-latex'] (0,0) -- (4,0);
-}
-
-\def\lightbox{%
-\tikz[thin,baseline=\baselineAdj]\node[draw,fill=\background,rounded corners=2pt,inner sep=1.8pt]
-{\textsf{light}};}
-
-\def\boldbox{%
-\tikz[baseline=\baselineAdj]\node[draw,line width=\boldwidth,fill=\background,rounded corners=2pt,inner sep=1.8pt]
-{\textsf{\textbf{bold}}};}
\def\@grid{
\gridontrue
\renewcommand{\CourseURL}[3]{coord: ##1,##2} % "coord:" makes it look like a URI
+ \begin{pgfonlayer}{grid}
\draw[line width=0.3pt,draw=verylight] (0,0) grid [step=1] (\value{@gridright},\value{@gridtop});
\draw[line width=0.4pt,draw=somewhatlight] (0,0) grid [step=5] (\value{@gridright},\value{@gridtop});
@@ -613,6 +761,7 @@
\setcounter{@gridtop}{\value{@gridtop} + 4}
\setcounter{@gridright}{\value{@gridright} + 5}
\node at (\the@gridright,\the@gridtop) {\href{anchor: \the@gridright,\the@gridtop}{\kern1sp}};
+ \end{pgfonlayer}
}
%
@@ -638,10 +787,14 @@
\let\halfcoursec=\@halfcoursec
\let\reqhalfcourse=\@reqhalfcourse
\let\reqhalfcoursec=\@reqhalfcoursec
+ \let\opthalfcourse=\@opthalfcourse
+ \let\opthalfcoursec=\@opthalfcoursec
\let\fullcourse=\@fullcourse
\let\fullcoursec=\@fullcoursec
\let\reqfullcourse=\@reqfullcourse
\let\reqfullcoursec=\@reqfullcoursec
+ \let\optfullcourse=\@optfullcourse
+ \let\optfullcoursec=\@optfullcoursec
\let\mini=\@mini
\let\text=\@text
\let\prereq=\@prereq