summaryrefslogtreecommitdiff
path: root/fonts/redis/hebrew.tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/redis/hebrew.tex
Initial commit
Diffstat (limited to 'fonts/redis/hebrew.tex')
-rw-r--r--fonts/redis/hebrew.tex59
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