diff options
Diffstat (limited to 'language/arabic/arabtex/texinput/hewrite.sty')
-rw-r--r-- | language/arabic/arabtex/texinput/hewrite.sty | 1178 |
1 files changed, 589 insertions, 589 deletions
diff --git a/language/arabic/arabtex/texinput/hewrite.sty b/language/arabic/arabtex/texinput/hewrite.sty index 48b39b642b..968c1ffbf4 100644 --- a/language/arabic/arabtex/texinput/hewrite.sty +++ b/language/arabic/arabtex/texinput/hewrite.sty @@ -1,589 +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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% 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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + |