| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| VERSION="1.10.0" |
| |
| help=no |
| list=""; |
| level=1000; |
| resource="" |
| showversion=no |
| incstdres=yes |
| |
| while [ $ |
| case $1 in |
| -h) |
| help="yes" |
| ;; |
| -m) |
| shift |
| level="$1" |
| ;; |
| -m*) |
| level=$(echo $1 | sed -e 's/^-m//') |
| ;; |
| -r) |
| shift |
| resource="$resource $1" |
| ;; |
| -r*) |
| resource="$resource $(echo $1 | sed -e 's/^-r//')" |
| ;; |
| -v) |
| echo "$(basename "$0") version $VERSION" >&2; exit 1; |
| ;; |
| -x) |
| incstdres=no |
| ;; |
| *) |
| list="$list $1" |
| esac |
| shift |
| done |
| |
| |
| |
| level=$(echo $level | sed -e 's/[^0-9]*\([0-9]*\).*/0\1/') |
| [ $level -eq 0 ] && |
| { echo "$level is an incorrect magnification level." >&2; exit 1; } |
| |
| checked_res="" |
| [ -n "$resource" ] && |
| for file_res in $resource; do |
| [ ! -f $file_res ] && |
| { echo "Resource file $file_res not found." >&2; exit 1; } |
| [ -z "$(echo $file_res | grep '^[~/]')" ] && |
| file_res="$(pwd)/$file_res" |
| checked_res="$file_res $checked_res" |
| done |
| resource=$checked_res |
| |
| [ \( "$incstdres" = "yes" \) -a \( -f $HOME/.$(basename "$0")rc \) ] && |
| resource="$HOME/.$(basename "$0")rc $resource" |
| |
| [ \( -z "$list" \) -o \( "$help" = yes \) ] && |
| { echo " |
| Usage: $(basename "$0") [-h] [-m level] [-r resource] <file[.fig]>... |
| |
| -h display help (this page) |
| -m level set magnification level. A value of 1000 corresponds to |
| 100% and the scale is linear. Default value is [1000]. |
| -r resource specifies the name of a resource file which contains TeX macros. |
| TeX macro must be one line to allow multiple resource files. |
| By deault, it tries to open ~/.$(basename "$0")rc |
| -v show version. |
| -x exclude standard resource file. |
| |
| |
| <file1> <ile2>... figure's name |
| |
| generate the postcript file <filename>.eps to be included as |
| a figure in the latex file with graphics.cls |
| |
| This script allows to generate a postscript figure created by xfig containing |
| text to be processed by latex. Fonts are scaled properly. |
| The fonts to be used in xfig are the latex fonts. |
| It is convinient to use the alias lafig for calling xfig: |
| alias lafig 'xfig -specialtext -latexfonts -startlatexFont default' |
| " >&2; exit 1; } |
| |
| |
| |
| |
| |
| TMP=${TMP:=$TEMP} |
| TMP=${TMP:=/tmp} |
| [ \( -d $TMP \) -a \( -w $TMP \) ] || |
| { echo "$TMP must be a writable directory" >&2; exit 1; } |
| |
| |
| prefixe=$(basename "$0")-$$ |
| dvi_file=$prefixe.dvi |
| eps_file=$prefixe.eps |
| latex_file=$prefixe.tex |
| pstex_file=$prefixe.pstex |
| pstex_t_file=$prefixe.pstex_t |
| trap "rm -f $TMP/$prefixe*; cd $OLDPWD; exit 1;" 0 1 2 15 |
| |
| |
| if [ $(dvips -v | cut -d" " -f4 | tr '.[:alpha:]' ' ' | sed -e "s, ,,g") -gt 570 ]; then |
| dvi_v="cool" |
| else |
| dvi_v="ugly" |
| fi |
| |
| |
| for fig_file in $list; do |
| |
| name=$(basename "$fig_file" .fig) |
| dir=$(dirname "$fig_file") |
| fig_file=$name.fig |
| |
| |
| |
| [ ! -f $dir/$fig_file ] && |
| { echo "Skipping \"$fig_file\" (file not found)..." >&2; continue; } |
| |
| head -1 "$dir/$fig_file" | grep -q "#FIG" || |
| { echo "Skipping \"$fig_file\" (not a FIG file)..." >&2; continue; } |
| |
| |
| echo -n "Processing \"$fig_file\": " |
| |
| if [ "$dvi_v" = "cool" ]; then |
| fig2dev -L pstex -n "$name" "$dir/$fig_file" $TMP/$pstex_file && |
| fig2dev -L pstex_t -p $pstex_file "$dir/$fig_file" $TMP/$pstex_t_file || |
| { echo "Error while creating pstex and/or pstex_t files" >&2; continue; } |
| else |
| fig2dev -L pstex -n "$name" "$dir/$fig_file" $TMP/$pstex_file && |
| fig2dev -L pstex_t "$dir/$fig_file" $TMP/$pstex_t_file || |
| { echo "Error while creating pstex and/or pstex_t files" >&2; continue; } |
| fi |
| |
| cd $TMP |
| |
| |
| cat >$latex_file <<EOF |
| \documentclass{article} |
| |
| \usepackage{pslatex} |
| \usepackage{times} |
| \usepackage[T1]{fontenc} |
| \usepackage{amsmath} |
| \usepackage{amstext} |
| \usepackage{amsfonts} |
| \usepackage{amssymb} |
| \usepackage[mathscr]{eucal} |
| \usepackage{bbm} |
| \usepackage[dvips]{color} |
| \usepackage[dvips]{epsfig} |
| EOF |
| |
| |
| |
| [ -n "$resource" ] && |
| { ( for fil_res in $resource; do |
| cat $fil_res; |
| done ) | sort | uniq >>$latex_file; } |
| |
| |
| |
| if [ "$dvi_v" = "cool" ]; then |
| cat >>$latex_file <<EOF |
| \setlength{\textheight}{100cm} |
| \setlength{\textwidth}{100cm} |
| \setlength{\oddsidemargin}{-0pt} |
| \setlength{\evensidemargin}{-0pt} |
| \setlength{\topmargin}{-0pt} |
| \setlength{\parindent}{0pt} |
| \pagestyle{empty} |
| |
| \begin{document} |
| \begin{center} |
| \input{$pstex_t_file} |
| \end{center} |
| \end{document} |
| EOF |
| else |
| cat >>$latex_file >>EOF |
| \setlength{\textheight}{100cm} |
| \setlength{\textwidth}{100cm} |
| \setlength{\oddsidemargin}{-0pt} |
| \setlength{\evensidemargin}{-0pt} |
| \setlength{\topmargin}{-0pt} |
| \setlength{\parindent}{0pt} |
| |
| \pagestyle{empty} |
| |
| \begin{document} |
| \makebox[0pt][l]{\color[rgb]{1,1,1}.}\par |
| \mbox{\begin{picture}(0,0) |
| \epsfig{file=$pstex_file} |
| \end{picture} |
| \input{$pstex_t_file} |
| \hspace{-10pt}\makebox[0pt][l]{\color[rgb]{1,1,1}.} |
| \end{document} |
| EOF |
| fi |
| |
| |
| |
| echo -n "LaTeX, " |
| latex 2>&1 "\nonstopmode\input{$latex_file}" 1>/dev/null 2>&1 || |
| { cat $prefixe.log >&2; continue; } |
| |
| echo -n "dvips " |
| dvips -Pwww -q -x $level -E $dvi_file -o $eps_file 1>/dev/null 2>&1 |
| |
| |
| |
| bbox=$(grep '^%%BoundingBox:' $eps_file | head -1 | |
| awk '{printf "0 0 %d %d", $4-$2, $5-$3;}') |
| epsffit $bbox $eps_file $eps_file.tmp |
| mv $eps_file.tmp $eps_file |
| |
| |
| |
| if [ -s $eps_file ]; then |
| cd $OLDPWD |
| cat $TMP/$eps_file | |
| sed 's/^\(%%Title: \).*/\1'"$name"'/1' > "$name".eps |
| |
| |
| |
| echo "-> \"$name.eps\"" |
| fi |
| |
| |
| rm -f $TMP/$prefixe* 2>/dev/null |
| |
| done |
| |
| |