From 807941d7e358fef359bc425f2be605064f6330e3 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sun, 2 Mar 2014 05:24:20 +0000 Subject: prerex (27Feb) git-svn-id: svn://tug.org/texlive/trunk@33072 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/prerex/README | 4 +- Master/texmf-dist/doc/latex/prerex/doc/intro.pdf | Bin 294256 -> 0 bytes Master/texmf-dist/doc/latex/prerex/doc/intro.tex | 885 -------------------- .../texmf-dist/doc/latex/prerex/doc/introFonts.png | Bin 7181 -> 0 bytes .../doc/latex/prerex/doc/introchart1.tex | 62 -- .../doc/latex/prerex/doc/introchart2.tex | 49 -- Master/texmf-dist/doc/latex/prerex/doc/prerex.pdf | Bin 166691 -> 0 bytes .../texmf-dist/doc/latex/prerex/doc/prerex.sty.7 | 467 ----------- Master/texmf-dist/doc/latex/prerex/doc/prerex.tex | 548 ------------- Master/texmf-dist/doc/latex/prerex/intro.pdf | Bin 0 -> 284232 bytes Master/texmf-dist/doc/latex/prerex/intro.tex | 887 +++++++++++++++++++++ Master/texmf-dist/doc/latex/prerex/introFonts.png | Bin 0 -> 7181 bytes Master/texmf-dist/doc/latex/prerex/introchart1.tex | 60 ++ Master/texmf-dist/doc/latex/prerex/introchart2.tex | 47 ++ .../doc/latex/prerex/prerex-6.5.2.tar.gz | Bin 113688 -> 113682 bytes Master/texmf-dist/doc/latex/prerex/prerex.pdf | Bin 0 -> 144291 bytes Master/texmf-dist/doc/latex/prerex/prerex.sty.7 | 467 +++++++++++ Master/texmf-dist/doc/latex/prerex/prerex.tex | 547 +++++++++++++ Master/texmf-dist/tex/latex/prerex/prerex.sty | 38 +- 19 files changed, 2033 insertions(+), 2028 deletions(-) delete mode 100644 Master/texmf-dist/doc/latex/prerex/doc/intro.pdf delete mode 100644 Master/texmf-dist/doc/latex/prerex/doc/intro.tex delete mode 100644 Master/texmf-dist/doc/latex/prerex/doc/introFonts.png delete mode 100644 Master/texmf-dist/doc/latex/prerex/doc/introchart1.tex delete mode 100644 Master/texmf-dist/doc/latex/prerex/doc/introchart2.tex delete mode 100644 Master/texmf-dist/doc/latex/prerex/doc/prerex.pdf delete mode 100644 Master/texmf-dist/doc/latex/prerex/doc/prerex.sty.7 delete mode 100644 Master/texmf-dist/doc/latex/prerex/doc/prerex.tex create mode 100644 Master/texmf-dist/doc/latex/prerex/intro.pdf create mode 100644 Master/texmf-dist/doc/latex/prerex/intro.tex create mode 100644 Master/texmf-dist/doc/latex/prerex/introFonts.png create mode 100644 Master/texmf-dist/doc/latex/prerex/introchart1.tex create mode 100644 Master/texmf-dist/doc/latex/prerex/introchart2.tex create mode 100644 Master/texmf-dist/doc/latex/prerex/prerex.pdf create mode 100644 Master/texmf-dist/doc/latex/prerex/prerex.sty.7 create mode 100644 Master/texmf-dist/doc/latex/prerex/prerex.tex (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/latex/prerex/README b/Master/texmf-dist/doc/latex/prerex/README index f5c15cf4a78..daaa393ac4b 100644 --- a/Master/texmf-dist/doc/latex/prerex/README +++ b/Master/texmf-dist/doc/latex/prerex/README @@ -1,5 +1,5 @@ -prerex, version 6.5.3: Macros for prerequisite charts, with associated -editor and viewer applications. +prerex, version 2014-02-27. +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 deleted file mode 100644 index 50987765063..00000000000 Binary files a/Master/texmf-dist/doc/latex/prerex/doc/intro.pdf and /dev/null differ diff --git a/Master/texmf-dist/doc/latex/prerex/doc/intro.tex b/Master/texmf-dist/doc/latex/prerex/doc/intro.tex deleted file mode 100644 index e78d0ed0a1c..00000000000 --- a/Master/texmf-dist/doc/latex/prerex/doc/intro.tex +++ /dev/null @@ -1,885 +0,0 @@ -\documentclass[11pt]{article} -\usepackage[textwidth=6.5in,textheight=8.5in]{geometry} -\usepackage{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}} -\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| & \fontseries{sb}\selectfont\lightbox \\ -\verb|\boldbox| & \boldbox \\ -\verb|\dottedbox| & \fontseries{sb}\selectfont\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} 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 9ab370829aa..00000000000 Binary files a/Master/texmf-dist/doc/latex/prerex/doc/introFonts.png and /dev/null differ diff --git a/Master/texmf-dist/doc/latex/prerex/doc/introchart1.tex b/Master/texmf-dist/doc/latex/prerex/doc/introchart1.tex deleted file mode 100644 index 9609cdfcbcc..00000000000 --- a/Master/texmf-dist/doc/latex/prerex/doc/introchart1.tex +++ /dev/null @@ -1,62 +0,0 @@ -\begin{figure} -\small -\renewcommand{\bfdefault}{sb} -\renewcommand{\mddefault}{mb} -\setcounter{diagheight}{50} -\textwidth6.25in -\begin{chart} -\text 20,52:{\textsf{\textsc{\Large Computer Science}}} -\reqfullcourse 50,45:{1083}{Comput.\,Sci.\\Concepts}{TTh 10:00} -\reqhalfcourse 25,40:{1303}{Discrete\\Structures}{MWF 9:30} -\reqhalfcourse 30,30:{2813}{Computer\\Organiz.\,I}{MWF 8:30} - \prereq 25,40,30,30: - \prereq 50,45,30,30: -\reqhalfcourse 45,30:{2023}{Procedural\\Prog.\,Devel.}{MWF 2:30} - \prereq 50,45,45,30: -\reqhalfcourse 65,30:{2513}{Informat.\\Systems}{TTh 1:00} - \coreq 50,45,65,30: -\mini 10,26:{1083} -\reqhalfcourse 10,20:{2333}{Computab.\,\&\\Formal\,Lang.}{TTh 11:30} - \prereq 10,26,10,20: - \prereq 25,40,10,20: -\reqhalfcourse 45,20:{2013}{Software\\Engineer.\,I}{MWF 11:30} - \prereq 45,30,45,20: -\halfcourse 55,20:{2685}{\texttt{C++}\\Program.}{no} - \prereq 45,30,55,20: -\mini 21,16:{2013} -\reqhalfcourse 15,10:{3323}{Data\\Structures}{MWF 10:30} - \prereq 21,16,15,10: - \prereq 25,40,15,10: -\reqhalfcourse 25,10:{3813}{Comput.\\Organiz.\,II}{TTh 8:30} - \prereq 30,30,25,10: -\reqhalfcourse 35,10:{3413}{Operating\\Systems\,I}{MWF 9:30} - \recomm 45,20,35,10: - \prereq 30,30,35,10: -\halfcourse 45,10:{3013}{Software\\Engineer.\,II}{MWF 11:30} - \prereq 45,20,45,10: -\halfcourse 58,10:{3513}{Database\\Mngt.\,Sys.\,I}{MWF 8:30 pm} - \prereq 45,20,58,10: - \prereq 65,30,58,10: -\reqhalfcourse 70,10:{3503}{Sys.\,Anal.\\\&\,Design}{TTh 10:00} - \prereq 65,30,70,10: -\end{chart} -\begin{center} -\begin{minipage}{6.0in} -\begin{itemize}\sf -\item -A solid arrow \solidarrow\ indicates a required prerequisite, -a dotted arrow \dottedarrow\ -indicates a corequisite (to be taken before or concurrently), and a -dashed arrow \dashedarrow\ indicates a recommended prerequisite. -Core courses are in \boldbox\ boxes; -other courses (i.e.,~options or prerequisites) -are in \lightbox\ boxes. -\item Timetabling abbreviations: M, T, W, Th, F=Mon, Tue, Wed, Thur, Fri, resp.; eve=7:00--9:50 pm; no=not offered. -\end{itemize} -\end{minipage} -\end{center} -\renewcommand{\bfdefault}{b} -\renewcommand{\mddefault}{m} -\caption{A Prerex-Formatted Prerequisite Chart} -\label{chart} -\end{figure} diff --git a/Master/texmf-dist/doc/latex/prerex/doc/introchart2.tex b/Master/texmf-dist/doc/latex/prerex/doc/introchart2.tex deleted file mode 100644 index 19dd24e1a27..00000000000 --- a/Master/texmf-dist/doc/latex/prerex/doc/introchart2.tex +++ /dev/null @@ -1,49 +0,0 @@ -\begin{figure} -\small -\renewcommand{\bfdefault}{sb} -\renewcommand{\mddefault}{mb} -\setcounter{diagheight}{50} -\textwidth6.25in -\begin{chart} -\grid -\text 20,52:{\textsf{\textsc{\Large Computer Science}}} -\reqfullcourse 50,45:{1083}{Comput.\,Sci.\\Concepts}{TTh 10:00} -\reqhalfcourse 25,40:{1303}{Discrete\\Structures}{MWF 9:30} -\reqhalfcourse 30,30:{2813}{Computer\\Organiz.\,I}{MWF 8:30} - \prereq 25,40,30,30: - \prereq 50,45,30,30: -\reqhalfcourse 45,30:{2023}{Procedural\\Prog.\,Devel.}{MWF 2:30} - \prereq 50,45,45,30: -\reqhalfcourse 65,30:{2513}{Informat.\\Systems}{TTh 1:00} - \coreq 50,45,65,30: -\mini 10,26:{1083} -\reqhalfcourse 10,20:{2333}{Computab.\,\&\\Formal\,Lang.}{TTh 11:30} - \prereq 10,26,10,20: - \prereq 25,40,10,20: -\reqhalfcourse 45,20:{2013}{Software\\Engineer.\,I}{MWF 11:30} - \prereq 45,30,45,20: -\halfcourse 55,20:{2685}{\texttt{C++}\\Program.}{no} - \prereq 45,30,55,20: -\mini 21,16:{2013} -\reqhalfcourse 15,10:{3323}{Data\\Structures}{MWF 10:30} - \prereq 21,16,15,10: - \prereq 25,40,15,10: -\reqhalfcourse 25,10:{3813}{Comput.\\Organiz.\,II}{TTh 8:30} - \prereq 30,30,25,10: -\reqhalfcourse 35,10:{3413}{Operating\\Systems\,I}{MWF 9:30} - \recomm 45,20,35,10: - \prereq 30,30,35,10: -\halfcourse 45,10:{3013}{Software\\Engineer.\,II}{MWF 11:30} - \prereq 45,20,45,10: -\halfcourse 58,10:{3513}{Database\\Mngt.\,Sys.\,I}{MWF 8:30 pm} - \prereq 45,20,58,10: - \prereq 65,30,58,10: -\reqhalfcourse 70,10:{3503}{Sys.\,Anal.\\\&\,Design}{TTh 10:00} - \prereq 65,30,70,10: -\end{chart} -\vspace*{6ex} -\renewcommand{\bfdefault}{b} -\renewcommand{\mddefault}{m} -\caption{A Prerequisite Chart with a Coordinate Grid} -\label{grid} -\end{figure} diff --git a/Master/texmf-dist/doc/latex/prerex/doc/prerex.pdf b/Master/texmf-dist/doc/latex/prerex/doc/prerex.pdf deleted file mode 100644 index 9218342e9a0..00000000000 Binary files a/Master/texmf-dist/doc/latex/prerex/doc/prerex.pdf and /dev/null 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 deleted file mode 100644 index 21da7194fb5..00000000000 --- a/Master/texmf-dist/doc/latex/prerex/doc/prerex.sty.7 +++ /dev/null @@ -1,467 +0,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 -.B prerex.sty -defines macros that -.B [pdf]latex -can use -to draw charts consisting of labelled course boxes linked by arrows -that represent pre- and co-requisite requirements. -In addition to the usual -.B [pdf]latex -output, auxiliary files will be generated containing image-map data for the -hyperlinked nodes in the diagram and a shell script to crop a PNG image generated from -a Postscript or PDF chart. -.P -If the source file satisfies the constraints -of the -.BR prerex (5) -format, a chart description may be edited using the -.BR prerex (1) -interactive editor (as well as any conventional text editor). -.SH TERMINOLOGY -A prerequisite chart consists of several -.I course boxes, -linked by -.I arrows. -Courses are either -.I half -or -.I full, -and may be -.I required -or -.I optional -(or neither). -Each course box can contain a course -.I code -(upper left corner), -a course -.I title -(lower half), -and -.I timetable -information -(upper right corner). -An arrow can be either a -.I prerequisite -(solid), -a -.I corequisite -(dotted), -or -.I recommended -(dashed). -When a conventional arrow would be inappropriate, it is possible to use -a -.I mini -course "box" (consisting of just a course code) just above a target box. -An arbitrary line of text may be placed anywhere on the chart. -.SH COORDINATE SYSTEM -A conventional two-dimensional -Cartesian coordinate system is used to specify the locations of -diagram elements. -The -origin (where -.I x = 0 -and -.IR "y = 0" ) -is at the lower-left corner of the diagram. -The diagram height is configurable; the width is determined by -the values of -.I \etextwidth -and -an adjustable -.I \eunit -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 -.I box, -.I mini, -or -.I text-line -are those of its centre point. -An -.I arrow -is described by the -coordinates of the centre points of its source and target boxes/minis/text-lines. -.SH USAGE -The command -.B \eusepackage{prerex} -should appear in the document preamble. -This will define a LaTeX environment -.IP -.BI \ebegin{chart} " ... " \eend{chart} -.LP -within which the following commands may be used -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. -.SH COURSE BOXES -The commands producing course boxes have the following forms: -.IP -.BI \ehalfcourse " x,y" :{ code }{ title }{ timetable } -.IP -.BI \efullcourse " x,y" :{ code }{ title }{ timetable } -.IP -.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 -are the coordinates of the -.I centerpoint -of the box, relative to the origin -of the coordinate system at the lower-left corner of the diagram. -The -.I code, -.I title, -and -.I timetable -arguments are arbitrary (well-bracketed) text, possibly with LaTeX markup. - -The following are similar but take an additional argument to specify the (non-default) -background color of the course box: -.IP -.BI \ehalfcoursec " x,y" :{ code }{ title }{ timetable }{ color } -.IP -.BI \efullcoursec " x,y" :{ code }{ title }{ timetable }{ color } -.IP -.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 -.IP -.BI \emini " x,y" :{ code } -.LP -The following instruction places a line of text centered at the coordinates: -.IP -.BI \etext " x,y" :{ text-line } -.LP -There are several differences between minis and text-lines. -The maximum length allowed for a course-code may be less than that -for a text-line. A sans-serif font and a reduced font size is used for a course-code. A course-code -may be hyperlinked but a text-line is not (except when the coordinate grid is on). -A -.B \eparbox -command -may be used in the -.I text-line -argument if more than one line is desired. -.SH ARROWS -Arrows between course boxes (or from a mini or text-line to a course box) are produced -by commands of the form -.IP -.BI \eprereq " x0,y0,x1,y1" : -.IP -.BI \ecoreq " x0,y0,x1,y1" : -.IP -.BI \erecomm " x0,y0,x1,y1" : -.LP -These produce, respectively, solid, dotted, and dashed arrows from -the course box (or mini or text-line) centered at coordinates -.I x0,y0 -to the course box centered at coordinates -.I x1,y1. -.PP -Arrows by default have a -non-zero curvature (unless they are very short). It is possible to override the default curvature -for a particular arrow by using -the instructions -.IP -.BI \eprereqc " x0,y0,x1,y1;c" : -.IP -.BI \ecoreqc " x0,y0,x1,y1;c" : -.IP -.BI \erecommc " x0,y0,x1,y1;c" : -.LP -where -.I c -is an integer in the range 0-100 specifying the desired curvature; for example, -.IR c= 0 -will produce a -.I straight -arrow. To change the default curvature, the user program may redefine the -.B \eDefaultCurvature -command. -.SH WEB LINKS -Course boxes (including minis) may be hyperlinked. -The default URL for course boxes is -.IR course-code .html -where -.I course-code -is -the -.I code -argument -of the course box. The URL scheme may be changed by the user -by re-defining the -.B \eCourseURL -command. -.SH COORDINATE GRID -The following command produces a coordinate grid, which is -useful for editing a diagram: -.IP -.B \egrid -.LP -The grid lines will be covered by course boxes and arrows. -The -.B \egrid -command -also redefines the -.B \eCourseURL -command -so that, -if the mouse cursor is placed over a box or mini in (some) PDF viewers, -the -.I coordinates -of the box, mini, or text-line will be displayed -as follows: -in the status bar in -.BR xpdf -and -.BR gpdf , -and in a "tooltip" in recent versions of -.BR kpdf " (now re-named" -.BR okular ), -.BR evince , -and -the Adobe Reader. -Similarly, the coordinates of the source and target boxes of arrows -are displayed if the mouse hovers over the mid-point of an arrow, -Such coordinate displays make it easier to edit chart descriptions. -When the grid is on, the mid-point of every arrow is highlighted by a -"bullet". -.PP -The -.B prerex -package at -.B http://www.ctan.org/tex-archive/graphics/prerex/ -has a patch for -.BR kpdf / okular (1) -to make it display URIs in tooltips and also capture coordinates of course boxes, arrows and -background points in the X selection clipboard (for pasting into a -command being composed at the -.BR prerex (1) -prompt). There is also a GUI frontend -.BR vprerex (1) -to the -.BR prerex (1) -editor which incorporates a minimalistic prerex-enabled PDF viewer. -.SH STAND-ALONE COMMANDS -The following commands may be used outside a -.B chart -environment, such as in the explanatory notes for a chart: -.IP -.B \esolidarrow -.IP -.B \edottedarrow -.IP -.B \edashedarrow -.IP -.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 -user: -.IP -.BI \enewcommand{\eDefaultCurvature}{ 20 } -.LP -where the argument should be in the range 0-100; 0 means no curvature. -.IP -.BI \enewcommand{\eCourseURL}[3]{ #3.html } -.LP -where the arguments supplied at the call are the -.I x -and -.I y -coordinates of the box or mini and the course code. -.IP -.BI \enewcommand{\ebackground}{ LightYellow } -.LP -where -.I LightYellow -is defined by -.IP -.BI \edefinecolor{LightYellow}{ rgb }{ "1.0, 1.0, 0.878431" } -.IP -.BI \esetlength{\eunit}{ 5.7816pt } -.LP -which defines the absolute size of a coordinate unit; this yields 10 pixels per -coordinate unit if the chart is converted to an image at 125 dpi. -.IP -.BI \enewcommand{\edpi}{ 125 } -.IP -.BI \enewcommand{\ePixelsPerUnit}{ 10 } -.LP -These must be re-defined together if the image-map data are to be correct. -.IP -.BI \esetcounter{diagheight}{ 75 } -.LP -which is the -.IR y -coordinate -of the top of the diagram (reduced to 65 in landscape mode); -the nominal diagram width is -.IR \etextwidth " / " \eunit " + " 10. -.P -The following define the thicknesses of the three kinds of arrows, -and the thickness of bold boxes: -.IP -.BI \enewcommand{\esolidwidth}{ 0.5pt } -.IP -.BI \enewcommand{\edottedwidth}{ 0.8pt } -.IP -.BI \enewcommand{\edashedwidth}{ 0.5pt } -.IP -.BI \enewcommand{\eboldwidth}{ 1.0pt } -.LP -.P -The following command is used to change to a smaller size for course codes, -timetable information, and mini-course codes: -.IP -.BI \enewcommand{\esmallersize}{\erelsize{-3}} -.LP -.P -The following command defines the baseline adjustment for the stand-alone arrows and boxes; -this parameter is font-dependent. -.IP -.BI \enewcommand{\ebaselineAdj}{ -0.5ex } -.LP -.SH DEPEDENCIES -This implementation of -.B prerex.sty -uses -.B pgf -(version 1.18 or later) -with add-on package -.B tikz. -The following additional packages are used: -.B relsize, -.B calc, -.B ifthen, -.B multido, -.B textcomp, -.B zref-savepos -and -.B hyperref. -.I Either -.BR pdflatex (1) -.I or -.BR latex (1) -followed by -.BR dvips (1) -(and possibly -.BR ps2pdf (1)) -may be used. -.P -To convert a chart to a compact but reasonably high-quality image, it is suggested to use the -.BR convert (1) -tool of -.BR ImageMagick (1) -as follows: -.IP -.B convert -.I -density 125 chart.ps chart.png -.LP -or -.IP -.B convert -.I -density 125 chart.pdf chart.png -.LP -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. -By default, the shell script generated by -.B prerex.sty -crops the image at the southeast corner. -It is possible to use a PNG compression application such as -.BR optipng (1) -to reduce the file-size of the cropped image (without loss of quality). - -.SH IMPLEMENTATION DETAILS -.P -To improve the appearance, boxes are drawn with slightly rounded corners. The half-course -boxes are assigned a minimum height to give a more uniform appearance to horizontal -rows of such boxes. -The mini and text boxes have white frames and their -fill colour is white, which is assumed to be the background colour of the chart. -A text box is not normally hyperlinked; however, if the coordinate grid is -on, it is hyperlinked and its chart coordinates are encoded in the URI. -.P -Arrows with a small height and arrows whose -source and target points have equal x or y coordinates are always draw straight -(using a specialized and simpler macro) unless an explicit -non-zero curvature argument is provided. -If the coordinate grid is on, a hyperlink with the source and target coordinates is placed -at the mid-point of the arrow. -A wider background white edge is drawn below an arrow to -improve the appearance -of crossing arrows; the background also -ensures visibility of the -arrow when the coordinate grid is on. -A thin white arrow (with a visible -arrowhead) is drawn beneath the visible arrow to obtain a thin arrowhead. -.P -When the coordinate grid is drawn, the -.B CourseURL -command -is re-defined to pass node coordinates in URIs. Also, -two "anchor" hyperlinks are inserted at the southwest and northeast corners -of the diagram to allow prerex-enabled -PDF viewers to compute chart coordinates. -.P -To support HTML versions of charts, -.B prerex.sty -generates a script to crop a chart image at the southeast corner, allowing -descriptive notes below the chart to be treated as ordinary text. Also, -it generates image-map data for use with an HTML image map. To -obtain absolute page coordinates, the -.B zsavepos, -.B zposx -and -.B zposy -commands are used; the page coordinates are converted into pixel coordinates -for cropping and image-map use. -.SH LICENSE -.B prerex.sty -and this document may be distributed and/or modified under the -conditions of the LaTeX Project Public License. -.SH AUTHOR -R. D. Tennent (rdt@cs.queensu.ca) -.SH SEE ALSO -.BR ImageMagick (1), -.BR convert (1). -.BR dvips (1), -.BR evince (1), -.BR gpdf (1), -.BR kpdf (1), -.BR latex (1), -.BR okular (1), -.BR optipng (1), -.BR pdflatex (1), -.BR prerex (1), -.BR prerex (5), -.BR ps2pdf (1), -.BR tikz (1), -.BR tgf (1), -.BR vprerex (1), -and -.BR xpdf (1). diff --git a/Master/texmf-dist/doc/latex/prerex/doc/prerex.tex b/Master/texmf-dist/doc/latex/prerex/doc/prerex.tex deleted file mode 100644 index 677ed8235fa..00000000000 --- a/Master/texmf-dist/doc/latex/prerex/doc/prerex.tex +++ /dev/null @@ -1,548 +0,0 @@ -\documentclass[10pt]{article} -\usepackage[osf]{mathpazo} -\usepackage[defaultsans,scale=0.82]{opensans} -\usepackage{fullpage} -\usepackage{prerex} -%\def\LaTeX{\mbox{LaTeX}} -\begin{document} - -\title{\textsf{prerex.sty}: Prerequisite Charts in \LaTeX\\{\large Version 6.3}} -\author{R. D. Tennent\\\texttt{rdt@cs.queensu.ca}} -\date{\today} -\maketitle -\thispagestyle{empty} - -\section{Description} -\texttt{prerex.sty} -defines macros that -[pdf]\LaTeX\ -can use -to draw charts consisting of labelled course boxes linked by arrows -that represent pre- and co-requisite requirements; see -the example chart in Figure~\ref{chart} on page~\pageref{chart}. -In addition to the usual -[pdf]\LaTeX\ -output, auxiliary files will be generated containing image-map data for the -hyperlinked nodes in the diagram and a shell script for cropping a PNG image -obtained from the [pdf]\LaTeX\ output. - -If the source file satisfies the constraints -of the -\textsf{prerex(5)} -format, a chart description may be edited using the -\textsf{prerex(1)} -interactive editor (as well as any conventional text editor). - -\begin{figure} -\renewcommand{\seriesdefault}{sb} -\setcounter{diagheight}{40} -\begin{chart}\sf -\text 15,40:{\textsf{\textbf{\Large Computer Science}}} -\reqfullcourse 50,35:{1083}{Comput.\,Sci.\\Concepts}{TTh 10:00} -\reqhalfcourse 25,30:{1303}{Discrete\\Structures}{MWF 9:30} -\reqhalfcourse 30,20:{2813}{Computer\\Organiz.\,I}{MWF 8:30} - \prereq 50,35,30,20: - \prereq 25,30,30,20: -\reqhalfcourse 45,20:{2023}{Procedural\\Prog.\,Devel.}{MWF 2:30} - \prereq 50,35,45,20: -\reqhalfcourse 65,20:{2513}{Informat.\\Systems}{TTh 1:00} - \coreq 50,35,65,20: -\mini 10,16:{1083} -\reqhalfcourse 10,10:{2333}{Computab.\,\&\\Formal\,Lang.}{TTh 11:30} - \prereq 25,30,10,10: - \prereq 10,16,10,10: -\reqhalfcourse 45,10:{2013}{Software\\Engineer.\,I}{MWF 11:30} - \prereq 45,20,45,10: -\halfcourse 55,10:{2685}{\texttt{C++}\\Program.}{no} - \prereq 45,20,55,10: -\mini 21,6:{2013} -\reqhalfcourse 15,0:{3323}{Data\\Structures}{MWF 10:30} - \prereq 25,30,15,0: - \prereq 21,6,15,0: -\reqhalfcourse 25,0:{3813}{Comput.\\Organiz.\,II}{TTh 8:30} - \prereq 30,20,25,0: -\reqhalfcourse 35,0:{3413}{Operating\\Systems\,I}{MWF 9:30} - \prereq 30,20,35,0: - \recomm 45,10,35,0: -\halfcourse 45,0:{3013}{Software\\Engineer.\,II}{MWF 11:30} - \prereq 45,10,45,0: -\halfcourse 58,0:{3513}{Database\\Mngt.\,Sys.\,I}{MWF 8:30 pm} - \prereq 65,20,58,0: - \prereq 45,10,58,0: -\reqhalfcourse 70,0:{3503}{Sys.\,Anal.\\\&\,Design}{TTh 10:00} - \prereq 65,20,70,0: -\end{chart} - -\paragraph{Notes} -\begin{itemize} -\item -A solid arrow \solidarrow\ indicates a required prerequisite, -a dotted arrow \dottedarrow\ -indicates a corequisite (to be taken before or concurrently), and a -dashed arrow \dashedarrow\ indicates a recommended prerequisite. -Core courses are in \boldbox\ boxes; -other courses (i.e.,~options or prerequisites) -are in \lightbox\ boxes. -\item Timetable abbreviations: M, T, W, Th, F$=$Mon, Tue, Wed, Thur, Fri, resp.; no$=$not offered. -\item \dots -\end{itemize} -\caption{A Prerequisite Chart} -\label{chart} -\end{figure} -\section{Terminology} -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} or \emph{optional} (or neither). -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{corequisite} (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 of text may be placed anywhere on the chart. -\section{Coordinate System} -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 -\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{Usage} -The command -\verb|\usepackage{prerex}| -should appear in the document preamble. -This will define a \LaTeX\ environment -\begin{list}{}{} -\item \verb|\begin{chart}|\quad$\cdots$\quad \verb|\end{chart}| -\end{list} -within which the commands described in the following sub-sections may be used -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 -precede -the command for the arrow, and the \verb|\grid| command, if present, should precede -other chart commands. - -\subsection{Course Boxes} -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$ -are the coordinates of the -centerpoint -of the box, relative to the origin -of the coordinate system at the lower-left corner of the diagram. -The -\emph{code}, -\emph{title}, -and -\emph{timetable} -arguments are arbitrary (well-bracketed) text, possibly with \LaTeX\ markup. - -The following are similar but take an additional argument to specify -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} -A mini course ``box'' is produced by a command of the form -\begin{list}{}{} -\item \verb|\mini| $x,y$ \verb|:{| \emph{code} \verb|}| -\end{list} -A text-line is produced by a command of the form -\begin{list}{}{} -\item \verb|\text| $x,y$ \verb|:{| \emph{line of text} \verb|}| -\end{list} -There are several differences between minis and text-lines. -The maximum length allowed for a course-code may be less than that -for a text-line. A sans-serif font and a reduced font size is -used for a course-code. A course-code -may be hyperlinked but a text-line is not (except when the coordinate grid is on). -A \verb|\parbox| command may be used if more than one line is desired. - - -\subsection{Arrows} -Arrows between course boxes (or minis or text-lines) are produced -by commands of the form -\begin{list}{}{} -\item \verb|\prereq| $ x_0,y_0,x_1,y_1$\verb|:| -\item \verb|\coreq| $ x_0,y_0,x_1,y_1$\verb|:| -\item \verb|\recomm| $ x_0,y_0,x_1,y_1$\verb|:| -\end{list} -These produce, respectively, solid, dotted, and dashed arrows from -the course box (or mini or text-line) centered at coordinates -$x_0,y_0$ -to the entity centered at coordinates -$x_1,y_1$. - -Arrows by default have a -non-zero curvature (unless they are very short). It is possible to override the default curvature -for a particular arrow by using -the instructions -\begin{list}{}{} -\item \verb|\prereqc| $ x_0,y_0,x_1,y_1;c$\verb|:| -\item \verb|\coreqc| $ x_0,y_0,x_1,y_1;c$\verb|:| -\item \verb|\recommc| $ x_0,y_0,x_1,y_1;c$\verb|:| -\end{list} -where -$c$ -is an integer in the range $0$--$100$ specifying the desired curvature; for example, -$c= 0$ -will produce a -straight -arrow. To change the default curvature for all arrows, the user program may redefine the -\verb|\DefaultCurvature| -command. -\subsection{Web Links} -\label{WebLinks} -Course boxes and minis may be hyperlinked. -The default URL for course boxes is -\emph{course-code}\verb|.html| -where -\emph{course-code} -is -the -\emph{code} -argument -of the course box. The URL scheme may be changed by the user -by re-defining the -\verb|\CourseURL| -command; see Section~\ref{Configuration}. -\subsection{Coordinate Grid} -The following command produces a coordinate grid with labelled axes, which is -useful while editing a diagram: -\begin{list}{}{} -\item \verb|\grid| -\end{list} -This is normally placed before all the other chart commands so that -grid lines are in the background, covered by course boxes, minis, text-lines, and arrows, -as in Figure~\ref{grid} on page~\pageref{grid}. - -The \verb|\grid| command -also redefines the \verb|CourseURL| command -so that, in suitable PDF viewers, -if the mouse cursor is placed over a box, mini, or midpoint of an arrow, -the \emph{coordinates} of the box/mini/textline (or the coordinates of the source \emph{and} target -of the arrow) will be displayed -as follows: in the -status bar -in \texttt{xpdf} and \texttt{gpdf}, and in a -``tooltip'' in recent versions of \texttt{kpdf}/\texttt{okular}, \texttt{evince}, and the Acrobat Reader. -This coordinate display make it easier to edit chart descriptions. -When the grid is on, the mid-point of every arrow is highlighted by -a ``bullet''. - -The -\texttt{prerex} -package at -\url{http://www.ctan.org/tex-archive/graphics/prerex/} -has a patch for -\texttt{kpdf} (recently incorporated into \texttt{okular}) -to allow capture coordinates of course boxes, -arrows, and -background points in the X selection clipboard (for pasting into a -command being composed at the -\texttt{prerex} -prompt). -There is also a GUI frontend -\texttt{vprerex} to the \texttt{prerex} -editor which incorporates a minimalistic prerex-enabled PDF viewer. - -\begin{figure} -\setcounter{diagheight}{40} -\renewcommand{\seriesdefault}{sb} -\begin{chart}\sf -\grid -\text 15,40:{\textsf{\textbf{\Large Computer Science}}} -\reqfullcourse 50,35:{1083}{Comput.\,Sci.\\Concepts}{TTh 10:00} -\reqhalfcourse 25,30:{1303}{Discrete\\Structures}{MWF 9:30} -\reqhalfcourse 30,20:{2813}{Computer\\Organiz.\,I}{MWF 8:30} - \prereq 25,30,30,20: - \prereq 50,35,30,20: -\reqhalfcourse 45,20:{2023}{Procedural\\Prog.\,Devel.}{MWF 2:30} - \prereq 50,35,45,20: -\reqhalfcourse 65,20:{2513}{Informat.\\Systems}{TTh 1:00} - \coreq 50,35,65,20: -\mini 10,16:{1083} -\reqhalfcourse 10,10:{2333}{Computab.\,\&\\Formal\,Lang.}{TTh 11:30} - \prereq 10,16,10,10: - \prereq 25,30,10,10: -\reqhalfcourse 45,10:{2013}{Software\\Engineer.\,I}{MWF 11:30} - \prereq 45,20,45,10: -\halfcourse 55,10:{2685}{\texttt{C++}\\Program.}{no} - \prereq 45,20,55,10: -\mini 21,6:{2013} -\reqhalfcourse 15,0:{3323}{Data\\Structures}{MWF 10:30} - \prereq 21,6,15,0: - \prereq 25,30,15,0: -\reqhalfcourse 25,0:{3813}{Comput.\\Organiz.\,II}{TTh 8:30} - \prereq 30,20,25,0: -\reqhalfcourse 35,0:{3413}{Operating\\Systems\,I}{MWF 9:30} - \recomm 45,10,35,0: - \prereq 30,20,35,0: -\halfcourse 45,0:{3013}{Software\\Engineer.\,II}{MWF 11:30} - \prereq 45,10,45,0: -\halfcourse 58,0:{3513}{Database\\Mngt.\,Sys.\,I}{MWF 8:30 pm} - \prereq 45,10,58,0: - \prereq 65,20,58,0: -\reqhalfcourse 70,0:{3503}{Sys.\,Anal.\\\&\,Design}{TTh 10:00} - \prereq 65,20,70,0: -\end{chart} -\vspace*{2ex} -\caption{A Prerequisite Chart with a Coordinate Grid} -\label{grid} -\end{figure} -\subsection{Stand-Alone Commands} -The following commands may be used outside a -\verb|chart| -environment, such as in the explanatory notes for a chart: -\begin{center} -\begin{tabular}{lc} -\verb|\solidarrow| & \solidarrow\\ -\verb|\dottedarrow| & \dottedarrow \\ -\verb|\dashedarrow| & \dashedarrow \\ -\verb|\lightbox| & \lightbox \\ -\verb|\boldbox| & \boldbox \\ -\verb|\dottedbox| & \dottedbox \\ -\end{tabular} -\end{center} - -\section{Dependencies} -This implementation of -\verb|prerex.sty| -uses -\verb|pgf| -(version~1.18 or later) -with add-on package -\verb|tikz|. -The following additional packages are used: -\verb|multido|, -\verb|relsize|, -\verb|calc|, -\verb|ifthen|, -\verb|textcomp|, -\verb|zref-savepos|, -and -\verb|hyperref|. -\emph{Either} \verb\pdflatex\ -\emph{or} -\verb\latex\ (followed by \verb\dvips\ and, possibly, \verb\ps2pdf\) -may be used. - -\section{Conversion to Portable Network Graphic (PNG) Format} - -To convert a chart (in Postscript or PDF format) to a reasonably high-quality image, it is suggested to use the -\verb|convert| tool of the -\verb|ImageMagick| package as follows: -\begin{verbatim} - convert -density 125 chart.ps chart.png -\end{verbatim} -or -\begin{verbatim} - convert -density 125 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. -By default, the shell script generated by \texttt{prerex.sty} crops the image at the southeast corner. -It is possible to use a PNG compression application such as -\texttt{optipng} to reduce the file-size of the cropped image (without loss of quality). - -An auxiliary file -containing image-map data for the hyperlinked nodes in the chart is also generated; -consult a reference on the HTML language for an explanation of (client-side) image maps. - -\section{Installation} - -\begin{enumerate} - \item install the most recent version of -\verb\pgf\ from \url{http://sourceforge.net/projects/pgf/}. - \item copy \verb|prerex.sty| to \emph{your-texmf-tree}\verb|/tex/latex/misc| - \item copy \verb|doc/prerex.{tex,pdf}| to \emph{your-texmf-tree}\verb|/doc/latex/misc| - \item if necessary, refresh the \TeX\ database (e.g., \verb|texhash|) - \item copy \verb|man/prerex.sty.7| to sub-directory \verb|man7| of a \verb|man| directory on your - \verb|MANPATH| - \item test by doing - -\begin{verbatim} -$ man 7 prerex.sty -$ make chart.pdf -\end{verbatim} - - -\end{enumerate} - -\section{Configuration} -\label{Configuration} -The following are defined by the style file but may be re-defined by the -user: -\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 specifies the default background color of course boxes. -\begin{list}{}{} -\item \verb|\setlength{\unit}{5.7816pt}| -\end{list} -which defines the absolute size of a coordinate unit; -this yields 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 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.5pt}| -\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} - -\section{Implementation Details} - -\subsection{Boxes} - -To improve the appearance, boxes are drawn with slightly rounded corners. The half-course -boxes are assigned a minimum height to give a more uniform appearance to horizontal -rows of such boxes. -The mini and text boxes have white frames and their -fill colour is white, which is assumed to be the background colour of the chart. -A text box is not normally hyperlinked; however, if the coordinate grid is -on, it is hyperlinked and its chart coordinates are encoded in the URI. - -\subsection{Arrows} -Arrows with a small height and arrows whose -source and target points have equal x or y coordinates are always draw straight -(using a specialized and simpler macro) unless an explicit -non-zero curvature argument is provided. - -If the coordinate grid is on, a hyperlink with the source and target coordinates is placed -at the mid-point of the arrow. - -A wider background white edge is drawn below an arrow to -improve the appearance -of crossing arrows; the background also -ensures visibility of the -arrow when the coordinate grid is on. -A thin white arrow (with a visible -arrowhead) is drawn beneath the visible arrow to obtain a thin arrowhead. - -\subsection{Coordinate Grid and Associated Changes} -When the coordinate grid is drawn, the \texttt{CourseURL} command -is re-defined to pass node coordinates in URIs. Also, -two ``anchor'' hyperlinks are inserted at the southwest and northeast corners -of the diagram to allow prerex-enabled -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 -descriptive notes below the chart to be treated as ordinary text. Also, -it generates image-map data for use with an HTML image map. To -obtain absolute page coordinates, the \texttt{zsavepos}, \texttt{zposx} -and \texttt{zposy} commands are used; the page coordinates are converted into pixel coordinates -for cropping and image-map use. - -\section{License} -\verb|prerex.sty|, \verb|prerex.sty.7|, \verb|README.prerex| and this document may be distributed and/or modified under the -conditions of the \LaTeX\ Project Public License. -\end{document} diff --git a/Master/texmf-dist/doc/latex/prerex/intro.pdf b/Master/texmf-dist/doc/latex/prerex/intro.pdf new file mode 100644 index 00000000000..c834389373d Binary files /dev/null and b/Master/texmf-dist/doc/latex/prerex/intro.pdf differ 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} diff --git a/Master/texmf-dist/doc/latex/prerex/introFonts.png b/Master/texmf-dist/doc/latex/prerex/introFonts.png new file mode 100644 index 00000000000..9ab370829aa Binary files /dev/null and b/Master/texmf-dist/doc/latex/prerex/introFonts.png differ diff --git a/Master/texmf-dist/doc/latex/prerex/introchart1.tex b/Master/texmf-dist/doc/latex/prerex/introchart1.tex new file mode 100644 index 00000000000..b362e9f319a --- /dev/null +++ b/Master/texmf-dist/doc/latex/prerex/introchart1.tex @@ -0,0 +1,60 @@ +\begin{figure} +\small +\setcounter{diagheight}{50} +\textwidth6.25in +\begin{chart}\sf +\text 20,52:{\textsf{\textsc{\Large Computer Science}}} +\reqfullcourse 50,45:{1083}{Comput.\,Sci.\\Concepts}{TTh 10:00} +\reqhalfcourse 25,40:{1303}{Discrete\\Structures}{MWF 9:30} +\reqhalfcourse 30,30:{2813}{Computer\\Organiz.\,I}{MWF 8:30} + \prereq 25,40,30,30: + \prereq 50,45,30,30: +\reqhalfcourse 45,30:{2023}{Procedural\\Prog.\,Devel.}{MWF 2:30} + \prereq 50,45,45,30: +\reqhalfcourse 65,30:{2513}{Informat.\\Systems}{TTh 1:00} + \coreq 50,45,65,30: +\mini 10,26:{1083} +\reqhalfcourse 10,20:{2333}{Computab.\,\&\\Formal\,Lang.}{TTh 11:30} + \prereq 10,26,10,20: + \prereq 25,40,10,20: +\reqhalfcourse 45,20:{2013}{Software\\Engineer.\,I}{MWF 11:30} + \prereq 45,30,45,20: +\halfcourse 55,20:{2685}{\texttt{C++}\\Program.}{no} + \prereq 45,30,55,20: +\mini 21,16:{2013} +\reqhalfcourse 15,10:{3323}{Data\\Structures}{MWF 10:30} + \prereq 21,16,15,10: + \prereq 25,40,15,10: +\reqhalfcourse 25,10:{3813}{Comput.\\Organiz.\,II}{TTh 8:30} + \prereq 30,30,25,10: +\reqhalfcourse 35,10:{3413}{Operating\\Systems\,I}{MWF 9:30} + \recomm 45,20,35,10: + \prereq 30,30,35,10: +\halfcourse 45,10:{3013}{Software\\Engineer.\,II}{MWF 11:30} + \prereq 45,20,45,10: +\halfcourse 58,10:{3513}{Database\\Mngt.\,Sys.\,I}{MWF 8:30 pm} + \prereq 45,20,58,10: + \prereq 65,30,58,10: +\reqhalfcourse 70,10:{3503}{Sys.\,Anal.\\\&\,Design}{TTh 10:00} + \prereq 65,30,70,10: +\end{chart} +\begin{center} +\begin{minipage}{6.0in} +\begin{itemize}\sf +\item +A solid arrow \solidarrow\ indicates a required prerequisite, +a dotted arrow \dottedarrow\ +indicates a corequisite (to be taken before or concurrently), and a +dashed arrow \dashedarrow\ indicates a recommended prerequisite. +Core courses are in \boldbox\ boxes; +other courses (i.e.,~options or prerequisites) +are in \lightbox\ boxes. +\item Timetabling abbreviations: M, T, W, Th, F=Mon, Tue, Wed, Thur, Fri, resp.; eve=7:00--9:50 pm; no=not offered. +\end{itemize} +\end{minipage} +\end{center} +\renewcommand{\bfdefault}{b} +\renewcommand{\mddefault}{m} +\caption{A Prerex-Formatted Prerequisite Chart} +\label{chart} +\end{figure} diff --git a/Master/texmf-dist/doc/latex/prerex/introchart2.tex b/Master/texmf-dist/doc/latex/prerex/introchart2.tex new file mode 100644 index 00000000000..0f0d9b069eb --- /dev/null +++ b/Master/texmf-dist/doc/latex/prerex/introchart2.tex @@ -0,0 +1,47 @@ +\begin{figure} +\small +\setcounter{diagheight}{50} +\textwidth6.25in +\begin{chart}\sf +\grid +\text 20,52:{\textsf{\textsc{\Large Computer Science}}} +\reqfullcourse 50,45:{1083}{Comput.\,Sci.\\Concepts}{TTh 10:00} +\reqhalfcourse 25,40:{1303}{Discrete\\Structures}{MWF 9:30} +\reqhalfcourse 30,30:{2813}{Computer\\Organiz.\,I}{MWF 8:30} + \prereq 25,40,30,30: + \prereq 50,45,30,30: +\reqhalfcourse 45,30:{2023}{Procedural\\Prog.\,Devel.}{MWF 2:30} + \prereq 50,45,45,30: +\reqhalfcourse 65,30:{2513}{Informat.\\Systems}{TTh 1:00} + \coreq 50,45,65,30: +\mini 10,26:{1083} +\reqhalfcourse 10,20:{2333}{Computab.\,\&\\Formal\,Lang.}{TTh 11:30} + \prereq 10,26,10,20: + \prereq 25,40,10,20: +\reqhalfcourse 45,20:{2013}{Software\\Engineer.\,I}{MWF 11:30} + \prereq 45,30,45,20: +\halfcourse 55,20:{2685}{\texttt{C++}\\Program.}{no} + \prereq 45,30,55,20: +\mini 21,16:{2013} +\reqhalfcourse 15,10:{3323}{Data\\Structures}{MWF 10:30} + \prereq 21,16,15,10: + \prereq 25,40,15,10: +\reqhalfcourse 25,10:{3813}{Comput.\\Organiz.\,II}{TTh 8:30} + \prereq 30,30,25,10: +\reqhalfcourse 35,10:{3413}{Operating\\Systems\,I}{MWF 9:30} + \recomm 45,20,35,10: + \prereq 30,30,35,10: +\halfcourse 45,10:{3013}{Software\\Engineer.\,II}{MWF 11:30} + \prereq 45,20,45,10: +\halfcourse 58,10:{3513}{Database\\Mngt.\,Sys.\,I}{MWF 8:30 pm} + \prereq 45,20,58,10: + \prereq 65,30,58,10: +\reqhalfcourse 70,10:{3503}{Sys.\,Anal.\\\&\,Design}{TTh 10:00} + \prereq 65,30,70,10: +\end{chart} +\vspace*{6ex} +\renewcommand{\bfdefault}{b} +\renewcommand{\mddefault}{m} +\caption{A Prerequisite Chart with a Coordinate Grid} +\label{grid} +\end{figure} diff --git a/Master/texmf-dist/doc/latex/prerex/prerex-6.5.2.tar.gz b/Master/texmf-dist/doc/latex/prerex/prerex-6.5.2.tar.gz index d2c4308b4e4..79234cebb7f 100644 Binary files a/Master/texmf-dist/doc/latex/prerex/prerex-6.5.2.tar.gz and b/Master/texmf-dist/doc/latex/prerex/prerex-6.5.2.tar.gz differ diff --git a/Master/texmf-dist/doc/latex/prerex/prerex.pdf b/Master/texmf-dist/doc/latex/prerex/prerex.pdf new file mode 100644 index 00000000000..8805aff98c7 Binary files /dev/null and b/Master/texmf-dist/doc/latex/prerex/prerex.pdf differ diff --git a/Master/texmf-dist/doc/latex/prerex/prerex.sty.7 b/Master/texmf-dist/doc/latex/prerex/prerex.sty.7 new file mode 100644 index 00000000000..21da7194fb5 --- /dev/null +++ b/Master/texmf-dist/doc/latex/prerex/prerex.sty.7 @@ -0,0 +1,467 @@ +.TH PREREX.STY 7 2012-03-21 "prerex.sty-6.3" "" +.SH NAME +prerex.sty \- a LaTeX document style for prerequisite charts +.SH DESCRIPTION +.B prerex.sty +defines macros that +.B [pdf]latex +can use +to draw charts consisting of labelled course boxes linked by arrows +that represent pre- and co-requisite requirements. +In addition to the usual +.B [pdf]latex +output, auxiliary files will be generated containing image-map data for the +hyperlinked nodes in the diagram and a shell script to crop a PNG image generated from +a Postscript or PDF chart. +.P +If the source file satisfies the constraints +of the +.BR prerex (5) +format, a chart description may be edited using the +.BR prerex (1) +interactive editor (as well as any conventional text editor). +.SH TERMINOLOGY +A prerequisite chart consists of several +.I course boxes, +linked by +.I arrows. +Courses are either +.I half +or +.I full, +and may be +.I required +or +.I optional +(or neither). +Each course box can contain a course +.I code +(upper left corner), +a course +.I title +(lower half), +and +.I timetable +information +(upper right corner). +An arrow can be either a +.I prerequisite +(solid), +a +.I corequisite +(dotted), +or +.I recommended +(dashed). +When a conventional arrow would be inappropriate, it is possible to use +a +.I mini +course "box" (consisting of just a course code) just above a target box. +An arbitrary line of text may be placed anywhere on the chart. +.SH COORDINATE SYSTEM +A conventional two-dimensional +Cartesian coordinate system is used to specify the locations of +diagram elements. +The +origin (where +.I x = 0 +and +.IR "y = 0" ) +is at the lower-left corner of the diagram. +The diagram height is configurable; the width is determined by +the values of +.I \etextwidth +and +an adjustable +.I \eunit +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 +.I box, +.I mini, +or +.I text-line +are those of its centre point. +An +.I arrow +is described by the +coordinates of the centre points of its source and target boxes/minis/text-lines. +.SH USAGE +The command +.B \eusepackage{prerex} +should appear in the document preamble. +This will define a LaTeX environment +.IP +.BI \ebegin{chart} " ... " \eend{chart} +.LP +within which the following commands may be used +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. +.SH COURSE BOXES +The commands producing course boxes have the following forms: +.IP +.BI \ehalfcourse " x,y" :{ code }{ title }{ timetable } +.IP +.BI \efullcourse " x,y" :{ code }{ title }{ timetable } +.IP +.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 +are the coordinates of the +.I centerpoint +of the box, relative to the origin +of the coordinate system at the lower-left corner of the diagram. +The +.I code, +.I title, +and +.I timetable +arguments are arbitrary (well-bracketed) text, possibly with LaTeX markup. + +The following are similar but take an additional argument to specify the (non-default) +background color of the course box: +.IP +.BI \ehalfcoursec " x,y" :{ code }{ title }{ timetable }{ color } +.IP +.BI \efullcoursec " x,y" :{ code }{ title }{ timetable }{ color } +.IP +.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 +.IP +.BI \emini " x,y" :{ code } +.LP +The following instruction places a line of text centered at the coordinates: +.IP +.BI \etext " x,y" :{ text-line } +.LP +There are several differences between minis and text-lines. +The maximum length allowed for a course-code may be less than that +for a text-line. A sans-serif font and a reduced font size is used for a course-code. A course-code +may be hyperlinked but a text-line is not (except when the coordinate grid is on). +A +.B \eparbox +command +may be used in the +.I text-line +argument if more than one line is desired. +.SH ARROWS +Arrows between course boxes (or from a mini or text-line to a course box) are produced +by commands of the form +.IP +.BI \eprereq " x0,y0,x1,y1" : +.IP +.BI \ecoreq " x0,y0,x1,y1" : +.IP +.BI \erecomm " x0,y0,x1,y1" : +.LP +These produce, respectively, solid, dotted, and dashed arrows from +the course box (or mini or text-line) centered at coordinates +.I x0,y0 +to the course box centered at coordinates +.I x1,y1. +.PP +Arrows by default have a +non-zero curvature (unless they are very short). It is possible to override the default curvature +for a particular arrow by using +the instructions +.IP +.BI \eprereqc " x0,y0,x1,y1;c" : +.IP +.BI \ecoreqc " x0,y0,x1,y1;c" : +.IP +.BI \erecommc " x0,y0,x1,y1;c" : +.LP +where +.I c +is an integer in the range 0-100 specifying the desired curvature; for example, +.IR c= 0 +will produce a +.I straight +arrow. To change the default curvature, the user program may redefine the +.B \eDefaultCurvature +command. +.SH WEB LINKS +Course boxes (including minis) may be hyperlinked. +The default URL for course boxes is +.IR course-code .html +where +.I course-code +is +the +.I code +argument +of the course box. The URL scheme may be changed by the user +by re-defining the +.B \eCourseURL +command. +.SH COORDINATE GRID +The following command produces a coordinate grid, which is +useful for editing a diagram: +.IP +.B \egrid +.LP +The grid lines will be covered by course boxes and arrows. +The +.B \egrid +command +also redefines the +.B \eCourseURL +command +so that, +if the mouse cursor is placed over a box or mini in (some) PDF viewers, +the +.I coordinates +of the box, mini, or text-line will be displayed +as follows: +in the status bar in +.BR xpdf +and +.BR gpdf , +and in a "tooltip" in recent versions of +.BR kpdf " (now re-named" +.BR okular ), +.BR evince , +and +the Adobe Reader. +Similarly, the coordinates of the source and target boxes of arrows +are displayed if the mouse hovers over the mid-point of an arrow, +Such coordinate displays make it easier to edit chart descriptions. +When the grid is on, the mid-point of every arrow is highlighted by a +"bullet". +.PP +The +.B prerex +package at +.B http://www.ctan.org/tex-archive/graphics/prerex/ +has a patch for +.BR kpdf / okular (1) +to make it display URIs in tooltips and also capture coordinates of course boxes, arrows and +background points in the X selection clipboard (for pasting into a +command being composed at the +.BR prerex (1) +prompt). There is also a GUI frontend +.BR vprerex (1) +to the +.BR prerex (1) +editor which incorporates a minimalistic prerex-enabled PDF viewer. +.SH STAND-ALONE COMMANDS +The following commands may be used outside a +.B chart +environment, such as in the explanatory notes for a chart: +.IP +.B \esolidarrow +.IP +.B \edottedarrow +.IP +.B \edashedarrow +.IP +.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 +user: +.IP +.BI \enewcommand{\eDefaultCurvature}{ 20 } +.LP +where the argument should be in the range 0-100; 0 means no curvature. +.IP +.BI \enewcommand{\eCourseURL}[3]{ #3.html } +.LP +where the arguments supplied at the call are the +.I x +and +.I y +coordinates of the box or mini and the course code. +.IP +.BI \enewcommand{\ebackground}{ LightYellow } +.LP +where +.I LightYellow +is defined by +.IP +.BI \edefinecolor{LightYellow}{ rgb }{ "1.0, 1.0, 0.878431" } +.IP +.BI \esetlength{\eunit}{ 5.7816pt } +.LP +which defines the absolute size of a coordinate unit; this yields 10 pixels per +coordinate unit if the chart is converted to an image at 125 dpi. +.IP +.BI \enewcommand{\edpi}{ 125 } +.IP +.BI \enewcommand{\ePixelsPerUnit}{ 10 } +.LP +These must be re-defined together if the image-map data are to be correct. +.IP +.BI \esetcounter{diagheight}{ 75 } +.LP +which is the +.IR y -coordinate +of the top of the diagram (reduced to 65 in landscape mode); +the nominal diagram width is +.IR \etextwidth " / " \eunit " + " 10. +.P +The following define the thicknesses of the three kinds of arrows, +and the thickness of bold boxes: +.IP +.BI \enewcommand{\esolidwidth}{ 0.5pt } +.IP +.BI \enewcommand{\edottedwidth}{ 0.8pt } +.IP +.BI \enewcommand{\edashedwidth}{ 0.5pt } +.IP +.BI \enewcommand{\eboldwidth}{ 1.0pt } +.LP +.P +The following command is used to change to a smaller size for course codes, +timetable information, and mini-course codes: +.IP +.BI \enewcommand{\esmallersize}{\erelsize{-3}} +.LP +.P +The following command defines the baseline adjustment for the stand-alone arrows and boxes; +this parameter is font-dependent. +.IP +.BI \enewcommand{\ebaselineAdj}{ -0.5ex } +.LP +.SH DEPEDENCIES +This implementation of +.B prerex.sty +uses +.B pgf +(version 1.18 or later) +with add-on package +.B tikz. +The following additional packages are used: +.B relsize, +.B calc, +.B ifthen, +.B multido, +.B textcomp, +.B zref-savepos +and +.B hyperref. +.I Either +.BR pdflatex (1) +.I or +.BR latex (1) +followed by +.BR dvips (1) +(and possibly +.BR ps2pdf (1)) +may be used. +.P +To convert a chart to a compact but reasonably high-quality image, it is suggested to use the +.BR convert (1) +tool of +.BR ImageMagick (1) +as follows: +.IP +.B convert +.I -density 125 chart.ps chart.png +.LP +or +.IP +.B convert +.I -density 125 chart.pdf chart.png +.LP +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. +By default, the shell script generated by +.B prerex.sty +crops the image at the southeast corner. +It is possible to use a PNG compression application such as +.BR optipng (1) +to reduce the file-size of the cropped image (without loss of quality). + +.SH IMPLEMENTATION DETAILS +.P +To improve the appearance, boxes are drawn with slightly rounded corners. The half-course +boxes are assigned a minimum height to give a more uniform appearance to horizontal +rows of such boxes. +The mini and text boxes have white frames and their +fill colour is white, which is assumed to be the background colour of the chart. +A text box is not normally hyperlinked; however, if the coordinate grid is +on, it is hyperlinked and its chart coordinates are encoded in the URI. +.P +Arrows with a small height and arrows whose +source and target points have equal x or y coordinates are always draw straight +(using a specialized and simpler macro) unless an explicit +non-zero curvature argument is provided. +If the coordinate grid is on, a hyperlink with the source and target coordinates is placed +at the mid-point of the arrow. +A wider background white edge is drawn below an arrow to +improve the appearance +of crossing arrows; the background also +ensures visibility of the +arrow when the coordinate grid is on. +A thin white arrow (with a visible +arrowhead) is drawn beneath the visible arrow to obtain a thin arrowhead. +.P +When the coordinate grid is drawn, the +.B CourseURL +command +is re-defined to pass node coordinates in URIs. Also, +two "anchor" hyperlinks are inserted at the southwest and northeast corners +of the diagram to allow prerex-enabled +PDF viewers to compute chart coordinates. +.P +To support HTML versions of charts, +.B prerex.sty +generates a script to crop a chart image at the southeast corner, allowing +descriptive notes below the chart to be treated as ordinary text. Also, +it generates image-map data for use with an HTML image map. To +obtain absolute page coordinates, the +.B zsavepos, +.B zposx +and +.B zposy +commands are used; the page coordinates are converted into pixel coordinates +for cropping and image-map use. +.SH LICENSE +.B prerex.sty +and this document may be distributed and/or modified under the +conditions of the LaTeX Project Public License. +.SH AUTHOR +R. D. Tennent (rdt@cs.queensu.ca) +.SH SEE ALSO +.BR ImageMagick (1), +.BR convert (1). +.BR dvips (1), +.BR evince (1), +.BR gpdf (1), +.BR kpdf (1), +.BR latex (1), +.BR okular (1), +.BR optipng (1), +.BR pdflatex (1), +.BR prerex (1), +.BR prerex (5), +.BR ps2pdf (1), +.BR tikz (1), +.BR tgf (1), +.BR vprerex (1), +and +.BR xpdf (1). diff --git a/Master/texmf-dist/doc/latex/prerex/prerex.tex b/Master/texmf-dist/doc/latex/prerex/prerex.tex new file mode 100644 index 00000000000..454364665da --- /dev/null +++ b/Master/texmf-dist/doc/latex/prerex/prerex.tex @@ -0,0 +1,547 @@ +\documentclass[11pt]{article} +\usepackage[osf]{mathpazo} +\usepackage[medium,semibold,scale=0.95]{cabin} +\usepackage{fullpage} +\usepackage{prerex} +%\def\LaTeX{\mbox{LaTeX}} +\begin{document} + +\title{\textsf{prerex.sty}: Prerequisite Charts in \LaTeX\\{\large Version 6.3}} +\author{R. D. Tennent\\\texttt{rdt@cs.queensu.ca}} +\date{\today} +\maketitle +\thispagestyle{empty} + +\section{Description} +\texttt{prerex.sty} +defines macros that +[pdf]\LaTeX\ +can use +to draw charts consisting of labelled course boxes linked by arrows +that represent pre- and co-requisite requirements; see +the example chart in Figure~\ref{chart} on page~\pageref{chart}. +In addition to the usual +output, auxiliary files will be generated containing image-map data for the +hyperlinked nodes in the diagram and a shell script for cropping a PNG image +obtained from the output; however, the page coordinates may not be accurate unless pdf\LaTeX\ +is used as the +processing engine. + +If the source file satisfies the constraints +of the +\textsf{prerex(5)} +format, a chart description may be edited using the +\textsf{prerex(1)} +interactive editor (as well as any conventional text editor). + +\begin{figure}\small +\setcounter{diagheight}{40} +\begin{chart}\sf +\text 15,40:{\textsf{\textbf{\Large Computer Science}}} +\reqfullcourse 50,35:{1083}{Comput.\,Sci.\\Concepts}{TTh 10:00} +\reqhalfcourse 25,30:{1303}{Discrete\\Structures}{MWF 9:30} +\reqhalfcourse 30,20:{2813}{Computer\\Organiz.\,I}{MWF 8:30} + \prereq 50,35,30,20: + \prereq 25,30,30,20: +\reqhalfcourse 45,20:{2023}{Procedural\\Prog.\,Devel.}{MWF 2:30} + \prereq 50,35,45,20: +\reqhalfcourse 65,20:{2513}{Informat.\\Systems}{TTh 1:00} + \coreq 50,35,65,20: +\mini 10,16:{1083} +\reqhalfcourse 10,10:{2333}{Computab.\,\&\\Formal\,Lang.}{TTh 11:30} + \prereq 25,30,10,10: + \prereq 10,16,10,10: +\reqhalfcourse 45,10:{2013}{Software\\Engineer.\,I}{MWF 11:30} + \prereq 45,20,45,10: +\halfcourse 55,10:{2685}{\texttt{C++}\\Program.}{no} + \prereq 45,20,55,10: +\mini 21,6:{2013} +\reqhalfcourse 15,0:{3323}{Data\\Structures}{MWF 10:30} + \prereq 25,30,15,0: + \prereq 21,6,15,0: +\reqhalfcourse 25,0:{3813}{Comput.\\Organiz.\,II}{TTh 8:30} + \prereq 30,20,25,0: +\reqhalfcourse 35,0:{3413}{Operating\\Systems\,I}{MWF 9:30} + \prereq 30,20,35,0: + \recomm 45,10,35,0: +\halfcourse 45,0:{3013}{Software\\Engineer.\,II}{MWF 11:30} + \prereq 45,10,45,0: +\halfcourse 58,0:{3513}{Database\\Mngt.\,Sys.\,I}{MWF 8:30 pm} + \prereq 65,20,58,0: + \prereq 45,10,58,0: +\reqhalfcourse 70,0:{3503}{Sys.\,Anal.\\\&\,Design}{TTh 10:00} + \prereq 65,20,70,0: +\end{chart} + +\paragraph{Notes} +\begin{itemize} +\item +A solid arrow \solidarrow\ indicates a required prerequisite, +a dotted arrow \dottedarrow\ +indicates a corequisite (to be taken before or concurrently), and a +dashed arrow \dashedarrow\ indicates a recommended prerequisite. +Core courses are in \boldbox\ boxes; +other courses (i.e.,~options or prerequisites) +are in \lightbox\ boxes. +\item Timetable abbreviations: M, T, W, Th, F$=$Mon, Tue, Wed, Thur, Fri, resp.; no$=$not offered. +\item \dots +\end{itemize} +\caption{A Prerequisite Chart} +\label{chart} +\end{figure} +\section{Terminology} +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} or \emph{optional} (or neither). +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{corequisite} (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. +Lines of text may be placed anywhere on the chart. +\section{Coordinate System} +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 +\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} +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/texts. + + + +\section{Usage} +The command +\verb|\usepackage{prerex}| +should appear in the document preamble. +This will define a \LaTeX\ environment +\begin{list}{}{} +\item \verb|\begin{chart}|\quad$\cdots$\quad \verb|\end{chart}| +\end{list} +within which the commands described in the following sub-sections may be used +to produce course boxes, minis, texts, and arrows. +The order of commands is not significant except +that the commands for the source and target boxes of an arrow should +precede +the command for the arrow, and the \verb|\grid| command, if present, should precede +other chart commands. + +\subsection{Course Boxes} +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$ +are the coordinates of the +centerpoint +of the box, relative to the origin +of the coordinate system at the lower-left corner of the diagram. +The +\emph{code}, +\emph{title}, +and +\emph{timetable} +arguments are arbitrary (well-bracketed) text, possibly with \LaTeX\ markup. + +The following are similar but take an additional argument to specify +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 Texts} +A mini course ``box'' is produced by a command of the form +\begin{list}{}{} +\item \verb|\mini| $x,y$ \verb|:{| \emph{code} \verb|}| +\end{list} +A paragraph of text is produced by a command of the form +\begin{list}{}{} +\item \verb|\text| $x,y$ \verb|:{| \emph{text} \verb|}| +\end{list} +There are several differences between minis and texts. +The maximum length allowed for a course-code may be less than that +for texts. A sans-serif font and a reduced font size is +used for a course-code. A course-code +may be hyperlinked but a text is not (except when the coordinate grid is on). + + +\subsection{Arrows} +Arrows between course boxes (or minis or texts) are produced +by commands of the form +\begin{list}{}{} +\item \verb|\prereq| $ x_0,y_0,x_1,y_1$\verb|:| +\item \verb|\coreq| $ x_0,y_0,x_1,y_1$\verb|:| +\item \verb|\recomm| $ x_0,y_0,x_1,y_1$\verb|:| +\end{list} +These produce, respectively, solid, dotted, and dashed arrows from +the course box (or mini or text) centered at coordinates +$x_0,y_0$ +to the entity centered at coordinates +$x_1,y_1$. + +Arrows by default have a +non-zero curvature (unless they are very short). It is possible to override the default curvature +for a particular arrow by using +the instructions +\begin{list}{}{} +\item \verb|\prereqc| $ x_0,y_0,x_1,y_1;c$\verb|:| +\item \verb|\coreqc| $ x_0,y_0,x_1,y_1;c$\verb|:| +\item \verb|\recommc| $ x_0,y_0,x_1,y_1;c$\verb|:| +\end{list} +where +$c$ +is an integer in the range $0$--$100$ specifying the desired curvature; for example, +$c= 0$ +will produce a +straight +arrow. To change the default curvature for all arrows, the user program may redefine the +\verb|\DefaultCurvature| +command. +\subsection{Web Links} +\label{WebLinks} +Course boxes and minis may be hyperlinked. +The default URL for course boxes is +\emph{course-code}\verb|.html| +where +\emph{course-code} +is +the +\emph{code} +argument +of the course box. The URL scheme may be changed by the user +by re-defining the +\verb|\CourseURL| +command; see Section~\ref{Configuration}. +\subsection{Coordinate Grid} +The following command produces a coordinate grid with labelled axes, which is +useful while editing a diagram: +\begin{list}{}{} +\item \verb|\grid| +\end{list} +This is normally placed before all the other chart commands so that +grid lines are in the background, covered by course boxes, minis, texts, and arrows, +as in Figure~\ref{grid} on page~\pageref{grid}. + +The \verb|\grid| command +also redefines the \verb|CourseURL| command +so that, in suitable PDF viewers, +if the mouse cursor is placed over a box, mini, or midpoint of an arrow, +the \emph{coordinates} of the box/mini/text(or the coordinates of the source \emph{and} target +of the arrow) will be displayed +as follows: in the +status bar +in \texttt{xpdf} and \texttt{gpdf}, and in a +``tooltip'' in recent versions of \texttt{kpdf}/\texttt{okular}, \texttt{evince}, and the Acrobat Reader. +This coordinate display make it easier to edit chart descriptions. +When the grid is on, the mid-point of every arrow is highlighted by +a ``bullet''. + +The +\texttt{prerex} +package at +\url{http://www.ctan.org/tex-archive/graphics/prerex/} +contains source code for a graphical frontend +\texttt{vprerex} to the \texttt{prerex} +editor. It incorporates a minimalistic prerex-enabled PDF viewer +which allows coordinates of course boxes, +arrows, and +background points to be captured in the X selection clipboard (for pasting into a +command being composed at the +\texttt{prerex} +prompt). + + +\begin{figure}\small +\setcounter{diagheight}{40} +\begin{chart}\sf +\grid +\text 15,40:{\textsf{\textbf{\Large Computer Science}}} +\reqfullcourse 50,35:{1083}{Comput.\,Sci.\\Concepts}{TTh 10:00} +\reqhalfcourse 25,30:{1303}{Discrete\\Structures}{MWF 9:30} +\reqhalfcourse 30,20:{2813}{Computer\\Organiz.\,I}{MWF 8:30} + \prereq 25,30,30,20: + \prereq 50,35,30,20: +\reqhalfcourse 45,20:{2023}{Procedural\\Prog.\,Devel.}{MWF 2:30} + \prereq 50,35,45,20: +\reqhalfcourse 65,20:{2513}{Informat.\\Systems}{TTh 1:00} + \coreq 50,35,65,20: +\mini 10,16:{1083} +\reqhalfcourse 10,10:{2333}{Computab.\,\&\\Formal\,Lang.}{TTh 11:30} + \prereq 10,16,10,10: + \prereq 25,30,10,10: +\reqhalfcourse 45,10:{2013}{Software\\Engineer.\,I}{MWF 11:30} + \prereq 45,20,45,10: +\halfcourse 55,10:{2685}{\texttt{C++}\\Program.}{no} + \prereq 45,20,55,10: +\mini 21,6:{2013} +\reqhalfcourse 15,0:{3323}{Data\\Structures}{MWF 10:30} + \prereq 21,6,15,0: + \prereq 25,30,15,0: +\reqhalfcourse 25,0:{3813}{Comput.\\Organiz.\,II}{TTh 8:30} + \prereq 30,20,25,0: +\reqhalfcourse 35,0:{3413}{Operating\\Systems\,I}{MWF 9:30} + \recomm 45,10,35,0: + \prereq 30,20,35,0: +\halfcourse 45,0:{3013}{Software\\Engineer.\,II}{MWF 11:30} + \prereq 45,10,45,0: +\halfcourse 58,0:{3513}{Database\\Mngt.\,Sys.\,I}{MWF 8:30 pm} + \prereq 45,10,58,0: + \prereq 65,20,58,0: +\reqhalfcourse 70,0:{3503}{Sys.\,Anal.\\\&\,Design}{TTh 10:00} + \prereq 65,20,70,0: +\end{chart} +\vspace*{2ex} +\caption{A Prerequisite Chart with a Coordinate Grid} +\label{grid} +\end{figure} +\subsection{Stand-Alone Commands} +The following commands may be used outside a +\verb|chart| +environment, such as in the explanatory notes for a chart: +\begin{center} +\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} +\end{center} + +\section{Dependencies} +This implementation of +\verb|prerex.sty| +uses +\verb|pgf| +(version~1.18 or later) +with add-on package +\verb|tikz|. +The following additional packages are used: +\verb|multido|, +\verb|relsize|, +\verb|calc|, +\verb|ifthen|, +\verb|textcomp|, +\verb|zref-savepos|, +and +\verb|hyperref|. +\emph{Either} \verb\pdflatex\ +\emph{or} +\verb\latex\ (followed by \verb\dvips\ and, possibly, \verb\ps2pdf\) +may be used; however, the page coordinates in the generated shell script and +image-map may not be accurate unless \verb\pdflatex\ +is used. + +\section{Conversion to Portable Network Graphic (PNG) Format} + +To convert a chart (in Postscript or PDF format) to a reasonably high-quality image, it is suggested to use the +\verb|convert| tool of the +\verb|ImageMagick| package as follows: +\begin{verbatim} + convert -density 125 chart.ps chart.png +\end{verbatim} +or +\begin{verbatim} + convert -density 125 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. +By default, the shell script generated by \texttt{prerex.sty} crops the image at the southeast corner. +It is possible to use a PNG compression application such as +\texttt{optipng} to reduce the file-size of the cropped image (without loss of quality). + +An auxiliary file +containing image-map data for the hyperlinked nodes in the chart is also generated; +consult a reference on the HTML language for an explanation of (client-side) image maps. + +\section{Installation} + +\begin{enumerate} + \item install the most recent version of +\verb\pgf\ from \url{http://sourceforge.net/projects/pgf/}. + \item copy \verb|prerex.sty| to \emph{your-texmf-tree}\verb|/tex/latex/misc| + \item copy \verb|doc/prerex.{tex,pdf}| to \emph{your-texmf-tree}\verb|/doc/latex/misc| + \item if necessary, refresh the \TeX\ database (e.g., \verb|texhash|) + \item copy \verb|man/prerex.sty.7| to sub-directory \verb|man7| of a \verb|man| directory on your + \verb|MANPATH| + \item test by doing + +\begin{verbatim} +$ man 7 prerex.sty +$ make chart.pdf +\end{verbatim} + + +\end{enumerate} + +\section{Configuration} +\label{Configuration} +The following are defined by the style file but may be re-defined by the +user: +\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 specifies the default background color of course boxes. +\begin{list}{}{} +\item \verb|\setlength{\unit}{5.7816pt}| +\end{list} +which defines the absolute size of a coordinate unit; +this yields 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 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.5pt}| +\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} + +\section{Implementation Details} + +\subsection{Boxes} + +To improve the appearance, boxes are drawn with slightly rounded corners. The half-course +boxes are assigned a minimum height to give a more uniform appearance to horizontal +rows of such boxes. +The mini and text boxes have white frames and their +fill colour is white, which is assumed to be the background colour of the chart. +A text box is not normally hyperlinked; however, if the coordinate grid is +on, it is hyperlinked and its chart coordinates are encoded in the URI. + +\subsection{Arrows} +Arrows with a small height and arrows whose +source and target points have equal x or y coordinates are always draw straight +(using a specialized and simpler macro) unless an explicit +non-zero curvature argument is provided. + +If the coordinate grid is on, a hyperlink with the source and target coordinates is placed +at the mid-point of the arrow. + +A wider background white edge is drawn below an arrow to +improve the appearance +of crossing arrows; the background also +ensures visibility of the +arrow when the coordinate grid is on. +A thin white arrow (with a visible +arrowhead) is drawn beneath the visible arrow to obtain a thin arrowhead. + +\subsection{Coordinate Grid and Associated Changes} +When the coordinate grid is drawn, the \texttt{CourseURL} command +is re-defined to pass node coordinates in URIs. Also, +two ``anchor'' hyperlinks are inserted at the southwest and northeast corners +of the diagram to allow prerex-enabled +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 +descriptive notes below the chart to be treated as ordinary text. Also, +it generates image-map data for use with an HTML image map. To +obtain absolute page coordinates, the \texttt{zsavepos}, \texttt{zposx} +and \texttt{zposy} commands are used; the page coordinates are converted into pixel coordinates +for cropping and image-map use. + +\section{License} +\verb|prerex.sty|, \verb|prerex.sty.7|, \verb|README.prerex| and this document may be distributed and/or modified under the +conditions of the \LaTeX\ Project Public License. +\end{document} diff --git a/Master/texmf-dist/tex/latex/prerex/prerex.sty b/Master/texmf-dist/tex/latex/prerex/prerex.sty index 77d5c3cbae7..3afe6755c5a 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-13 R. D. Tennent, rdt@cs.queensu.ca +%% Copyright (C) 2006-14 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 @@ -63,10 +63,18 @@ % The nominal diagram width is 10 + (\textwidth divided by \unit). % \NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesPackage{prerex}[2013/07/19 v6.3.5 LaTeX style for prerequisite charts, pgf version] +\ProvidesPackage{prerex}[2014/02/27 v6.4.0 LaTeX style for prerequisite charts, pgf version] % Changelog: % +% Version 6.4.0 +% +% Revise arrows for tikz version 3.0.0 +% +% Version 6.3.6 +% +% Allow line breaks in \text boxes. +% % Version 6.3.5 % % Fix font usage to work with mweights.sty. @@ -230,8 +238,8 @@ \RequirePackage{relsize} \RequirePackage{calc} -\RequirePackage{pgf}[2007/06/12] -\RequirePackage{tikz}\usetikzlibrary{arrows} +\RequirePackage{pgf}[2013/12/18] +\RequirePackage{tikz}\usetikzlibrary{arrows.meta} \RequirePackage{ifthen} \RequirePackage{textcomp} \RequirePackage{zref-savepos} @@ -306,17 +314,17 @@ \pgfsetlayers{} \def\solidarrow{% \tikz[x=\unit,y=\unit,baseline=\baselineAdj] -\draw[-latex',line width =\solidwidth] (0,0) -- (4,0); +\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); +\draw[-Latex,loosely dotted,line width=\dottedwidth] (0,0) -- (4,0); } \def\dashedarrow{% \tikz[x=\unit,y=\unit,baseline=\baselineAdj] -\draw[dashed,line width=\dashedwidth,-latex'] (0,0) -- (4,0); +\draw[-Latex,dashed,line width=\dashedwidth] (0,0) -- (4,0); } \def\lightbox{% @@ -572,9 +580,9 @@ \begin{pgfonlayer}{courses}% \ifgridon \node[fill=white,draw=white,inner ysep=1.8pt](x#1y#2) at (#1,#2)% -{\href{coord: #1,#2}{\mbox{\sffamily\mdseries#3}}};% +{\href{coord: #1,#2}{\sffamily\mdseries\renewcommand{\arraystretch}{0.5}\begin{tabular}[b]{@{}c@{}}#3\\[-0.4ex]\end{tabular}}};% \else - \node[fill=none,draw=none,inner ysep=1.8pt](x#1y#2) at (#1,#2){\mbox{\sffamily\mdseries#3}};% + \node[fill=none,draw=none,inner ysep=1.8pt](x#1y#2) at (#1,#2){\sffamily\mdseries\renewcommand{\arraystretch}{0.5}\begin{tabular}[b]{@{}c@{}}#3\\[-0.4ex]\end{tabular}};% \fi \end{pgfonlayer}% } @@ -647,7 +655,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) ; + \draw[-{Latex[fill=black]},draw=white,very thin](x#1y#2) -- (x#3y#4) ; \ifgridon \draw[line width=\solidwidth](x#1y#2) -- node[anchor=mid] {\href{coord: #1,#2,#3,#4}{\textbullet}} (x#3y#4); \else @@ -670,7 +678,7 @@ \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) ; + \draw[-{Latex[fill=black]},draw=white,very thin](x#1y#2) to[out=\the@myangle,in=\the@inangle,relative] (x#3y#4) ; \ifgridon \draw[line width=\solidwidth](x#1y#2) to[out=\the@myangle,in=\the@inangle,relative] node[anchor=mid] {\href{coord: #1,#2,#3,#4}{\textbullet}} (x#3y#4) ; \else @@ -682,7 +690,7 @@ \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); +\draw[-{Latex[fill=black]},draw=white,very thin] (x#1y#2) -- (x#3y#4); \ifgridon \draw[dashed,line width=\dashedwidth] (x#1y#2) -- node[anchor=mid] {\href{coord: #1,#2,#3,#4}{\textbullet}} (x#3y#4) ; \else @@ -704,7 +712,7 @@ \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) ; + \draw[-{Latex[fill=black]},draw=white,very thin](x#1y#2) to[out=\the@myangle,in=\the@inangle,relative] (x#3y#4) ; \ifgridon \draw[dashed,line width=\dashedwidth](x#1y#2) to[out=\the@myangle,in=\the@inangle,relative] node[anchor=mid] {\href{coord: #1,#2,#3,#4}{\textbullet}} (x#3y#4); \else @@ -716,7 +724,7 @@ \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); + \draw[-{Latex[fill=black]},draw=white,very thin] (x#1y#2) -- (x#3y#4); \ifgridon \draw[loosely dotted,line width=\dottedwidth] (x#1y#2) -- node[anchor=mid] {\href{coord: #1,#2,#3,#4}{\textbullet}} (x#3y#4) ; \else @@ -738,7 +746,7 @@ \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) ; + \draw[-{Latex[fill=black]},draw=white,very thin](x#1y#2) to[out=\the@myangle,in=\the@inangle,relative] (x#3y#4) ; \ifgridon \draw[loosely dotted,line width=\dottedwidth](x#1y#2) to[out=\the@myangle,in=\the@inangle,relative] node[anchor=mid] {\href{coord: #1,#2,#3,#4}{\textbullet}} (x#3y#4) ; \else -- cgit v1.2.3