diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/kamal/TEX |
Initial commit
Diffstat (limited to 'support/kamal/TEX')
-rw-r--r-- | support/kamal/TEX | 227 |
1 files changed, 227 insertions, 0 deletions
diff --git a/support/kamal/TEX b/support/kamal/TEX new file mode 100644 index 0000000000..149b69bf68 --- /dev/null +++ b/support/kamal/TEX @@ -0,0 +1,227 @@ +#! /bin/csh -f +# +# Usage: TEX [-flags ...] filename +# +# The various flags are described below, but only one filename should +# be given; stdin is not used. File types are indicated by the filename +# suffix. Input files may have one of the following suffixes: +# .tex -- a file with tex commands, equations. +# .dvi -- device independent format. +# .ver -- output of verser1 (for the varian or AED) +# .imp -- output of dvi-imagen (or dviimp) +# Anything else is assumed to be in .tex format. +# If TEX sees a .dvi, .ver, or .imp suffix, it will skip ahead to the right +# point in the processing sequence. Specifically, +# texeqn accepts .tex, outputs .tex +# tex accepts .tex, outputs .dvi and .log +# latex accepts .tex, outputs .dvi and .log +# verser1 accepts .dvi, outputs .ver (for the varian or AED, not on hanuma). +# lpr accepts .ver, outputs raster +# ipr accepts .imp, outputs raster +# +# Flags: +# -latex uses LaTeX. +# -log saves a log file from the tex run in filename.log. +# -d quits once the .dvi file has been made. +# -x makes two passes on the (latex) input, so cross-references +# are resolved. +# -v output device is the varian (imagen is the default) +# -q quits once the .imp file has been made if the imagen is the target printer +# or after the .ver file (i.e. after verser1 stage) if the AED or the varian +# is the target printer. +# -eqn strips out the equations with texeqn and typeset them. +# +# Authors: Kamal Al-Yahya, Jeff Thorson, and Chuck Sword, Stanfor University +# +umask 0 +onintr removal +set name=() host=() +set destdir = /usr/local +set tmp = TEX$$ +set device = imagen +set st = 0 +unset latex x d q eqn log + +if ($#argv == 0) then + echo "usage: TEX [-latex] [-eqn] [-log] [-d] [-q] [-x] filename" + exit(-1) +endif + +while ($#argv > 0 && !($?inf)) + switch ($argv[1]) + case -latex: + set latex + breaksw + + case -x: + set x + breaksw + + case -q: + set q + breaksw + + case -d: + set d + breaksw + + case -v: + set device = varian + breaksw + + case -eqn: + set eqn + breaksw + + case -log: + set log + breaksw + + case -*: + echo unknown flag $argv[1], ignored + breaksw + default: + set inf = $argv[1] + if !(-e $inf) then + +# filename not found, try with .tex ending + + if !(-e $inf.tex) then + echo $0 'cannot find file' $inf. + exit(-1) + else + set inf = ($inf.tex) + endif + endif + breaksw + endsw + shift argv +end + +set name = $inf:t +set sname = $name:r +set name = $cwd/$name +set suffix = $name:e + +if ($suffix == dvi) then + echo TEX: starting with .dvi file + set name = $name:r + set dvifile = $inf + goto dvi +endif + +if ($suffix == ver) then + echo TEX: starting with .ver file + set name = $name:r + set verfile = $inf + goto ver +endif + +if ($suffix == imp) then + echo TEX: starting with .imp file + set name = $name:r + set impfile = $inf + goto imp +endif + +if ($suffix == tex || $suffix == eqn) then + set name = $name:r +endif + +echo "\batchmode" > $tmp.tex + +if ($?eqn) then + $destdir/texeqn < $inf >> $tmp.tex +else + cat $inf >> $tmp.tex +endif + +echo "\bye" >> $tmp.tex + +# Choose tex or latex + +if ($?latex) then + if (-e $name.aux) then + cp $name.aux $tmp.aux + endif + $destdir/latex $tmp:t + if ($status != 0) then + goto oops + else + if (-e $tmp.aux) then + cp $tmp.aux $name.aux + endif + endif + + if ($?x) then + echo "Starting second pass" + $destdir/latex $tmp + if ($status != 0) then + goto oops + endif + if (-e $tmp.aux) then + cp $tmp.aux $name.aux + endif + endif + +else $destdir/tex $tmp + if ($status != 0) then +oops: + echo TEX could not process your file. + echo Error messages are in $name.log + mv -f $tmp.log $name.log + set st = -1 + goto removal + endif +endif + +if ($?log) then + mv -f $tmp.log $name.log + if (-e $tmp.aux) then + mv -f $tmp.aux $name.aux + endif +endif + +set dvifile = $tmp.dvi + +if ($?d) then + mv -f $dvifile $name.dvi + goto removal +endif + +dvi: + +if($device == imagen) then + $destdir/dvi-imagen -s $dvifile > $tmp.imp + if ($?q) then + mv -f $tmp.imp $name.imp + goto removal + endif + set impfile = $tmp.imp +imp: + (echo -n \@document\(owner \"$user\", site \"$host\", spooldate \ + \"`date`\", language \"imPress\", jobheader off, \ + jamresistance on\) ; cat $impfile ) | $destdir/ipr + goto removal +endif + +if($device == varian) then + $destdir/verser1 < $dvifile > $tmp.ver + if ($status != 0) then + echo TEX bombed out on verser1. + set st = -1 + goto removal + endif + set verfile = $tmp.ver + + if ($?q) then + mv -f $verfile $name.ver + goto removal + endif +ver: + lpr -d -s -Pvarian $tmp.ver +endif + +removal: +/bin/rm -f $tmp.tex $tmp.log $tmp.dvi $tmp.ver $tmp.imp $tmp.aux +exit($st) |