summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/arabtex/hewrite.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/arabtex/hewrite.sty')
-rw-r--r--Master/texmf-dist/tex/latex/arabtex/hewrite.sty589
1 files changed, 589 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/arabtex/hewrite.sty b/Master/texmf-dist/tex/latex/arabtex/hewrite.sty
new file mode 100644
index 00000000000..968c1ffbf40
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/arabtex/hewrite.sty
@@ -0,0 +1,589 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hewrite.sty
+% ArabTeX
+% Modifications for Hebrew mode
+% 21.05.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Formale Methoden der Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@ident {hewrite.sty} {3.11 for all supported Hebrew fonts} {21.05.2003}
+
+\UsePackage {hebsymb} % Hebrew font character definitions
+\UsePackage {hebchrs} % Hebrew letter token definitions
+
+\chardef \sind@t 1 \chardef \shind@t 2 \chardef \rd@t 3
+\chardef \r@phe 4 \chardef \illch@r 33
+
+\newcount \heb@dsp \newcount \heb@cd
+\newcount \heb@voc \newcount \h@modii \newcount \h@modi
+
+\newif \if@dagesh \newif \if@final \newif \if@meteg
+%\newif \ifhv@wel % is obsolete, remove!
+\newif \ifsp@c
+
+\newdimen \h@ht \newdimen \h@p
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \heb@write #1>{% Hebrew output routine
+\iftest@write \tracingmacros = 1
+\iftest@parse \else \a@verb (#1)>\fi\fi
+\a@write@hook
+\ifa@@write \heb@testfont \heb@beg #1>0+0*>\fi
+\iftest@write \tracingmacros = 0
+\fi }
+
+\def \heb@testfont {% diagnose font, look for vowels and ayin
+\edef \next {\the\font }%
+\ifx \next \h@font \else
+\iftest@font \a@message {Hebrew font \next selected.}\fi
+\global\let \h@font \next \h@testfont \fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \isch@r #1{00% code position in font not empty?
+\setbox0 \hbox {\tracinglostchars 0 \char #1}%
+\ifdim \wd0 = \z@ \xpa \setiffalse \fi }
+
+\def \h@testfont {% diagnose font, look for vowels and ayin
+\if\isch@r {"80}\global\heb@dsp "20\else
+\if\isch@r {"E0}\global\heb@dsp "80\else
+\if\isch@r {"60}\global\heb@dsp 0\else
+ \global\heb@dsp 0\errmessage {no usable Hebrew font found}%
+\fi\fi\fi
+\gdef \v@adj {0}\global\h@ht \ht0 \global\h@p .1\h@ht \relax
+\xdef \a@slant {\xpa\getfactor \the\fontdimen1\font }%
+\heb@cd \heb@dsp \advance \heb@cd 114 \xdef \hc@Pv {\the\heb@cd }%
+\if\isch@r {"10}\set@shalom\else
+\if\isch@r {1}\set@hclassic\else
+ \set@hebstd
+\fi\fi }
+
+\def \set@hclassic {% and dclassic, hcaption, dcaption
+\global\let \h@kern \relax \global\sp@cfalse
+\gdef \v@adj {0}\gdef \hc@Pv {123}%
+\if\isch@r {"30}\global\sp@ctrue
+\gdef \v@adj {-.2}\gdef \hc@Pv {114}%
+\fi \set@hcls }
+
+\def \set@shalom {% shlm_old, shlm_stk, shlm_scr
+\gdef \h@kern {\kern.05em }\global\sp@cfalse
+\set@shlm }
+
+\def \set@hebstd {% jerusalem, oldjaffa, telaviv, deadsea,
+% fr, frbx, frsl, crml, crmlsl
+\global\let \h@kern \relax \global\sp@ctrue
+\set@hstd }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \heb@beg #1#2*#3{% start output
+% c m * c
+\h@test@chr #1\heb@end #1#2*#3}
+
+\def \heb@end #1#2*#3{% final character
+% c m * c
+\ifx #1>\let \next \relax
+\else \def \next {\heb@mid #3}%
+ \ifx #1-\else
+ \ifcat \nxp #1-\h@put@spec #1#2*#3<%
+ \else \h@put@end #1#2*#3<%
+ \fi\fi
+ \h@test@chr #3%
+\fi \next }
+
+\def \heb@mid #1#2*#3{% non-final character
+% c m * c
+\ifx #1>\let \next \relax
+\else \def \next {\heb@mid #3}%
+ \ifcat \nxp #1-\h@put@spec #1#2*#3<%
+ \else \h@put@mid #1#2*#3<%
+ \fi
+ \h@test@chr #3%
+\fi \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \h@put@end {% final position
+\if@final \advance \act@cd -1 \fi \h@put@mid }
+
+\gdef \h@put@mid #1#2+#3*#4<{% deposit character
+% c m1 + m2 * c <
+% \def \next {\heb@mid #4}%
+\ifnum \act@cd = \hc@@ \relax \h@put@ill \else % illegal character
+\case #1\of
+{ B{\put@maqqef \def \next {\heb@end #4}}
+ K{\put@box {$|$}}
+ M{\put@box {$\Box$}}
+ WN{\put@phantom }
+ y{\h@ylig #4<}
+ w{\h@wlig #4<}
+\default {\h@putchar }
+}\endcase
+\fi
+\heb@accent #2+#3*\h@kern
+\ifnum \act@cd = \hc@l \relax \smash {\unhbox \ab@x }%
+\else \unhbox \ab@x
+\fi }
+
+\def \h@wlig #1<{% waw ligatures
+\ifx #1w%
+\fi
+\h@putchar }
+
+\def \h@ylig #1<{% yod ligatures
+\ifx #1w%
+\fi
+\h@putchar }
+
+\def \h@put@ill {\put@box {$\bullet$}}
+
+\def \put@phantom {% small space
+\heb@cd \hc@y \advance \heb@cd \heb@dsp
+\put@box {\hphantom{\char \the\heb@cd }}}
+
+{\catcode`\^ 12 \catcode `\_ 12 \catcode `\& 12
+\catcode `\A 12 \catcode `\B 12 \catcode `\C 12
+\catcode `\D 12 \catcode `\E 12 \catcode `\F 12
+\catcode `\G 12 \catcode `\H 12 \catcode `\I 12
+\catcode `\J 12 \catcode `\K 12 \catcode `\L 12
+\catcode `\M 12 \catcode `\N 12 \catcode `\O 12
+\catcode `\P 12
+%
+\gdef \h@put@spec #1#2*#3<{% special character
+% c m * c <
+\case #1\of
+{ -|{}
+% !,.{#1}
+ :{#1\,}
+ \lq {\rm \bf `}
+ `{\rm \bf ``}
+% A{{\tt "}\def \next {\heb@end #3}} % "
+ A{{\tt "}} % "
+ B{{\rm \bf ,}} % ,
+ C{{\tt -}} % -
+ D{{\tt \char`\|}} % |
+% E{{\tt \char'015}\def \next {\heb@end #3}} % '
+ E{{\tt \char'015}} % '
+ F{{\tt \char`\\}} % \
+ G{{\tt \char`\}}} % {
+ H{{\tt \char`\{}} % }
+ I{{\bf $\cdots$}} % ...
+ J{{\bf $\div$}} % -:-
+ K{{\tt \char`\>}} % <
+ L{{\tt \char`\<}} % >
+ M{{\rm \bf --}} % --
+ N{{\rm \bf ---}} % ---
+ O{{\rm \bf `}} % `
+% P{{\rm \bf '}\def \next {\heb@end #3}} % '
+ P{{\rm \bf '}} % '
+\default {{\ifsp@c \else \rm \bf \fi
+ \ifx #1][\else \ifx #1[]\else
+ #1\fi\fi}}
+}\endcase
+\ifx #1A\else \ifx #1E\else \ifx #1'\else
+\def \next {\heb@end #3}\fi\fi\fi }
+}% \catcodes 12
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \h@test@chr #1{% get character attributes
+\@dageshfalse \@finalfalse \act@mod 0 \act@cd \hc@@
+\def \hc@sk {#1}%
+\csname tc@\string #1\endcsname }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \heb@accent #1+#2*{% put modifier onto contents of "\ab@x"
+% m1 + m2 *
+\red@mod = 0#1 \relax \advance \red@mod 100 \relax
+\xpa \heb@split \the\red@mod *\h@putaccent #2*}
+
+\def \h@putmod #1{% deposit modifier
+\ifcase #1\relax
+\or \h@sindot \or \h@shindot \or \h@rdot \or \h@raphe \fi }
+
+\def \heb@split 1#1#2*{% separate modifier 1
+% 1 m11 m12 *
+\h@putmod #1\@metegfalse \red@mod = #2\relax
+\ifnum \red@mod > 3 \advance \red@mod -4 \@metegtrue \fi
+\ifnum \red@mod > 1 \advance \red@mod -2 \h@cholem \fi
+\ifnum \red@mod > 0 \advance \red@mod -1 \@dageshtrue \fi }
+
+\def \h@putaccent #1*{% deposit vowels
+\h@putmod \act@mod
+\ifcase 0#1\relax
+\put@dummy \or \put@shwa \or \put@patach \or \put@chireq \or
+\put@qibbus \or \put@chpatach \or \put@chsegol \or \put@chqames \or
+\put@segol \or \put@cholem \or \put@qames \or \put@sere \or
+\put@qameschat \or \put@patachf \fi
+\if@dagesh \put@dagesh \fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \h@@putchar {% choose character glyph
+\ifnum \act@cd = \hc@v \relax \h@putlig \hc@w \hc@w \else
+\ifnum \act@cd = \hc@oy \relax \h@putlig \hc@y \hc@w \else
+\ifnum \act@cd = \hc@ey \relax \h@putlig \hc@y \hc@y \else
+ \h@put@char \act@cd
+\fi\fi\fi }%
+
+\def \h@putlig #1#2{% Hebrew ligature
+\h@put@char #1\setbox4 \box \ab@x
+\h@put@char #2\setbox6 \box \ab@x
+\put@box {\unhcopy4 \unhcopy6 }}%
+
+\def \h@put@char #1{% choose character glyph
+\heb@cd #1\advance \heb@cd \heb@dsp \put@b@x {\the\heb@cd }}%
+
+\def \h@@putdot #1{% put a dot above a character
+\dimen@ 1.25\h@ht \dimen2 \a@slant\dimen@ \advance\dimen2 #1\a@wd
+\global\setbox\ab@x \hbox
+{\rlap{\kern\dimen2 \raise\dimen@\hbox{\the@dot }}\unhcopy\ab@x}}%
+
+\def \h@@raphe {% no dagesh
+\setbox0 \hbox {\the@raphe }\dimen@ 1.25\h@ht
+\dimen2 .5\a@wd \advance\dimen2 -.5\wd0 \advance\dimen2 \a@slant\dimen@
+\global\setbox\ab@x \hbox
+{\rlap{\kern\dimen2 \raise\dimen@\box0 }\unhcopy\ab@x }}%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dynamic definitions for vowel positioning
+% CAUTION: these routines are called in HMODE
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef \set@hcls{% routines for the HCLASSIC font family
+\globaldefs = 1\relax
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\let \h@putchar \h@@putchar
+%
+\def \put@maqqef {% deposit maqqef
+\put@b@x {\the\act@cd }}%
+%
+\def \h@vowel {% check for meteg
+\if@meteg \xpa \h@meteg \else \xpa \h@putvowel \fi }%
+%
+\def \h@meteg ##1{% put vowel and meteg
+\h@putvowel {\char 8 ##1}}%
+%
+\def \the@dot {\char 0}%
+%
+\def \the@raphe {\vrule width.8\a@wd height.4pt depth0pt }%
+%
+\def \put@dummy {\h@vowel {}}% % dummy for meteg, silluq
+\def \put@patach {\h@vowel {\char 1 }}% % patach
+\def \put@qames {\h@vowel {\char 2 }}% % qames
+\def \put@segol {\h@vowel {\char 3 }}% % segol
+\def \put@qibbus {\h@vowel {\char 4 }}% % qibbus
+\def \put@chireq {\h@vowel {\char 5 }}% % chireq
+\def \put@qameschat {\h@vowel {\char 6 }}% % qames chatuph
+\def \put@shwa {\h@vowel {\char 7 }}% % shwa
+\def \put@sere {\h@vowel {\char 9 }}% % sere
+\def \put@chpatach {\h@vowel {\char 1 \char 7 }}% % chateph patach
+\def \put@chsegol {\h@vowel {\char 3 \char 7 }}% % chateph segol
+\def \put@chqames {\h@vowel {\char 6 \char 7 }}% % chateph qames
+\def \put@cholem {\h@vowel {}\h@ldot }% % cholem breve, meteg?
+\def \put@patachf {\h@vowel {\hphantom
+ {\char 1 }\char 1 }}% % patach furtivum
+%
+\def \put@dagesh {\def \vadj {.48}\def \hadj {0}% default
+\ifnum \act@cd = \hc@j \def \hadj {-.2}\fi % gimel
+\ifnum \act@cd = \hc@w \def \hadj {-.3}\def \vadj {.55}\fi % waw
+\ifnum \act@cd = \hc@z \def \hadj {-.4}\fi % zayin
+\ifnum \act@cd = \hc@tt \def \hadj {.1}\fi % tet
+\ifnum \act@cd = \hc@y \def \hadj {-.45}\def \vadj {.55}\fi % yod
+\ifnum \act@cd = \hc@l \def \hadj {-.1}\def \vadj {.3}\fi % lamed
+\ifnum \act@cd = \hc@n \def \hadj {-.2}\fi % nun
+\ifnum \act@cd = \hc@nf \def \hadj {-.2}\fi % nun sofit
+\ifnum \act@cd = \hc@f \def \hadj {.15}\fi % pe
+\ifnum \act@cd = \hc@ff \def \hadj {.15}\fi % pe sofit
+\ifnum \act@cd = \hc@ss \def \hadj {.1}\fi % sade
+\ifnum \act@cd = \hc@sf \def \hadj {.1}\fi % sade sofit
+\ifnum \act@cd = \hc@si \def \hadj {.07}\fi % shin
+\ifnum \act@cd = \hc@M \def \vadj {.7}\fi % box
+\dimen@ \vadj\a@ht \dimen2 \a@slant\dimen@
+\advance\dimen2 \hadj\a@wd \advance\dimen2 .5\a@wd
+\global\setbox\ab@x \hbox
+%{\rlap{\kern\dimen2 \raise\dimen@\hbox{\char 0 }}\unhcopy\ab@x}}%
+{\rlap{\kern\dimen2 \raise\dimen@\hbox{\the@dot }}\unhcopy\ab@x}}%
+%
+\let \h@put@dot \h@@putdot
+%
+\let \h@raphe \h@@raphe
+%
+\def \h@shindot {\h@put@dot {.8}}% % right dot for shin
+%
+\def \h@sindot {\h@put@dot {.2}}% % left dot for sin
+%
+\def \h@rdot {\h@put@dot {.5}}% % right dot for waw, cholem breve
+%
+\def \h@ldot {% left dot for cholem breve
+\ifnum \act@cd = \hc@l \relax \h@put@dot {-.1}% lamed
+\else \h@put@dot {.1}\fi }%
+%
+\def \h@cholem {% depends on carrier
+\ifnum \act@cd = \hc@w \h@rdot \else \h@shindot \fi }%
+%
+\def \h@putvowel ##1{% vowel mark
+\ifx ##1\relax \relax \else \def \hadj {0}\def \vadj {0}%
+\ifnum \act@cd = \hc@P \let\vadj \v@adj \put@b@x{\hc@Pv }\else % vowel-ayin
+\ifnum \act@cd = \hc@kf \def \hadj {-.1}\def \vadj {.85}\else % final kaph
+\ifnum \act@cd = \hc@r \def \hadj {.35}\else % resh
+\ifnum \act@cd = \hc@d \def \hadj {.2}\else % daleth
+\ifnum \act@cd = \hc@q \def \hadj {.1}\else % qoph
+\ifnum \act@cd = \hc@w \def \hadj {.15}\else % waw
+\ifnum \act@cd = \hc@si \def \hadj {-.1}\else % sin
+\fi\fi\fi\fi\fi\fi\fi
+\setbox0 \hbox to \a@wd {\hss ##1\hss}\dimen@ \vadj\a@ht
+\dimen2 \a@slant\dimen@ \advance\dimen2 \hadj\a@wd
+\global\setbox\ab@x \hbox
+{\rlap {\kern\dimen2 \raise\dimen@\box0 }\unhcopy\ab@x }\fi }%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\globaldefs = 0 }% end font HCLASSIC
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\global\let \@set@hcls \set@hcls
+
+\gdef \set@hcls{% routines for the HCLASSIC font family
+%\globaldefs = 1\relax
+\a@message {patch HCLASSIC}%
+\@set@hcls
+\globaldefs = 1\relax
+\def \the@dot {\vrule width\h@p height0pt depth\h@p }%
+\def \the@mdot {\vrule width\h@p height-\h@p depth2\h@p }%
+\def \the@ldot {\vrule width\h@p height-2\h@p depth3\h@p }%
+\def \the@shwa {\the@dot \kern-\h@p \the@ldot }%
+\def \the@sere {\the@dot \kern\h@p \the@dot }%
+\def \the@segol {\the@dot \the@ldot \the@dot }%
+\def \the@qibbus {\the@dot \the@mdot \the@ldot }%
+\def \the@meteg {\vrule width\h@p height0pt depth3\h@p }%
+\def \the@meteg {\vrule width\h@p height-.2\h@p depth3\h@p }%
+\def \the@patach {\vrule width3\h@p height0pt depth\h@p }%
+\def \the@qames {\the@patach \kern-2\h@p \the@meteg \kern\h@p }%
+\def \put@dummy {\h@vowel {}}%
+\def \put@patach {\h@vowel {\the@patach }}%
+\def \put@qames {\h@vowel {\the@qames }}%
+\def \put@segol {\h@vowel {\the@segol }}%
+\def \put@qibbus {\h@vowel {\the@qibbus }}%
+\def \put@chireq {\h@vowel {\the@dot }}%
+\def \put@qameschat {\h@vowel {\the@qames }}%
+\def \put@shwa {\h@vowel {\the@shwa }}%
+\def \put@sere {\h@vowel {\the@sere }}%
+\def \put@chpatach {\h@vowel {\the@patach \kern\h@p \the@shwa }}%
+\def \put@chsegol {\h@vowel {\the@segol \kern\h@p \the@shwa }}%
+\def \put@chqames {\h@vowel {\the@qames \kern\h@p \the@shwa }}%
+\def \put@cholem {\h@vowel {}\h@ldot }%
+\def \put@patachf {\h@vowel {\kern4\h@p \the@patach }}%
+%
+\def \h@vowel {% check for meteg
+\if@meteg \xpa \h@meteg \else \xpa \h@putvowel \fi }%
+%
+\def \h@meteg ##1{% put vowel and meteg
+\h@putvowel {\the@meteg \kern\h@p ##1}}%
+%
+\def \h@vowel ##1{% check for meteg
+\if@meteg \xpa \h@meteg \else \xpa \h@putvowel \fi {\raise -.2ex\hbox{##1}}}%
+%
+\def \h@vowel ##1{% check for meteg
+\if@meteg \h@meteg {##1}\else \h@putvowel {\raise -.2ex\hbox{##1}}\fi }%
+%
+\def \h@vowel ##1{% check for meteg
+\if@meteg
+\h@putvowel {\raise -.2ex\hbox{\the@meteg \kern\h@p ##1}}\else
+\h@putvowel {\raise -.2ex\hbox{##1}}\fi }%
+%
+\globaldefs = 0 }% end standard fonts
+
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef \set@shlm{% routines for the SHALOM fonts
+\globaldefs = 1\relax
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\def \h@putchar {% choose character glyph
+\ifnum \act@cd = \hc@v \put@b@x {18}\else
+\ifnum \act@cd = \hc@oy \put@b@x {19}\else
+\ifnum \act@cd = \hc@ey \put@b@x {21}\else
+ \h@put@char \act@cd
+\fi\fi\fi }%
+%
+\def \put@maqqef {% deposit maqqef
+\put@box {\char 25}}%
+%
+\def \isn@rrow {% narrow character (class 2) ?
+\xpa \is@in@list \hc@sk gdinrwyGDNORUWY>}%
+%
+\def \h@vowel ##1{% check class
+\heb@voc = ##1\relax
+\if\isn@rrow \advance\heb@voc 17
+\put@box {\unhcopy\ab@x \llap{\char\heb@voc \kern -.075em }}%
+\else \xpa\h@v@wel \xpa{\the\heb@voc }\fi }%
+%
+\def \h@v@wel ##1{% add vowel char right
+\put@box {\unhcopy\ab@x \char ##1}}%
+%
+\def \put@dummy {\relax }% % dummy for meteg, silluq (?)
+\def \put@segol {\h@vowel {50}}% % segol
+\def \put@qibbus {\h@vowel {52}}% % qibbus
+\def \put@qameschat {\h@vowel {54}}% % qames chatuph
+\def \put@sere {\h@vowel {49}}% % sere
+\def \put@chpatach {\h@vowel {56}}% % chateph patach
+\def \put@chsegol {\h@vowel {55}}% % chateph segol
+\def \put@chqames {\h@vowel {57}}% % chateph qames
+\def \put@patachf {\h@vowel {70}}% % patach furtivum
+%
+\def \put@shwa {% shwa on final kaf ?
+\ifnum\act@cd = \hc@kf \h@v@wel {85}\else \h@vowel {51}\fi }%
+%
+\def \put@qames {% qames on alef or final kaf ?
+\ifnum\act@cd = \hc@a \put@b@x {17}\else
+\ifnum\act@cd = \hc@kf \h@v@wel {86}\else \h@vowel {54}\fi\fi }%
+%
+\def \put@patach {% patach on alef or 2 yod ?
+\ifnum\act@cd = \hc@ey \put@b@x {22}\else
+\ifnum\act@cd = \hc@a \put@b@x {16}\else \h@vowel {53}\fi\fi }%
+%
+\def \put@chireq {% chireq on yod ?
+\ifnum\act@cd = \hc@y \put@b@x {20}\else \h@vowel {48}\fi }%
+%
+\def \put@cholem {% cholem breve, meteg?
+\ifnum\act@cd = \hc@l \put@box {\char 61 \unhcopy\ab@x }\else
+\put@box {\rlap {\kern .1em \char 61 }\unhcopy\ab@x }\fi }%
+%
+\def \h@cholem {% depends on carrier
+\ifnum \act@cd = \hc@w \put@b@x {62}\else \h@shindot \fi }%
+%
+\def \h@shindot {% right dot for sin
+\ifnum \act@cd = \hc@si \put@b@x {23}\else
+\put@box {\unhcopy\ab@x \llap {\char 61 \kern .1em}}\fi }%
+%
+\def \h@sindot {% left dot for sin
+\ifnum \act@cd = \hc@si \put@b@x {24}\fi }%
+%
+\def \h@rdot {\h@v@wel {61}}% right dot for waw, cholem breve
+%
+\def \h@raphe {\h@v@wel {26}}% soft consonant
+%
+\def \put@dagesh {% test for yod and class2
+\ifnum\act@cd = \hc@y \h@v@wel {89}\else
+\ifnum\act@cd = \hc@w \put@b@x {60}\else
+\if\isn@rrow \put@box {\unhcopy\ab@x \llap {\char 88 \kern .05em}}%
+\else \h@v@wel {87}\fi\fi\fi }%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\globaldefs = 0 }% end font SHALOM
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef \set@hstd{% routines for the standard fonts
+\globaldefs = 1\relax
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\let \h@putchar \h@@putchar
+%
+\def \put@maqqef {% deposit maqqef
+\put@box {\kern.05em\raise .6ex \hbox {\char \act@cd }\kern.05em}}%
+%
+\let \h@raphe \h@@raphe
+%
+\let \h@put@dot \h@@putdot
+%
+\def \h@shindot {\h@put@dot {.8}}% % right dot for shin
+%
+\def \h@sindot {\h@put@dot {.2}}% % left dot for sin
+%
+\def \h@rdot {\h@put@dot {.5}}% % right dot for waw, cholem breve
+%
+\def \h@ldot {% left dot for cholem breve
+%\ifnum \act@cd = \hc@l \relax \h@put@dot {-.1}% lamed
+\ifnum \act@cd = \hc@l \relax \h@put@dot {-.2}% lamed
+\else \h@put@dot {.1}\fi }%
+%
+\def \h@cholem {% depends on carrier
+\ifnum \act@cd = \hc@w \h@rdot \else \h@shindot \fi }%
+%
+\def \the@raphe {\vrule width8\h@p height\h@p depth0pt }%
+\def \the@dot {\vrule width\h@p height0pt depth\h@p }%
+\def \the@mdot {\vrule width\h@p height-\h@p depth2\h@p }%
+\def \the@ldot {\vrule width\h@p height-2\h@p depth3\h@p }%
+\def \the@shwa {\the@dot \kern-\h@p \the@ldot }%
+\def \the@sere {\the@dot \kern\h@p \the@dot }%
+\def \the@segol {\the@dot \the@ldot \the@dot }%
+\def \the@qibbus {\the@dot \the@mdot \the@ldot }%
+\def \the@meteg {\vrule width\h@p height0pt depth3\h@p }%
+\def \the@patach {\vrule width3\h@p height0pt depth\h@p }%
+\def \the@qames {\the@patach \kern-2\h@p \the@meteg \kern\h@p }%
+%
+\def \put@dummy {\relax}%
+\def \put@dummy {\h@vowel {}}%
+\def \put@patach {\h@vowel {\the@patach }}%
+\def \put@qames {\h@vowel {\the@qames }}%
+\def \put@segol {\h@vowel {\the@segol }}%
+\def \put@qibbus {\h@vowel {\the@qibbus }}%
+\def \put@chireq {\h@vowel {\the@dot }}%
+\def \put@qameschat {\h@vowel {\the@qames }}%
+\def \put@shwa {\h@vowel {\the@shwa }}%
+\def \put@sere {\h@vowel {\the@sere }}%
+\def \put@chpatach {\h@vowel {\the@patach \kern\h@p \the@shwa }}%
+\def \put@chsegol {\h@vowel {\the@segol \kern\h@p \the@shwa }}%
+\def \put@chqames {\h@vowel {\the@qames \kern\h@p \the@shwa }}%
+\def \put@cholem {\h@vowel {}\h@ldot }%
+\def \put@patachf {\h@vowel {\kern4\h@p \the@patach }}%
+%
+\def \put@dagesh {\def \vadj {.48}\def \hadj {0}% default
+\ifnum \act@cd = \hc@j \def \hadj {-.2}\fi % gimel
+\ifnum \act@cd = \hc@w \def \hadj {-.3}\def \vadj {.55}\fi % waw
+\ifnum \act@cd = \hc@z \def \hadj {-.4}\fi % zayin
+\ifnum \act@cd = \hc@tt \def \hadj {.1}\fi % tet
+\ifnum \act@cd = \hc@y \def \hadj {-.45}\def \vadj {.55}\fi % yod
+\ifnum \act@cd = \hc@l \def \hadj {-.1}\def \vadj {.3}\fi % lamed
+\ifnum \act@cd = \hc@n \def \hadj {-.2}\fi % nun
+\ifnum \act@cd = \hc@nf \def \hadj {-.2}\fi % nun sofit
+\ifnum \act@cd = \hc@f \def \hadj {.05}\fi % pe
+\ifnum \act@cd = \hc@ff \def \hadj {.15}\fi % pe sofit
+\ifnum \act@cd = \hc@ss \def \hadj {.1}\fi % sade
+\ifnum \act@cd = \hc@sf \def \hadj {.1}\fi % sade sofit
+\ifnum \act@cd = \hc@si \def \hadj {.18}\fi % shin
+\ifnum \act@cd = \hc@M \def \vadj {.7}\fi % box
+\dimen@ \vadj\a@ht \dimen2 \a@slant\dimen@ \advance \dimen2 -\h@p
+\advance\dimen2 \hadj\a@wd \advance\dimen2 .5\a@wd
+\global\setbox\ab@x \hbox
+{\rlap{\kern\dimen2 \raise\dimen@\hbox{\the@dot }}\unhcopy\ab@x}}%
+%
+\def \h@putvowel ##1{% vowel mark
+\ifx ##1\relax \relax \else \def \hadj {0}\def \vadj {0}%
+\ifnum \act@cd = \hc@P \let\vadj \v@adj \put@b@x{\hc@Pv }\else % vowel-ayin
+\ifnum \act@cd = \hc@kf \def \hadj {-.1}\def \vadj {.85}\else % final kaph
+\ifnum \act@cd = \hc@r \def \hadj {.35}\else % resh
+\ifnum \act@cd = \hc@d \def \hadj {.2}\else % daleth
+\ifnum \act@cd = \hc@q \def \hadj {.1}\else % qoph
+\ifnum \act@cd = \hc@y \def \hadj {.1}\else % yod
+\ifnum \act@cd = \hc@w \def \hadj {.15}\else % waw
+\ifnum \act@cd = \hc@si \def \hadj {-.1}\else % sin
+\fi\fi\fi\fi\fi\fi\fi\fi
+\setbox0 \hbox to \a@wd {\hss ##1\hss}\dimen@ \vadj\a@ht
+\advance \dimen@ -2\h@p
+\dimen2 \a@slant\dimen@ \advance\dimen2 \hadj\a@wd
+\global\setbox\ab@x \hbox
+{\rlap {\kern\dimen2 \raise\dimen@\box0 }\unhcopy\ab@x }\fi }%
+%
+\def \h@vowel {% check for meteg
+\if@meteg \xpa \h@meteg \else \xpa \h@putvowel \fi }%
+%
+\def \h@meteg ##1{% put vowel and meteg
+\h@putvowel {\the@meteg \kern\h@p ##1}}%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\globaldefs = 0 }% end standard fonts
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%}% end of dynamic definitions
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+