[comp.sys.sgi] Texsgi version 1.1 announcement

mg@CAD.USNA.MIL (Mike Gigante, RMIT/Australia GUEST) (08/05/90)

A new version of the TeX previewer for the Iris will be put on the info-iris
archive. (host brl.mil, directory ~ftp/pub/info-iris) It wont be until
the keepers of the archive return from SIGGRAPH so expect some confirmation 
after the 12th August. 
 
Texsgi Version 1.1 has most of the bugs fixed and some new functionality:
 
	1) a startup file .texsgirc (home directory, then local directory)
	2) *MUCH* faster to display documents that have many fonts
	3) faster startup
	4) correct font selection
	4) resizable window (with customizable defaults in .texsgirc)
	5) many more fonts and font magnifications have been included
	6) reversed keybindings (now ^P and u move the point up the page
	   instead of moving the page up) -- by popular demand
 
There are still some things that need to be fixed soon, but this release
is a major improvement over the currently available version.
 
Specifically, the previewer still uses GF fonts. This is my top priority
to fix, hopefully I'll get time to do it by the end of September after
Ausgraph is over.
 
Further planned improvements include pica rules, 2up mode, faster display
etc etc. Stay tuned... If you plan to work on the sources, *please* contact
me first so that we don't duplicate effort. Also I'd appreciate any fixes, 
improvements etc!!
 
Also on popular demand, the distribution has been split out -- 
texsgi no longer is bundled with a complete TeX distribution.
 
I recommend that you obtain the University of Toronto TeX distribution --
it is well setup, contains many useful ancillary programs and compiles
seamlessly on Irises and other platforms. It is also extremely simple
to install. Particularly nice is the genfonts utility.
 
The distribution contains:
	/usr/local/src/texsgi		- the sources to the previewer
	/usr/local/bin/texsgi		- a compiled binary for you convenience
	/usr/local/share/fonts/gf/gf300/*gf - a set of 118dpi and 300dpi 
					GF fonts used by the previewer.
 
The font locations are an oddity, sorry about that - but as this distribution
is the last one that supports GF fonts, we left it partly compatible with
the old structure. With the next release, the entire set of GF fonts can be 
deleted.
 
Those that have been using the old texsgi will notice the much wider range of 
fonts and magnifications.

Thanks to Dave Rogers who provided the resources for me to work on texsgi this
trip and also for being the guinea pig for this version while he was trying to
meet publication deadlines.  Thanks also go to Dave Rogers for his comments
on the program from a serious user's perspective.
 
Non-internet sites can contact either mg@godzilla.cgl.rmit.oz.au or
in the US, contact dfr@cad.usna.navy.mil for details on how to get the 
distribution

finally, here is a man page...

\" NB: make sure tabs in two tables below have not be turned into blanks
\" Look for the lines beginning ".ta 1.2in"
.TH TeXsgi 1L "June 1989"

.SH NAME

TeXsgi \- TeX DVI previewer for the Silicon Graphics Iris

.SH SYNOPSIS

.na
\fBtexsgi\fP
[\fB\-d#\fP]
[\fB\-f\fP\fIfontsubfile\fP]
[\fB\-l\fP]
[\fB\-m#\fP]
[\fB\-q\fP]
[\fB\-x#\fP\fIunits\fP]
[\fB\-y#\fP\fIunits\fP]
\fBdvifile1\fP
.ad

.SH DESCRIPTION

TeXsgi only runs on the workstation console and only on the 4D series.
It expects the name of the DVI file on the command line, and the
extension \fI.dvi\fP can always be omitted.

As the \fI.dvi\fP file is processed, a list of errors is printed on
the standard error unit, \fIstderr\fP; this list is also saved in a
file with suffix \fI.dvi-err\fP This file is not created if there are
no errors. The \fB\-q\fP (quiet) option can be given to suppress error
messages, as can the \fBQ\fP runtime command.  As each page is
displayed, the physical page number and the TeX page number(s) are
printed on a status line at the bottom of the screen.

TeXsgi uses the 118 dpi and 300 dpi \fBgf\fP fonts.

.SH OPTIONS

The order of command options and DVI file name is \fInot\fP significant.

Letter case is \fIignored\fP in option switches
.TP
.B \-d#
Produce debugging output on \fIstderr\fP if a non-zero value is given.
Multiple \fB\-d\fP switches may be specified, and one may also add
values of the following possible options to obtain the switch value:
.RS
.TP
.I 2
display page coordinates and metrics of
each output character, and print each
character bitmap in hexadecimal;
.TP
.I 8
print filename and open mode of
each
\fIsuccessful\fP
file opening;
.TP
.I 16
print filename and open mode of
each
\fIunsuccessful\fP
file opening;
.TP
.I 32
show discarded off-page text;
.TP
.I 128
trace character setting (\fIlots\fP of output).
.RE
.PP
.RS
For example, either \fB\-d8 \-d16\fP or
\fB\-d24\fP will trace all attempted file openings.
.RE
.TP
.B \-f\fIfontsubfile\fP
Define an alternate font substitution file which
is to be used instead of the default ones (see below).
.TP
.B \-l
Inhibit logging.
.TP
.B \-m#
Reset magnification to #.  The default is \fB\-m603\fP.
.TP
.B \-q
Quiet mode.  Status displays to \fIstderr\fP are suppressed, unless
warning or error messages are issued. A most useful option for
the current version of the previewer.
.TP
.B \-x#\fIunits\fP
The  \fB\-x\fP options specify the left margin of the TeX page on the
output page in any of the indicated units.  Letter case is not
significant in the units field, which must \fInot\fP be separated from
the number by any space. \fI#\fP may be fractional.  For example,
\fB\-x1.0in\fP, \fB\-x2.54cm\fP, \fB\-x72.27pt\fP, and \fB\-x6.0225pc\fP
all specify a one-inch left margin. Negative values are permissible, and
may be used to shift the output page left (possibly truncating it on the
left) in order to display a wide TeX page.

The \fIunits\fP field is mandatory, and may be one of
.RS
.TP
.B bp
big point (1in = 72bp)
.TP
.B cc
cicero (1cc = 12dd)
.TP
.B cm
centimeter (1in = 2.54cm)
.TP
.B dd
didot point (1157dd = 1238pt)
.TP
.B in
inch
.TP
.B mm
millimeter (10mm = 1cm)
.TP
.B pc
pica (1pc = 12pt)
.TP
.B pt
point (72.27pt = 1in)
.TP
.B sp
scaled point (65536sp = 1pt)
.RE
.TP
.B \-y#\fIunits\fP
The \fB\-y\fP options specify the top margin of the TeX page on the
output page.  Letter case is not significant in the units field, which
must \fInot\fP be separated from the number by any space.  # may be
fractional.  For example, \fB\-y1.0in\fP, \fB\-y2.54cm\fP,
\fB\-y72.27pt\fP, and \fB\-y6.0225pc\fP all specify a one-inch top
margin.  Negative values are permissible, and may be used to shift the
output page up (possibly truncating it on the top) in order to display a
long TeX page.

By decree of the Stanford TeX Project, the default TeX page origin
is always 1 inch over and down from the top-left page corner, even
when non-American paper sizes are used.  This corresponds to the switch
settings \fB\-x1in \-y1in\fP; these values are assumed unless
overridden.

.SH FONT SUBSTITUTION

If no \fB\-f\fP\fIfontsubfile\fP option is given, and font substitution
is required, if the current DVI file is \fIfoo.dvi\fP, then the
files \fIfoo.sub\fP, \fItexfonts.sub\fP, and
\fItexinputs/texfonts.sub\fP will be tried in order.  The first two
will be found on the current directory, and the last is the
system default.  This gives the option of document-specific,
user-specific, and system-specific substitutions, and the
\fB\-f\fP option allows all of these to be overridden.

Font substitution lines have the form:

.nf
.ta (\w'oldname.oldmag'u+2n) +(\w'->'u+2n) +(\w'subname.submag'u+2n)
% comment
oldname.oldmag	->	subname.submag	% comment
oldname oldmag	->	subname submag	% comment
oldname	->	subname	% comment
.fi

The first  two  forms request  substitution  of a  particular  font  and
magnification.  The third  form substitutes an  entire font family;  the
closest available magnification to the  required one will be used.   Any
dots in  the  non-comment  portion  will be  converted  to  spaces,  and
therefore, cannot be part of a name field.

The first matching substitution will be selected, so
magnification-specific substitutions should be given first,
before family substitutions.

Comments are introduced by percent and continue to end-of-line,
just as for TeX.  One whitespace character is equivalent to
any amount of whitespace.  Whitespace and comments are optional.

.SH SCREEN CONTROL

All switches, including the page selection (\fB\-o\fP) and page
origin (\fB\-x\fP and \fB\-y\fP) switches, work normally.  In order
to avoid unnecessary waste of screen space, you probably will
want to specify \fB\-x0in\fP and \fB\-y0in\fP to remove the default
one-inch left and top margins.  The \fB\-q\fP option is probably also
advisable to avoid warning messages, such as from font substitutions.

At the beginning of a page, a status line is displayed at
the bottom of the screen.  When the end-of-page command is reached
in the DVI file, or as soon as keyboard input is available, the
driver will enter the end-of-page routine.  Any keyboard input
command is then read and acted upon; unrecognized input is
discarded with a warning beep.  The advantage of checking for
keyboard input during the main DVI reading loop is that unwanted
display can be avoided.  This is valuable if you are
repositioning the page, or skimming a document.  

The input can select
.RS
.TP \w'\(bu'u+2n
\(bu
redisplay of the current page, possibly shifting it up,
down, left, or right, or to see more of it.
.TP
\(bu
continuation to the next page;
.TP
\(bu
backing up to the previous page (useful if you overshoot);
.TP
\(bu
display of an arbitrary page by typing its sequence number;
.TP
\(bu
termination of execution.
.RE

Here is the current command list.  Input is immediate; no
terminating carriage return is necessary.  Consequently, typing
error correction is supported only for the digit string command;
ending with the letter \fBg\fP (goto).

.RS
.TP
.B ^D
Move the display down by 1/32 of screen size.
.TP
.B "d \fRor\fP Ctl-N"
Move the display down by 1/16 of screen size.
.TP
.B D
Move the display down by 1/8 of screen size.
.TP
.B ^U
Move the display up by 1/32 of screen size.
.TP
.B "u \fRor\fP Ctl-P"
Move the display up by 1/16 of screen size.
.TP
.B U
Move the display up by 1/8 of screen size.
.TP
.B ^L
Move the display left by 1/32 of screen size.
.TP
.B "l \fRor\fP Ctl-B"
Move the display left by 1/16 of screen size.
.TP
.B L
Move the display left by 1/8 of screen size.
.TP
.B ^R
Move the display right by 1/32 of screen size.
.TP
.B "r \fRor\fP Ctl-F"
Move the display right by 1/16 of screen size.
.TP
.B R
Move the display right by 1/8 of screen size.
.TP
.B "SPACE \fRor\fP + \fRor\fP Ctl-V"
Display next page.
.TP
.B "- \fRor\fP b \fRor\fP Alt-V"
Redisplay previous page.
.TP
.B nnn g
nnn is a digit string; DELETE/RUBOUT and BACKSPACE keys correct
typing errors in it.  Goto to \fBnnn\fP-th page, where document
pages are numbered 1, 2, .\|.\|..  The TeX page numbers are
displayed in the status window. This is a recursive display; if
you respond at end-of-page with a \fInext-page\fP command,
display will revert to the page sequence you were viewing when
you first issued the \fBnnn\fP command.
.TP
.B i
inverse \- swap foreground/background colors.
.TP
.B Q
quiet \- toggle the suppression of warnings and error messages. Especially useful to
supress the font substitution messages.
.TP
.B h/H
home \- return to home position (top left corner)
.TP
.B ?
help \- print a short command summary.
.TP
.B m
magnify \- Zoom up one magstep (1.2 times larger) from current size.
.TP
.B s
shrink \- Zoom down one magstep (1.2 times smaller) from current size.
.TP
.B M
magnify \- Zoom up five magsteps from current size.
.TP
.B S
shrink \- Zoom down five magsteps from current size.
.TP
.B "ESC \fRor\fP q \fRor\fP x"
Quit or exit.

The \fBM\fP and \fBS\fP commands can be used quite effectively as
a pair. From the default magnification (590), \fBM\fP will cause
the 300dpi fonts to be used exactly and the \fBS\fP command will return
to exactly 118dpi fonts.

It is likely that some font magnifications will be unavailable
for zooming, so do not be alarmed if some characters are
displayed as blanks when you do this.  You can use the font
substitution mechanism (\fB\-f\fP option above) to work around
this, or you can ask your font administrator to generate the
required magnifications.  When font substitution happens because
of an unavailable magnification, characters of an incorrect size
are used with the spacing required for the font which TeX used,
so output is likely to look peculiar.

.RE

.SH SPECIALS

The TeX \fB\\special{}\fP command is intended to allow the
specification in a \fI.tex\fP file of a request to the DVI
driver, usually for the insertion of graphical material at that
point in the document.  It is currently not implemented
and will simply issue a warning message.

.SH ENVIRONMENT VARIABLES

The behavior of the previewer can be influenced by
environment variables.  Compiled-in
internal defaults will be provided for any of these which are not
defined.   They \fImust\fP be entirely in upper-case, since that
is conventional on Unix systems.  The names currently recognized
are as follows:
.TP \w'TEXINPUTS'u+2n
TEXFONTS
This defines the directory path for finding font  files. Its value is
\fIprepended\fP to the name of a \TeX font to  get a full file
specification.  A typical value for \fITEXFONTS\fP would be
\fI/usr/local/lib/tex/fonts/gf/\fP.
.TP
TEXINPUTS
This defines the directory path for finding files  which
are not in the current working directory.
It is \fIprepended\fP to file names.  A typical value
would be \fI/usr/local/lib/tex/inputs/\fP.

.SH FILES

There is a startup file \fI.texsgirc\fP used to set defaults. The file, if it
exists, is read from the users home directory and then the current directory.
This allows a document specific override to the defaults.

The format of the file is simple, one command per line, arguments seperated by
spaces. Here is an example file:

.nf
  prefposition 489 1279 0 1023
 inverse
 quiet
.fi

The allowable commands are:

.nf
 prefposition <left> <right> <bottom> <top> % in screen coordinates
 prefsize <horizontal> <vertical>           % in pixels
 keepaspect <y> <x>                         % y is to x in integers
 quiet                                      % supress messages
 inverse                                    % run white on black
 magnification <mag>
.fi

By default, the user can sweep a window without constraints, any of 
prefposition, prefsize, keepaspect will constrain the resultant window
by varying amounts.

The default runmag is 590, which correponds to 118dpi (118 * 5 = 590).
The most useful magnifications are those which are in the series
(590 645 710 845 1020 ... ) which corresponds to magsteps in the 118dpi
family. Note that the number of fonts that are available reduces as the
magstep increases (since we haven't generated all the fonts at the higher 
magsteps). Probably more useful is the use of magstep 1500, this will force
the use of the 300dpi fonts that are also used for dvi2ps. This will
significantly magnify the size of the fonts; great for detail work.

The values of \fItexinputs\fP and \fItexfonts\fP below are
system-dependent. Typical values are
\fI/usr/local/tex/inputs/\fP and \fI/usr/local/tex/fonts/gf/\fP.

.TP \w'texinputs:texfonts.sub'u+2n
.I *.dvi
TeX DeVice Independent output file
.TP
.I *.dvi-err
TeXsgi error log
.TP
.I *.sub
DVI file-specific font substitution file
.SH "SEE ALSO"

dvitype(1),
latex(1),
tex(1),
tr2tex(1),
\fILocal LaTeX Guide\fP,

.SH BUGS

Bugs in either the software or its documentation
should be reported by electronic or postal mail to

.nf
Mike Gigante
Applied Computer Graphics Lab
Royal Melbourne Institute of Technology
124 Latrobe Street,
Melbourne, Australia 3001

+61 3 660 2935
Email: mg@cidam.oz.au
.fi

or to

.nf
Prof David F. Rogers
Aerospace Engineering Dept.
U.S. Naval Academy
Annapolis, MD 21402, USA

(301) 267 3283/4/5
Email: dfr@usna.navy.mil

who has offered to act as the US distribution point.
.fi

.SH AUTHORS

This previewer is derived from Nelson Beebe's dviXXX family (available
from science.utah.edu), with some ideas from Dick Grundwald's TeXsun.

Mike Gigante of RMIT ported the dvixxx family to the Iris and wrote all of the 
Iris specific code.

Thanks go to Dave Rogers for being the guinea pig and for discussions about 
where the design is heading.

.SH BUGS

Well, the biggest bug is that is isn't finished. The code is very naive, 
re-reading the raster descriptions from the GF file for every character.
This will dissapear in the swap over to the PK fonts. Hopefully not too
far from now.

There is plenty of stuff in the pipeline for a better UI, including two-up
mode, pica rules, real-time panning etc. Now I just have to get time to
work on it...