#!/bin/sh # yiddish - typesets transliterated yiddish # © 1998 Ronald Florence # ron@18james.com, 18 Jun 1995, 2 Dec 1998, 4 Oct 2002 # Based on programs and fonts from # Raphael Finkel & Joel Hoffman # # Configuration # # YID = directory for Raphael Finkel's superb package # (ftp://www.cs.engr.uky.edu/cs/software/yiddishtex.tar.gz) # Latex = preferred version of LaTeX # Font = default Hebrew font (calig, deadsea, jerusalem, telaviv, # frank, oldjaffa, classic) # Dviviewer = program to view DVI files (xdvi) # Scale = default font size (small, medium, large) # Output = default output device (view, print, file, pdf, noview). # # I've left Raphael's 'MACH' mechanism intact: you can specify # different machine architectures for the executables by setting a # MACH environment variable. Make sure the Hebrew fonts and # corresponding .tfm files are installed where LaTeX can find them. # Put the font source in a public TeX directory for automatic font # generation. YID=/usr/local/src/yiddish Latex=latex Font=jerusalem Dviviewer="open -a MacDviX" Scale=medium Output=view # You shouldn't need to change anything below here. YFILES=$YID/yiddish PATH=$YFILES:$PATH TMP=$$.tex Clean="rm --" usage () { echo "usage: yiddish [options] file | - -noview create file.dvi only -view display with $Dviviewer -print|-p print -file|-f create file.ps -pdf create file.pdf -debug -scale small|medium|large -small|-medium|-large -font calig|classic|jerusalem|telaviv|oldjaffa|frank|deadsea -calig|-classic|-jerusalem|-telaviv|-oldjaffa|-frank|-deadsea Default is equivalent to yiddish -$Font -$Scale -$Output file" exit } [ $# -lt 1 ] && usage while [ $# -gt 0 ] do case $1 in -scale|-size) shift; Scale=$1 ;; -small|-medium|-large) Scale=`expr $1 : "-\(.*\)"` ;; -font) shift; Font=$1 ;; -calig|-classic|-deadsea|-oldjaffa) Font=`expr $1 : "-\(.*\)"` ;; -jerusalem|-telaviv|-frank) Font=`expr $1 : "-\(.*\)"` ;; -p|-print|-view|-noview|-file|-f|-pdf|-fax) Output=`expr $1 : "-\(.*\)"` ;; -debug) Clean=: ;; -help|-\?|\?) usage ;; *) Y=$1 ;; esac shift done case $Scale in small) Size=1000 ;; medium) Size=1500 ;; large) Size=2000 ;; *) echo "yiddish: valid scale|size parameters are small|medium|large" exit ;; esac [ "$Y" != "-" -a ! -r $Y ] && { echo "yiddish: cannot open '$Y'"; exit; } cat > $TMP << End_Of_Preface \input $YID/hebrew/hletter1.tex \input $YID/hebrew/dots.tex \input $YID/hebrew/vowels.tex \input $YFILES/yiddish.texinsert \nofiles \documentclass{letter} \setlength\parskip{2em} \def\dofont#1{ \ynow \ifnum#1=2000 \font\roman=cmr10 scaled 2073 \else\ifnum#1=1500 \font\roman=cmr10 scaled 1500 \else\ifnum#1=1000 \font\roman=cmr10 scaled 1000 \else\font\roman=cmr10 scaled 1000 \errmessage{size #1 strange} \fi\fi\fi \setlength\baselineskip{2.3em} } \def\classic#1{\font\ynow=hclassic scaled #1 \dofont{#1}} \def\calig#1{\font\ynow=hebc10 scaled #1 \dofont{#1}} \def\frank#1{\font\ynow=fr.600 scaled #1 \dofont{#1}} \def\deadsea#1{\font\ynow=DeadSea.300 scaled #1 \dofont{#1}} \def\jerusalem#1{\font\ynow=Jerusalem.300 scaled #1 \dofont{#1}} \def\oldjaffa#1{\font\ynow=OldJaffa.300 scaled #1 \dofont{#1}} \def\telaviv#1{\font\ynow=TelAviv.300 scaled #1 \dofont{#1}} % to put a \ on a line preventing processing, use \relax. \pretolerance=10000 % turn off hyphenation \textheight=10in \textwidth=6.5in \begin{document} \pagestyle{empty} %\hsize=6in % if you need wider %\parindent=0in % if you need different %\parskip=.2in % if you need different \oddsidemargin=-0.00in % shove \evensidemargin=-0.00in % shove \topmargin=-1.00in % raise; use -1in for standard; 1in for proof \def\strut{\rule{0in}{2.1em}} % for table rows End_Of_Preface echo "\\${Font}{$Size}" >> $TMP respell.$MACH $YFILES/respell.data $Y - | recast.pl | transform.$MACH >> $TMP echo "\end{document}" >> $TMP $Latex $TMP > /dev/null $YID/ivd2dvi/ivd2dvi.$MACH -b -b -b -b < $$.dvi > $Y.dvi $Clean $$.dvi $$.log $$.tex case $Output in print|p) dvips $Y.dvi ;; view) $Dviviewer $Y.dvi sleep 1 $Clean $Y.dvi ;; file|f) dvips -q -f $Y.dvi > $Y.ps ;; fax|pdf) dvips -q -f $Y.dvi > $Y.ps ps2pdf $Y.ps $Y.pdf $Clean $Y.dvi $Y.ps ;; noview) ;; esac