summaryrefslogtreecommitdiff
path: root/graphics/epix/elaps.in
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-06-13 03:02:55 +0000
committerNorbert Preining <norbert@preining.info>2020-06-13 03:02:55 +0000
commit2d0067edb74f15b431d7a1e3a42b4f525986cef0 (patch)
tree06198722777ad0af165eb45b12960c56b226b0cf /graphics/epix/elaps.in
parentc2fde990c352049f8aa6bc9629fee95bad518cde (diff)
CTAN sync 202006130302
Diffstat (limited to 'graphics/epix/elaps.in')
-rw-r--r--graphics/epix/elaps.in485
1 files changed, 0 insertions, 485 deletions
diff --git a/graphics/epix/elaps.in b/graphics/epix/elaps.in
deleted file mode 100644
index 6e8041f3d3..0000000000
--- a/graphics/epix/elaps.in
+++ /dev/null
@@ -1,485 +0,0 @@
-#! /bin/bash
-#
-# elaps: Convert an epix file to encapsulated Postscript, i.e. epix2eps
-#
-# Options: --help for usage, --version for version and license
-#
-# Compiler flags may be specified on the command line or in the config
-# file ~/.epixrc. The script attempts to deal intelligently with missing
-# or multiple extensions. If the input file has a recognized extension,
-# there's no issue. If only the root name <infile> is given, the script
-# searches for completions in the order of preference dictated by the
-# variable EPIX_EXTENSIONS. A warning is issued for multiple matches.
-#
-# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
-# Andrew D. Hwang <For address, do "elaps -V">
-#
-
-. "@pkglibdir@/epix-lib.sh"
-
-EPIX_CONFIG_FILE="$HOME/.epixrc"
-# Search these extensions in order of preference
-ELAPS_EXTENSIONS="eepic xp flx cc c C cpp" # or NULL
-ELAPS_DOT_EXT=".${ELAPS_EXTENSIONS// /|.}" # for usage message
-
-# default options
-ELAPS_PKGS="latexsym,amsmath,rotating"
-declare ELAPS_PSTCOL
-ELAPS_SIZE=12 # figure compiled in [12pt]{article}
-
-ELAPS_PDF="no" # Create PDF file?
-ELAPS_PS="no" # Create PS file instead of EPS?
-
-declare -a EPIX_OPTS
-declare -a DVIPS_OPTS
-
-LATEX_BIN=latex # elaps only uses [huge]latex, not pdflatex or pslatex
-LATEX_INTERACT="scrollmode"
-
-# auxiliary programs
-PS2EPS="ps2epsi"
-
-# internal filenames
-PID=$$
-ELAPS_TEMP_EEPIC="$PROG-$PID".eepic
-ELAPS_TEMP_LATEX="$PROG-$PID".tex
-ELAPS_TEMP_DVI="$PROG-$PID".dvi
-ELAPS_TEMP_PS="$PROG-$PID".ps
-ELAPS_TEMP_EPSI="$PROG-$PID".epsi
-
-# globals to pass tokens
-ELAPS_USER_OUT="no" # user specified output file?
-
-declare -a ELAPS_FILE_LIST
-declare -a TMP_CMD
-
-declare -a TEMPFILES
-trap '[ -n "${TEMPFILES[*]}" ] && rm -f "${TEMPFILES[@]}"' 0 1 2 3 7 10 13 15
-
-TEMPFILES=("$ELAPS_TEMP_EEPIC" "$ELAPS_TEMP_LATEX" "$ELAPS_TEMP_DVI" \
- "$ELAPS_TEMP_PS" "$ELAPS_TEMP_EPSI" )
-
-function elaps_help()
-{
-cat <<"HELP"
-Options:
- -h, --help
- Show this message and exit
-
- -V, --version, --gpl
- Show version and license
-
- -v, --verbose
- Show success/failure messages
-
- -H, --huge
- Use hugelatex (if available)
-
- -i, --interactive
- Run LaTeX interactively (implies verbose)
-
- -n, --no-config
- Ignore $(HOME)/.dvipsrc
-
- -o, --output
- Specify output file (ONLY for use with a single input file)
-
- --pst
- Write eepic file using PSTricks macros
-
- --tikz
- Write eepic file using tikz macros
-
- --eepic
- Write eepic file using eepic macros
-
- -p, --pkg <LaTeX package>
- Use an additional LaTeX package in the temporary LaTeX file, e.g.
- "-p floatflt". Multiple packages are specified one per "-p" flag.
-
- -pdf, --pdf
- Create PDF file instead of EPS
-
- -ps, --ps
- Create standalone PostScript file (overrides --pdf)
-
- --pstcol
- Use (obsolete) pstcol package instead of pstricks
-
- -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.
-
- --size
- Set default font size: 10, 11, or 12 (default)
-
- Other options are passed to epix (q.v.).
-
-HELP
-ePiX_bugreport
-
-} # End of elaps_help
-
-# Generate US letter-friendly LaTeX file
-function elaps_make_latex ()
-{
- ALL_LATEX_PKGS="$ELAPS_PKGS"
-
-# Get LATEX_PKGS from input file
- ePiX_usepackages $2
- if [ ! -z "$LATEX_PKGS" ]; then # should always be true...
- ALL_LATEX_PKGS="$ALL_LATEX_PKGS,$LATEX_PKGS"
- else # compatibility fallback
- ALL_LATEX_PKGS="$ALL_LATEX_PKGS,epic,eepic,pstricks"
- fi
-
-# Clear global
- unset LATEX_PKGS
-
-# No effect unless file requires pstricks
- if [ ! -z "$ELAPS_PSTCOL" ]; then
- ALL_LATEX_PKGS="${ALL_LATEX_PKGS/pstricks/$ELAPS_PSTCOL/}"
- fi
-
-cat <<LaTeX >> $1
-\documentclass[${ELAPS_SIZE}pt]{article}
-\usepackage{$ALL_LATEX_PKGS}
-\setlength{\textwidth}{7.5in}
-\setlength{\textheight}{9.5in}
-\setlength{\oddsidemargin}{-0.5in}
-\setlength{\topmargin}{0in}
-\pagestyle{empty}
-
-\begin{document}
-\vfil
-\begin{center}
-\input{$2}
-\end{center}
-\vfil
-\end{document}
-
-LaTeX
-} # End of elaps_make_latex
-
-
-function elaps_parse_options ()
-{
- while [ "$1" != "${1#-}" ]; do
- case "$1" in
-
- -h|--help)
- ePiX_usage elaps $ELAPS_DOT_EXT
- elaps_help
- exit 0
- ;;
-
- -H|--huge)
- if [ $(which hugelatex 2> /dev/null) ]; then
- LATEX_BIN=hugelatex
- else
- ePiX_warn " hugelatex not available, ignoring \"$1\" option"
- fi
- shift
- ;;
-
- -i|--interactive)
- EPIX_STDOUT="$SYSTEM_STDOUT"
- LATEX_INTERACT="errorstopmode"
- shift
- ;;
-
- -n|--no-config) # do not use ~/.dvipsrc
- export DVIPSRC="$SYSTEM_DEVNULL"
- shift
- ;;
-
- -o|--output)
- if [ "$2" = "${2%%.eps}.eps" ]; then
- EPIX_OUTROOT="${2%%.eps}"
-
- elif [ "$2" = "${2%%.pdf}.pdf" ]; then
- ELAPS_PDF="yes"
- EPIX_OUTROOT="${2%%.pdf}"
-
- else
- EPIX_OUTROOT="$2"
- fi
- ELAPS_USER_OUT="yes"
- shift 2
- ;;
-
- --pst)
- EPIX_OPTS=("${EPIX_OPTS[@]}" "-DEPIX_FMT_PSTRICKS")
- shift; continue
- ;;
-
- --tikz)
- EPIX_OPTS=("${EPIX_OPTS[@]}" "-DEPIX_FMT_TIKZ")
- shift; continue
- ;;
-
- --eepic)
- EPIX_OPTS=("${EPIX_OPTS[@]}" "-DEPIX_FMT_EEPIC")
- shift; continue
- ;;
-
- -P)
- DVIPS_OPTS=("${DVIPS_OPTS[@]}" "-P$2")
- shift 2
- ;;
-
- -P*)
- DVIPS_OPTS=("${DVIPS_OPTS[@]}" "$1")
- shift
- ;;
-
- -pdf|--pdf)
- ELAPS_PDF="yes"
- shift
- ;;
-
- -ps|--ps)
- ELAPS_PS="yes"
- ELAPS_PDF="no" # redundant; enforced by logic later
- shift
- ;;
-
- --pstcol)
- ELAPS_PSTCOL="pstcol,xcolor"
- shift
- ;;
-
- -p|--pkg)
- if [ "$2" != "${2#-}" ]; then
- ePiX_warn "\"$1\" cannot be followed by \"$2\"; skipping"
- shift 1
- else
- ELAPS_PKGS="$ELAPS_PKGS,$2"
- shift 2
- fi
- ;;
-
- -p*)
- ELAPS_PKGS="$ELAPS_PKGS,${1#-p}"
- shift
- ;;
-
- # Deliberately undocumented; run silently, no log file
- -q|--quiet)
- EPIX_STDOUT="$SYSTEM_DEVNULL"
- EPIX_STDERR="$SYSTEM_DEVNULL"
- LATEX_INTERACT="batchmode"
- shift; continue
- ;;
-
- --size)
- ELAPS_SIZE="$2"
- shift 2
- ;;
-
- -V|--version|--gpl)
- ePiX_version elaps
- 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
- ;;
-
-
- # pass other options to epix
- -i*|-u|-x|-I|-L|-l|-W)
- EPIX_OPTS=("${EPIX_OPTS[@]}" "$1" "$2")
- shift 2
- ;;
-
- -b)
- ePiX_warn "Skipping option \"$1 $2\""
- shift 2
- ;;
-
- *)
- EPIX_OPTS=("${EPIX_OPTS[@]}" "$1")
- shift
- ;;
- esac
- done
-
- # Assume remaining parameters are input files
- INFILE_COUNT=$#
-
- if [ "$ELAPS_USER_OUT" = "yes" -a $INFILE_COUNT -gt 1 ]; then
- shift $(($INFILE_COUNT - 1))
- ePiX_warn "Output file specified with multiple input files. Skipping all but \"$*\""
- fi
-
- ELAPS_FILE_LIST=("$@")
-} # end of elaps_parse_options()
-
-
-function elaps_process_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 "${ELAPS_FILE_LIST[@]}"; do
-
- # sets EPIX_INROOT, EPIX_SUFFIX, EPIX_NOTFOUND, touches EPIX_LOGFILE
- epix_parse_filename "$EPIX_INFILE" "$ELAPS_EXTENSIONS"
- let processed=processed+1
-
- if [ "$EPIX_NOTFOUND" = "yes" ]; then
- let failure=failure+1
- continue
- fi
-
- : ${EPIX_OUTROOT:=$EPIX_INROOT}
- EPIX_OUTFILE="$EPIX_OUTROOT".eepic
-
- # Create eepic file if necessary
- if [ "$EPIX_SUFFIX" != "eepic" ]; then
- if [ -f "$EPIX_OUTFILE" ]; then # back up existing file
- mv -f "$EPIX_OUTFILE" "${EPIX_OUTFILE}~"
- fi
-
- TMP_CMD=(@bindir@/epix "${EPIX_OPTS[@]}" -o "$EPIX_OUTFILE" "$EPIX_INFILE")
-
- ePiX_command "${TMP_CMD[@]}"
- echo "---" | tee -a "$EPIX_LOGFILE" > "$EPIX_STDOUT"
-
- if [ "$EPIX_INFILE" -nt "$EPIX_OUTFILE" ]; then
- ePiX_warn "\"${TMP_CMD[*]}\" failed"
- unset EPIX_OUTFILE
- unset EPIX_OUTROOT
- let failure=failure+1
- continue
-
- else
- ln -s "$EPIX_OUTFILE" "$ELAPS_TEMP_EEPIC"
- fi
-
- else # we were passed an eepic file name
- ln -s "$EPIX_INFILE" "$ELAPS_TEMP_EEPIC"
- fi
-
- elaps_make_latex "$ELAPS_TEMP_LATEX" "$ELAPS_TEMP_EEPIC"
-
- # Create $ELAPS_TEMP_PS
- TMP_CMD=($LATEX_BIN -interaction=$LATEX_INTERACT "$ELAPS_TEMP_LATEX")
-
- ePiX_command "${TMP_CMD[@]}"
-
- if [ "$ELAPS_TEMP_LATEX" -nt "$ELAPS_TEMP_DVI" ]; then
- # Report informative (but fake) command line
- ePiX_warn "\"$LATEX_BIN -interaction=$LATEX_INTERACT ${EPIX_INROOT}.tex\" failed"
- rm -f "$ELAPS_TEMP_LATEX" "$ELAPS_TEMP_EEPIC" # clean temps
- unset EPIX_OUTFILE
- unset EPIX_OUTROOT
- let failure=failure+1
- continue
- else
- echo "---" | tee -a "$EPIX_LOGFILE" > "$EPIX_STDOUT"
- fi
-
- TMP_CMD=(dvips "${DVIPS_OPTS[@]}" -f -o "$ELAPS_TEMP_PS" "$ELAPS_TEMP_DVI")
-
- ePiX_command "${TMP_CMD[@]}"
-
- if [ "$ELAPS_TEMP_DVI" -nt "$ELAPS_TEMP_PS" ]; then
- # Report informative (but fake) command line
- ePiX_warn "\"dvips ${DVIPS_OPTS[@]} -f -o ${EPIX_INROOT}.ps ${EPIX_INROOT}.dvi\" failed"
-
- unset EPIX_OUTFILE
- unset EPIX_OUTROOT
- let failure=failure+1
- continue
- else
- echo "---" | tee -a "$EPIX_LOGFILE" > "$EPIX_STDOUT"
- fi
-
- if [ "$ELAPS_PS" = "yes" ]; then
- # fix title; can't conveniently put sed command into ePiX_command
- echo -n "sed \"s/$PROG-$PID/$EPIX_INROOT/g\" \"$ELAPS_TEMP_PS\"" \
- | tee -a "$EPIX_LOGFILE" > "$EPIX_STDOUT"
- echo " > \"$EPIX_OUTROOT.ps\"" \
- | tee -a "$EPIX_LOGFILE" > "$EPIX_STDOUT"
-
- sed "s/$PROG-$PID/$EPIX_INROOT/g" "$ELAPS_TEMP_PS" \
- > "$EPIX_OUTROOT.ps"
-
- else
- # Create eps file,
- TMP_CMD=("$PS2EPS" "$ELAPS_TEMP_PS")
- ePiX_command "${TMP_CMD[@]}"
-
- # fix title,
- echo -n "sed \"s/$PROG-$PID/$EPIX_INROOT/g\" \"$ELAPS_TEMP_EPSI\""\
- | tee -a "$EPIX_LOGFILE" > "$EPIX_STDOUT"
- echo " > \"$EPIX_OUTROOT.eps\"" \
- | tee -a "$EPIX_LOGFILE" > "$EPIX_STDOUT"
-
- sed "s/$PROG-$PID/$EPIX_INROOT/g" \
- "$ELAPS_TEMP_EPSI" > "$EPIX_OUTROOT.eps" &&
- rm -f "$ELAPS_TEMP_EPSI"
-
- # create pdf if requested,
- if [ "$ELAPS_PDF" = "yes" ]; then
- echo -n "grep -v \"^%%Orientation:\" \"$EPIX_OUTROOT.eps\"" \
- | tee -a "$EPIX_LOGFILE" > "$EPIX_STDOUT"
- echo " | epstopdf --filter --outfile=\"$EPIX_OUTROOT.pdf\"" \
- | tee -a "$EPIX_LOGFILE" > "$EPIX_STDOUT"
- # avoid ghostscript rotation bug
- grep -v "^%%Orientation:" "$EPIX_OUTROOT.eps" \
- | epstopdf --filter --outfile="$EPIX_OUTROOT.pdf"
- rm -f "$EPIX_OUTROOT.eps" # clean up eps
- fi
- fi
-
- let success=success+1
- unset EPIX_OUTFILE
- unset EPIX_OUTROOT
-
- # and clean up
- rm -f "$ELAPS_TEMP_LATEX" "$ELAPS_TEMP_DVI" "$ELAPS_TEMP_PS" \
- "$ELAPS_TEMP_EEPIC" "$PROG-$PID.aux" "$PROG-$PID.log"
-
- echo -e "\nTranscript written on $EPIX_LOGFILE" > "$EPIX_STDOUT"
-
- done # for EPIX_INFILE in $INFILE_LIST
-
- if [ $processed -gt 1 ]; then
- echo "$processed files processed: $success successfully, $failure failed" > "$EPIX_STDERR"
- fi
-} # elaps_process_files()
-
-
-## Script proper starts here ##
-
-if [ $# -eq 0 ]; then
- ePiX_usage elaps $ELAPS_DOT_EXT
- elaps_help
- exit 0
-fi
-
-elaps_parse_options "$@"
-
-elaps_process_files "${ELAPS_FILE_LIST[@]}"
-
-exit 0