summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/prerex/intro.tex
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2014-03-02 05:24:20 +0000
committerNorbert Preining <preining@logic.at>2014-03-02 05:24:20 +0000
commit807941d7e358fef359bc425f2be605064f6330e3 (patch)
treea73d1da1c22dc0502b871630876b45ed654a3b39 /Master/texmf-dist/doc/latex/prerex/intro.tex
parent699b4df8c8b5b2e9344d59e3d4085bf8723f688e (diff)
prerex (27Feb)
git-svn-id: svn://tug.org/texlive/trunk@33072 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/prerex/intro.tex')
-rw-r--r--Master/texmf-dist/doc/latex/prerex/intro.tex887
1 files changed, 887 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/prerex/intro.tex b/Master/texmf-dist/doc/latex/prerex/intro.tex
new file mode 100644
index 00000000000..3fc4bb88e58
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/prerex/intro.tex
@@ -0,0 +1,887 @@
+\documentclass[11pt]{article}
+\usepackage[textwidth=6.5in,textheight=8.5in]{geometry}
+\usepackage[medium,semibold]{cabin}
+\listfiles
+\usepackage{prerex}
+
+\renewcommand{\textfraction}{0.0}
+\renewcommand{\topfraction}{1.00}
+\renewcommand{\bottomfraction}{1.00}
+
+\usepackage[osf]{mathpazo}
+
+\definecolor{light}{gray}{0.5}
+\definecolor{bg}{rgb}{0.99,0.96,0.90}
+
+\usepackage{graphicx}
+
+\def\LaTeX{\mbox{LaTeX}}
+\def\TeX{TeX}
+\def\MikTeX{\mbox{MikTeX}}
+
+
+\newcommand{\myurl}[1]{\textcolor{blue}{\underline{\textcolor{black}{\url{#1}}}}}
+
+\title{Prerex-Formatted Prerequisite Charts\\[1ex]\Large An Introduction}
+\date{\today}
+\author{Bob Tennent\\School of Computing, Queen's University\\\texttt{rdt@cs.queensu.ca}}
+
+\begin{document}
+\sloppy
+\maketitle
+\thispagestyle{empty}
+
+\tableofcontents
+
+
+\section{Introduction}
+This document is intended to help a user who might want to create or edit prerex-formatted
+prerequisite charts, but is finding the installation and usage instructions in the \textsc{readme}
+and manual pages to be incomprehensible.
+
+\section{Frequently Asked Questions}
+
+
+\subsection{Prerequisite Charts}
+
+\subsubsection*{What is a prerequisite chart?}
+
+A prerequisite chart gives an attractive graphical presentation of courses in a
+program (or set of related programs), organized by terms or years, linked
+by pre- and co-requisite arrows, and, when possible, supplemented by
+timetable information; Figure~\ref{chart}
+on page~\pageref{chart}
+is a small example.
+
+\input{introchart1}
+
+\subsubsection*{Who would use a prerequisite chart?}
+
+Prerequisite charts are useful to students selecting courses and planning their
+programs, and to faculty and staff advising students and managing
+curriculum development.
+
+\subsubsection*{The information is in calendars and on-line; why is a prerequisite chart needed?}
+
+Conventional sources of course, program and timetable information are
+rarely in a user-friendly format. Faculty and staff advisors, being already
+fairly familiar with their courses and programs, often do not appreciate
+how inconvenient it is for students to access all the information they need
+to make course choices.
+
+For example, program requirements are typically specified as lists of
+course codes for required and optional courses; one must look elsewhere to
+find the titles of the courses, the relations between them, their
+prerequisites, and the timetabling information.
+
+As another example, a course description in a calendar typically specifies
+what the prerequisite courses are, but hardly ever specifies which course
+or courses the course is prerequisite to. This information may be very
+important to a student, but to discover it, he or she must search through
+all the subsequent course descriptions in the calendar. With a prerequisite
+chart, it is evident at a glance.
+
+As a third example, consider a student who wants to know whether they can
+defer a course till the following year without risk of timetable conflicts.
+With conventional sources of information, such a question can be answered
+only by doing an exhaustive search through both timetable and calendar for
+a possible conflict. A prerequisite chart incorporating timetable data provides
+the necessary information in a compact and usable form, and the question
+can be answered immediately.
+
+
+\subsubsection*{If prerequisite charts are so great, why doesn't every university department have them?}
+Few academic departments have the resources to produce prerequisite charts. If
+one searches on the web for "prerequisite chart" or "prerequisite diagram,"
+virtually all of the matches are from departments that one would
+expect to have expertise in technical drawings.
+Here are some of these:
+\begin{itemize}
+\item Queen's University, Electrical and Computer Engineering\footnote{%
+\myurl{http://www.ece.queensu.ca/Current-Students/Undergraduate/files/Queens_ECE_prerequisite_graph_2011.pdf}}
+\item University of Waterloo, Computer Science\footnote{%
+\myurl{http://www.cs.uwaterloo.ca/current/courses/charts/majorPrereq.shtml}}
+\item Georgia Tech, Electrical Engineering\footnote{%
+\myurl{http://www.ece.gatech.edu/academics/undergrad/ee_prereq.html}}
+\item Georgia State University, Computer Science\footnote{%
+\myurl{http://www.cs.gsu.edu/sites/default/files/prereq.pdf}}
+%\item Iowa State University, Civil, Construction, \& Environmental Engineering\footnote{%
+%\myurl{http://www.ccee.iastate.edu/fileadmin/www.ccee.iastate.edu/academics/mechanical-prereq-0507.pdf}}
+\item Kansas State University, Mathematics\footnote{%
+\myurl{http://www.math.ksu.edu/courses/catalog/prereqcht.pdf}}
+%\item Carleton University, Engineering Physics\footnote{%
+%\myurl{http://www1.carleton.ca/engineering-design/ccms/wp-content/ccms-files/Engineering-Physics_Aug_19_11.pdf}}
+\item Penn State, Computer Science\footnote{%
+\myurl{http://cs.hbg.psu.edu/cs/csprereq.html}}
+\end{itemize}
+
+\subsection{Prerex-Formatted Prerequisite Charts}
+
+\subsubsection*{Where can I see prerex-formatted charts in use?}
+
+There are several charts for both specialized and multi-disciplinary programs
+on-line here: \myurl{http://www.cs.queensu.ca/undergraduate/prerequisites}.
+
+\subsubsection*{What file formats are used for prerex-formatted charts?}
+
+The charts themselves are best distributed in the Portable Document
+Format (PDF) defined by Adobe; PDFs are readable on any platform and in
+most browsers using freely-available software (such as the Adobe Reader),
+printable on any high-resolution printer, relatively compact, and scalable
+to accommodate paper size, display resolution, or user preference.
+
+Charts can also be converted to Portable Network Graphics (PNG)
+format for in-line use on a web page. PNG format is also relatively compact
+and can be rendered directly by most web browsers.
+
+Prerex-formatted charts are produced by software that processes simple and convenient
+text-based descriptions. These descriptions can be edited in any
+text editor or in the \texttt{prerex} interactive editor discussed in Section~\ref{editor}.
+The format of chart descriptions is documented
+in Section~\ref{source}.
+
+
+\subsubsection*{What software is needed to produce prerex-formatted prerequisite charts?}
+
+To process the description of a prerex-formatted chart, the following software is
+essential:
+\begin{itemize}
+\item an up-to-date standard-conforming implementation of \LaTeX, a powerful
+document processing system based on \TeX, a professional-quality typesetting
+engine; see Section~\ref{installing}.
+\item a few additional \LaTeX\ packages, such as \texttt{pgf}, that may not be included in a minimal \LaTeX\ installation; see Section~\ref{additional};
+\item a file \texttt{prerex.sty} of specialized \LaTeX\ definitions,
+which is included in the prerex package
+available at any repository
+of
+the Comprehensive TeX Archive Network (CTAN)\footnote{%
+\myurl{http://www.ctan.org/}}
+and in many \TeX\ distributions.
+\end{itemize}
+The following additional software is optional but recommended:
+\begin{itemize}
+\item a PDF viewer that
+\begin{itemize}
+\item can be configured to ``watch'' the PDF file so that it re-loads
+automatically when this is updated, and
+\item shows hyperlinks
+in a ``tooltip'' when the mouse hovers over it, which is a convenient way to get
+the coordinates of course boxes and arrows while editing the description;
+\end{itemize}
+see Section~\ref{PDF}.
+\item suitable fonts; see Section~\ref{fonts}.
+\item the \texttt{prerex} interactive editor for prerex-formatted charts;
+see Section~\ref{editor}.
+\item an integrated \LaTeX\ development environment; see Section~\ref{IDE}.
+\end{itemize}
+
+\subsubsection*{Why couldn't I use a program like Visio\textsuperscript{\textregistered}\ or CorelDRAW\textsuperscript{\textregistered}\ to produce a prerequisite chart?}
+You could, if you have such a program available, are very skilled in its
+use, and won't be embarrassed
+distributing a chart that looks amateurish. Look carefully at a prerex-formatted
+chart and notice the following properties:
+\begin{itemize}
+\item Each course box is sized to just enclose the text within it, with
+ uniform standard margins.
+\item Each arrow between courses is oriented from box centre to box centre,
+ rather than from/to standard "connection points" on the box edges.
+\item The arrows are "clipped" by the course boxes, but the arrow heads abut
+ the target box exactly.
+\end{itemize}
+These desirable properties are not easily achieved using conventional
+``do-it-yourself'' drawing software, no matter how ``user-friendly'' it
+purports to be.
+The prerex system provides complete flexibility as well as professional
+quality:
+\begin{itemize}
+\item Text within a course box may be partitioned into regions with varying
+ characteristics. For example, the course code and the timetable
+ information on the first line of course boxes are in a smaller font
+ than the course name. The latter is centered and the former are left-
+ and right-justified, respectively. Arbitrary \LaTeX\ formatting can be used
+ for the text.
+\item Any available Type 1 (Postscript) or TrueType format fonts may be used.
+ The professional-quality
+ typesetting engine takes advantage of kerns and ligatures in the fonts.
+\item Line thickness for boxes may be varied; in the example diagram, heavier
+ boxes (and bold-face text) are used to indicate that a course is
+ "required" in the program, rather than an option.
+\item Different styles of connectors can be used, for example to distinguish
+ prerequisites, co-requisites, and recommended prerequisites.
+\item Various sizes or shapes of course boxes may be used, for example to
+ distinguish between half and full courses.
+\item Graphic images such as logos can be imported.
+\item Colours and hyperlinks to on-line course descriptions or calendars are
+ possible.
+\end{itemize}
+\subsubsection*{Wouldn't a commercial drafting service be able to produce a professional-looking prerequisite chart?}
+
+Possibly, but you will almost certainly have to do the global lay-out
+yourself. A more serious long-term problem is that it is unlikely you will
+be able to maintain the chart yourself using freely available software. You
+will be "locked-in" to use the drafting service for every future
+modification of the chart.
+
+If you want the quality and maintainability of a prerex-formatted chart but
+don't think you can produce it yourself, you can outsource the production;
+check out the following:
+\myurl{http://www.prerex.com}.
+
+\subsubsection*{How can a prerex-formatted chart be edited?}
+University programs and timetables
+change frequently: courses are added or dropped,
+pre- or co-requisites or timetabling of courses change, and so on.
+Use of a separate text-based description file and intelligent processing
+software make it easy to modify a prerex-formatted chart. If the text within a course
+box is changed, the size of the box, the length of connectors to and from
+that box, and the location of arrowheads into the box are all adjusted
+automatically by the processing software. If a course box must be moved, it
+is straightforward to edit the relevant instructions for arrows into or
+from the box because the coordinates specified for an arrow are those of
+the box centres, rather than those of the edges or corners of the boxes.
+Small changes can be made with any text editor.
+
+For creating a prerex-formatted chart or for
+making substantial changes to an existing chart, the \texttt{prerex} interactive chart editor
+and the graphical ``wrapper'' \texttt{vprerex} are available;
+see Section~\ref{editor}.
+Editing a text file in either of these ways is far easier and
+faster than trying to fiddle with an image using a mouse.
+
+
+\section{Viewing and Printing a Prerequisite Chart}
+\label{PDF}
+
+A prerequisite chart in Portable Document Format (PDF) can be ``opened'' for
+viewing or printing in any PDF viewer. The most
+popular of these is the
+Adobe Reader.\footnote{\myurl{http://www.adobe.com/prodindex/acrobat/readstep2.html}}
+However, the Adobe Reader is quite slow to load and somewhat inconvenient to use
+if one wants to re-load the document after changing it (normally one must first close the document and
+then re-open it).
+
+There are faster and more convenient alternatives to the Adobe Reader. One
+that is
+available for Windows, Macs, and Linux systems is a
+ghostscript-based viewer called
+GSview.\footnote{%
+\myurl{http://www.cs.wisc.edu/~ghost/}}
+For Windows or Linux: download and install the most recent version of
+ghostscript for your platform,\footnote{%
+\myurl{http://www.cs.wisc.edu/~ghost/doc/AFPL/index.htm}}
+and then install the most recent version of
+GSview for your platform.\footnote{%
+\myurl{http://www.cs.wisc.edu/~ghost/gsview/index.htm}}
+For Macs: just get
+MacGSView.\footnote{%
+\myurl{http://www.cs.wisc.edu/~ghost/macos/index.htm}}
+
+For Linux systems, other ghostscript-based viewers such as
+\texttt{gv}\footnote{%
+\myurl{http://wino.physik.uni-mainz.de/~plass/gv/}}
+are available. Also,
+\texttt{xpdf}\footnote{%
+\myurl{http://www.foolabs.com/xpdf/home.html}}
+is suitable for any X-window based systems, such as any version of Linux.
+If Gnome or KDE libraries are installed, variants \texttt{gpdf}, \texttt{kghostview}, \texttt{evince}, and \texttt{kpdf} (now renamed \texttt{okular}) of these programs are available.
+You may print a prerequisite chart from within any of these viewing applications.
+
+If you are \emph{editing} a prerequisite chart (using either a text editor on the
+chart description or
+the \texttt{prerex} editor), you will want to use a PDF viewer that
+not only can be configured to ``watch'' the PDF file (so that it re-loads
+automatically when this is updated), but also
+shows hyperlinks
+in a ``tooltip'' when the mouse hovers over it; this is a convenient way to get
+the coordinates of course boxes and arrows while editing the description.
+Recent versions of some of these viewing programs have the latter capability.
+The \texttt{vprerex} ``wrapper'' for the \texttt{prerex} editor includes
+a built-in \texttt{prerex}-enabled PDF viewer that makes it extremely easy to
+transfer coordinates from the chart to the editor.
+
+
+\section{Installing a Basic \LaTeX\ System}
+\label{installing}
+
+To ``process'' a chart description, you will need to install an application
+called \LaTeX, together with several auxiliary applications to convert the
+output into Postscript and then PDF.
+
+
+\LaTeX\ is a powerful document processor based on a professional-quality typesetting program called \TeX. The following web sites
+will point you to as much information as you might want on \LaTeX\ and \TeX:
+\begin{itemize}
+\item \LaTeX\ Project home page\footnote{\myurl{http://www.latex-project.org}}
+\item \TeX\ Users Group home page\footnote{\myurl{http://www.tug.org/}}
+\item \TeX\ FAQ\footnote{\myurl{http://www.tex.ac.uk/cgi-bin/texfaq2html}}
+\end{itemize}
+
+If you use Windows,
+we suggest you install the ``basic'' version of
+MiKTeX.\footnote{%
+\myurl{http://www.miktex.org/setup.html}}
+If you use Mac~OS~X, go to
+the \emph{\TeX\ on Mac OS~X} site.\footnote{%
+\myurl{http://www.rna.nl/tex.html}}
+Unix and Linux users should install \texttt{texlive}.\footnote{%
+\myurl{http://www.tug.org/texlive/}}
+
+The resulting installation will allow you to process simple \texttt{.tex} files.
+However, you won't be able
+to process the description of a prerex-formatted prerequisite chart until some necessary additional software is installed.
+
+\section{Additional \LaTeX\ Software}
+\label{additional}
+
+To process descriptions of prerex-formatted charts, some additional packages
+are needed.
+The file \texttt{prerex.sty} fromthe \texttt{prerex} package is essential;
+it should be stored
+in the same folder as the \texttt{.tex} file to be processed
+(or in the
+local \verb|texmf| tree) so the \LaTeX\ system can find it.
+Other add-ons that may be necessary are as follows:
+\texttt{pgf},
+\texttt{tikz},
+\texttt{multido},
+\texttt{textcomp}, and
+\texttt{xcolor}.
+If you are using \MikTeX\ or \texttt{texlive}, these can be installed using the
+package manager.
+All of the packages are also available
+for download from any CTAN\footnote{%
+\myurl{http://www.ctan.org/}} repository.
+
+You are now ready to process the description for a chart.
+Get a command-line
+prompt, move to the folder with the chart description and issue the following
+instruction:
+\begin{verbatim}
+ pdflatex chart
+\end{verbatim}
+This operation will overwrite
+any existing \verb|chart.pdf|, so you should first re-name
+that file if you want to preserve it.
+
+If the \texttt{pdflatex} command isn't recognized, you
+will have to
+edit the
+system executable-command path.
+On a Unix-like system, adjust the value of \texttt{PATH}; on
+Windows, click on \emph{Control~Panel} $\rightarrow$ \emph{System} $\rightarrow$ \emph{Advanced} $\rightarrow$ \emph{Environment~Variables},
+select \emph{Path} and click on \emph{Edit}; then append the appropriate
+paths,
+separated by semi-colons. For \MikTeX, the default path for commands is
+\verb|C:\texmf\miktex\bin|.
+
+
+
+\section{Installing a \LaTeX\ Development Environment}
+\label{IDE}
+Most beginning
+users will prefer
+to use a graphical ``development environment'' which supports editing, processing and
+previewing of documents, rather than the command-line interface. There are \emph{many} such applications;
+one called \TeX Works is supported in both MiK\TeX\ and \TeX Live.
+
+\section{Fonts}
+\label{fonts}
+
+Look carefully at the samples in Figure~\ref{samples} on page~\pageref{samples}.
+\begin{figure}
+\Huge
+\begin{list}{}{}\item
+\begin{tabular}{l}
+{\fontfamily{ptm}\selectfont Times}\\
+{\fontfamily{pplj}\selectfont Palatino}\\
+{\fontfamily{cmss}\selectfont Computer Modern Sans}\\
+{\fontfamily{phv}\selectfont Helvetica} \\
+{\fontfamily{fos}\selectfont Open Sans} \\
+{\fontfamily{Cabin-TLF}\selectfont Cabin}\\
+{\fontfamily{QuattrocentoSans-TLF}\selectfont Quattrocento Sans}\\
+{\fontfamily{LinuxBiolinumT-TLF}\selectfont Linux Biolinum}\\
+{\fontfamily{uop}\selectfont Optima}
+\end{tabular}
+\end{list}
+\caption{Typeface Samples}
+\label{samples}
+\end{figure}
+Times and Palatino are \emph{serifed} typefaces; the serifs are the small projections
+at the baselines, and sometimes at the tops, of characters.
+Serifs improve the readability of \emph{long} texts.
+The others
+are \emph{sans serif} typefaces; this class of typefaces is more
+appropriate for use in prerequisite charts where \emph{legibility} of fairly small and short textual fragments is of primary importance.
+
+There are several \emph{sans serif} options available for \LaTeX.
+Computer Modern Sans is the default \emph{sans serif} font,
+and Helvetica should also be available in every \LaTeX\ installation.
+To get Helvetica (scaled down 20\%), use
+\begin{verbatim}
+ \usepackage[scaled=0.8]{helvet}
+\end{verbatim}
+
+The Open Sans family\footnote{%
+\myurl{http://www.google.com/webfonts/specimen/Open+Sans}}
+of fonts, designed by Steve Matteson of
+Ascender, is supported for use in \LaTeX\ by the \texttt{opensans} package,
+available from CTAN\footnote{%
+\myurl{http://www.ctan.org/tex-archive/fonts/opensans}}
+and in most distributions.
+The Cabin\footnote{%
+\myurl{http://www.google.com/webfonts/specimen/Cabin}}
+and Quattrocento Sans\footnote{%
+\myurl{http://www.google.com/webfonts/specimen/Quattrocento+Sans}
+}
+families of fonts, designed by Pablo Impallari, are supported for use
+in \LaTeX\ by the \texttt{cabin} and \texttt{quattrocento} packages.
+The chart in Figure~\ref{chart} on page~\pageref{chart} uses Cabin.
+The Linux Biolinum fonts are the sans-serif
+companions to the Linux Libertine family\footnote{%
+\myurl{http://www.linuxlibertine.org/index.php?id=1&L=1}},
+designed by Philipp H. Poll, and are supported for use in \LaTeX\ by the
+\texttt{libertine} package.
+
+Four URW-Classico fonts, a fairly good clone of Hermann Zapf's Optima, are available in a package
+of 79~fonts in Type~1 format that may be legally downloaded for non-commercial use
+from
+Artifex\footnote{%
+\myurl{http://www.artifex.com/downloads/}}.
+The four Classico font files, renamed for use in \LaTeX, with the necessary support files and installation instructions are available
+from CTAN\footnote{%
+\myurl{ftp://tug.ctan.org/pub/tex-archive/nonfree/fonts/urw/classico.zip}}.
+Note that the font files cannot be distributed commercially without a commercial license; please read the license in the archive
+before re-distributing them. This restriction does not prevent you from distributing documents
+that \emph{use} the fonts.
+
+
+\section{Conversion to Portable Network Graphic (PNG) Format}
+
+Although PDF is currently the best available format for distributing
+and printing charts, you may want to produce a raster-image version for
+use on a web site. There are several conversion programs and services
+available to do this. For example, the \verb|convert| tool of the
+multi-platform \verb|ImageMagick|\footnote{%
+\myurl{http://www.imagemagick.org/}}
+package may be used as follows:
+\begin{verbatim}
+ convert -density 125 -quality 100 chart.pdf chart.png
+\end{verbatim}
+The density parameter specifies the number of pixels per inch; if this is too small, the
+image is of poor quality, and if it is too large, the image file is too big.
+The quality parameter ensures maximal (loss-free) compression.
+From version 5.0, \verb|prerex.sty| generates an auxiliary file
+containing image-map data for the hyperlinked nodes in the chart; consult a
+reference on the HTML language for an explanation of (client-side) image maps.
+
+
+\section{Terminology and Coordinate System}
+Before we discuss the \texttt{prerex} editor and the format
+of ``source files'' (i.e.,~chart descriptions), we shall summarize the necessary terminology and coordinate
+conventions.
+
+A prerequisite chart consists of a number of
+\emph{course boxes},
+linked by
+\emph{arrows}.
+Courses are either
+\emph{half}
+or
+\emph{full},
+and may be
+\emph{required}.
+Each course box can contain a course
+\emph{code}
+(upper left corner),
+a course
+\emph{title}
+(lower half),
+and
+\emph{timetable}
+information
+(upper right corner).
+An arrow can be either a \emph{prerequisite} (solid),
+a \emph{co-requisite} (dotted),
+or
+\emph{recommended} (dashed).
+When a conventional arrow would be inappropriate, it is possible to use
+a
+\emph{mini}
+course ``box'' (consisting of just a course code) just above a target box.
+A line (or paragraph) of text may be placed anywhere on the chart.
+
+A conventional two-dimensional
+Cartesian coordinate system is used to specify the locations of
+diagram elements.
+The
+origin (where
+$x = 0$
+and
+$y = 0$)
+is at the lower-left corner of the diagram.
+
+The diagram height is configurable; the width is determined by
+the values of the \LaTeX\ length
+\verb|\textwidth|
+and
+an adjustable
+\verb|\unit|
+length, which defines the absolute value of a coordinate unit.
+It is possible to put a coordinate grid with labelled axes
+in the background of a chart.
+
+The coordinates of a
+\emph{box,}
+\emph{mini,
+or
+\emph{text-line}}
+are those of its centre point.
+An
+\emph{arrow}
+is described by the
+coordinates of the centre points of its source and target boxes/minis/text-lines.
+
+\section{Chart Editing}
+\label{editor}
+The source code of \texttt{prerex}, an interactive (command-line) prerequisite-chart editor, is available at
+CTAN repositories.\footnote{\myurl{http://www.ctan.org/tex-archive/graphics/prerex/}}
+It should build on any \textsc{Unix}-like system with
+suitable tools and libraries installed; for example, it can be compiled
+on GNU/Linux, Solaris, the Cygwin\footnote{\myurl{http://www.cygwin.com/}}
+platform on Windows,
+and the Fink\footnote{\myurl{http://fink.sourceforge.net/}} platform
+on OS~X.
+
+The editor supports add, remove, cut-and-paste, and edit operations
+on course boxes, minis, text-lines, and arrows, and shifts of specified diagram elements or an entire diagram.
+A summary of all
+commands supported by \texttt{prerex} is given in Table~\ref{help}.
+%on page~\pageref{help}.
+Note that if a course box/mini/text-line is ``cut''
+and then ``pasted'' elsewhere, the target or source coordinates of arrows into or out of the source and target are
+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|}
+\hline
+ \multicolumn{1}{|c|}{\textbf{Command}} & \multicolumn{1}{|c|}{\textbf{Effect}} \\
+\hline\hline
+
+\verb\file> box x,y \ & [create and] edit course box at $x,y$\\
+\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 | 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\\
+\verb\file> !cmd \ & execute shell command \verb\cmd\, then reload\\
+\verb\file> Backup \ & copy \verb\file\ to \verb\.file\\\
+\verb\file> Restore \ & restore from \verb\.file\\\
+\verb\file> grid [y/n] \ & turn on/off coordinate grid background\\
+\verb\file> help | ? \ & print this summary\\
+\hline
+\end{tabular}
+\end{center}
+\caption{\texttt{prerex} Command Summary (version 6.3)}
+\label{help}
+\end{table}
+
+The effects of
+editing operations may be observed in a PDF
+viewer. See the manual page \texttt{prerex(1)} for
+more information. The \texttt{prerex} package at CTAN
+also has the source files for
+\texttt{vprerex} (visual \texttt{prerex}), a graphical ``wrapper'' for \texttt{prerex}
+which incorporates a prerex-enabled PDF viewer.
+
+
+For initial creation of a prerex-formatted chart
+or making
+substantial changes to the boxes and arrows of an existing prerex-formatted chart, it is more convenient
+to use one of these programs than to edit the source file directly; however,
+the chart editor has no access to other elements of a source file, such as
+preamble declarations, headings, notes, logos, and so on. A conventional text editor or
+\LaTeX\ development environment should be used for these.
+
+\section{Source Files}
+\label{source}
+
+\subsection{Overall Structure}
+
+A \texttt{.tex} file is essentially text with interspersed
+\LaTeX\ commands, much as a web-page description has text with Hypertext
+Mark-up Language (HTML) tags interspersed.
+Commands for \LaTeX\ can be recognized by the initial backslash character~``\verb|\|''.
+
+The first several lines make up the ``preamble''
+of the source file for a chart:
+\begin{verbatim}
+ \documentclass{article}
+ \usepackage{prerex}
+ :
+\end{verbatim}
+This describes the kind of document to be processed (\texttt{article}, as opposed to
+\texttt{book} or \texttt{report}) and
+indicates a file of definitions to be used (\texttt{prerex.sty}).
+The remaining lines of the preamble
+specify such things as the page layout and the fonts to be used.
+
+The structure
+\begin{verbatim}
+ \begin{document}
+ :
+ \end{document}
+\end{verbatim}
+contains the content of the document.
+Typically, the first element of the content is a heading, contained
+within a
+formatting structure of the form
+\begin{verbatim}
+ \begin{center}
+ :
+ \end{center}
+\end{verbatim}
+which specifies that each line of the material contained should be centered on the page.
+The double-backslash command \verb|\\| indicates
+a line break.
+
+After the heading comes the description of the chart itself:
+\begin{verbatim}
+ \begin{chart}
+ :
+ \end{chart}
+\end{verbatim}
+Finally, there
+will typically be some notes to explain the abbreviations and conventions
+used in the chart.
+
+\subsection{Chart Instructions}
+
+
+Table~\ref{instructions}
+on page~\pageref{instructions}
+summarizes the formats of
+the instructions defined by \texttt{prerex.sty}.
+\begin{table}
+\begin{center}
+\renewcommand{\arraystretch}{1.3333}
+\begin{tabular}{|l|}
+\hline
+\multicolumn{1}{|c|}{\textbf{Course Boxes and Text-Lines}} \\
+\hline
+\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
+\multicolumn{1}{|c|}{\textbf{Arrows}} \\
+\hline
+\verb|\prereq |$x_0, y_0, x_1, y_1$: \hfil
+\verb|\prereqc |$x_0, y_0, x_1, y_1$; \emph{c}: \\
+\verb|\coreq |$x_0, y_0, x_1, y_1$: \hfil
+\verb|\coreqc |$x_0, y_0, x_1, y_1$; \emph{c}: \\
+\verb|\recomm |$x_0, y_0, x_1, y_1$: \hfil
+\verb|\recommc |$x_0, y_0, x_1, y_1$; \emph{c}: \\
+\hline
+\multicolumn{1}{|c|}{\textbf{Coordinate Grid}} \\
+\hline
+\verb|\grid| \\
+\hline
+\multicolumn{1}{|c|}{\textbf{In-Line Instructions}} \\
+\hline
+\verb|\solidarrow| \\
+\verb|\dottedarrow| \\
+\verb|\dashedarrow| \\
+\verb|\lightbox| \\
+\verb|\boldbox| \\
+\verb|\dottedbox| \\
+\hline
+\end{tabular}
+\renewcommand{\arraystretch}{1.0}
+\end{center}
+\caption{Instructions for \texttt{prerex}-Formatted Prerequisite Charts}
+\label{instructions}
+\end{table}
+
+The \verb\grid\ command creates
+a light gray ``coordinate grid'' in the background of the chart.
+Figure~\ref{grid}
+on page~\pageref{grid}
+shows the example chart of Figure~\ref{chart} with the coordinate
+grid enabled.
+\input{introchart2}
+Note that the ``origin'' of the coordinate system (the point
+with $x$-coordinate $0$ and $y$-coordinate $0$) is at the lower-left corner of the chart.
+
+The arrows produced by \verb\prereq\, \verb\coreq\, and \verb\recomm\ instructions
+by default are slightly curved (except very short ones). It is possible to increase
+or decrease the degree of curvature of a particular arrow by using instructions
+\verb\prereqc\, \verb\coreqc\, or \verb\recommc\; the additional argument
+specifies the degree of curvature: $0$ means no curvature, i.e.,~straight,
+and to increase the curvature, use a larger number (up to $100$).
+To change the default curvature for \emph{all} arrows,
+see Section~\ref{config} on page~\pageref{config} below.
+
+
+The ``in-line'' instructions create small examples of course boxes and arrows for use
+in explanatory notes outside of the \verb\chart\ environment:
+\begin{list}{}{}\item
+\renewcommand{\arraystretch}{1.25}
+\begin{tabular}{lc}
+\verb|\solidarrow| & \solidarrow \\
+\verb|\dottedarrow| & \dottedarrow \\
+\verb|\dashedarrow| & \dashedarrow \\
+\verb|\lightbox| & \sf\small\lightbox \\
+\verb|\boldbox| & \sf\small\boldbox \\
+\verb|\dottedbox| & \sf\small\dottedbox
+\end{tabular}
+\renewcommand{\arraystretch}{1.0}
+\end{list}
+
+
+See the manual pages
+\texttt{prerex(5)} and \texttt{prerex.sty(7)} and the documentation for
+\texttt{prerex.sty} for more information.
+
+\subsection{\LaTeX\ Input Conventions}
+
+The following are some of the input conventions for \LaTeX\ that you might want to know
+about while editing
+the source file for a prerex-formatted prerequisite chart.
+\begin{itemize}
+\item The characters \verb|# $ % & _ { } ~ ^ \ | are interpreted in special
+ways by \LaTeX; to produce any of the first seven of these characters, you will have
+to ``escape'' them with a backslash, as in, for example, \verb|\&|.
+The \verb|\\| combination produces a line break; to produce a backslash, use \verb|\backslash|. The remaining two special characters, \verb|~|
+and \verb|^|, may also be escaped with a backslash but produce accents;
+for example, \verb|\^{u}| produces~\^{u}.
+
+\item To produce a space where \LaTeX\ would normally not do so, use \verb|\ |.
+For example, \LaTeX\ normally interprets a period immediately after a word as the end of
+a sentence and leaves a larger-than-usual space; to prevent the larger-than-usual space after an abbreviation
+that finishes with a period, use \verb|\ | instead of a space, as in
+\verb|Diff.\ Equations|.
+
+\item An unescaped \verb\%\ character signals the beginning of a comment; any characters following the
+\verb\%\ to the end of that line are ignored by \LaTeX.
+
+\item To prevent a line break between two words, use a \verb\~\
+instead of a space between them, as in \verb\MATH~223\.
+
+\item To leave a smaller-than-usual space between two words,
+use \verb|\,| instead of a space between them, as in \verb|MATH\,223|.
+
+\item To prevent hyphenation of some word, use the word as the argument to
+an \verb|\mbox| command, as in \verb|\mbox{Robert}|.
+
+
+\end{itemize}
+
+\subsection{Configuration}
+\label{config}
+
+The following \LaTeX\ definitions are made in
+\verb|prerex.sty| but may be re-defined by the
+user in the chart source file:
+\begin{list}{}{}
+\item \verb|\newcommand{\DefaultCurvature}{20}|
+\end{list}
+where the argument should be in the range $0$--$100$; $0$ means no curvature.
+\begin{list}{}{}
+\item \verb|\newcommand{\CourseURL}[3]{#3.html}|
+\end{list}
+where the arguments supplied at the call are the $x$ and $y$ coordinates of
+the box or mini, and the course code.
+\begin{list}{}{}
+\item \verb|\newcommand{\background}{yellow!15}|
+\end{list}
+which defines the default background color for course nodes.
+\begin{list}{}{}
+\item \verb|\setlength{\unit}{5.7816pt}|
+\end{list}
+which defines the absolute size of a coordinate unit;
+this results in exactly 10 pixels per
+coordinate unit if the chart is converted to an image at 125 dpi.
+\begin{list}{}{}
+\item \verb|\newcommand{\dpi}{125}|
+\item \verb|\newcommand{\PixelsPerUnit}{10}|
+\end{list}
+These three commands have to re-defined together if the image-map data are to be correct.
+\begin{list}{}{}
+\item \verb|\setcounter{diagheight}{75}|
+\end{list}
+which is the
+$y$-coordinate
+of the top of the diagram (reduced to $65$ in landscape mode);
+the nominal diagram width is
+\verb|\textwidth|~$\div$~\verb|\unit|~$+ 10$.
+
+The following define the thicknesses of the three kinds of arrows
+and the thickness of bold boxes:
+\begin{list}{}{}
+\item
+\verb|\newcommand{\solidwidth}{0.5pt}|
+\item
+\verb|\newcommand{\dottedwidth}{0.8pt}|
+\item
+\verb|\newcommand{\dashedwidth}{0.8pt}|
+\item
+\verb|\newcommand{\boldwidth}{1.0pt}|
+\end{list}
+
+
+The following command is used to change to a smaller size for course codes,
+timetable information, and mini-course codes:
+\begin{list}{}{}
+\item
+\verb|\newcommand{\smallersize}{\relsize{-3}}|
+\end{list}
+
+The following command defines the baseline adjustment for the stand-alone arrows and boxes;
+this parameter is font-dependent.
+\begin{list}{}{}
+\item
+\verb|\newcommand{\baselineAdj}{-0.5ex}|
+\end{list}
+
+\newpage
+
+
+
+\section*{Bibliography}
+\addcontentsline{toc}{section}{Bibliography}
+\label{bibliography}
+
+The following \nocite{Kopka,Lamport,Mittelbach} are three recommended books on \LaTeX\@.
+Many other books and tutorial materials are available; check out the web sites referenced
+in Section~\ref{installing}.
+\renewcommand{\refname}{}
+\vspace*{-6ex}
+\bibliography{manual}
+\bibliographystyle{plain}
+
+
+
+\end{document}