1PREREX(5) PREREX(5)
2
3
4
6 prerex_format -- a format for prerequisite-chart descriptions
7
9 This manual describes the format of prerequisite-chart descriptions
10 that can be processed by [pdf]latex (normally using a suitable pre‐
11 rex.sty(7) style file) and edited using the prerex(1) interactive edi‐
12 tor (or by any conventional text editor).
13
15 A prerequisite chart consists of a number of course boxes, linked by
16 arrows. Courses are either half or full, and may be required or
17 optional (or neither). Each course box can contain a course code
18 (upper left corner), a course title (lower half), and timetable infor‐
19 mation (upper right corner). An arrow can be either a prerequisite
20 (solid), a corequisite (dotted), or recommended (dashed). When a con‐
21 ventional arrow would be inappropriate, a mini course just above a tar‐
22 get box can be used.
23
25 The file should contain exactly one instance of a LaTeX environment
26
27 \begin{chart} instruction ... \end{chart}
28
29 with at most one instruction per line. Note that a program such as
30 prerex(1) analyzes prerex-format files without using TeX; for example,
31 macro definitions will be ignored and macro calls will not be expanded.
32
33 Instructions may be preceded by white space. Lines that start with %
34 are treated as comments and ignored. The order of instructions is not
35 significant except that the instruction for the source and target box o
36 an arrow should precede the instruction for the arrow. The instruction
37 formats are described in the following sections.
38
40 The instructions producing course boxes have the following forms:
41
42 \halfcourse x,y:{code}{title}{timetable}
43
44 \fullcourse x,y:{code}{title}{timetable}
45
46 \reqhalfcourse x,y:{code}{title}{timetable}
47
48 \reqfullcourse x,y:{code}{title}{timetable}
49
50 \opthalfcourse x,y:{code}{title}{timetable}
51
52 \optfullcourse x,y:{code}{title}{timetable}
53
54 where x,y are the coordinates of the centerpoint of the box, relative
55 to the origin of the coordinate system at the lower-left corner of the
56 diagram. The code, title, and timetable arguments are arbitrary (well-
57 bracketed) text, possibly with LaTeX markup.
58
59 The following are similar but take an additional argument to specify
60 the (non-default) background color of the course box:
61
62 \halfcoursec x,y:{code}{title}{timetable}{color}
63
64 \fullcoursec x,y:{code}{title}{timetable}{color}
65
66 \reqhalfcoursec x,y:{code}{title}{timetable}{color}
67
68 \reqfullcoursec x,y:{code}{title}{timetable}{color}
69
70 \opthalfcoursec x,y:{code}{title}{timetable}{color}
71
72 \optfullcoursec x,y:{code}{title}{timetable}{color}
73
75 A mini course is produced by an instruction of the form
76
77 \mini x,y:{code}
78
79 A text line is inserted into the chart by an instruction of the form
80
81 \text x,y:{line-of-text}
82
83 The maximum allowed length of a course-code may be smaller that the
84 maximum allowed for a line of text.
85
87 Arrows between course boxes (or from a mini to a course box) are pro‐
88 duced by instructions of the form
89
90 \prereq x0,y0,x1,y1:
91
92 \coreq x0,y0,x1,y1:
93
94 \recomm x0,y0,x1,y1:
95
96 These produce, respectively, solid, dotted, and dashed arrows from the
97 course box (or mini) centered at coordinates x0,y0 to the course box
98 centered at coordinates x1,y1.
99
100 In some implementations, certain arrows by default have a non-zero cur‐
101 vature. It is possible to override the default curvature for a partic‐
102 ular arrow by using the instructions
103
104 \prereqc x0,y0,x1,y1;c:
105
106 \coreqc x0,y0,x1,y1;c:
107
108 \recommc x0,y0,x1,y1;c:
109
110 where c is an integer in the range -100:100 specifying the desired cur‐
111 vature; for example, c=0 will produce a straight arrow. To change the
112 default curvature, the user program may redefine the \DefaultCurvature
113 command.
114
116 The following instruction produces a coordinate grid, which is useful
117 for editing a diagram:
118
119 \grid
120
121 This is normally placed before all the other instructions so that grid
122 lines are in the background, covered by course boxes, minis, and
123 arrows.
124
126 Course boxes may be linked to web addresses. The URL for course boxes
127 may be set by the user by redefining the \CourseURL command; when
128 called for a course box, it is supplied with three arguments, the x and
129 y coordinates of the box, mini, or textline, and the code argument of
130 the course box. For example,
131
132 \renewcommand{\CourseURL}[3]{http://www.cs.queensu.ca/undergradu‐
133 ate/courses/#3.html}
134
135 is appropriate for courses at the School of Computing, Queen's Univer‐
136 sity. The first two arguments can be used to display the coordinates
137 of a box, mini, or textline in some PDF viewers while the mouse hovers
138 over it when the source file is being edited.
139
141 R. D. Tennent (rdt@cs.queensu.ca)
142
144 prerex(1), prerex.sty(7).
145
146
147
148prerex_format 2019-11-15 PREREX(5)