summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/arabtex/yiddish.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-12 23:51:33 +0000
committerKarl Berry <karl@freefriends.org>2006-01-12 23:51:33 +0000
commitaec1c1b77ee51b9359530d61cc7b8df2a37c7685 (patch)
tree8b5e1e20b56e0abf130e7da219468e197cde8725 /Master/texmf-dist/tex/latex/arabtex/yiddish.sty
parente1c54083e49986785dd4d24e891b89e0772a4de1 (diff)
arabtex
git-svn-id: svn://tug.org/texlive/trunk@673 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/arabtex/yiddish.sty')
-rw-r--r--Master/texmf-dist/tex/latex/arabtex/yiddish.sty195
1 files changed, 195 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/arabtex/yiddish.sty b/Master/texmf-dist/tex/latex/arabtex/yiddish.sty
new file mode 100644
index 00000000000..cc2555a831f
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/arabtex/yiddish.sty
@@ -0,0 +1,195 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%% hescan.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% yiddish.sty
+% experimental scanner for Yiddish ASCII files
+% to activate it, say "\setcode {yiddish}
+% 14.06.2000
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx \yidatcode \undefined \else \xpa \endinput \fi
+
+\chardef \yidatcode = \catcode`\@ \catcode`\@ = 11
+
+\a@ident {yiddish.sty}
+{3.10 scanner for YIVO Yiddish encoding} {14.06.2000}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dynamic definitions for Hebrew
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef \setyid@codes {\seta@codes % activate and change some codes
+\globaldefs=1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \sc@a {Q"a} \def \sc@b {b}
+\def \sc@c {@} \def \sc@d {d}
+\def \sc@e {P} \def \sc@f {f\n@xp\a@Zo}
+\def \sc@g {g} \def \sc@h {h}
+\def \sc@i {y} \def \sc@j {@}
+\def \sc@k {q} \def \sc@l {l}
+\def \sc@m {m} \def \sc@n {n}
+\def \sc@o {Q"A}\def \sc@p {\n@xp\a@f}
+\def \sc@q {@} \def \sc@r {r}
+\def \sc@s {s} \def \sc@t {t}
+\def \sc@u {w} \def \sc@v {\n@xp\a@w}
+\def \sc@w {w} \def \sc@x {@}
+\def \sc@y {y} \def \sc@z {z}
+%
+\xpa \def \csname sc@`\endcsname {Q}
+\a@digits = {0123456789} \a@paren = {()[]} \a@first = {}
+\globaldefs=0
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+}% end of dynamic definitions for Hebrew: oldcode and pccode
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \yid@scan #1>{% modified scanner call: token sequence -> \a@tokens
+\iftest@scan \tracingmacros = 1
+\ifshow \else \lowercase {\a@verb #1>}\fi\fi
+\global\def \a@rest {}\global\a@tokens = {}\@ssimfalse
+\novocalize \lowercase {\sc@beg #1\@ \@@ }% transform
+\iftest@scan \tracingmacros = 0 \xpa \a@verb \xpa (\the\a@tokens )>\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \yid@beg #1{% start \ArabTeX scanner
+ \def \next {\yid@word #1}%
+\case #1\of
+{iu {\def \sc@char {Q}\sc@put }%
+a {\def \next {\y@d@a}}%
+e {\def \next {\y@d@e}}%
+o {\def \next {\y@d@o}}%
+\default{\def \sc@char {@}}%
+}\endcase \next }
+
+\def \yid@word #1{% transform input into internal notation
+% \def \next {\yid@word }%
+\ifx #1\@ \def \next {\sc@endscan }\else
+\ifcat \nxp #1\relax \def \next {\yid@cs #1}\else % control sequence
+\apply \yid@next \tocase #1\of
+{ a{\yid@a }%
+ e{\yid@e }%
+ y{\yid@y }%
+ o{\yid@o }%
+ k{\yid@k }%
+ t{\yid@t }%
+ s{\yid@s }%
+ z{\yid@z }%
+ -{\yid@B }%
+\default {\yid@@word #1}%
+}\endcase
+\fi\fi \next }
+
+\def \yid@next #1{\def \next {#1}}
+
+\def \yid@@word #1{% transform input into internal notation
+\case #1\of
+{ `{\def \sc@char {Q}}%
+ "{\def \sc@char {\a@dq}}%
+\default {\ifcat \noexpand #1a\edef \sc@char {\csname sc@#1\endcsname }%
+ \else \def \sc@char {#1}\fi}%
+}\endcase
+\sc@put \yid@word }%
+
+\def \y@d@cs #1#2{% test word end
+\def \sc@char {#1}\sc@put
+\ifx #2\@ \def \next {\sc@endscan #2}\else
+\ifcat -\nxp #2 \def \next {\yid@word #2}\else
+\def \next {\sc@back #2}\fi \fi \next }
+
+\def \yid@cs #1#2{% control sequence within a word; push back?
+\xpa \ifx #1\closegeresh \def \next {\y@d@cs {\nxp \lq }#2}\else
+\xpa \ifx #1\closequote \def \next {\y@d@cs {`}#2}\else
+ \def \next {\sc@back #1#2}%
+\fi\fi \next }
+
+\def \yid@endscan \@@ {\global\let \a@scan \yid@scan }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \y@d@a #1{% `ay ?
+\ifx #1y\def \sc@char {Q"\nxp\a@ZA}\def \next {\yid@word }\else
+\def \sc@char {Q"a}\def \next {\yid@word #1}%
+\fi \sc@put \next }
+
+\def \y@d@e #1{% `ey ?
+\ifx #1y\def \sc@char {Q"\nxp\a@ZE}\def \next {\yid@word }\else
+\def \sc@char {P}\def \next {\yid@word #1}%
+\fi \sc@put \next }
+
+\def \y@d@o #1{% `oy ?
+\ifx #1y\def \sc@char {Q"\nxp\a@ZO}\def \next {\yid@word }\else
+\def \sc@char {Q"A}\def \next {\yid@word #1}%
+\fi \sc@put \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \yid@a #1{% ay ?
+\ifx #1y\def \sc@char {"\nxp\a@ZA}\def \next {\yid@word }\else
+\def \sc@char {Q"a}\def \next {\yid@word #1}%
+\fi \sc@put \next }
+
+\def \yid@e #1{% ey ?
+\ifx #1y\def \sc@char {"\nxp\a@ZE}\def \next {\yid@word }\else
+\def \sc@char {P}\def \next {\yid@word #1}%
+\fi \sc@put \next }
+
+\def \yid@y #1{% yi ?
+\ifx #1i\def \sc@char {yy"i}\def \next {\yid@word }\else
+\def \sc@char {y}\def \next {\yid@word #1}%
+\fi \sc@put \next }
+
+\def \yid@o #1{% oy ?
+\ifx #1y\def \sc@char {"\nxp\a@ZO}\def \next {\yid@word }\else
+\def \sc@char {Q"A}\def \next {\yid@word #1}%
+\fi \sc@put \next }
+
+\def \yid@k #1{% kh ?
+\ifx #1h\def \sc@char {k}\def \next {\yid@word }\else
+\def \sc@char {q}\def \next {\yid@word #1}%
+\fi \sc@put \next }
+
+\def \yid@t #1{% ts ?
+\ifx #1s\def \sc@char {S}\def \next {\yid@word }\else
+\def \sc@char {C}\def \next {\yid@word #1}%
+\fi \sc@put \next }
+
+\def \yid@s #1{% sh ?
+\ifx #1h\def \sc@char {\nxp\a@S}\def \next {\yid@word }\else
+\def \sc@char {s}\def \next {\yid@word #1}%
+\fi \sc@put \next }
+
+\def \yid@z #1{% zh ?
+\ifx #1h\def \sc@char {z\nxp\a@S}\def \next {\yid@word }\else
+\def \sc@char {z}\def \next {\yid@word #1}%
+\fi \sc@put \next }
+
+\def \yid@B #1{% -- ?
+\ifx #1-\def \sc@char {\a@end}\def \next {\yid@word }\else
+\def \sc@char {B}\def \next {\yid@word #1}%
+\fi \sc@put \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \yid@select {% select the new scanner
+\heb@catcodes % inside hebtex.sty; to make sure
+\let \sc@beg \yid@beg \let \sc@word \yid@word
+\let \sc@back \sc@@back \let \sc@endscan \yid@endscan
+\setyid@codes \global\let \a@scan \yid@scan
+\a@message {input encoding set to YIVO Yiddish conventions}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\xpa \def \xpa \sc@table \xpa {\sc@table % add the Hebrew encodings
+yiddish\yid@select }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@message {scanner for YIVO Yiddish installed.}
+
+\catcode `\@ = \yidatcode
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+