#!/bin/sh wv_script_name="$0" which latex >/dev/null 2>&1 if [ ${?} -ne "0" ]; then echo "Could not find required program 'latex'" exit 1 fi prefix=@prefix@ exec_prefix= datadir= t_dir=. wv_opts= i_file= o_file= print_help=no while test $# -gt 0; do case "$1" in -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg= ;; esac case $1 in --prefix=*) prefix=$optarg ;; --exec-prefix=*) exec_prefix=$optarg ;; --datadir=*) datadir=$optarg ;; --targetdir=*) t_dir=$optarg ;; --charset=* | --password=*) wv_opts="$wv_opts $1" ;; -v | --version) echo @VERSION@ exit 0 ;; -\? | -h | --help) cat << EOF Usage: $wv_script_name [OPTIONS] Options: --prefix= Set prefix (default is @prefix@) --exec-prefix= Set exec_prefix (default is @exec_prefix@) --datadir= Set datadir (default is @datadir@) --targetdir= Target directory (target is /) --charset= Specify an iconv charset encoding --password= Specify password for encrypted -v, --version Print version info and exit Authors: Dom Lachowicz (dominicl@seas.upenn.edu) Caolan McNamara (original author) Visit http://www.wvware.com/ EOF exit 0 ;; -?*) echo "Option '$1' not recognized." exit 1 ;; *) if test "x$i_file" = "x"; then i_file=$1 elif test "x$o_file" = "x"; then o_file=$1 else echo "Option '$1' not recognized." exit 1 fi ;; esac shift done if test "x$i_file" = "x-"; then echo "error: cannot specify '-' as input" exit 1 fi if test -r "$i_file"; then okay=yes else echo "error: '$i_file' unreadable" exit 1 fi if test "x$o_file" = "x"; then echo "Usage: $1 [OPTIONS] " exit 1 fi if test "x$i_file" = "x-"; then echo "error: cannot specify '-' as output" exit 1 fi name=`basename "$o_file"` if test "x$o_file" != "x$name"; then echo "error: use '--targetdir' for writing in another directory" exit 1 fi name=`basename "$o_file" | sed "s/ /_/g"` name=`echo $name | sed 's/\.[^\.]*$//'` if test "x$exec_prefix" = "x"; then exec_prefix=@exec_prefix@ fi wv_exec="$exec_prefix/bin/wvWare" if test -x "$wv_exec"; then okay=yes else wv_version=`wvWare -v 2>&1 | cut -f 2 -d " "` if test "x$wv_version" = "x@VERSION@"; then wv_exec="wvWare" else echo "error: no executable at '$wv_exec' or in path" exit 1 fi fi if test "x$datadir" = "x"; then datadir=@datadir@ fi xmlcfg="$datadir/wv/wvLaTeX.xml" if test -r "$xmlcfg"; then okay=yes else echo "error: '$xmlcfg' unreadable" exit 1 fi if test -d "$t_dir"; then if test -w "$t_dir"; then okay=yes else echo "error: '$t_dir' is not writable" exit 1 fi else echo "error: '$t_dir' is not a directory" exit 1 fi # auto_wmf=`"$wv_exec" --auto-eps=wmf` # auto_emf=`"$wv_exec" --auto-eps=emf` # auto_png=`"$wv_exec" --auto-eps=png` # auto_jpg=`"$wv_exec" --auto-eps=jpg` # auto_pict=`"$wv_exec" --auto-eps=pict` im_chk=`convert --help 2>&1 | grep -v ImageMagick` if test "x$im_chk" = "x"; then im_chk="no" s_img="" else im_chk="yes" # if we have ImageMagick's convert, then use that to convert PNG, JPEG & PICT # to EPS. Therefore, need to suppress wvWare's desire to convert these: s_img="png,jpg,pict" fi "$wv_exec" $wv_opts -x "$xmlcfg" -d "$t_dir" -b "$name" "$i_file" -s "$s_img" > "$t_dir"/"$name".tex cd "$t_dir" echo echo 'Current directory: '`pwd` # First, convert any images i_okay=yes for i_name in "$name"*.wmf; do if test -r "$i_name"; then e_name=`echo "$i_name" | sed 's/wmf$/eps/'` if test -r "$e_name"; then echo '"'$e_name'"' exists - skipping... else if test "$im_chk" = "yes"; then convert "$i_name" "$e_name" if test -r "$e_name"; then echo created '"'$e_name'"' else echo '"'$i_name'"': conversion failed i_okay=no fi else echo unable to convert '"'$i_name'"' '(no converter)' i_okay=no fi fi fi done for i_name in "$name"*.emf; do if test -r "$i_name"; then e_name=`echo "$i_name" | sed 's/emf$/eps/'` if test -r "$e_name"; then echo '"'$e_name'"' exists - skipping... else echo unable to convert '"'$i_name'"' '(no converter)' i_okay=no fi fi done for i_name in "$name"*.png; do if test -r "$i_name"; then e_name=`echo "$i_name" | sed 's/png$/eps/'` if test -r "$e_name"; then echo '"'$e_name'"' exists - skipping... else if test "$im_chk" = "yes"; then convert "$i_name" "$e_name" if test -r "$e_name"; then echo created '"'$e_name'"' else echo '"'$i_name'"': conversion failed i_okay=no fi else echo unable to convert '"'$i_name'"' '(no converter)' i_okay=no fi fi fi done for i_name in "$name"*.jpg; do if test -r "$i_name"; then e_name=`echo "$i_name" | sed 's/jpg$/eps/'` if test -r "$e_name"; then echo '"'$e_name'"' exists - skipping... else if test "$im_chk" = "yes"; then convert "$i_name" "$e_name" if test -r "$e_name"; then echo created '"'$e_name'"' else echo '"'$i_name'"': conversion failed i_okay=no fi else echo unable to convert '"'$i_name'"' '(no converter)' i_okay=no fi fi fi done for i_name in "$name"*.pict; do if test -r "$i_name"; then e_name=`echo "$i_name" | sed 's/pict$/eps/'` if test -r "$e_name"; then echo '"'$e_name'"' exists - skipping... else if test "$im_chk" = "yes"; then convert "$i_name" "$e_name" if test -r "$e_name"; then echo created '"'$e_name'"' else echo '"'$i_name'"': conversion failed i_okay=no fi else echo unable to convert '"'$i_name'"' '(no converter)' i_okay=no fi fi fi done if test "$i_okay" = "no"; then echo 'WARNING: Failed to convert one or more images to EPS' fi # "$name".tex is the LaTeX file # use latex to convert this to DVI latex --interaction=batchmode "$name".tex >/dev/null 2>&1 # check latex exit status and comment or clean up if [ ${?} -ne "0" ]; then echo "Some problem running latex." echo "Check for Errors in $name.log" echo "Continuing..." else rm -f "$name".aux "$name".log "$name".tex fi # latex replaces the "tex" extension with a "dvi" extension if [ ! -f "$name".dvi ]; then echo "Conversion into dvi failed" exit 1 fi cp -f "$name".dvi "$o_file" rm -f "$name".dvi