Provided by: prerex_6.2-6.3.1-1_i386

#### NAME

       prerex - interactive editor of prerequisite-chart descriptions



#### SYNOPSIS

       prerex [ options ]  [ basefile[.tex] [ chartfile[.tex] ] ]



#### DESCRIPTION

       prerex   is  an  interactive  program  for  editing  prerequisite-chart
descriptions in the prerex(5) format.  The user does not normally  have
to  be  familiar  with details of the format.  The editor supports add,
remove, cut-and-paste, and edit operations  on  diagram  elements,  and
shifts  of  a  list  of  specified elements or the entire diagram.  The
edited diagram may be saved, re-processed, and viewed in a PDF  viewer,
without  exiting  the  editor.  Alternatively,  vprerex(1) will embed a
prerex(1) window and display the corresponding PDF file alongside.



#### TERMINOLOGY

       A prerequisite chart  consists  of  several  course  boxes,  linked  by
arrows.   Courses  are  either half or full, and may be required.  Each
course box contains a course code (upper left corner), a  course  title
(lower half), and timetable information (upper right corner).  An arrow
is  either  a  prerequisite  (solid),  a   corequisite   (dotted),   or
recommended   (dashed).    When   a   conventional   arrow   would   be
inappropriate, a mini course just above a target box may  be  used.   A
line of text may have been placed anywhere in the chart.

In  some  implementations of the prerex(5) format, (some) arrows may be
curved and by  default  have  non-zero  curvature.   The  curvature  of
individual  arrows may be edited using the prerex(1) editor.  To modify
the default curvature (or set it to zero), see prerex.sty(7).



#### COORDINATESYSTEM

       A conventional two-dimensional 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.  For  convenience,  a  coordinate
grid  is  normally displayed in the background while a diagram is being
edited.

The coordinates of a box, mini, or text-line are those  of  its  centre
point.   An  arrow is described by the coordinates of the centre points
of its source and target boxes/minis/text-lines.



#### USAGE

       If prerex is invoked on one existing file, a back-up copy  is  made  of
it,  the  x,y  coordinate  grid  is turned on, the file is processed by
using a system call to pdflatex(1), and then the user  gets  a  command
summary and an interactive prompt of the form

file.tex>

If  no file argument is given on the command line, the user is prompted
to supply a file name.  In either case, if the file name provided  does
not have a .tex extension, .tex is appended to it.

If  the file.tex file named does not already exist, a new "empty" chart
file with that name is created, and then it is processed as above.

If a second filename is provided, the first filename is treated as  the
base  file  of a LaTeX document and the second as an included file that
contains the chart environment to be edited.  This allows more than one
document to share an included chart file and allows more than one chart
to be included in a single document.

The user may enter  commands  at  the  interactive  command  prompt  as
follows:

box x,y           edit  a  course  box at x,y, if necessary, creating a
new course box there

mini x,y          edit a mini at x,y, if necessary, creating a new mini
there

text x,y          edit a text-line at x,y, if necessary, creating a new
text-line there

arrow x0,y0,x1,y1 edit an arrow from  x0,y0  to  x1,y1,  if  necessary,
creating a new such arrow

cut x,y           (temporarily)  remove  the  box, mini, or text at x,y
(including arrows into/out of the box/mini/text)

paste [x,y]       re-insert most recently cut but not yet  pasted  box,
mini,  or  text  at x,y (including arrows into/out of
the box/mini/text), or at the original coordinates if
x,y omitted

delete [x,y | x0,y0,x1,y1]  ...
remove  the boxes, minis, texts, or arrows at all the
specified coordinates  (automatically  including  all
arrows into/out of each box/mini/text)

undo              undo  the  most  recent  editing command (not already
undone)

shift  [-]x [ xi,yi ...]
move specified diagram elements x units right [left];
if  no  elements  are specified, the whole diagram is
shifted

raise [-]y [ xi,yi ...]
move specified diagram elements y units up [down]; if
no  elements  are  specified,  the  whole  diagram is
raised

write, !          save to the current  chartfile.tex  and  process  the
chart by calling pdflatex(1) on the base file.

quit, exit, x, ^D turn  off  the coordinate grid, restore write-access,
save to the current chartfile.tex, process  the  base
file and exit.

command cmd, re-load and re-process the base file (in
case the command changed anything), and remove write-
access.

Backup            copy the current chartfile.tex to  the  back-up  file
.chartfile.tex;   equivalent   to  !cp  chartfile.tex
.chartfile.tex

Restore           delete the current chartfile.tex and editing  buffer,
and   replace  them  using  the  current  back-up  in
.chartfile.tex.

grid [y/n]        turn on/off coordinate-grid background

help, ?           print a command summary

After most editing commands, the editing buffer is automatically  saved
to  chartfile.tex  and  the  basefile  is  processed; the cut and paste
commands are exceptions: saving and processing take place only when all
outstanding cuts have been pasted.  Saving and processing can be forced
by using the write (or !)  command,  or  suppressed  for  all  commands
(except  write  and  !)   by appending a ";" to the command immediately
prior to entering it.  To exit the editor without saving to the current
chartfile.tex,  use  quit;  (.i.e., quit followed by a semi-colon) or a
similar combination.  Starting in Version 3.8, ^C and other  interrupts
result  in  the  editing buffer being saved to chartfile.tex before the
editor is exited.



#### OPTIONS

       -v      output program name and version number, and quit

-h      output usage summary and quit



#### NOTES

       The main difference between mini and text is in the maximum lengths for
the text displayed; the latter allows a full line of text, not merely a
course code. Also a text-line does not have an associated URI (when the
grid  is off). The text "line" may actually be displayed as a paragraph
by using a LaTeX \parbox.

To save the current state of chartfile.tex, use Backup or a  comparable
shell  command.   A  history list of interpreted commands is maintained
and is accessible using the up-arrow key.

If processing of the chart fails, prerex will attempt  to  display  the
LaTeX  error  message  from  the log file.  The chart file can be fixed
using a conventional text  editor  or  LaTeX-oriented   editor.   LaTeX
processing  should  fail only if there is an initial problem or if ill-
formed LaTeX markup has been inserted into a text field.

Any (non-empty) prefix of a command suffices; for example,  q,  qu,  or
qui  may  be  used  instead of quit.  Some of the commands will begin a
dialogue with the user in order to fill in or  modify  properties;  the
prompts should be self-explanatory.

While  the  TeX chart file is being edited by prerex, its protection is
set to read-only (except when it is being regenerated or  restored,  or
during  a  shell-command  execution),  to  try  to  prevent inadvertent
interference from concurrent editing; this is not fail-safe.

Since version 5.5, prerex no longer automatically calls  a  PDF  viewer
(because  it may be embedded in an instance of vprerex(1) which already
provides a PDF display). If prerex is  being  used  by  itself,  a  PDF
viewer  may  be  invoked  using the !cmd shell-escape mechanism.  Also,
prerex no longer interacts with the user until a PDF file is available;
this  is  for  use  with  vprerex(1).  For example, if the .tex file is



#### FILES

       A LaTeX style  file  prerex.sty(7)  that  implements  the  macro  calls
defined  by  the prerex(5) format must be available to [pdf]latex(1) to
process the chart file.  Before any editing is  allowed,  chartfile.tex
is copied to .chartfile.tex as a backup.



#### ENVIRONMENT

       The  most  convenient  viewing  program  to use with prerex is one like
gv(1), gsview(1), kghostview(1),  kpdf(1)  or  okular(1)  that  may  be
configured   to   "watch"   the   pdf  file  and  re-load  the  display
automatically when the file changes.  evince(1) has a Reload button and
much less convenient with acroread(1) and gpdf(1), which may have to be
re-started.

Recent  versions  of  some PDF viewers show the URIs of hyperlinks in a
tooltip  or  in  the  status  bar;  this  mechanism  is  used  by  some
implementations of prerex.sty(7) to allow display of the coordinates of
a box, mini, text-line, or arrow when the mouse hovers over  it  (while
the  coordinate  grid  is  on and the relevant chart file is presumably
being edited).

The prerex package at  http://www.ctan.org/tex-archive/graphics/prerex/
has  a  patch  for kpdf(1) (now incorporated into okular(1)) to make it
display URIs in  tooltips  and  also  to  allow  the  user  to  capture
coordinates  of  course  boxes,  arrows, and background points in the X
selection clipboard (for pasting into a command being composed  at  the
prerex prompt).

At  the  same  site,  there  is  also source code for vprerex(1), a GUI
front-end for prerex which is similarly prerex-enabled.



#### BUGS

       prerex analyzes chart files without using TeX; thus,  macro  calls  are
not  expanded,  and  anything  in  the  chart  file before or after the
(first) \begin{chart}  ...  \end{chart}  environment  is  ignored  (but
preserved)  by  the editor.  Lines that begin with "%" within the chart
environment  are  preserved  but  other  comments  within   the   chart
environment are not preserved and may interfere with command parsing.

From   version  5.6,  prerex  no  longer supports the latex -> dvips ->
ps2pdf toolchain as an option.



#### AUTHOR

       R. D. Tennent (rdt@cs.queensu.ca)



#### DEPENDENCIES

       prerex uses the  GNU readline(3) and history(3) libraries.



#### SEEALSO

       acroread(1),  evince(1),  gpdf(1),  gsview(1),  gv(1),   kghostview(1),
kpdf(1),     okular(1),    pdflatex(1),    prerex(5),    prerex.sty(7),
previewer(1), vprerex(1), xpdf(1).