From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- language/arabic/arabtex/texinput/hewrite.sty | 589 +++++++++++++++++++++++++++ 1 file changed, 589 insertions(+) create mode 100644 language/arabic/arabtex/texinput/hewrite.sty (limited to 'language/arabic/arabtex/texinput/hewrite.sty') diff --git a/language/arabic/arabtex/texinput/hewrite.sty b/language/arabic/arabtex/texinput/hewrite.sty new file mode 100644 index 0000000000..48b39b642b --- /dev/null +++ b/language/arabic/arabtex/texinput/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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + -- cgit v1.2.3