summaryrefslogtreecommitdiff
path: root/support/latexmk/extra-scripts/l1
diff options
context:
space:
mode:
Diffstat (limited to 'support/latexmk/extra-scripts/l1')
-rw-r--r--support/latexmk/extra-scripts/l1122
1 files changed, 122 insertions, 0 deletions
diff --git a/support/latexmk/extra-scripts/l1 b/support/latexmk/extra-scripts/l1
new file mode 100644
index 0000000000..cf8d1c4b64
--- /dev/null
+++ b/support/latexmk/extra-scripts/l1
@@ -0,0 +1,122 @@
+#!/bin/csh -f
+#(ie run the cshell on this but don't read the .cshrc)
+
+clear
+echo version = 2.17 of l 2002 Nov 5
+# 2002 Nov 5, 2.17: (John Collins) Make work with latexmk
+# 2002 Oct 21, 2.16: replace popcross with kickxdvi
+# 2000 Mar 6, 2.14: done is created as a directory (more useful than a file)
+# 1999 Nov 18: removal of a paper triggers bibtex call now
+# 1999 Aug 19: when done, `touch done` so that other
+# programs can be triggered (ie latex2html!)
+
+set myname=l1
+
+if ( "$1" == "") then
+ set paper=paper
+else
+ set paper=$1
+endif
+
+if ( "$paper:e" == "" ) then
+ set base=$paper
+ set paper=${base}.tex
+else
+ set base=$paper:r
+endif
+
+if !(-f $paper) then
+ echo $paper does not exist\!
+ exit 1;
+endif
+
+# popcross refreshes the xdvi display by briefly putting
+# a window in front of the xdvi window. This is crude but effective.
+# A better way is to use the kickxdvi routine.
+set kickxdvi = popcross # old method.
+set kickxdvi = kickxdvi
+
+# set overfull = Overfull
+set overfull = NoOverfull
+echo ALL $overfull MESSAGES WILL BE SUPPRESSED
+# see Lamport page 177 for dealing with overfull boxes.
+# basically, do this:
+# \documentclass[12pt,draft]{article}
+# draft will mark the overfull boxes and the solution
+# will become obvious...
+
+# run latex. The cat /dev/null prevents
+# latex from stopping. Errors are reported to paper.log
+cat /dev/null | latex $paper | grep -v $overfull
+
+# determine if there was an error, by looking at paper.log:
+grep "! Emergency stop." $base.log
+@ EmergencyStop = ($status == 0)
+# Also find if no output produced:
+# Examine only the last line of the file to pick out only the
+# message produced by TeX, and not something else with the same
+# string.
+tail -1 $base.log | grep "No pages of output."
+@ NoOutput = ($status == 0)
+
+if ($EmergencyStop || $NoOutput)then
+
+ # begin latexerrors %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+ echo create and display latex errors
+
+ set err = `whoami`-$base
+ set tmperr = /tmp/$err.tex
+
+ echo "\documentclass[12pt]{article}" > $tmperr
+ echo "\textwidth 7.5in" >> $tmperr
+ echo "\begin{document}" >> $tmperr
+ if ( $EmergencyStop ) then
+ echo "Error(s) in tex file ($paper): " >> $tmperr
+ else if ( $NoOutput ) then
+ echo "No output from tex file ($paper): " >> $tmperr
+ endif
+ echo "\begin{verbatim}" >> $tmperr
+
+ cat $base.log >> $tmperr
+
+ echo "\end{verbatim}" >> $tmperr
+ echo "\end{document}" >> $tmperr
+
+ pushd /tmp
+ latex $err.tex
+ if ( $EmergencyStop ) then
+ echo xdvi display shows the last page of the errors
+ set page = '+'
+ else
+ set page = ''
+ endif
+ xdvi $err.dvi $page &
+ popd
+ # end latexerrors %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+ cp /tmp/$err.dvi $base.dvi
+ $kickxdvi
+ echo "****************************************"
+ echo "* ERROR IN PAPER - fix paper.tex file\! *"
+ echo "****************************************"
+ # beep
+ echo -n ""
+ sleep 2
+ # beep
+ echo -n ""
+ cd /tmp
+ rm -f $err.aux $err.dvi $err.log $err.tex
+
+ exit 1
+else
+ echo Successful run
+ $kickxdvi
+ if !(-f done || -d done) then
+ mkdir done
+ endif
+ touch done
+
+ exit
+
+endif