diff options
Diffstat (limited to 'fonts/redis/hebrew.tex')
-rw-r--r-- | fonts/redis/hebrew.tex | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/fonts/redis/hebrew.tex b/fonts/redis/hebrew.tex new file mode 100644 index 0000000000..0e1c03862c --- /dev/null +++ b/fonts/redis/hebrew.tex @@ -0,0 +1,59 @@ +%\tracingmacros=1 +%\tracingonline=1 +%\tolerance=10000 +\font\ivrit=redis10 +\hyphenchar\ivrit=-1 + +% The two lines below are taken from D.Knuth and P.MacKay +% TuGBoat vol.8,#1,page 14. +\def\hebrew#1{{\ivrit \reflect#1\empty\tcelfer }} +\def\reflect#1#2\tcelfer{\ifx#1\empty\else\reflect#2\tcelfer#1\fi} + +\let\ivrswch=| % This is the Hebrew-Latin toggle +\def\ivrbar{\vrule height7pt width0.5pt} % This makes the vertical bar printabl + +\newbox\ivrbox % The Hebrew box to test full line condition +\newbox\ivrstrbox % The box to hold the current Hebrew string +\setbox\ivrbox=\hbox{} +\setbox\ivrstrbox=\hbox{} + +\newif\ifivrmd % Mode flag defaults to false +\def\ivrswitch{ + \ifivrmd \message{Latin } % Toggle Hebrew on / Hebrew off + \hbox to\hsize{\hfil \unhbox\ivrstrbox \unskip} \par \ivrmdfalse + \else \message{Hebrew } \unskip \par \setbox\ivrstrbox=\hbox{} + \ivrmdtrue \parindent=0pt + \fi } + +\def\ivrconcat#1#2{#1 #2} + +\newif\ifivrscrboxfull % Verify if scratch box is full +\def\ivrcheckscrbox{ + \setbox\ivrbox=\hbox{\ivrconcat{\blabla}{\unhcopy\ivrstrbox}} + \ivrscrboxfullfalse + \ifdim \hsize < \wd\ivrbox \ivrscrboxfulltrue \fi} + +\newif\ifivrmorinp % Stuff waiting for processing? + +\def\ivrmorinp{\ivrmorinptrue\ifeof\ivrfile\ivrmorinpfalse\fi} + +\def\ivrplugword{\read\ivrfile to\blabla % Process a token from input file + \if\ivrswch\blabla \ivrswitch % Watch for a V-bar + \else + \ifivrmd \ivrcheckscrbox +% \immediate\write16{\blabla} + \ifivrscrboxfull \hbox to\hsize{\unhcopy\ivrstrbox \unskip} + \setbox\ivrstrbox=\hbox{\blabla} + \else \setbox\ivrstrbox=\hbox{\ivrconcat{\blabla}{\unhcopy\ivrstrbox}} \fi + \else \blabla \fi % Hebrew mode + \fi} % Switcher + +\newread\ivrfile +\openin\ivrfile=hebtext.tex + +\loop \ivrmorinp \ifivrmorinp \ivrplugword \repeat + +\ifivrmd \ivrstr \fi + +\closein\ivrfile +\bye |