1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2% hewrite.sty 3% ArabTeX 4% Modifications for Hebrew mode 5% 21.05.2003 6%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 7% (c) Klaus Lagally 8% Institut fuer Formale Methoden der Informatik 9% Universitaet Stuttgart 10%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 11 12\a@ident {hewrite.sty} {3.11 for all supported Hebrew fonts} {21.05.2003} 13 14\UsePackage {hebsymb} % Hebrew font character definitions 15\UsePackage {hebchrs} % Hebrew letter token definitions 16 17\chardef \sind@t 1 \chardef \shind@t 2 \chardef \rd@t 3 18\chardef \r@phe 4 \chardef \illch@r 33 19 20\newcount \heb@dsp \newcount \heb@cd 21\newcount \heb@voc \newcount \h@modii \newcount \h@modi 22 23\newif \if@dagesh \newif \if@final \newif \if@meteg 24%\newif \ifhv@wel % is obsolete, remove! 25\newif \ifsp@c 26 27\newdimen \h@ht \newdimen \h@p 28 29%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 30 31\def \heb@write #1>{% Hebrew output routine 32\iftest@write \tracingmacros = 1 33\iftest@parse \else \a@verb (#1)>\fi\fi 34\a@write@hook 35\ifa@@write \heb@testfont \heb@beg #1>0+0*>\fi 36\iftest@write \tracingmacros = 0 37\fi } 38 39\def \heb@testfont {% diagnose font, look for vowels and ayin 40\edef \next {\the\font }% 41\ifx \next \h@font \else 42\iftest@font \a@message {Hebrew font \next selected.}\fi 43\global\let \h@font \next \h@testfont \fi } 44 45%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 46 47\def \isch@r #1{00% code position in font not empty? 48\setbox0 \hbox {\tracinglostchars 0 \char #1}% 49\ifdim \wd0 = \z@ \xpa \setiffalse \fi } 50 51\def \h@testfont {% diagnose font, look for vowels and ayin 52\if\isch@r {"80}\global\heb@dsp "20\else 53\if\isch@r {"E0}\global\heb@dsp "80\else 54\if\isch@r {"60}\global\heb@dsp 0\else 55 \global\heb@dsp 0\errmessage {no usable Hebrew font found}% 56\fi\fi\fi 57\gdef \v@adj {0}\global\h@ht \ht0 \global\h@p .1\h@ht \relax 58\xdef \a@slant {\xpa\getfactor \the\fontdimen1\font }% 59\heb@cd \heb@dsp \advance \heb@cd 114 \xdef \hc@Pv {\the\heb@cd }% 60\if\isch@r {"10}\set@shalom\else 61\if\isch@r {1}\set@hclassic\else 62 \set@hebstd 63\fi\fi } 64 65\def \set@hclassic {% and dclassic, hcaption, dcaption 66\global\let \h@kern \relax \global\sp@cfalse 67\gdef \v@adj {0}\gdef \hc@Pv {123}% 68\if\isch@r {"30}\global\sp@ctrue 69\gdef \v@adj {-.2}\gdef \hc@Pv {114}% 70\fi \set@hcls } 71 72\def \set@shalom {% shlm_old, shlm_stk, shlm_scr 73\gdef \h@kern {\kern.05em }\global\sp@cfalse 74\set@shlm } 75 76\def \set@hebstd {% jerusalem, oldjaffa, telaviv, deadsea, 77% fr, frbx, frsl, crml, crmlsl 78\global\let \h@kern \relax \global\sp@ctrue 79\set@hstd } 80 81%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 82 83\def \heb@beg #1#2*#3{% start output 84% c m * c 85\h@test@chr #1\heb@end #1#2*#3} 86 87\def \heb@end #1#2*#3{% final character 88% c m * c 89\ifx #1>\let \next \relax 90\else \def \next {\heb@mid #3}% 91 \ifx #1-\else 92 \ifcat \nxp #1-\h@put@spec #1#2*#3<% 93 \else \h@put@end #1#2*#3<% 94 \fi\fi 95 \h@test@chr #3% 96\fi \next } 97 98\def \heb@mid #1#2*#3{% non-final character 99% c m * c 100\ifx #1>\let \next \relax 101\else \def \next {\heb@mid #3}% 102 \ifcat \nxp #1-\h@put@spec #1#2*#3<% 103 \else \h@put@mid #1#2*#3<% 104 \fi 105 \h@test@chr #3% 106\fi \next } 107 108%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 109 110\def \h@put@end {% final position 111\if@final \advance \act@cd -1 \fi \h@put@mid } 112 113\gdef \h@put@mid #1#2+#3*#4<{% deposit character 114% c m1 + m2 * c < 115% \def \next {\heb@mid #4}% 116\ifnum \act@cd = \hc@@ \relax \h@put@ill \else % illegal character 117\case #1\of 118{ B{\put@maqqef \def \next {\heb@end #4}} 119 K{\put@box {$|$}} 120 M{\put@box {$\Box$}} 121 WN{\put@phantom } 122 y{\h@ylig #4<} 123 w{\h@wlig #4<} 124\default {\h@putchar } 125}\endcase 126\fi 127\heb@accent #2+#3*\h@kern 128\ifnum \act@cd = \hc@l \relax \smash {\unhbox \ab@x }% 129\else \unhbox \ab@x 130\fi } 131 132\def \h@wlig #1<{% waw ligatures 133\ifx #1w% 134\fi 135\h@putchar } 136 137\def \h@ylig #1<{% yod ligatures 138\ifx #1w% 139\fi 140\h@putchar } 141 142\def \h@put@ill {\put@box {$\bullet$}} 143 144\def \put@phantom {% small space 145\heb@cd \hc@y \advance \heb@cd \heb@dsp 146\put@box {\hphantom{\char \the\heb@cd }}} 147 148{\catcode`\^ 12 \catcode `\_ 12 \catcode `\& 12 149\catcode `\A 12 \catcode `\B 12 \catcode `\C 12 150\catcode `\D 12 \catcode `\E 12 \catcode `\F 12 151\catcode `\G 12 \catcode `\H 12 \catcode `\I 12 152\catcode `\J 12 \catcode `\K 12 \catcode `\L 12 153\catcode `\M 12 \catcode `\N 12 \catcode `\O 12 154\catcode `\P 12 155% 156\gdef \h@put@spec #1#2*#3<{% special character 157% c m * c < 158\case #1\of 159{ -|{} 160% !,.{#1} 161 :{#1\,} 162 \lq {\rm \bf `} 163 `{\rm \bf ``} 164% A{{\tt "}\def \next {\heb@end #3}} % " 165 A{{\tt "}} % " 166 B{{\rm \bf ,}} % , 167 C{{\tt -}} % - 168 D{{\tt \char`\|}} % | 169% E{{\tt \char'015}\def \next {\heb@end #3}} % ' 170 E{{\tt \char'015}} % ' 171 F{{\tt \char`\\}} % \ 172 G{{\tt \char`\}}} % { 173 H{{\tt \char`\{}} % } 174 I{{\bf $\cdots$}} % ... 175 J{{\bf $\div$}} % -:- 176 K{{\tt \char`\>}} % < 177 L{{\tt \char`\<}} % > 178 M{{\rm \bf --}} % -- 179 N{{\rm \bf ---}} % --- 180 O{{\rm \bf `}} % ` 181% P{{\rm \bf '}\def \next {\heb@end #3}} % ' 182 P{{\rm \bf '}} % ' 183\default {{\ifsp@c \else \rm \bf \fi 184 \ifx #1][\else \ifx #1[]\else 185 #1\fi\fi}} 186}\endcase 187\ifx #1A\else \ifx #1E\else \ifx #1'\else 188\def \next {\heb@end #3}\fi\fi\fi } 189}% \catcodes 12 190 191%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 192 193\def \h@test@chr #1{% get character attributes 194\@dageshfalse \@finalfalse \act@mod 0 \act@cd \hc@@ 195\def \hc@sk {#1}% 196\csname tc@\string #1\endcsname } 197 198%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 199 200\def \heb@accent #1+#2*{% put modifier onto contents of "\ab@x" 201% m1 + m2 * 202\red@mod = 0#1 \relax \advance \red@mod 100 \relax 203\xpa \heb@split \the\red@mod *\h@putaccent #2*} 204 205\def \h@putmod #1{% deposit modifier 206\ifcase #1\relax 207\or \h@sindot \or \h@shindot \or \h@rdot \or \h@raphe \fi } 208 209\def \heb@split 1#1#2*{% separate modifier 1 210% 1 m11 m12 * 211\h@putmod #1\@metegfalse \red@mod = #2\relax 212\ifnum \red@mod > 3 \advance \red@mod -4 \@metegtrue \fi 213\ifnum \red@mod > 1 \advance \red@mod -2 \h@cholem \fi 214\ifnum \red@mod > 0 \advance \red@mod -1 \@dageshtrue \fi } 215 216\def \h@putaccent #1*{% deposit vowels 217\h@putmod \act@mod 218\ifcase 0#1\relax 219\put@dummy \or \put@shwa \or \put@patach \or \put@chireq \or 220\put@qibbus \or \put@chpatach \or \put@chsegol \or \put@chqames \or 221\put@segol \or \put@cholem \or \put@qames \or \put@sere \or 222\put@qameschat \or \put@patachf \fi 223\if@dagesh \put@dagesh \fi } 224 225%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 226 227\def \h@@putchar {% choose character glyph 228\ifnum \act@cd = \hc@v \relax \h@putlig \hc@w \hc@w \else 229\ifnum \act@cd = \hc@oy \relax \h@putlig \hc@y \hc@w \else 230\ifnum \act@cd = \hc@ey \relax \h@putlig \hc@y \hc@y \else 231 \h@put@char \act@cd 232\fi\fi\fi }% 233 234\def \h@putlig #1#2{% Hebrew ligature 235\h@put@char #1\setbox4 \box \ab@x 236\h@put@char #2\setbox6 \box \ab@x 237\put@box {\unhcopy4 \unhcopy6 }}% 238 239\def \h@put@char #1{% choose character glyph 240\heb@cd #1\advance \heb@cd \heb@dsp \put@b@x {\the\heb@cd }}% 241 242\def \h@@putdot #1{% put a dot above a character 243\dimen@ 1.25\h@ht \dimen2 \a@slant\dimen@ \advance\dimen2 #1\a@wd 244\global\setbox\ab@x \hbox 245{\rlap{\kern\dimen2 \raise\dimen@\hbox{\the@dot }}\unhcopy\ab@x}}% 246 247\def \h@@raphe {% no dagesh 248\setbox0 \hbox {\the@raphe }\dimen@ 1.25\h@ht 249\dimen2 .5\a@wd \advance\dimen2 -.5\wd0 \advance\dimen2 \a@slant\dimen@ 250\global\setbox\ab@x \hbox 251{\rlap{\kern\dimen2 \raise\dimen@\box0 }\unhcopy\ab@x }}% 252 253%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 254% dynamic definitions for vowel positioning 255% CAUTION: these routines are called in HMODE 256%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 257% 258%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 259\gdef \set@hcls{% routines for the HCLASSIC font family 260\globaldefs = 1\relax 261%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 262% 263\let \h@putchar \h@@putchar 264% 265\def \put@maqqef {% deposit maqqef 266\put@b@x {\the\act@cd }}% 267% 268\def \h@vowel {% check for meteg 269\if@meteg \xpa \h@meteg \else \xpa \h@putvowel \fi }% 270% 271\def \h@meteg ##1{% put vowel and meteg 272\h@putvowel {\char 8 ##1}}% 273% 274\def \the@dot {\char 0}% 275% 276\def \the@raphe {\vrule width.8\a@wd height.4pt depth0pt }% 277% 278\def \put@dummy {\h@vowel {}}% % dummy for meteg, silluq 279\def \put@patach {\h@vowel {\char 1 }}% % patach 280\def \put@qames {\h@vowel {\char 2 }}% % qames 281\def \put@segol {\h@vowel {\char 3 }}% % segol 282\def \put@qibbus {\h@vowel {\char 4 }}% % qibbus 283\def \put@chireq {\h@vowel {\char 5 }}% % chireq 284\def \put@qameschat {\h@vowel {\char 6 }}% % qames chatuph 285\def \put@shwa {\h@vowel {\char 7 }}% % shwa 286\def \put@sere {\h@vowel {\char 9 }}% % sere 287\def \put@chpatach {\h@vowel {\char 1 \char 7 }}% % chateph patach 288\def \put@chsegol {\h@vowel {\char 3 \char 7 }}% % chateph segol 289\def \put@chqames {\h@vowel {\char 6 \char 7 }}% % chateph qames 290\def \put@cholem {\h@vowel {}\h@ldot }% % cholem breve, meteg? 291\def \put@patachf {\h@vowel {\hphantom 292 {\char 1 }\char 1 }}% % patach furtivum 293% 294\def \put@dagesh {\def \vadj {.48}\def \hadj {0}% default 295\ifnum \act@cd = \hc@j \def \hadj {-.2}\fi % gimel 296\ifnum \act@cd = \hc@w \def \hadj {-.3}\def \vadj {.55}\fi % waw 297\ifnum \act@cd = \hc@z \def \hadj {-.4}\fi % zayin 298\ifnum \act@cd = \hc@tt \def \hadj {.1}\fi % tet 299\ifnum \act@cd = \hc@y \def \hadj {-.45}\def \vadj {.55}\fi % yod 300\ifnum \act@cd = \hc@l \def \hadj {-.1}\def \vadj {.3}\fi % lamed 301\ifnum \act@cd = \hc@n \def \hadj {-.2}\fi % nun 302\ifnum \act@cd = \hc@nf \def \hadj {-.2}\fi % nun sofit 303\ifnum \act@cd = \hc@f \def \hadj {.15}\fi % pe 304\ifnum \act@cd = \hc@ff \def \hadj {.15}\fi % pe sofit 305\ifnum \act@cd = \hc@ss \def \hadj {.1}\fi % sade 306\ifnum \act@cd = \hc@sf \def \hadj {.1}\fi % sade sofit 307\ifnum \act@cd = \hc@si \def \hadj {.07}\fi % shin 308\ifnum \act@cd = \hc@M \def \vadj {.7}\fi % box 309\dimen@ \vadj\a@ht \dimen2 \a@slant\dimen@ 310\advance\dimen2 \hadj\a@wd \advance\dimen2 .5\a@wd 311\global\setbox\ab@x \hbox 312%{\rlap{\kern\dimen2 \raise\dimen@\hbox{\char 0 }}\unhcopy\ab@x}}% 313{\rlap{\kern\dimen2 \raise\dimen@\hbox{\the@dot }}\unhcopy\ab@x}}% 314% 315\let \h@put@dot \h@@putdot 316% 317\let \h@raphe \h@@raphe 318% 319\def \h@shindot {\h@put@dot {.8}}% % right dot for shin 320% 321\def \h@sindot {\h@put@dot {.2}}% % left dot for sin 322% 323\def \h@rdot {\h@put@dot {.5}}% % right dot for waw, cholem breve 324% 325\def \h@ldot {% left dot for cholem breve 326\ifnum \act@cd = \hc@l \relax \h@put@dot {-.1}% lamed 327\else \h@put@dot {.1}\fi }% 328% 329\def \h@cholem {% depends on carrier 330\ifnum \act@cd = \hc@w \h@rdot \else \h@shindot \fi }% 331% 332\def \h@putvowel ##1{% vowel mark 333\ifx ##1\relax \relax \else \def \hadj {0}\def \vadj {0}% 334\ifnum \act@cd = \hc@P \let\vadj \v@adj \put@b@x{\hc@Pv }\else % vowel-ayin 335\ifnum \act@cd = \hc@kf \def \hadj {-.1}\def \vadj {.85}\else % final kaph 336\ifnum \act@cd = \hc@r \def \hadj {.35}\else % resh 337\ifnum \act@cd = \hc@d \def \hadj {.2}\else % daleth 338\ifnum \act@cd = \hc@q \def \hadj {.1}\else % qoph 339\ifnum \act@cd = \hc@w \def \hadj {.15}\else % waw 340\ifnum \act@cd = \hc@si \def \hadj {-.1}\else % sin 341\fi\fi\fi\fi\fi\fi\fi 342\setbox0 \hbox to \a@wd {\hss ##1\hss}\dimen@ \vadj\a@ht 343\dimen2 \a@slant\dimen@ \advance\dimen2 \hadj\a@wd 344\global\setbox\ab@x \hbox 345{\rlap {\kern\dimen2 \raise\dimen@\box0 }\unhcopy\ab@x }\fi }% 346% 347%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 348\globaldefs = 0 }% end font HCLASSIC 349%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 350% 351\global\let \@set@hcls \set@hcls 352 353\gdef \set@hcls{% routines for the HCLASSIC font family 354%\globaldefs = 1\relax 355\a@message {patch HCLASSIC}% 356\@set@hcls 357\globaldefs = 1\relax 358\def \the@dot {\vrule width\h@p height0pt depth\h@p }% 359\def \the@mdot {\vrule width\h@p height-\h@p depth2\h@p }% 360\def \the@ldot {\vrule width\h@p height-2\h@p depth3\h@p }% 361\def \the@shwa {\the@dot \kern-\h@p \the@ldot }% 362\def \the@sere {\the@dot \kern\h@p \the@dot }% 363\def \the@segol {\the@dot \the@ldot \the@dot }% 364\def \the@qibbus {\the@dot \the@mdot \the@ldot }% 365\def \the@meteg {\vrule width\h@p height0pt depth3\h@p }% 366\def \the@meteg {\vrule width\h@p height-.2\h@p depth3\h@p }% 367\def \the@patach {\vrule width3\h@p height0pt depth\h@p }% 368\def \the@qames {\the@patach \kern-2\h@p \the@meteg \kern\h@p }% 369\def \put@dummy {\h@vowel {}}% 370\def \put@patach {\h@vowel {\the@patach }}% 371\def \put@qames {\h@vowel {\the@qames }}% 372\def \put@segol {\h@vowel {\the@segol }}% 373\def \put@qibbus {\h@vowel {\the@qibbus }}% 374\def \put@chireq {\h@vowel {\the@dot }}% 375\def \put@qameschat {\h@vowel {\the@qames }}% 376\def \put@shwa {\h@vowel {\the@shwa }}% 377\def \put@sere {\h@vowel {\the@sere }}% 378\def \put@chpatach {\h@vowel {\the@patach \kern\h@p \the@shwa }}% 379\def \put@chsegol {\h@vowel {\the@segol \kern\h@p \the@shwa }}% 380\def \put@chqames {\h@vowel {\the@qames \kern\h@p \the@shwa }}% 381\def \put@cholem {\h@vowel {}\h@ldot }% 382\def \put@patachf {\h@vowel {\kern4\h@p \the@patach }}% 383% 384\def \h@vowel {% check for meteg 385\if@meteg \xpa \h@meteg \else \xpa \h@putvowel \fi }% 386% 387\def \h@meteg ##1{% put vowel and meteg 388\h@putvowel {\the@meteg \kern\h@p ##1}}% 389% 390\def \h@vowel ##1{% check for meteg 391\if@meteg \xpa \h@meteg \else \xpa \h@putvowel \fi {\raise -.2ex\hbox{##1}}}% 392% 393\def \h@vowel ##1{% check for meteg 394\if@meteg \h@meteg {##1}\else \h@putvowel {\raise -.2ex\hbox{##1}}\fi }% 395% 396\def \h@vowel ##1{% check for meteg 397\if@meteg 398\h@putvowel {\raise -.2ex\hbox{\the@meteg \kern\h@p ##1}}\else 399\h@putvowel {\raise -.2ex\hbox{##1}}\fi }% 400% 401\globaldefs = 0 }% end standard fonts 402 403% 404%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 405\gdef \set@shlm{% routines for the SHALOM fonts 406\globaldefs = 1\relax 407%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 408% 409\def \h@putchar {% choose character glyph 410\ifnum \act@cd = \hc@v \put@b@x {18}\else 411\ifnum \act@cd = \hc@oy \put@b@x {19}\else 412\ifnum \act@cd = \hc@ey \put@b@x {21}\else 413 \h@put@char \act@cd 414\fi\fi\fi }% 415% 416\def \put@maqqef {% deposit maqqef 417\put@box {\char 25}}% 418% 419\def \isn@rrow {% narrow character (class 2) ? 420\xpa \is@in@list \hc@sk gdinrwyGDNORUWY>}% 421% 422\def \h@vowel ##1{% check class 423\heb@voc = ##1\relax 424\if\isn@rrow \advance\heb@voc 17 425\put@box {\unhcopy\ab@x \llap{\char\heb@voc \kern -.075em }}% 426\else \xpa\h@v@wel \xpa{\the\heb@voc }\fi }% 427% 428\def \h@v@wel ##1{% add vowel char right 429\put@box {\unhcopy\ab@x \char ##1}}% 430% 431\def \put@dummy {\relax }% % dummy for meteg, silluq (?) 432\def \put@segol {\h@vowel {50}}% % segol 433\def \put@qibbus {\h@vowel {52}}% % qibbus 434\def \put@qameschat {\h@vowel {54}}% % qames chatuph 435\def \put@sere {\h@vowel {49}}% % sere 436\def \put@chpatach {\h@vowel {56}}% % chateph patach 437\def \put@chsegol {\h@vowel {55}}% % chateph segol 438\def \put@chqames {\h@vowel {57}}% % chateph qames 439\def \put@patachf {\h@vowel {70}}% % patach furtivum 440% 441\def \put@shwa {% shwa on final kaf ? 442\ifnum\act@cd = \hc@kf \h@v@wel {85}\else \h@vowel {51}\fi }% 443% 444\def \put@qames {% qames on alef or final kaf ? 445\ifnum\act@cd = \hc@a \put@b@x {17}\else 446\ifnum\act@cd = \hc@kf \h@v@wel {86}\else \h@vowel {54}\fi\fi }% 447% 448\def \put@patach {% patach on alef or 2 yod ? 449\ifnum\act@cd = \hc@ey \put@b@x {22}\else 450\ifnum\act@cd = \hc@a \put@b@x {16}\else \h@vowel {53}\fi\fi }% 451% 452\def \put@chireq {% chireq on yod ? 453\ifnum\act@cd = \hc@y \put@b@x {20}\else \h@vowel {48}\fi }% 454% 455\def \put@cholem {% cholem breve, meteg? 456\ifnum\act@cd = \hc@l \put@box {\char 61 \unhcopy\ab@x }\else 457\put@box {\rlap {\kern .1em \char 61 }\unhcopy\ab@x }\fi }% 458% 459\def \h@cholem {% depends on carrier 460\ifnum \act@cd = \hc@w \put@b@x {62}\else \h@shindot \fi }% 461% 462\def \h@shindot {% right dot for sin 463\ifnum \act@cd = \hc@si \put@b@x {23}\else 464\put@box {\unhcopy\ab@x \llap {\char 61 \kern .1em}}\fi }% 465% 466\def \h@sindot {% left dot for sin 467\ifnum \act@cd = \hc@si \put@b@x {24}\fi }% 468% 469\def \h@rdot {\h@v@wel {61}}% right dot for waw, cholem breve 470% 471\def \h@raphe {\h@v@wel {26}}% soft consonant 472% 473\def \put@dagesh {% test for yod and class2 474\ifnum\act@cd = \hc@y \h@v@wel {89}\else 475\ifnum\act@cd = \hc@w \put@b@x {60}\else 476\if\isn@rrow \put@box {\unhcopy\ab@x \llap {\char 88 \kern .05em}}% 477\else \h@v@wel {87}\fi\fi\fi }% 478% 479%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 480\globaldefs = 0 }% end font SHALOM 481%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 482% 483%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 484\gdef \set@hstd{% routines for the standard fonts 485\globaldefs = 1\relax 486%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 487% 488\let \h@putchar \h@@putchar 489% 490\def \put@maqqef {% deposit maqqef 491\put@box {\kern.05em\raise .6ex \hbox {\char \act@cd }\kern.05em}}% 492% 493\let \h@raphe \h@@raphe 494% 495\let \h@put@dot \h@@putdot 496% 497\def \h@shindot {\h@put@dot {.8}}% % right dot for shin 498% 499\def \h@sindot {\h@put@dot {.2}}% % left dot for sin 500% 501\def \h@rdot {\h@put@dot {.5}}% % right dot for waw, cholem breve 502% 503\def \h@ldot {% left dot for cholem breve 504%\ifnum \act@cd = \hc@l \relax \h@put@dot {-.1}% lamed 505\ifnum \act@cd = \hc@l \relax \h@put@dot {-.2}% lamed 506\else \h@put@dot {.1}\fi }% 507% 508\def \h@cholem {% depends on carrier 509\ifnum \act@cd = \hc@w \h@rdot \else \h@shindot \fi }% 510% 511\def \the@raphe {\vrule width8\h@p height\h@p depth0pt }% 512\def \the@dot {\vrule width\h@p height0pt depth\h@p }% 513\def \the@mdot {\vrule width\h@p height-\h@p depth2\h@p }% 514\def \the@ldot {\vrule width\h@p height-2\h@p depth3\h@p }% 515\def \the@shwa {\the@dot \kern-\h@p \the@ldot }% 516\def \the@sere {\the@dot \kern\h@p \the@dot }% 517\def \the@segol {\the@dot \the@ldot \the@dot }% 518\def \the@qibbus {\the@dot \the@mdot \the@ldot }% 519\def \the@meteg {\vrule width\h@p height0pt depth3\h@p }% 520\def \the@patach {\vrule width3\h@p height0pt depth\h@p }% 521\def \the@qames {\the@patach \kern-2\h@p \the@meteg \kern\h@p }% 522% 523\def \put@dummy {\relax}% 524\def \put@dummy {\h@vowel {}}% 525\def \put@patach {\h@vowel {\the@patach }}% 526\def \put@qames {\h@vowel {\the@qames }}% 527\def \put@segol {\h@vowel {\the@segol }}% 528\def \put@qibbus {\h@vowel {\the@qibbus }}% 529\def \put@chireq {\h@vowel {\the@dot }}% 530\def \put@qameschat {\h@vowel {\the@qames }}% 531\def \put@shwa {\h@vowel {\the@shwa }}% 532\def \put@sere {\h@vowel {\the@sere }}% 533\def \put@chpatach {\h@vowel {\the@patach \kern\h@p \the@shwa }}% 534\def \put@chsegol {\h@vowel {\the@segol \kern\h@p \the@shwa }}% 535\def \put@chqames {\h@vowel {\the@qames \kern\h@p \the@shwa }}% 536\def \put@cholem {\h@vowel {}\h@ldot }% 537\def \put@patachf {\h@vowel {\kern4\h@p \the@patach }}% 538% 539\def \put@dagesh {\def \vadj {.48}\def \hadj {0}% default 540\ifnum \act@cd = \hc@j \def \hadj {-.2}\fi % gimel 541\ifnum \act@cd = \hc@w \def \hadj {-.3}\def \vadj {.55}\fi % waw 542\ifnum \act@cd = \hc@z \def \hadj {-.4}\fi % zayin 543\ifnum \act@cd = \hc@tt \def \hadj {.1}\fi % tet 544\ifnum \act@cd = \hc@y \def \hadj {-.45}\def \vadj {.55}\fi % yod 545\ifnum \act@cd = \hc@l \def \hadj {-.1}\def \vadj {.3}\fi % lamed 546\ifnum \act@cd = \hc@n \def \hadj {-.2}\fi % nun 547\ifnum \act@cd = \hc@nf \def \hadj {-.2}\fi % nun sofit 548\ifnum \act@cd = \hc@f \def \hadj {.05}\fi % pe 549\ifnum \act@cd = \hc@ff \def \hadj {.15}\fi % pe sofit 550\ifnum \act@cd = \hc@ss \def \hadj {.1}\fi % sade 551\ifnum \act@cd = \hc@sf \def \hadj {.1}\fi % sade sofit 552\ifnum \act@cd = \hc@si \def \hadj {.18}\fi % shin 553\ifnum \act@cd = \hc@M \def \vadj {.7}\fi % box 554\dimen@ \vadj\a@ht \dimen2 \a@slant\dimen@ \advance \dimen2 -\h@p 555\advance\dimen2 \hadj\a@wd \advance\dimen2 .5\a@wd 556\global\setbox\ab@x \hbox 557{\rlap{\kern\dimen2 \raise\dimen@\hbox{\the@dot }}\unhcopy\ab@x}}% 558% 559\def \h@putvowel ##1{% vowel mark 560\ifx ##1\relax \relax \else \def \hadj {0}\def \vadj {0}% 561\ifnum \act@cd = \hc@P \let\vadj \v@adj \put@b@x{\hc@Pv }\else % vowel-ayin 562\ifnum \act@cd = \hc@kf \def \hadj {-.1}\def \vadj {.85}\else % final kaph 563\ifnum \act@cd = \hc@r \def \hadj {.35}\else % resh 564\ifnum \act@cd = \hc@d \def \hadj {.2}\else % daleth 565\ifnum \act@cd = \hc@q \def \hadj {.1}\else % qoph 566\ifnum \act@cd = \hc@y \def \hadj {.1}\else % yod 567\ifnum \act@cd = \hc@w \def \hadj {.15}\else % waw 568\ifnum \act@cd = \hc@si \def \hadj {-.1}\else % sin 569\fi\fi\fi\fi\fi\fi\fi\fi 570\setbox0 \hbox to \a@wd {\hss ##1\hss}\dimen@ \vadj\a@ht 571\advance \dimen@ -2\h@p 572\dimen2 \a@slant\dimen@ \advance\dimen2 \hadj\a@wd 573\global\setbox\ab@x \hbox 574{\rlap {\kern\dimen2 \raise\dimen@\box0 }\unhcopy\ab@x }\fi }% 575% 576\def \h@vowel {% check for meteg 577\if@meteg \xpa \h@meteg \else \xpa \h@putvowel \fi }% 578% 579\def \h@meteg ##1{% put vowel and meteg 580\h@putvowel {\the@meteg \kern\h@p ##1}}% 581% 582%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 583\globaldefs = 0 }% end standard fonts 584%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 585%}% end of dynamic definitions 586%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 587\endinput 588%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 589 590