#! /bin/sh

#{\hrulefill\ {\tt\#}
#	\vskip 1ex
#	\input ../fonts.tex % define fonts
#	\input ../title.tex % title and authors
#	\vskip 1ex
# \noindent{\tt\#}\ \hrulefill\ {\tt\#}}


#{\hrulefill\ src2latex2ps\ \hrulefill\ {\tt\#}
# \par\vskip 1ex
# \centerline{\tt src2latex2ps [-twocolumns {\it or\/} -fourcolumns {\it or\/} -sixcolumns] [-pagelength <n>] {\sl filenames}}
# \par\vskip 1ex
# It is necessary for {\sl src2latex2dvi\/}
# that the following softwares are installed properly:
# \par
# {\sl\qquad nkf\ ,\ \ src2latex\ ,\ \ jlatex\ ,\ \ dvi2ps\ ,\ \ psnup\ .}
# \par
# \noindent {\sl Src2latex2dvi\/} is just written
# by \ K. Amano \ for his private use.
# Here Kanji converter {\sl nkf\/} would be unnecessary
# if you are not Japanese.
# If you are a {\TeX} user,
# you have to replace ``{\tt latex}`` with ``{\tt tex}``.
# If {\tt jtex} and {\tt jlatex} are not installed at your site
# and if you are a Japanese install them
# else replace them with {\tt tex} and {\tt latex} respectively.
# \par
# \noindent{\tt\#}\ \hrulefill\ {\tt\#}}


#{\hrulefill\ Preliminaries\ \hrulefill\ {\tt\#}
# \par
# Though {\sl src2latex\/} accepts only one single filename,
# {\sl src2latex2ps} allows to input multiple filenames
# by virtue of the first\  `` {\tt for $\cdots$} ''\ statement.
# There are three options related to column style
# \par
# {\tt -twocolumns}\quad or\quad {\tt -fourcolumns}
# \par\noindent
# and number of lines printed in each logical page
# \par
# {\tt -pagelength}\ \ $n$
# \par\noindent
# Here we also make a carbon copy of tilde file
# \ {\sl filename}{\~\ }
# which is created by Emacs, Mule or something like that.
# \par
# \noindent{\tt\#}\ \hrulefill\ {\tt\#}}

if
	test $# = 0
then
	echo -n "Usage: src2latex2ps [-twocolumns] [-fourcolumns]"
	echo " [-pagelength <n>] filenames"
fi

src2tex_option=""
psnup_option=""
if
	test "$1" = "-twocolumns" -o "$1" = "-twocolumn" -o "$1" = "-2"
then
	psnup_option="-2"
	shift
fi
if
	test "$1" = "-fourcolumns" -o "$1" = "-fourcolumn" -o "$1" = "-4"
then
	psnup_option="-4"
	shift
fi
if
	test "$1" = "-sixcolumns" -o "$1" = "-sixcolumn" -o "$1" = "-6"
then
	psnup_option="-6"
	shift
fi
if
	test "$1" = "-eightcolumns" -o "$1" = "-eightcolumn" -o "$1" = "-8"
then
	psnup_option="-8"
	shift
fi
if
	test "$1" = "-pagelength" -o "$1" = "-p"
then
	shift
	src2tex_option="-$1"
	shift
fi
if
	test "$1" = "-twocolumns" -o "$1" = "-twocolumn" -o "$1" = "-2"
then
	psnup_option="-2"
	shift
fi
if
	test "$1" = "-fourcolumns" -o "$1" = "-fourcolumn" -o "$1" = "-4"
then
	psnup_option="-4"
	shift
fi
if
	test "$1" = "-sixcolumns" -o "$1" = "-sixcolumn" -o "$1" = "-6"
then
	psnup_option="-6"
	shift
fi
if
	test "$1" = "-eightcolumns" -o "$1" = "-eightcolumn" -o "$1" = "-8"
then
	psnup_option="-8"
	shift
fi

for i in $*
do

if
	test -f $i~
then
	mv $i~ $i.bak
fi

#{\hrulefill\ Any Kanji $\Rightarrow$ EUC Kanji\ \hrulefill\ {\tt\#}
# \par
# This conversion is necessary since {\sl src2latex\/} works
# only for EUC codes.
# If you don't use Japanese, you can skip this procedure.
# \par
# \noindent{\tt\#}\ \hrulefill\ {\tt\#}}

if
	test -f $i
then
	mv $i $i~
	nkf -e $i~ > $i
fi

#{\hrulefill\ Source File $\Rightarrow$ LaTeX file\ \hrulefill\ {\tt\#}
# \par
# This block is actually the main part of {\sl src2latex2ps\/}.
# Given source files are translated into {\TeX} here.
# \par
# \noindent{\tt\#}\ \hrulefill\ {\tt\#}}

if
	test -f $i
then
	echo "src2latex" $src2tex_option $i
	src2latex $src2tex_option $i
fi
if
	test -f $i~
then
	mv $i~ $i
fi

#{\hrulefill\ EUC Kanji $\Rightarrow$ JIS Kanji\ \hrulefill\ {\tt\#}
# \par
# The official Kanji is JIS Kanji at the author's site.
# So, he has applied {\tt nkf}, with {\ \tt -j\ } option,
# to {\TeX} file generated by {\sl src2latex\/}.
# And also, if there exits an input file
# it is included at the beginning of {\TeX} file.
# \par
# \noindent{\tt\#}\ \hrulefill\ {\tt\#}}

if
	test -f $i.tex
then
	if
		test -f $i.input
	then
		mv $i.tex $i.tex~
		nkf -j $i.input > $i.tex
		nkf -j $i.tex~ >> $i.tex
	else
		mv $i.tex $i.tex~
		nkf -j $i.tex~ > $i.tex
	fi
fi

#{\hrulefill\ TeX file $\Rightarrow$ DVI file\ \hrulefill\ {\tt\#}
# \par
# If {\tt jlatex} is not installed, then replace it with {\tt latex}.
# Here DVI file is nothing more than intermediate product.
# \par
# \noindent{\tt\#}\ \hrulefill\ {\tt\#}}

if
	test -f $i.tex
then
#	jtex $i.tex
	jlatex $i.tex
fi

#{\hrulefill\ DVI file $\Rightarrow$ PS file\ \hrulefill\ {\tt\#}
# \par
# If {\sl dvi2ps\/} is not installed,
# then replace it with something like that,
# {\it e.g.\/}, {\sl dvips\ ,\ \ jdvi2kps\/}.
# The command \ ''{\tt psnup}`` \ is used
# to put some logical pages on each sheet of paper.
# We remove several intermediate files at the last stage.
# \par
# \noindent{\tt\#}\ \hrulefill\ {\tt\#}}

if
	test -f $i.dvi
then
	dvi2ps $i.dvi > $i.ps~
	psnup $psnup_option $i.ps~ $i.ps
#	rm $i.tex >/dev/null 2>&1
	rm $i.tex~ >/dev/null 2>&1
	rm $i.aux >/dev/null 2>&1
	rm $i.log >/dev/null 2>&1
	rm $i.dvi >/dev/null 2>&1
	rm $i.ps~ >/dev/null 2>&1
fi

done
