summaryrefslogtreecommitdiff
path: root/graphics/epix/laps.in
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /graphics/epix/laps.in
Initial commit
Diffstat (limited to 'graphics/epix/laps.in')
-rw-r--r--graphics/epix/laps.in259
1 files changed, 259 insertions, 0 deletions
diff --git a/graphics/epix/laps.in b/graphics/epix/laps.in
new file mode 100644
index 0000000000..8c8d8efe0f
--- /dev/null
+++ b/graphics/epix/laps.in
@@ -0,0 +1,259 @@
+#! /bin/bash
+#
+# laps: latex to Postscript/PDF
+#
+# Options: --help for usage, --version for version and license
+#
+# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
+# Andrew D. Hwang <For address, do "laps -V">
+#
+
+. "@pkglibdir@/epix-lib.sh"
+
+declare -a DVIPS_OPTS
+declare -a LAPS_FILE_LIST
+declare -i LAPS_FILE_COUNT
+
+PS2PDF="ps2pdf"
+LATEX="latex"
+LAPS_PDF=
+
+LATEX_INTERACT="batchmode"
+
+LAPS_EXTENSIONS="tex dtx ltx" # or NULL
+LAPS_DOT_EXT=".${LAPS_EXTENSIONS// /|.}" # for usage message
+LAPS_DEFAULT_EXT="tex"
+
+declare -a TMP_CMD
+
+
+function laps_help ()
+{
+cat <<"HELP"
+Options:
+ -h, --help
+ Show this message and exit
+
+ -V, --version, --gpl
+ Show version and license
+
+ -v, --verbose
+ Scroll output/error messages
+
+ -H, --huge
+ Use hugelatex (if available)
+
+ -i, -int, --interactive
+ Run (La)TeX interactively (implies --verbose)
+
+ -n, --no-config
+ Ignore $(HOME)/.dvipsrc
+
+ --pdf
+ Post-process ps file with ps2pdf
+
+ --pdf(la)tex
+ Use pdf(la)tex instead of latex.
+
+ -ps, --ps, --pslatex
+ Use pslatex instead of latex.
+
+ -P<printer>
+ dvips printer options, e.g. "-Pamz", may be given on the command
+ line. They are also read from ~/.dvipsrc if this file exists.
+
+ -t, --tex
+ Use tex instead of latex
+
+HELP
+ePiX_bugreport
+
+} # End of laps_help
+
+
+function laps_parse_options {
+# Command-line options start with "-"
+while [ "$1" != "${1#-}" ]; do
+ case "$1" in
+
+ -h|--help)
+ ePiX_usage laps $LAPS_DOT_EXT
+ laps_help
+ exit 0
+ ;;
+
+ -H|--huge)
+ if [ $(which hugelatex 2> /dev/null) ]; then
+ LATEX="hugelatex"
+ else
+ ePiX_warn " hugelatex not available, ignoring \"$1\" option"
+ fi
+ shift
+ ;;
+
+ -i|-int|--interactive)
+ EPIX_STDOUT="$SYSTEM_STDOUT"
+ LATEX_INTERACT="scrollmode"
+ shift
+ ;;
+
+ -n|--no-config) # do not use ~/.dvipsrc
+ export DVIPSRC="$SYSTEM_DEVNULL"
+ shift
+ ;;
+
+ -pdf|--pdf)
+ LATEX="${LATEX##pdf}"
+ LAPS_PDF="yes"
+ shift
+ ;;
+
+ --pdflatex)
+ LATEX="pdflatex"
+ LAPS_PDF=""
+ shift
+ ;;
+
+ --pdftex)
+ LATEX="pdftex"
+ LAPS_PDF=""
+ shift
+ ;;
+
+ -ps|--ps|--pslatex)
+ LATEX="pslatex"
+ shift
+ ;;
+
+ -P)
+ DVIPS_OPTS=("${DVIPS_OPTS[@]}" "-P$2")
+ shift 2
+ ;;
+
+ -P*)
+ DVIPS_OPTS=("${DVIPS_OPTS[@]}" "$1")
+ shift
+ ;;
+
+ -t|--tex)
+ LATEX="tex"
+ shift
+ ;;
+
+ -V|--version|--gpl)
+ ePiX_version laps
+ ePiX_license
+ exit 0
+ ;;
+
+ -v|--verbose)
+ if [ -z "$2" ]; then
+ echo "Please use -V for version"
+ exit 0
+ fi
+ EPIX_STDOUT="$SYSTEM_STDOUT"
+ shift
+ ;;
+
+ -vv)
+ echo "Discontinued option -vv; please use -v for verbose output"
+ exit 0
+ ;;
+
+ *)
+ ePiX_warn "Ignoring unknown option \"$1\""
+ shift
+ ;;
+ esac
+done
+
+LAPS_FILE_LIST=("$@")
+} # End of laps_parse_options
+
+
+function laps_compile_files()
+{
+ if [ -z "$1" ]; then ePiX_die "No input file specified"; fi
+
+ # file counts
+ local processed=0
+ local success=0
+ local failure=0
+
+ for EPIX_INFILE in "${LAPS_FILE_LIST[@]}"; do
+
+ # sets EPIX_INROOT, EPIX_SUFFIX, EPIX_NOTFOUND, touches EPIX_LOGFILE
+ epix_parse_filename "$EPIX_INFILE" "$LAPS_EXTENSIONS"
+
+ let processed=processed+1
+
+ if [ "$EPIX_NOTFOUND" = "yes" ]; then
+ let failure=failure+1
+ continue
+ fi
+
+ TMP_CMD=($LATEX -interaction=$LATEX_INTERACT "$EPIX_INROOT.$EPIX_SUFFIX")
+ TEMPFILES=("{TEMPFILES[@]}" "${EPIX_INROOT}.dvi" "${EPIX_INROOT}.log")
+
+ # aux file out of date
+ if [ "$EPIX_INROOT.$EPIX_SUFFIX" -nt "$EPIX_INROOT.aux" ]; then
+ ePiX_msg "aux file out of date"
+
+ ePiX_command "${TMP_CMD[@]}"
+ fi
+
+ ePiX_command "${TMP_CMD[@]}"
+
+ if [ "${EPIX_INROOT}.$EPIX_SUFFIX" -nt "$EPIX_INROOT.dvi" ]; then
+ ePiX_warn "\"${TMP_CMD[*]}\" failed"
+ let failure=failure+1
+ continue
+ fi
+
+ if [ "$LATEX" = "latex" -o "$LATEX" = "tex" ]; then
+ TMP_CMD=(dvips "${DVIPS_OPTS[@]}" -f -o "$EPIX_INROOT.ps" "$EPIX_INROOT.dvi")
+
+ ePiX_command "${TMP_CMD[@]}"
+
+ if [ "$EPIX_INROOT.dvi" -nt "$EPIX_INROOT.ps" ]; then
+ ePiX_warn "${TMP_CMD[*]} failed"
+ let failure=failure+1
+ continue
+ fi
+ fi
+
+ if [ "$LAPS_PDF" = "yes" ]; then
+ TMP_CMD=($PS2PDF "$EPIX_INROOT.ps")
+
+ ePiX_command "${TMP_CMD[@]}"
+
+ if [ "$EPIX_INROOT.ps" -nt "$EPIX_INROOT.pdf" ]; then
+ ePiX_warn "${TMP_CMD[*]} failed"
+ let failure=failure+1
+ continue
+ fi
+ fi
+
+ let success=success+1
+ echo -e "\nTranscript written on $EPIX_LOGFILE" > "$EPIX_STDOUT"
+
+ done # for EPIX_INFILE in $LAPS_INFILE_LIST
+
+ if [ $processed -gt 1 ]; then
+ echo "$processed files processed: $success successfully, $failure failed" > "$EPIX_STDERR"
+ fi
+}
+
+### main ###
+
+if [ $# -eq 0 ]; then
+ ePiX_usage laps $LAPS_DOT_EXT
+ laps_help
+ exit 0
+fi
+
+laps_parse_options "$@"
+
+laps_compile_files "${LAPS_FILE_LIST[@]}"
+
+exit 0