From aec1c1b77ee51b9359530d61cc7b8df2a37c7685 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 12 Jan 2006 23:51:33 +0000 Subject: arabtex git-svn-id: svn://tug.org/texlive/trunk@673 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/arabtex/Unash.fd | 46 + Master/texmf-dist/tex/latex/arabtex/Uxnsh.fd | 61 + Master/texmf-dist/tex/latex/arabtex/abidir.sty | 240 +++ Master/texmf-dist/tex/latex/arabtex/abjad.sty | 68 + Master/texmf-dist/tex/latex/arabtex/aboxes.sty | 401 +++++ Master/texmf-dist/tex/latex/arabtex/acjk.sty | 33 + Master/texmf-dist/tex/latex/arabtex/acmd.sty | 335 ++++ Master/texmf-dist/tex/latex/arabtex/aconfig.sty | 95 ++ Master/texmf-dist/tex/latex/arabtex/aedpatch.sty | 220 +++ Master/texmf-dist/tex/latex/arabtex/afonts.sty | 52 + Master/texmf-dist/tex/latex/arabtex/afonts0.sty | 60 + Master/texmf-dist/tex/latex/arabtex/afonts1.sty | 61 + Master/texmf-dist/tex/latex/arabtex/afonts2.sty | 54 + Master/texmf-dist/tex/latex/arabtex/afoot.sty | 100 ++ Master/texmf-dist/tex/latex/arabtex/alatex.sty | 164 ++ Master/texmf-dist/tex/latex/arabtex/aligs.sty | 635 +++++++ Master/texmf-dist/tex/latex/arabtex/alists.sty | 211 +++ Master/texmf-dist/tex/latex/arabtex/altxext.sty | 101 ++ Master/texmf-dist/tex/latex/arabtex/amac.sty | 164 ++ Master/texmf-dist/tex/latex/arabtex/aoutput.sty | 173 ++ Master/texmf-dist/tex/latex/arabtex/aparse.sty | 1123 ++++++++++++ Master/texmf-dist/tex/latex/arabtex/apatch.sty | 1987 ++++++++++++++++++++++ Master/texmf-dist/tex/latex/arabtex/arababel.sty | 39 + Master/texmf-dist/tex/latex/arabtex/arabart.cls | 24 + Master/texmf-dist/tex/latex/arabtex/arabaux.sty | 134 ++ Master/texmf-dist/tex/latex/arabtex/arabbook.cls | 23 + Master/texmf-dist/tex/latex/arabtex/arabchrs.sty | 77 + Master/texmf-dist/tex/latex/arabtex/arabext.sty | 103 ++ Master/texmf-dist/tex/latex/arabtex/arabrep.cls | 1076 ++++++++++++ Master/texmf-dist/tex/latex/arabtex/arabskel.sty | 185 ++ Master/texmf-dist/tex/latex/arabtex/arabsymb.sty | 192 +++ Master/texmf-dist/tex/latex/arabtex/arabtex.sty | 634 +++++++ Master/texmf-dist/tex/latex/arabtex/arabtoks.sty | 146 ++ Master/texmf-dist/tex/latex/arabtex/arabwin.sty | 90 + Master/texmf-dist/tex/latex/arabtex/ascan.sty | 502 ++++++ Master/texmf-dist/tex/latex/arabtex/asect.sty | 390 +++++ Master/texmf-dist/tex/latex/arabtex/asize10.clo | 40 + Master/texmf-dist/tex/latex/arabtex/asize11.clo | 40 + Master/texmf-dist/tex/latex/arabtex/asize12.clo | 40 + Master/texmf-dist/tex/latex/arabtex/asmo449.sty | 122 ++ Master/texmf-dist/tex/latex/arabtex/atabg.sty | 129 ++ Master/texmf-dist/tex/latex/arabtex/atrans.sty | 432 +++++ Master/texmf-dist/tex/latex/arabtex/awrite.sty | 397 +++++ Master/texmf-dist/tex/latex/arabtex/bhs.sty | 213 +++ Master/texmf-dist/tex/latex/arabtex/bhslabel.sty | 149 ++ Master/texmf-dist/tex/latex/arabtex/buck.sty | 229 +++ Master/texmf-dist/tex/latex/arabtex/captions.def | 76 + Master/texmf-dist/tex/latex/arabtex/cp1256.sty | 173 ++ Master/texmf-dist/tex/latex/arabtex/etrans.sty | 9 + Master/texmf-dist/tex/latex/arabtex/gedalin.sty | 112 ++ Master/texmf-dist/tex/latex/arabtex/hebchrs.sty | 105 ++ Master/texmf-dist/tex/latex/arabtex/hebsymb.sty | 59 + Master/texmf-dist/tex/latex/arabtex/hebtex.sty | 87 + Master/texmf-dist/tex/latex/arabtex/hecmd.sty | 217 +++ Master/texmf-dist/tex/latex/arabtex/hefonts.sty | 56 + Master/texmf-dist/tex/latex/arabtex/hefonts0.sty | 42 + Master/texmf-dist/tex/latex/arabtex/hefonts1.sty | 44 + Master/texmf-dist/tex/latex/arabtex/hefonts2.sty | 72 + Master/texmf-dist/tex/latex/arabtex/heparse.sty | 291 ++++ Master/texmf-dist/tex/latex/arabtex/hepatch.sty | 37 + Master/texmf-dist/tex/latex/arabtex/hescan.sty | 216 +++ Master/texmf-dist/tex/latex/arabtex/hetrans.sty | 87 + Master/texmf-dist/tex/latex/arabtex/hewrite.sty | 589 +++++++ Master/texmf-dist/tex/latex/arabtex/hmac.sty | 156 ++ Master/texmf-dist/tex/latex/arabtex/isiri.sty | 225 +++ Master/texmf-dist/tex/latex/arabtex/iso88596.sty | 23 + Master/texmf-dist/tex/latex/arabtex/manifest.txt | 90 + Master/texmf-dist/tex/latex/arabtex/nashbf.sty | 9 + Master/texmf-dist/tex/latex/arabtex/raw.sty | 42 + Master/texmf-dist/tex/latex/arabtex/sotoku.sty | 47 + Master/texmf-dist/tex/latex/arabtex/twoblks.sty | 105 ++ Master/texmf-dist/tex/latex/arabtex/uheb.fd | 122 ++ Master/texmf-dist/tex/latex/arabtex/utf8.sty | 42 + Master/texmf-dist/tex/latex/arabtex/utfcode.sty | 279 +++ Master/texmf-dist/tex/latex/arabtex/verses.sty | 76 + Master/texmf-dist/tex/latex/arabtex/witbhs.sty | 209 +++ Master/texmf-dist/tex/latex/arabtex/xarbskel.sty | 126 ++ Master/texmf-dist/tex/latex/arabtex/xarbsymb.sty | 213 +++ Master/texmf-dist/tex/latex/arabtex/yiddish.sty | 195 +++ 79 files changed, 16021 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/arabtex/Unash.fd create mode 100644 Master/texmf-dist/tex/latex/arabtex/Uxnsh.fd create mode 100644 Master/texmf-dist/tex/latex/arabtex/abidir.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/abjad.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/aboxes.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/acjk.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/acmd.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/aconfig.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/aedpatch.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/afonts.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/afonts0.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/afonts1.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/afonts2.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/afoot.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/alatex.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/aligs.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/alists.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/altxext.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/amac.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/aoutput.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/aparse.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/apatch.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/arababel.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/arabart.cls create mode 100644 Master/texmf-dist/tex/latex/arabtex/arabaux.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/arabbook.cls create mode 100644 Master/texmf-dist/tex/latex/arabtex/arabchrs.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/arabext.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/arabrep.cls create mode 100644 Master/texmf-dist/tex/latex/arabtex/arabskel.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/arabsymb.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/arabtex.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/arabtoks.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/arabwin.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/ascan.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/asect.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/asize10.clo create mode 100644 Master/texmf-dist/tex/latex/arabtex/asize11.clo create mode 100644 Master/texmf-dist/tex/latex/arabtex/asize12.clo create mode 100644 Master/texmf-dist/tex/latex/arabtex/asmo449.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/atabg.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/atrans.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/awrite.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/bhs.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/bhslabel.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/buck.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/captions.def create mode 100644 Master/texmf-dist/tex/latex/arabtex/cp1256.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/etrans.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/gedalin.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/hebchrs.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/hebsymb.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/hebtex.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/hecmd.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/hefonts.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/hefonts0.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/hefonts1.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/hefonts2.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/heparse.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/hepatch.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/hescan.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/hetrans.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/hewrite.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/hmac.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/isiri.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/iso88596.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/manifest.txt create mode 100644 Master/texmf-dist/tex/latex/arabtex/nashbf.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/raw.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/sotoku.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/twoblks.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/uheb.fd create mode 100644 Master/texmf-dist/tex/latex/arabtex/utf8.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/utfcode.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/verses.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/witbhs.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/xarbskel.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/xarbsymb.sty create mode 100644 Master/texmf-dist/tex/latex/arabtex/yiddish.sty diff --git a/Master/texmf-dist/tex/latex/arabtex/Unash.fd b/Master/texmf-dist/tex/latex/arabtex/Unash.fd new file mode 100644 index 00000000000..00ab4d6ba0b --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/Unash.fd @@ -0,0 +1,46 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Unash.fd +% +% 31.08.93 1.0 created file when added support for NFSS2 (br) +% 04.04.1997 ranges fixed (KL) +% 17.09.1997 smaller sizes allowed +% 31.03.1998 test for xnsh14: does not work +% 12.07.1998 cleanup +% 23.05.1999 name "unash.fd" +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Bernd Raichle and Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% This file contains the font description of font `nash' +% fontencoding: U +% fontfamily: nash +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% make sure, that it is used with NFSS2 only +% +\ifx\DeclareFontShape\undefined + \message{Something is wrong -- % + this file can only be used with LaTeX2e and NFSS2!!!} +\expandafter\endinput\fi + +\ProvidesFile{unash.fd}[1999/05/23 3.08 ArabTeX Naskh font definitions] + +\DeclareFontFamily{U}{nash}{}% + +\DeclareFontShape{U}{nash}{m}{n}{% + <-6> sfixed * [7.2] nash14 + <6-10> s * [1.44] nash14 + <10><10.95><12><14.4><17.28><20.74><24.88> s * [1.44] nash14 +}{} + +\DeclareFontShape{U}{nash}{bx}{n}{% + <-6> sfixed * [7.2] nash14bf + <6-10> s * [1.44] nash14bf + <10><10.95><12><14.4><17.28><20.74><24.88> s * [1.44] nash14bf +}{} + +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/tex/latex/arabtex/Uxnsh.fd b/Master/texmf-dist/tex/latex/arabtex/Uxnsh.fd new file mode 100644 index 00000000000..3fba5ce6ebd --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/Uxnsh.fd @@ -0,0 +1,61 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Uxnsh.fd +% +% 31.08.93 1.0 created file when added support for NFSS2 (br) +% 04.04.1997 ranges fixed (KL) +% 17.09.1997 smaller sizes allowed +% 14.04.1998 font xnsh14 +% 23.05.1999 name "uxnsh.fd" +% 19.10.1999 new font shape U/xnsh/*/s +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Bernd Raichle and Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% This file contains the font description of font `xnsh' +% fontencoding: U +% fontfamily: xnsh +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% make sure, that it is used with NFSS2 only +% +\ifx\DeclareFontShape\undefined + \message{Something is wrong -- % + this file can only be used with NFSS2!!!} +\expandafter\endinput\fi + +\ProvidesFile{uxnsh.fd}[ 1999/10/19 v3.10 ArabTeX Naskh extd. font definitions] + +\DeclareFontFamily{U}{xnsh}{}% + +\DeclareFontShape{U}{xnsh}{m}{n}{% + <-6> sfixed * [7.2] xnsh14 + <6-10> s * [1.44] xnsh14 + <10><10.95><12><14.4><17.28><20.74><24.88> s * [1.44] xnsh14 +}{} + +\DeclareFontShape{U}{xnsh}{bx}{n}{% + <-6> sfixed * [7.2] xnsh14bf + <6-10> s * [1.44] xnsh14bf + <10><10.95><12><14.4><17.28><20.74><24.88> s * [1.44] xnsh14bf +}{} + +% small version: + +\DeclareFontShape{U}{xnsh}{m}{s}{% + <-6> sfixed * [6.0] xnsh14 + <6-10> s * [1.20] xnsh14 + <10><10.95><12><14.4><17.28><20.74><24.88> s * [1.20] xnsh14 + }{} + +\DeclareFontShape{U}{xnsh}{bx}{s}{% + <-6> sfixed * [6.0] xnsh14bf + <6-10> s * [1.20] xnsh14bf + <10><10.95><12><14.4><17.28><20.74><24.88> s * [1.20] xnsh14bf +}{} + + +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/tex/latex/arabtex/abidir.sty b/Master/texmf-dist/tex/latex/arabtex/abidir.sty new file mode 100644 index 00000000000..13e0d5b2890 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/abidir.sty @@ -0,0 +1,240 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% abidir.sty +% ArabTeX macros for bidirectional linebreaking +% 22.08.2003 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Formale Methoden der Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \a@RL \undefined \else \xpa \endinput \fi + +\a@ident {abidir.sty} {3.11 bidirectional linebreaking} {22.08.2003} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% +%\def \test@insert #1>{\a@Linsert {#1}} + +% \LR{#1} = LR insertion inside Rtext +\def \a@c@LR {\unarab@codes \a@Linsert } +\let \a@c@L \a@c@LR % usage: \L {LR text} + +% \LR{#1} = LR insertion inside Ltext: trivial +\let \LR \relax \let \L \relax + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% \RL{#1} = RL insertion inside Ltext +\def \RL {\protect \a@RL } +\let \R \RL % usage: \R {RL text} + +% \RL{#1} = RL insertion inside Rtext: trivial +\def \a@c@RL #1{\test@token #1 } \let \a@c@R \a@c@RL + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \goodpar {% usage: \goodpar {Roman paragraphs} +% put around one or more paragraphs if the linebreaking is bad +% caution: may lead to storage overflow +\dimen0 \prevdepth \setbox0 \vbox \bgroup \prevdepth \dimen0 +\def \par {\egroup \endgraf \goodpar x}% dummy character +\aftergroup \g@@dpar \let \next=} + +\def \g@@dpar {\unvbox0 } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newdimen \a@Llength \newdimen \a@Lwidth \newdimen \a@Lindent +\newdimen \a@Rlength \newdimen \a@Rheight +\newbox \a@Rboxi \newbox \a@Rboxii \newbox \Rinsertb@x +\newbox \a@Rdummyi \newbox \a@Rdummyii \newbox \Linsertb@x +\newbox \a@spacebox \newif \ifR@split \newcount \a@lines + +\def \ins@skip {\hskip \z@ plus 0.1em }% before and after insertion + +\def \a@vglue {\z@ plus 2ex }% glue at top of the insertion \vbox + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@RL {% RTL insertion inside LRtext +\ifaRL \else \aRLtrue + \let \a@RLpar \par % prepare for normal baselines + \edef \a@lslimit {\lineskiplimit \the\lineskiplimit}% + \def \par {\a@RLpar \let \par \a@RLpar \a@lslimit \aRLfalse }% +\fi \lineskiplimit -.9\baselineskip % enforce uniform baselines +\bgroup \arab@codes \set@arabfont \@waslafalse \@wasfalse \a@@Rinsert } + +\def \a@@Rinsert #1{% RL insertion inside Ltext +\ifshow \a@@verb {#1}\fi % verbating listing +\ifarab \a@Rinsert {#1} \fi % arabic writing +\iftrans \set@transfont \trans@text #1 \end \/\fi +\ifnum \tracingarab > \@ne \message {>}\fi +\unskip \egroup } + +\def \a@Rinsert #1{% put a sequence of RL words into Ltext +\leavevmode % go to hmode if not there already +\ifinner \a@sequence {#1}% inside a \hbox: append +\else \a@Rsplit {#1}% splice into the current paragraph +\fi } + +\def \a@Rsplit #1{% splice RL words into the current paragraph +\bgroup \def \next@command {\test@special}\transfalse \showfalse +\ifspread \else \def \arab@space {\space }% no infinite stretch !! + \def \tat@skip {0.04ex plus 0.5ex }% +\fi + \a@Rdimen {#1}% get the length of the first 2 RL words +\ifdim \wd\a@Rboxii = \z@ + \unhbox\a@Rboxi % done with the insertion +\else \a@Ldimen % get the dimensions of the last line + \a@Rtobox {#1}% pack the insertion lines into a \vbox + \a@Runpack % unpack and splice into the current paragraph +\fi \egroup } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@Rdimen #1{% get the dimensions of the first two words +\setbox\a@Rboxii \hbox {}\setbox\a@Rdummyii \box\a@Rboxii +\a@Rfirst #1 \to \a@wordi \a@Rrest +\xpa \a@Rwordtobox \a@wordi \to \a@Rboxi \a@Rdummyi +\ifx \space \a@Rrest \else +\ifx \relax \a@Rrest \relax \else +\xpa \a@Rfirst \a@Rrest \to \a@wordii \a@Rrest +\xpa \a@Rwordtobox \a@wordii \to \a@Rboxii \a@Rdummyii +\fi\fi } + +\def \a@Rwordtobox #1\to #2#3{% Rword to \box#2, Rdummy to \box#3 +\a@sequence {#1}\setbox#2 \lastbox +\setbox#3\hbox to \wd#2{\hfill }\ht#3\ht#2\dp#3\z@} + +{\catcode `\^^a0 12 +\gdef \a@Rfirst #1 #2\to #3#4{% split off first word +\ifx \relax #1\relax \a@Rfirsti #2\to #3#4\else +\ifx \relax #2\relax \a@Rfirstii #1^^a0\to #3#4\else +\def #3{#1}\def #4{#2}\fi\fi } + +\gdef \a@Rfirstii #1^^a0#2\to #3#4{% split off first word +\ifx \relax #1\relax \a@Rfirstiii #2\to #3#4\else +\def #3{#1}\def #4{#2 }\fi } +}% catcode ^^a0 + +\def \a@Rfirsti #1\to #2#3{% split off leading space +\ifx \relax #1\relax \def #2{\relax }\def #3{\relax }% +\else \a@Rfirst #1\to #2#3\fi } + +\def \a@Rfirstiii #1\to #2#3{% split off leading RL space +\ifx \relax #1\relax \def #2{\relax }\def #3{\relax }% +\else \a@Rfirstii #1\to #2#3\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@Ldimen {% get the dimensions of the preceding line +\setbox\a@spacebox \hbox {\arab@space}\tolerance 10000 +\R@splitfalse \leavevmode +\penalty 0 +\copy \a@Rdummyi \arab@space \copy \a@Rdummyii +\parfillskip \z@ plus 1fill \relax \tr@ceoff +$$\global \a@Llength \predisplaysize % dummy display +\global \a@Lwidth \displaywidth \global \a@Lindent \displayindent +\hbox to \a@Lwidth {}\postdisplaypenalty \@M +$$ {\endgraf }% keep paragraph parameters +\tr@ceon \a@lines \prevgraf \advance \a@lines -3 +\prevgraf \a@lines \prevdepth -\baselineskip +\a@Ladjust % update \a@Llength and \a@Lindent +\ifinner \a@killdisplay \else \a@skipback \fi } + +\def \a@Ladjust {% correct \a@Llength and \a@Lindent +\ifdim \a@Llength = \maxdimen \a@Llength \a@Lwidth % flexible line +\else \advance \a@Llength -2em \advance \a@Llength -\a@Lindent +\fi +\advance \a@Llength -\leftskip \advance \a@Llength -\wd\a@Rdummyii +\ifdim \a@Llength = \z@ \R@splittrue \a@Llength \a@Lwidth + \advance \a@Llength -\leftskip \advance \a@Llength -\rightskip +\else \advance \a@Llength -\wd\a@spacebox +\fi \advance \a@Llength -\wd\a@Rdummyi +\ifnum \prevgraf = 1 + \ifdim \z@ > \hangindent \advance \a@Llength -\hangindent + \else \advance \a@Llength \hangindent + \fi +\else \ifdim \a@Llength = \z@ \R@splittrue \a@Llength \a@Lwidth + \fi +\fi } + +\def \a@killdisplay {% vbox: get back to the old position +\unskip \unskip \unpenalty \setbox0 \lastbox % get rid of garbage +\ifR@split \unskip \unskip \unpenalty \setbox0 \lastbox \fi +\unskip \unskip \unpenalty \setbox0 \lastbox % last line +\dimen0 \baselineskip \advance \dimen0 -\ht0 +\advance \dimen0 -\lastskip \prevdepth \dimen0 +\unskip \vskip -\parskip +\noindent \unhbox0 % open and trim last line +\unskip \unskip \unpenalty \setbox0 \lastbox +\ifR@split \else \unskip \setbox0 \lastbox \fi } + +\def \a@skipback {% paragraph: get back to the old position +\vskip -\belowdisplayskip \vskip -3\baselineskip +\vskip -\abovedisplayskip \vskip -\parskip +\ifR@split \ifdim \z@ > \lineskiplimit \vskip -\baselineskip \else +\vskip -\ht\a@Rdummyii \vskip -\dp\a@Rboxi \vskip -\lineskip +\fi\fi \noindent \arab@strut \nobreak \hskip \a@Llength } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@normpen #1{% prevent penalty 10000 +\ifnum #1= 10000 #1= 9999 \fi } + +\def \a@Rtobox #1{% pack the insertion into \Rinsertb@x +\setbox \Rinsertb@x \vbox {\a@hsize \a@Lwidth +\a@normpen \widowpenalty \a@normpen \clubpenalty +\leftskip \z@ \rightskip \z@ +\parfillskip \z@ plus 1fil \relax \parskip \z@ +\let \a@@kern \a@kern \let \a@@mkern \a@mkern +\def \a@kern {\nobreak \a@@kern}\def \a@mkern {\nobreak \a@@mkern}% +\let \end \relax \spreadtrue \vskip \a@vglue \hbadness 10000 +\putlineb@x {\arab@strut \hskip \a@Llength }\a@spacefalse +\test@token #1 \end \unskip \unskip \vskip \a@vglue +\hbox {\box\lineb@x \hfill }}} + +\def \a@Runpack {\ins@skip % unpack all lines from the insertion +\loop \a@Rgetline \unhbox \tempb@x \unskip \unskip \break +\ifvbox \Rinsertb@x \repeat \unpenalty \ins@skip } + +\def \a@Rgetline {% unpack the next line globally to \box \tempb@x +{\vbadness 10000 \splittopskip \a@vglue +\dimen0 \baselineskip \advance \dimen0 1ex +\setbox \tempb@x \vsplit \Rinsertb@x to \dimen0 +\setbox0 \vbox {\unvbox \tempb@x \setbox2 \lastbox \unhbox2 +\unskip \unskip \unpenalty \global \setbox \tempb@x \lastbox }}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@Linsert #1{% splice Ltext into RL paragraph +\putwordb@x {\ins@skip }\a@spacefalse \a@@Linsert {#1}\a@Lunpack +\putwordb@x {\ins@skip }\a@spacetrue \arab@codes +\tracingmacros 0 +\test@token } + +\def \a@@Linsert #1{% splice Ltext into RL paragraph +\dimen0 \wd \lineb@x \setbox \Linsertb@x \vbox +{\hsize \a@hsize \hangindent -\dimen0 \hangafter -\@ne +\tr@ceoff \rm \tr@ceon \rightskip \z@ plus .001fil +\vskip \a@vglue \everypar {}\parskip \z@ +\dimen2 \fontdimen4\font \fontdimen4\font 0pt % prevent shrinking +\noindent \null \hskip 0pt plus .001fil \relax #1 +\clubpenalty 0 \widowpenalty 0 \tolerance 10000 +\endgraf \fontdimen4\font \dimen2 }} + +\def \a@Lunpack {% unpack all lines from the insertion +\loop \a@Lgetline \putwordb@x +{\unhbox \tempb@x \unskip \unskip }\a@spacefalse +\ifvbox \Linsertb@x \put@line \a@spacefalse \repeat } + +\def \a@Lgetline {% unpack the next line globally to \box \tempb@x +{\vbadness 10000 \splittopskip \a@vglue \dimen0 \baselineskip +\setbox \tempb@x \vsplit \Linsertb@x to \dimen0 +\setbox0 \vbox {\unvbox \tempb@x \global \setbox \tempb@x \lastbox }}} + +%\testoutput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput diff --git a/Master/texmf-dist/tex/latex/arabtex/abjad.sty b/Master/texmf-dist/tex/latex/arabtex/abjad.sty new file mode 100644 index 00000000000..19cd089f123 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/abjad.sty @@ -0,0 +1,68 @@ +% abjad.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% defines the command \abjad {#1} +% to produce the `abjad' rendering of the argument, +% which must be (or expand within Tex's mouth to) +% a legal number between 1 and 1999 +% This command works both inside and outside an Arabic environment. +% 26.04.2003 +% no warranty whatsoever +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Formale Methoden der Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \abjatcode \undefined \else \expandafter \endinput +\fi % load only once + +\chardef \abjatcode = \catcode`\@ \catcode`\@ = 11 + +\a@ident {abjad.sty} {3.11 abjad numerals } {26.04.2003} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \abj@d #1{% convert to abjad notation if possible +\ifnum #1>1999 #1 \else \ifnum #1=0 0 \else +\ifnum #1>999 \xpa\@bjad \number #1\else +\ifnum #1>099 \xpa\@bjad \xpa0\number#1\else +\ifnum #1>009 \xpa\@bjad \xpa0\xpa0\number#1\else +\xpa\@bjad \xpa0\xpa0\xpa0\number#1% +\fi\fi\fi\fi\fi } + +\def \@bjad #1#2#3#4{% convert to abjad notation +\ifx #10\else .g\fi +\ifcase #2 \or q\or r\or ^s\or t\or _t \or _h\or _d\or .d\or .z\fi +\ifcase #3 \or Y\or k\or l\or m\or n\or s\or `\or f\or .s\fi +\ifcase #4 \or |A\or .b\or .h-\or d\or h\or w\or z\or .h\or .t\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \abjad #1{% inside a Roman environment +\edef \the@bjad {\abj@d {#1}}% +\novocalize \arabtrue \transfalse \RL {\stdcode {\the@bjad }}% +\iftrans {\set@transfont \ \trans@text #1 \end }\fi } + +\def \a@c@abjad #1{% inside an Arabic environment +\putwordb@x {\transfalse \showfalse \abjad {#1}}% +\iftrans {\set@transfont \trans@text #1 \end }\fi +\arab@tail } + +\allowarab \the@bjad + +% NOTE: \abj@d is fully expandable + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \Abjad #1{\xpa \@Abjad \csname c@#1\endcsname } + +\let \@Abjad \abj@d + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\catcode `\@ = \abjatcode + +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + diff --git a/Master/texmf-dist/tex/latex/arabtex/aboxes.sty b/Master/texmf-dist/tex/latex/arabtex/aboxes.sty new file mode 100644 index 00000000000..fe4b75a5b9a --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/aboxes.sty @@ -0,0 +1,401 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% aboxes.sty +% ArabTeX +% deposit character into output box +% called in HMODE +% Version 28.05.2003 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Formale Methoden der Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@ident {aboxes.sty} {3.11 build output boxes} {28.05.2003} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% dynamic definitions for Arabic +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\gdef \def@arabaccent {% define accent macros for Arabic +\gdef \put@fatha {\put@acc@hi {\char \a@fatha }} +\gdef \put@damma {\put@acc@hi {\char \a@damma }} +\gdef \put@kasra {\put@acc@lo {\char \a@kasra }} +\gdef \put@shadda {\put@acc@hi {\char \a@shadda }} +\gdef \put@hamza {\put@hi {\char \a@hamza }} +\gdef \put@hamzalo {\put@lo {\char \a@hamza }} +\gdef \put@madda {\put@hi {\a@madda@up }} +\gdef \put@sukun {\put@acc@hi {\char \a@sukun }} +\gdef \put@wasla {\put@acc@hi {\char \a@wasla }} +\gdef \put@fathatan {\put@acc@hi {\char \a@fathatan }} +\gdef \put@dammatan {\put@acc@hi {\char \a@dammatan }} +\gdef \put@kasratan {\put@acc@lo {\char \a@kasratan }} +\gdef \put@fathaspec {\put@acc@hi {\char \a@quran@alif }} +\gdef \put@kasraspec {\put@acc@lo {\char \a@quran@alif }} +\gdef \put@ammad {\put@acc@hi {\char \a@ammad }} +\gdef \put@zwarakay {\put@acc@hi {\char \a@zwarakay }} +\gdef \put@barslo {\put@lo {\char \a@bars }} +\gdef \put@kh@hamza {\put@hi {\char \a@hamza }} +\gdef \put@kl@hamza {\put@lo {\char \a@hamza }} +\gdef \put@kh@hamz@s {\put@hi {\char \a@hamz@s }} +\gdef \put@kl@hamz@s {\put@lo {\char \a@hamz@s }} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +}}% end of dynamic definitions for Arabic +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newdimen \a@dp \newdimen \a@ht \newdimen \a@wd +\newdimen \dia@dx \newdimen \dia@dy \newdimen \dia@ht +\newdimen \a@disp \newdimen \a@ic +\newbox \ab@x \newbox \dia@box + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%em# := 25.4dx#; %ex# := 8dy#; + +\def \a@kern {\kern.05em } \def \a@mkern {\kern-.05em }% Arabic kerning +\def \acc@hi {1.8ex } \def \acc@lo {0.4ex } % positions for .harakAt +\def \tat@ht {0.20ex } \def \tat@wd {0.007em } % kashida dimensions +\def \tat@skip {0.014em plus 0.2fil } +\def \a@dsp {.5ex } % shift for raised characters + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% global: \act@cd, \act@mod, \act@dia, \act@tie + +\def \put@skel #1#2#3*{% deposit writing syllable % f d m * +\put@act@box #1#2\put@mod #3*\dep@sitb@x +\fix@act@box } + +\def \put@lig@skel #1#2#3*#4*{% deposit 2char ligature % f d m * m * +\put@act@box #1#2\global\a@wd .5\wd\ab@x +\wd\ab@x \a@wd \dimen4 \a@ht \dimen6 \a@dp +\global\setbox \ab@x \vbox {\box \ab@x }\put@mod #3*\dep@sitb@x +\setbox0 \hbox to\a@wd {\hfill }\dp0 \dimen6 \ht0 \dimen4 +\global\a@ht \dimen4 \global\a@dp \dimen6 +\global\setbox \ab@x \vbox {\box0 }\put@mod #4*\dep@sitb@x +\fix@act@box } + +\def \put@act@box #1#2{% set tie and open character box +\ifnum \act@tie = 0 \else \advance\act@tie \a@f@mid \put@tie \fi +\advance\act@cd #2\xpa \dia@pos \act@dia #1\relax +\put@b@x {\the\act@cd }\if@mod@act \put@d@t {\the\act@mod }\fi } + +\def \put@tie {% deposit ties between characters +\setbox0 \hbox {\char \the\act@tie }% +\setbox2 \hbox {\char \the\act@tie \/}% +\ifdim \a@disp = \z@ \unhcopy0 +\else \raise\a@disp \hbox {\unhcopy0 }\fi +\advance\a@disp \wd2 \advance\a@disp -\wd0 } + +\def \set@high@act {% prepare raising of actual character +\advance \a@disp \a@dsp \@high@acttrue } + +\def \set@low@act {% lower actual character +\advance \a@disp -.25ex } + +\def \set@loww@act {% lower actual character +\advance \a@disp -.50ex } + +\def \set@lowww@act {% lower actual character +\advance \a@disp -.75ex } + +\def \fix@act@box {% fixup position and set tatwil +\if@high@act \advance\a@disp -\a@dsp \@high@actfalse \fi +\advance\a@min@dp \a@ic \advance\a@disp \a@ic +\if@tat \put@tat \@tatfalse \fi } + +\def \put@tat {% deposit a keshide +\dimen@ \a@disp \advance\dimen@ \tat@ht \nobreak \hskip-\tat@wd +\leaders \hrule height\dimen@ depth-\a@disp \hskip\tat@skip \hskip-\tat@wd } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \put@b@x #1{% evaluate the argument +\edef \t@mp {\nxp\put@box {\char #1}}\t@mp } + +\def \put@box #1{% pack and get dimensions, also ic and baseline skew +\setbox0 \hbox {#1\/}\global\a@ic \wd0 +\global\setbox \ab@x \hbox{#1}% put into box +\global\a@ht \ht\ab@x \global\a@wd \wd\ab@x +\global\a@dp \dp\ab@x \global\advance \a@ic -\a@wd +\a@adj@lo \a@min@dp +\ifnum \a@min > 0 \global\a@min@dp \a@dp \global\advance\a@min -1 +\else \global\a@min@dp \z@ \fi } +%\global\a@sk -\a@skew\a@wd +%\ifa@sk \global\a@skfalse \else \global\a@sk -\a@sk \fi } + +\def \dep@sitb@x {% put contents into output, unpack if possible +\ifhbox \ab@x \ifdim \a@disp = \z@ \unhbox \ab@x + \else \raise\a@disp \hbox {\unhbox\ab@x }% + \fi +\else \global\advance \a@ht \a@disp \global\advance \a@dp -\a@disp + \ht\ab@x \a@ht \dp\ab@x \a@dp \box \ab@x +\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \put@mod #1+#2*{% put modifier onto contents of "\ab@x" % m1 + m2 * + \global\red@mod 0#1\relax + \ifnum 0#1> 9 \global\advance \red@mod -10 \relax \fi +\ifnum 0#2= \c@kasra \xpa\a@putkasra \xpa{\the\red@mod }\else +\ifnum 0#2= \c@kasratan \xpa\a@putkasratan \xpa{\the\red@mod }\else + \ifcase \red@mod + \relax \or \put@shadda \or + \put@hamza \or \put@hamza \put@shadda \or + \put@madda \or \put@hamzalo \or + \fi + \put@voc 0#2*% +\fi \fi } + +\def \a@putkasra #1{% modification at kasra % m1 +\ifcase 0#1\put@kasra \or \put@k@sra \put@shadda \or +\put@ihamza \put@kasra \or \put@k@sra \put@hamza \put@shadda \or +\put@madda \put@kasra \or \put@hamzalo \put@kasra \or +\fi } + +\def \a@putkasratan #1{% modification at kasratan % m1 +\ifcase 0#1\put@kasratan \or \put@k@sratan \put@shadda \or +\put@ihamza \put@kasratan \or \put@k@sratan \put@hamza \put@shadda \or +\put@madda \put@kasratan \or \put@hamzalo \put@kasratan \or +\fi } + +\def \put@k@sra {% high or low +\ifk@sra \put@kasra \else \put@fatha \fi } + +\def \put@k@sratan {% high or low +\ifk@sra \put@kasratan \else \put@fathatan \fi } + +\def \put@voc #1*{% put .harakAt % m2 +\ifcase 0#1\relax \or \put@sukun \or \put@fatha \or \put@kasra \or +\put@damma \or \put@fathatan \or \put@kasratan \or \put@dammatan \or +\put@zwarakay \or \put@wasla \or \put@fathaspec \or \put@kasraspec \or +\put@ammad \or \put@fatha\put@kasra \or \put@barslo \or \put@kh@hamza \or +\put@kl@hamza \or\put@kh@hamz@s \or \put@kl@hamz@s \or +\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \put@ihamza {% hamza at depending on carrier +\ifnum \act@cd = \a@alif@iso \put@hamzalo \else +\ifnum \act@cd = \a@alif@end \put@hamzalo \else +\ifnum \act@cd = \a@lam@alif@iso \put@hamzalo \else +\ifnum \act@cd = \a@lam@alif@end \put@hamzalo \else + \put@hamza +\fi\fi\fi\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@one@up {\char \a@one@dot@up } + +\def \a@two@up {\char \a@two@dots@up } + +\def \a@twov@up {\setbox0 \hbox {\char \a@one@dot@up }% +\setbox2 \hbox {\char \a@one@dot@up }\dimen@ .6\ht2 +\advance \dimen@ -.4\dp0 \ht2 \dimen@ \advance \dimen@ \dp0 +\vbox {\moveright \a@slant\dimen@ \box0 \nointerlineskip \box2 }} + +\def \a@three@up {\char \a@three@dots@up } + +\def \a@threev@up {\setbox0 \hbox {\char \a@three@dots@down }% +\ht0 \dp0 \dp0 .5\dp0 \box0 } + +\def \a@four@up {\setbox0 \hbox {\char \a@two@dots@up }% +\setbox2 \hbox {\char \a@two@dots@up }\dimen@ .6\ht2 +\advance \dimen@ -.4\dp0 \ht2 \dimen@ \advance \dimen@ \dp0 +\vbox {\moveright \a@slant\dimen@ \box0 \nointerlineskip \box2 }} + +\def \a@hamza@up {\setbox0 \hbox {\char \a@hamza }% +\dp0 -\ht0 \box0 } + +\def \a@alif@up {\char \a@quran@alif } + +\def \a@ttah@up {\char \a@ttah@dia } + +\def \a@bow@up {\char\a@bow@dia } + +\def \a@madda@up {\setbox0 \hbox {\char \a@madda \kern .02em}\box0 } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@one@down {\char \a@one@dot@down } + +\def \a@two@down {\char \a@two@dots@down } + +\def \a@twov@down {\setbox2 \hbox {\char \a@one@dot@down }% +\setbox0 \hbox {\char \a@two@dots@down }\dimen@ .6\dp0 +\setbox0 \hbox {\char \a@one@dot@down }% correct depth +\advance \dimen@ -.4\ht2 \dp0 \dimen@ \advance \dimen@ \ht2 +\vbox {\moveright \a@slant\dimen@ \box0 \nointerlineskip \box2 }} + +\def \a@three@down {\setbox0 \hbox {\char \a@three@dots@down }% +\dp0 .7\dp0 \box0 } + +\def \a@four@down {\setbox0 \hbox {\char \a@two@dots@down }% +\setbox2 \hbox {\char \a@two@dots@down }\dimen@ .6\dp0 +\advance \dimen@ -.4\ht2 \dp0 \dimen@ \advance \dimen@ \ht2 +\vbox {\moveright \a@slant\dimen@ \box0 \nointerlineskip \box2 }} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \put@d@t #1{% evaluate the argument +\edef \t@mp {\nxp\put@dot {#1}}\t@mp } + +\def \put@dot #1{% modify character skeleton +\ifcase 0#1% +\relax \or % 0 +% . .. ^ +% 1 --- 2 --- 3 --- 4 --- 5 --- 6 --- +% . .. v +\put@hi {\a@one@up }\or % 1 +\put@hi {\a@two@up }\or % 2 +\put@hi {\a@three@up }\or % 3 +\put@lo {\a@one@down }\or % 4 +\put@lo {\a@two@down }\or % 5 +\put@lo {\a@three@down }\or % 6 +% c b . u +% 7 --- 8 --- 9 --- 10 --- 11 --- 12 --- +% : . 6 +\put@hi {\a@hamza@up }\or % 7 +\put@hi {\a@ttah@up }\or % 8 +\put@lo {\a@twov@down }\or % 9 +\put@hi {\a@one@up }\put@lo {\a@one@down }\or % 10 +\put@lo {\char\a@h@dia }\or % 11 +\put@hi {\a@bow@up }\or % 12 +% u : v :: +% 13 --- 14 --- 15 --- 16 --- 17 --- 18 --- +% u .. :: +\put@lo {\a@bow@up }\or % 13 +\put@lo {\a@two@down }\put@hi {\a@bow@up }\or % 14 +\put@hi {\a@twov@up }\or % 15 +\put@hi {\a@threev@up }\or % 16 +\put@hi {\a@four@up }\or % 17 +\put@lo {\a@four@down }\or % 18 +% 9 | b ^ . ^ +% 19 --- 20 --- 21 --- 22 --- 23 --- 24 --- +% . v v . +\put@hi {\char\a@damma }\or % 19 +\put@hi {\a@alif@up }\or % 20 +\put@hi {\a@ttah@up }\put@lo {\a@one@down }\or % 21 +\put@hi {\a@three@up }\put@lo {\a@three@down }\or % 22 +\put@hi {\a@one@up }\put@lo {\a@three@down }\or % 23 +\put@hi {\a@three@up }\put@lo {\a@one@down }\or % 24 +% ^ C +% 25 --- 26 --- 27 --- 28 --- 29 --- 30 --- +% H C +% +\put@hi {\char\a@roof }\or % 25 +\put@lo {\char\a@bars }\or % 26 +\put@hi {\char\a@hamz@s}\or % 27 +\put@lo {\char\a@hamz@s}\or % 28 + \put@hi {\char 2 }\or % illegal +\else \put@hi {\char 2 }\or % illegal +\fi} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \put@hi #1{% deposit upper modifier, slanted +\setbox\dia@box \hbox to \z@ {\hss #1\hss }% +\dia@dy \a@ht \hi@dia \put@upper } + +\def \put@acc@hi #1{% deposit upper accent +\ifacc@hi \a@adj@hi \acc@hi \fi +\setbox\dia@box \hbox to \z@ {\hss #1\hss }% +\dia@dy \a@ht \a@ubox@u \put@upper } + +\def \put@lo #1{% deposit lower modifier, slanted +\setbox\dia@box \hbox to \z@ {\hss #1\hss }% +\a@adj@lo \a@min@dp \dia@dy \a@dp \lo@dia \put@lower } + +\def \put@acc@lo #1{% deposit lower accent +\ifacc@hi \a@adj@lo \acc@lo \fi +\setbox\dia@box \hbox to \z@ {\hss #1\hss }% +\dia@dy \a@dp \a@lbox@d \put@lower } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \hi@dia {% position of upper diacritic +\ifcase \dia@mod \relax +\a@ubox@u \or \a@ubox@d \or \a@ubox@u \or +\a@ubox@d \or \a@ubox@u \or \a@ubox@d \or +\a@ubox@c \or \a@ubox@c \or \a@ubox@c \or +\fi } + +\def \lo@dia {% position of lower diacritic +\ifcase \dia@mod \relax +\a@lbox@d \or \a@lbox@d \or \a@lbox@u \or +\a@lbox@u \or \a@lbox@c \or \a@lbox@c \or +\a@lbox@d \or \a@lbox@u \or \a@lbox@c \fi } + +\def \a@adj@hi #1{% adjustment of box height +\dimen@ #1\advance\dimen@ -\a@disp +\ifdim \dimen@ > \a@ht \advance\dimen@ -\a@ht + \global\advance\a@ht \dimen@ \global\setbox\ab@x \vbox + {\kern\dimen@ \nointerlineskip + \ifvbox\ab@x \unvbox\ab@x \else \box\ab@x \fi }\fi } + +\def \a@adj@lo #1{% adjustment of box depth +\dimen@ #1\advance\dimen@ \a@disp +\ifdim \dimen@ > \a@dp \advance\dimen@ -\a@dp + \global\advance\a@dp \dimen@ \global\setbox\ab@x \vbox + {\ifvbox\ab@x \unvbox\ab@x \else \box\ab@x \fi + \nointerlineskip \kern\dimen@ }\fi } + +\def \a@ubox@u {% upper box above +\dimen@ \ht\dia@box \advance\dimen@ \dp\dia@box +\advance\dia@dy .5\dimen@ \global\advance \a@ht \dimen@ } + +\def \a@ubox@d {% upper box lowered +\dimen@ \ht\dia@box \advance\dimen@ \dp\dia@box +\advance\dia@dy -.5\dimen@ \dp\dia@box -\ht\dia@box } + +\def \a@ubox@c {% upper box centered +\dimen@ .5\ht\dia@box \advance\dimen@ .5\dp\dia@box +\global\advance \a@ht \dimen@ +\advance\dimen@ -\ht\dia@box \dp\dia@box \dimen@ } + +\def \a@lbox@d {% lower box below +\dimen@ \ht\dia@box \advance\dimen@ \dp\dia@box +\advance \dia@dy .5\dimen@ \global\advance \a@dp \dimen@ } + +\def \a@lbox@u {% lower box raised +\dimen@ \ht\dia@box \advance\dimen@ \dp\dia@box +\advance \dia@dy -.5\dimen@ \ht\dia@box -\dp\dia@box } + +\def \a@lbox@c {% lower box centered +\dimen@ \ht\dia@box \advance\dimen@ \dp\dia@box +\advance \dia@dy -.5\dimen@ \advance \dia@dy -.75\a@dp +\advance\dimen@ -2\ht\dia@box \advance\dimen@ 1.5\a@dp +\dp\dia@box .4\dimen@ \ht\dia@box -\dp\dia@box } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \put@upper {\dia@dx \a@slant\dia@dy \advance\dia@dx .5\a@wd +\advance\dia@dx \dia@hadj\a@dx \global\setbox\ab@x \vbox +{\moveright\dia@dx \box\dia@box \nointerlineskip +\ifvbox\ab@x \unvbox\ab@x \else \box\ab@x \fi }\wd\ab@x \a@wd } + +\def \put@lower {\dia@dx -\a@slant\dia@dy \advance\dia@dx .5\a@wd +\advance\dia@dx \dia@hadj\a@dx \global\setbox \ab@x \vbox +{\ifvbox\ab@x \unvbox\ab@x \else \box\ab@x \fi +\nointerlineskip \moveright\dia@dx \box\dia@box }\wd\ab@x \a@wd } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\iffalse % cf. aparse.sty +\chardef \c@shadda = 1 \chardef \c@hamza = 2 +\chardef \c@hamzalow = 3 \chardef \c@madda = 4 +\chardef \c@high = 10 + +\chardef \c@sukun = 1 \chardef \c@fatha = 2 +\chardef \c@kasra = 3 \chardef \c@damma = 4 +\chardef \c@fathatan = 5 \chardef \c@kasratan = 6 +\chardef \c@dammatan = 7 \chardef \c@zwarakay = 8 +\chardef \c@wasla = 9 \chardef \c@fathaspec = 10 +\chardef \c@kasraspec = 11 \chardef \c@ammad = 12 +\chardef \c@kas@fath = 13 \chardef \c@bars = 14 +\chardef \c@kh@hamza = 15 \chardef \c@kl@hamza = 16 +\chardef \c@kh@hamzl = 17 \chardef \c@kl@hamzl = 18 +\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/Master/texmf-dist/tex/latex/arabtex/acjk.sty b/Master/texmf-dist/tex/latex/arabtex/acjk.sty new file mode 100644 index 00000000000..d4f7ad120aa --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/acjk.sty @@ -0,0 +1,33 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% acjk.sty +% for CJK compatibility of ArabTeX +% or rather the other way around +% 24.10.1998 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifx \CJK \undefined \else + +\chardef \acjkatcode = \catcode`\@ \catcode`\@ = 11 +\a@ident {acjk.sty} {3.08 ArabTeX extensions for CJK} {24.10.1998} + +\ifx \CJK \undefined \else +\global\def\CJK@input#1{ + \makeatletter + \edef\CJK@lscode{\noexpand\catcode`<\the\catcode`<} + \catcode `< 12 + \endlinechar \m@ne + \input #1\relax + \endlinechar `\^^M + \CJK@lscode + \makeatother} +\fi + +\catcode`\@ = \acjkatcode +\fi +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput + + diff --git a/Master/texmf-dist/tex/latex/arabtex/acmd.sty b/Master/texmf-dist/tex/latex/arabtex/acmd.sty new file mode 100644 index 00000000000..a34f058f82b --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/acmd.sty @@ -0,0 +1,335 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% acmd.sty +% ArabTeX command processing +% 20.08.2003 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Formale Methoden der Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@ident {acmd.sty} {3.11 Arabic command processing } {20.08.2003} + +\def \a@command #1{% process an internal command +\iftest@command \tracingmacros 1 \fi + \def@@cmd #1\xpa +\ifx \the\a@@cmd \relax % no special handling? + \if\is@in@set #1\a@@listreg +% \def \next {\xpa \test@token #1}\else + \def \next {\xpa \arab@tail #1}\else + \if\is@in@set #1\a@@listzero + \unarab@codes \def \next {#1\arab@tail }\else + \if\is@in@set #1\a@@listone + \unarab@codes \def \next ##1{#1{##1}\arab@tail }\else + \if\is@in@set #1\a@@listtwo + \unarab@codes \def \next ##1##2{#1{##1}{##2}\arab@tail }\else + \def \next {\a@cmderr #1}% disallowed + \fi\fi\fi\fi +\else \def \next {\the\a@@cmd }% local routine +\fi \next } + +\def \a@cmderr #1{% complain and substitute a dummy command + \errhelp {Your command will be echoed in the output}% +\ifx #1\undefined \def \next {\a@puttt #1\test@token }% + \errmessage {Unknown arabic command: \nxp #1}% +\else \errmessage {Illegal arabic command: \nxp #1}% + \a@@cmd = {{\a@puttt #1\arab@tail }} + \immediate\openout \a@@err = \jobname.err + \immediate\write \a@@err {\string \gdef \string \next \space + \xpa \a@@pat \meaning #1:->\pat@end \the\a@@cmd }% substitution + \immediate\closeout \a@@err + {\catcode `\@=11 \input \jobname.err }% +\fi \next } + +\def \def@@cmd #1{% define \a@@cmd as \a@c@#1 +\ifcat \nxp #1\nxp ~% +\global\a@@cmd = \xpa {\csname a@c@\string #1\endcsname }\else +\global\a@@cmd = \xpa {\csname a@c@\xpa \@gobble \string #1\endcsname }\fi } + +\def \arab@tail {\arab@codes \set@arabfont \test@token } + +\def \a@@pat #1:#2->#3\pat@end {#2} + +\def \a@puttt #1{\putwordb@x {\tt \string #1}} + +%%%%%%%%%%%%%%%%%%%%%% enable internal commands %%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newtoks \a@@listzero \newtoks \a@@listone +\newtoks \a@@listtwo \newtoks \a@@listreg + +\long\def \a@@addcmd #1#2{% #1 cmd, #2 list +\global #2 = \xpa {\the #2#1}} + +\long\def \all@wcmd #1{% enable parameterless command in arabic environment +\a@@addcmd #1\a@@listzero } + +\long\def \all@w@ne #1{% enable command with 1 param in arabic environment +\a@@addcmd #1\a@@listone } + +\long\def \all@wtw@ #1{% enable command with 2 params in arabic environment +\a@@addcmd #1\a@@listtwo } + +\long\def \all@wif #1{% enable \#1true, \#1false +\a@@name = \xpa \xpa \xpa {\xpa \@gobble \string #1}% +\xpa \all@wcmd \csname \the\a@@name true\endcsname +\xpa \all@wcmd \csname \the\a@@name false\endcsname } + +\long\def \all@whcmd #1{% enable command for horizontal mode +\def@@cmd #1\all@wcmd #1% +\xpa \def \the\a@@cmd {\putwordb@x {\leavevmode #1}\test@token }} + +\long\def \all@wvcmd #1{% enable command for vertical mode +\def@@cmd #1\all@wcmd #1% +\xpa \def \the\a@@cmd {\a@@par #1\test@token }} + +%%%%%%%%%%%%%%%%%%%%%% enable command definitions %%%%%%%%%%%%%%%%%%%%%%%% + +\long\def \allowarab #1{% enable new command in arabic environment +\a@@addcmd #1\a@@listreg } + +\def \a@@def #1#2#3#4{% define command in RL mode +\allowarab #2#1#2#3{#4}\test@token } + +\def \a@c@def #1#2#{\a@@def \def {#1}{#2}} + +\def \a@c@edef #1#2#{\a@@def \edef {#1}{#2}} + +\def \a@c@gdef #1#2#{\a@@def \gdef {#1}{#2}} + +\def \a@c@xdef #1#2#{\a@@def \xdef {#1}{#2}} + +%%%%%%%%%%%%%%%%%%%%%% enable ArabTeX commands %%%%%%%%%%%%%%%%%%%%%%%%%%% + +\all@wcmd \novocalize \all@wcmd \vocalize \all@wcmd \fullvocalize +\all@wcmd \setnash \all@wcmd \setnashbf \all@wcmd \setnastaliq +\all@wcmd \setarab \all@wcmd \setmaghribi \all@wcmd \setfarsi +\all@wcmd \setturk \all@wcmd \setkurdish \all@wcmd \setbalut +\all@wcmd \seturdu \all@wcmd \setpashto \all@wcmd \setverb +\all@wcmd \yahdots \all@wcmd \yahnodots \all@wcmd \oldtanwin +\all@wcmd \newtanwin \all@wcmd \accentshigh \all@wcmd \accentslow +\all@wcmd \oldhamza \all@wcmd \newhamza \all@w@ne \setarabfont +\all@w@ne \setcode \all@wcmd \endsetcode \all@wcmd \setuighur +\iffalse +\all@w@ne \input \all@w@ne \end +\all@wcmd \relax \all@wcmd \indent \all@wcmd \noindent +\all@w@ne \emphasize \all@wtw@ \footnote \all@w@ne \marginpar +\all@w@ne \docommand \all@wtw@ \doassign \all@w@ne \mbox +\all@w@ne \centerline \all@w@ne \spreadline \all@wtw@ \spreadbox +\all@wcmd \nospace \all@w@ne \hspace \all@w@ne \tracingmacros +\fi + +\all@wif \arab \all@wif \trans \all@wif \show +\all@wif \spread \all@wif \ligs \all@wif \RL + +\all@whcmd \bigskip \all@whcmd \medskip \all@whcmd \smallskip +\all@whcmd \hfill \all@whcmd \hfil \all@whcmd \space +\all@whcmd \hss + +\ifx \LaTeX \undefined +\all@wvcmd \bigskip \all@wvcmd \medskip \all@wvcmd \smallskip +\fi + +\all@wvcmd \newpage \all@wvcmd \clearpage +\all@wvcmd \vfil \all@wvcmd \vfill + + +%%%%%%%%%%%%%%%%%%% special characters %%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@spec@def #1#2{% define routine for special character +\def@@cmd #1\xpa \gdef \the\a@@cmd {#2}} + +\def \a@@chardef #1{\begingroup \lccode `\0 #1\lowercase +{\endgroup \ifarab \putwordb@x {\a@rabwrite {0}}\fi +\a@showinput {0}}\obey@space } + +\a@spec@def \#{\a@@chardef {`\#}} \a@spec@def \${\a@@chardef {`\$}} +\a@spec@def \%{\a@@chardef {`\%}} \a@spec@def \&{\a@@chardef {`\&}} +\a@spec@def \^{\a@@chardef {`\^}} \a@spec@def \_{\a@@chardef {`\_}} + +\a@spec@def \ {\a@spacefalse \putwordb@x {\arab@space }\test@token } + +\def \a@c@arabchar #1{% single character in the font +\ifarab \putwordb@x {\char #1}\fi \a@showinput {\arabchar #1}\obey@space } + +\def \a@c@char {% read char number +\begingroup \afterassignment \a@@char \count0=} + +\def \a@@char {% deposit character +\edef \a@ch@r {\noexpand\a@c@arabchar {\the\count0}}% +\xpa\endgroup \a@ch@r } + +%%%%%%%%%%%%%%%%%%% miscellaneous commands %%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@c@end {\end } \def \a@c@relax {\test@token } + +\def \a@c@par {\a@@par \test@token } + +\def \a@c@indent {\arab@indent \test@token } + +\def \a@c@noindent {\arab@noindent \test@token } + +\def \a@c@input {% \input inside arabic environment, Plain version +\xpa \test@token \input } + +\def \a@c@doassign #1#2{% execute assignment +#1#2\relax \test@token } + +\def \a@c@docommand #1{% expand and process user command +\xpa \test@token \xpa {#1} } + +\def \a@c@bf {\setnashbf \arab@tail } +\def \a@c@rm {\setnash \arab@tail } + +\def \a@c@today {\xpa \a@c@mbox \xpa {\a@@today }} + +\edef \a@@today {\number\day \space \ifcase\month\or +yanAyir \or febrAyir \or mAris \or 'abrIl \or +mAyU \or yUniyU \or yUliyU \or 'a.gus.tus \or +sibtambar \or 'uktUbar \or nUfambar \or disambar \fi , +\number\year} + +\def \a@c@protect {\test@token } + +\long\def \a@c@cond #1#2#3\fi {% call conditional +#1\ReturnElseFi {\test@token #2}% +\else \ReturnFi {\test@token #3}\fi } + +\def \a@c@endinput {\endinput \test@token } + +%%%%%%%%%%%%%% \begin ... \end {romantext} %%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@c@romantext {% end Arabic mode and switch down (!) to Roman +\endgroup \endarabtext \endgroup +\def \@currenvir {romantext}\let \end \a@r@end \ignorespaces } + +\def \endromantext {% switch up (!) to Arabic mode +\endgraf +\def \@currenvir {document}\begingroup +\def \@currenvir {arabtext}\arabtext } + +\let \a@l@end \end % save current meaning of \end + +\def \a@r@end #1{% new \end for the base level +\def \@romantext {romantext}\def \@tempa {#1}% +\ifx \@tempa \@romantext \let \@tempa \endromantext +\else \def \@tempa {\a@l@end {#1}}% +\fi \@tempa } + +%%%%%%%%%%%%%%%%%%%%%%%%%% boxes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@c@centerline #1{% new line, centered +\a@@par \centerline {\a@showinput {#1}}% +\ifarab \putwordb@x {\hss \a@sequence {#1}\hss }\a@put@line +\fi \test@token } + +\def \a@c@spreadline #1{% new line, spread out +\a@@par \initlineb@x \centerline {\a@showinput {#1}}% +\ifarab \putwordb@x +{\spreadtrue \a@sequence {#1}\setbox0 \lastbox \unhbox0 }\a@put@line +\fi \test@token } + +\def \a@c@mbox #1{% put the argument into a box +\ifarab \putwordb@x {\a@sequence {#1}}\fi +\a@spacefalse \a@showinput {#1}\test@token } + +\def \a@c@spreadbox {% {width}{text} put the text into a box +\unarab@codes \a@@spreadbox } + +\def \a@@spreadbox #1{% {width}{text} get the width +\def \a@bwidth {#1}\arab@codes \a@spreadbox } + +\def \a@spreadbox #1{% {width}{text} get the text +\ifarab \putwordb@x {\spreadtrue +\setspace {3pt plus .3fil}% +\a@sequence {#1}% +\setbox0 \lastbox \hbox to \a@bwidth {\unhbox0 }}\fi +\a@spacefalse \a@showinput {#1}\test@token } + +%%%%%%%%%%%%%%%%%%%%%%%%%% spacing %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@c@nospace {% concatenate neighboring items +\a@spacefalse \test@token } + +\let \nospace \relax + +\def \a@c@hspace {% horizontal space +\unarab@codes \a@@hspace } + +\def \a@@hspace #1{% get argument +\a@spacefalse \ifarab \putwordb@x {\hskip #1\relax }\fi +\arab@codes \test@token } + +\def \a@c@pagebreak +{\a@@par \@ifnextchar [{\a@@pagebreak }{\a@@pagebreak [4]}} + +\def \a@@pagebreak [#1]{\pagebreak [#1]\test@token } + +\def \a@c@hskip {\afterassignment \a@hskip \dimen0=} + +\def \a@hskip {\putwordb@x {\hskip \dimen0 }\test@token } + +\def \a@c@vskip {\afterassignment \a@vskip \dimen0=} + +\def \a@vskip {\a@@par \vskip \dimen0 \test@token } + +\def \a@c@vspace {% vertical space +\unarab@codes \a@@vspace } + +\def \a@@vspace #1{% get argument +\ifarab \a@@par \vskip #1\relax \fi +\arab@codes \test@token } + +\def \a@c@break {\a@put@line \test@token } + +%%%%%%%%%%%%%%%%%%%%%%%%%% emphasis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@c@emphasize {% get next token +\def \next@command {\arab@em}% +\futurelet \next@token \test@space } + +\def \arab@em #1 {% overstrike group +\def \next@command {\test@special}% +\ifarab \setbox0 \hbox {\a@sequence {#1}}% + \putwordb@x {\vbox {\hrule \kern 1pt \box0}}% +\fi +\ifshow {\tt \string \emphasize \ }% +\if \bgroup \nxp \next@token \a@@verb {{#1}}\else \a@@verb {#1}% +\fi\fi +\iftrans \underbar {{\set@transfont \trans@text #1 \end }}% +\fi \test@token } + +%%%%%%%%%%%%%%%%%%% \footnote in an arabic environment %%%%%%%%%%%%%%% + +\def \a@c@footnote #1{% Plain TeX arabic footnote +\rm \parindent \a@parindent \unarab@codes \def \@foot +{\unskip \strut \egroup \arab@codes \set@arabfont \test@token }% +\putwordb@x {#1}\a@spacetrue \vfootnote {#1}} + +%%%%%%%%%%%%%%%%%% \marginpar in an arabic environment %%%%%%%%%%%%%%% + +\def \a@c@marginpar {% for Arabic environments only +\setbox0 \vtop \bgroup \unarab@codes \a@@marginpar } + +\long \def \a@@marginpar #1{% get text of note +\hsize \marginparwidth \parskip 0pt \raggedright +\noindent \rm \strut #1\vss \egroup \dp0 \z@ +\setbox\lineb@x \hbox {\unhbox\lineb@x +\rlap {\hskip \marginparsep \box0 \hss }}\test@token } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\all@w@ne \settrans + +\def \a@c@tracingmacros {\afterassignment \test@token \tracingmacros=} + +\def \a@c@test #1{\csname test@#1true\endcsname \test@token } + +\def \a@c@untest #1{\csname test@#1false\endcsname \test@token } + +\a@spec@def \<{\a@get@ins } + +\def \a@get@ins #1>{\test@token #1 } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/tex/latex/arabtex/aconfig.sty b/Master/texmf-dist/tex/latex/arabtex/aconfig.sty new file mode 100644 index 00000000000..47f837fa602 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/aconfig.sty @@ -0,0 +1,95 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% aconfig.sty +% determine the configuration for ArabTeX +% 26.04.2003 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%\a@ident {aconfig.sty}{3.11 get ArabTeX configuration } {26.04.2003} + +%%%%%%%%%%%%%%%%%%%%%%% check environment %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@@Plain {Plain} \def \a@@LaTeX {LaTeX} +\def \a@@LaTeXiizix {LaTeX2.09} \def \a@@LaTeXiie {LaTeX2e} +\def \a@@EDMAC {EDMAC} \def \a@@EDMACiii {EDMAC3.00} +\def \a@@EDMACiiixv {EDMAC3.15} +\def \a@config {aconfig} \def \a@sty {sty} + +\def \UsePackage #1{\input {#1.sty}} + +\ifx \undefined \LaTeX \let \a@@env \a@@Plain + \wlog {Plain TeX detected }\let \a@@var \a@@Plain + \newcount \@listdepth \@listdepth \z@ + \newdimen \linewidth \linewidth \hsize +\else \let \a@@env \a@@LaTeX +\ifx \undefined \NeedsTeXFormat + \wlog {LaTeX 2.09 detected }\let \a@@var \a@@LaTeXiizix +\else \wlog {LaTeX2e detected }\let \a@@var \a@@LaTeXiie + \listfiles + \ifx \undefined \xpt \def \UsePackage {\usepackage } + \fi +\fi\fi + +\ifx \edmacloaded \relax \let \a@@env \a@@EDMAC +\ifx \end@lemmas \undefined + \wlog {EDMAC 3.00 detected }\let \a@@var \a@@EDMACiii +\else \wlog {EDMAC 3.15 or later detected }\let \a@@var \a@@EDMACiiixv +\fi\fi + +\ifx \undefined \originalTeX \else + \wlog {BABEL detected}\def \a@babel {BABEL}% +\fi + +%%%%%%%%%%%%%%%%%%%%%%% module reporting %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newcount \a@moduledate \newcount \a@maindate \a@maindate 0 +\def \arabtexconfig {$ArabTeX configuration:$}% + +\def \a@LaTeXdate #1#2#3#4#5#6#7#8{% fixed Y2k problem !! +#1#2#3#4/#5#6/#7#8}% standard format + +\def \a@getstem #1.#2\relax {\def \a@stem {#1}\def \a@ext {#2}} + +\def \a@geteight #1#2#3#4#5#6#7#8#9\relax % pad to 8 characters +{\def \a@eight {#1#2#3#4#5#6#7#8}\xpa \a@getpad \a@eight\space..\relax } + +\def \a@getpad #1.#2.#3\relax {\def \a@pad {#2}} + +\def \a@newdate #1.#2.#3.#4\@{\a@moduledate 0#3\relax +\ifnum \a@moduledate < 100 \advance \a@moduledate 1900 +\message {^^J*** fix date (\a@@date ) of module \a@@module ! ***^^J^^J}% +\ifnum \a@moduledate < 1990 \advance \a@moduledate 100 +\fi\fi +\multiply \a@moduledate 100 \advance \a@moduledate 0#2 +\multiply \a@moduledate 100 \advance \a@moduledate 0#1 } + +\def \a@report {% identify actual run +\typeout {Arabic processor `ArabTeX' [\number\a@maindate \space +patch level \a@patchlevel ]}} + +\def \a@ident #1#2#3{% report loaded modules +\def \a@@module {#1}\edef \a@@date {#3}% +\xpa\a@newdate \a@@date ...\@ % format date of module +\ifnum \a@moduledate > \a@maindate \a@maindate \a@moduledate \fi +\edef \a@descr {\xpa \a@LaTeXdate \the\a@moduledate \space\space #2} +\a@getstem #1\relax +\ifx \a@@var \a@@LaTeXiie + \ifx \a@stem \a@config \else + \ifx \a@ext \a@sty \ProvidesPackage {\a@stem }[\a@descr ]% + \fi + \fi +\else \message {#2} \message {(#3)} +\fi +\xpa \a@geteight \a@stem.\space\space\space\space\space\space\relax +\edef \arabtexconfig {\arabtexconfig $\a@pad #1 \space\a@descr }} + +\a@ident {aconfig.sty}{3.08 get ArabTeX configuration } {01.11.1998} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + diff --git a/Master/texmf-dist/tex/latex/arabtex/aedpatch.sty b/Master/texmf-dist/tex/latex/arabtex/aedpatch.sty new file mode 100644 index 00000000000..f5f8296fcc9 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/aedpatch.sty @@ -0,0 +1,220 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% aedpatch.sty +% patches for EDMAC to operate with ArabTeX +% 19.03.93 2.07 EDMAC 3.00 +% 19.06.94 3.02 EDMAC 3.15 compatible +% \pstart, \pend, \autopar within Arabic +% 06.05.97 3.05 bug fixes, works with EDMAC 3.17 +% 05.07.97 3.06 for edmacfss.sty +% 22.01.98 3.06a fixed parafootnote format +% 07.02.98 3.06a fixed parafootnote format for LaTeX +% 08.07.98 3.07 new ArabTeX version +% 10.04.99 3.08 fixed spurious space +% 20.08.03 3.11 cleanup +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \aedatcode \undefined \else \expandafter \endinput +\fi % load only once + +\chardef \aedatcode = \catcode`\@ \catcode`\@ = 11 + +\a@ident {aedpatch.sty} {3.11 ArabTeX extensions for EDMAC} {20.08.2003} + +\def \tr@ce@n {\tracingmacros 0} + +\def \tr@ce@ff {\edef \tr@ce@n + {\nxp\tracingmacros \the\tracingmacros }\tracingmacros 0} +\let \tr@ce@n \relax + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% modify some EDMAC commands in a compatible way + +\long \def \text #1#2/{% inside Roman text +% depends on EDMAC version used +\leavevmode +\begingroup \no@expands + \xdef\@tag{#1}% + \set@line \global\insert@count=0 + \ignorespaces #2\relax \flag@start +\endgroup +#1% +\a@end@lemma +\flag@end } + +\def \a@end@lemma {% for EDMAC 3.00 and EDMAC 3.15 +\ifx \end@lemma \undefined % as in EDMAC 3.15 - 3.17 + \ifx\end@lemmas\empty \else + \gl@p\end@lemmas\to\x@lemma + \x@lemma + \global\let\x@lemma=\relax + \fi +\else \the\end@lemma % defined or EDMAC 3.00 +\fi } + +\def \lemma #1{% in argument of \text +% care for delayed expansion of some ArabTeX commands + \begingroup \def \protect {\noexpand \protect \noexpand }% + \xdef\@tag{#1}% + \endgroup \ignorespaces } + +\def \do@line {% break off a line from \raw@text + {\vbadness=10000 \splittopskip=0pt + \advance \baselineskip 1ex +% guard against some overfull \vboxes ! +% Arabic lines have a greater height and depth + \global \setbox\one@line + \vsplit \raw@text to \baselineskip }% + \unvbox\one@line \global \setbox\one@line \lastbox \getline@num + \hbox to \hsize {\affixline@num {\hfil + \hbox to \wd\one@line {\new@line \unhbox\one@line }}}% + \add@inserts + \add@penalties } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% variants for use inside an Arabic environment + +\def \<#1>{\RL{#1}} % allow long insertions + +{\catcode `< \active +\gdef <#1>{\RL{#1}}} % allow long insertions + +\def \a@c@text {% internal version of \text +% parameters will have the original catcodes +\tr@ce@n \leavea@vmode \unarab@codes \begingroup +\tr@ce@ff \rm \tr@ce@n \a@@text } + +\long \def \a@@text #1{% auxiliary routine +% to kill leading blanks and remove spurious braces from #2 +\def \next@command {\a@@@text {#1}}% +\futurelet \next@token \test@space } + +\def \a@append #1{% to the \lineb@x +\setbox \lineb@x \hbox {\unhbox \lineb@x #1}} + +\def \a@get@text #1\@@ {% get flags and lemma +\a@append {\flag@start }\a@@Linsert {#1}} + +\def \a@put@text {% unpack \Linsertb@x +\a@Lunpack \putwordb@x {\ins@skip }} + +\long \def \a@@@text #1#2/{% inside arabic enviroment: +% stay in vertical mode, put the text into a \hbox +% and deposit the box *and* the \writes in the Arabic line + \no@expands + \def \next@command {\test@special}% + \xdef \@tag{#1}\set@line \global\insert@count=0 + \aftergroup \a@get@text + % prepare for collecting any side effects of #2 + \ignorespaces #2\relax +\endgroup + #1\a@end@lemma \@@ % close the text + \a@put@text \a@append {\flag@end }% + \arab@codes \a@spacetrue +\tr@ce@ff \test@token } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@c@label #1{% outside the arguments of \text +% hide the \write commands inside a box in the Arabic line +% otherwise \do@line will not find the correct line breaks + \do@labelsfile + \ifx \labelref@list \empty \xdef \label@refs {\zz@@@ }% + \else \gl@p \labelref@list \to \label@refs + \fi + \edef \next {\write\@aux {\string\make@labels \label@refs|{#1}}}% + \global \setbox \wordb@x \hbox + {\write\linenum@out {\string\@lab }\next }% + \put@word \test@token } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\let \a@par \a@@par % save for \a@@everypar in \a@c@autopar + +\def \a@c@pstart {\pstart \test@token } + +\def \a@c@pend {\a@par \pend \a@par \test@token } + +\def \a@c@autopar {% use inside Arabic environment +\ifnumbering \else \errmessage + {\string\autopar\space must be used within a numbered section}% + \beginnumbering +\fi +\a@@everypar= {\setbox0 = \box \lineb@x \let \next \test@token + \a@par \pstart % starts a group + \def \a@@par {\a@par \pend \a@par }% + \def \end {\a@par \pend \test@token \end }% + \a@@everypar= {}\arab@indent }% +\a@spacefalse \test@token } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% allow still more EDMAC commands in Arabic text also + +\all@w@ne \pageref \all@w@ne \lineref \all@w@ne \sublineref +\all@w@ne \xpageref \all@w@ne \xlineref \all@w@ne \xsublineref +\all@wtw@ \makelabel \all@wtw@ \xxref + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% fix some bugs in EDMAC (Plain TeX and LaTeX2e versions) + +\xpa\def \xpa\no@expands \xpa{\no@expands \let ~=0\relax } + +\ifx\selectfont\undefined + +\font \nashix =nash14 scaled 900 +\font \nashviii =nash14 scaled 800 + +\xpa\def \xpa\eightpoint \xpa{\eightpoint % Arabic is higher +\normalbaselineskip=15.99pt +\setbox\strutbox=\hbox{\vrule height10pt depth6pt width0pt}% +\normallineskiplimit -16pt +\setarabfont \nashviii +\normalbaselines \rm } + +\else +\listfiles + +\def\notefontsetup{\rm\fontsize{8}{15.99pt}\selectfont +\lineskiplimit -\baselineskip } + +\def \begin #1{% call \a@c@#1 +% enable local \end +\@ifundefined {#1}% +{\def \@tempa {\@latexerr {Environment #1 undefined}\@eha }}% +{\def \@tempa {\def \@currenvir {#1}\csname #1\endcsname }}% +\begingroup \let \end \a@l@end \@endpefalse \@tempa } + +\def \a@l@end #1{% call \end#1 +% local version of \end +\csname end#1\endcsname \@checkend {#1}% +\if@endpe \global \let \@gtempa \@doendpe +\else \global \let \@gtempa \relax +\fi \endgroup \@gtempa } + +\fi + +\interparanoteglue{1em plus2em minus.4em} +% more stretch for Arabic text + +\ifx \LaTeX \undefined \else \listfiles \fi + +\def \end {\newlinechar `$\wlog {\arabtexconfig }\@@end } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \edmacloaded \relax + \ifx \selectfont \undefined + \let \notefontsetup \eightpoint + \fi + \footnormal{A} \footnormal{B} \footnormal{C} + \footnormal{D} \footnormal{E} +\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\catcode`\@ = \aedatcode +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/Master/texmf-dist/tex/latex/arabtex/afonts.sty b/Master/texmf-dist/tex/latex/arabtex/afonts.sty new file mode 100644 index 00000000000..4b7303ad240 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/afonts.sty @@ -0,0 +1,52 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% afonts.sty +% 18.07.91 1.0 +% 20.09.91 1.1 added NFSS macros (br) +% 19.11.91 1.2 magstephalf +% 24.12.91 1.3 format +% 12.02.92 1.4 message delayed +% 27.02.92 1.5 nash14 font +% 31.08.93 1.6 added support for NFSS2, missing `pt' in NFSS1 def. (br) +% 14.03.94 1.7 identify lfonts.tex or NFSS version used +% 16.11.95 3.04 split into separate files +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally and Bernd Raichle +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% load this file only, if \pnash not defined + +\expandafter \ifx \csname pnash\endcsname \relax \else + \expandafter \endinput \fi + +\a@ident {afonts.sty} {3.04 define Naskh font } {16.11.1995} + +\def\nash {\protect\pnash} +\def\nashbf {\protect\pnashbf} +% select the nash font with \nash + +\expandafter\ifx\csname DeclareFontShape\endcsname\relax + +% If we are using the NFSS, Version 2, \DeclareFontShape +% is defined. +% (The \expandafter\ifx\csname...\endcsname\relax is necessary, +% because the NFSS2 styleoptions use LaTeX's internal \@ifundefined +% command.) + +\expandafter\ifx\csname selectfont\endcsname\relax + +% Now it's possible that NFSS, Version 1, is used. +% If \selectfont is defined, NFSS is active, otherwise +% we assume LaTeX's `lfonts.tex'. + + % OLD FONT SELECTION + \UsePackage {afonts0} + \else % NEW FONT SELECTION -- Version 1 + \UsePackage {afonts1} + \fi +\else % NEW FONT SELECTION -- Version 2 + \UsePackage {afonts2} +\fi + +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/tex/latex/arabtex/afonts0.sty b/Master/texmf-dist/tex/latex/arabtex/afonts0.sty new file mode 100644 index 00000000000..e123923825c --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/afonts0.sty @@ -0,0 +1,60 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% afonts0.sty +% ArabTeX +% load Naskh14 for old LateX +% 16.11.95 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@ident {afonts0.sty} {3.04 define Naskh font for old LaTeX} {16.11.1995} + +% OLD FONT SELECTION +% load all necessary fonts + +\newfont {\tennash }{nash14} +\newfont {\elvnnash}{nash14 scaled 1095} +\newfont {\twlvnash}{nash14 \@magscale1} +\newfont {\frtnnash}{nash14 \@magscale2} +\newfont {\svtnnash}{nash14 \@magscale3} +\newfont {\twtynash}{nash14 \@magscale4} +\newfont {\twfvnash}{nash14 \@magscale5} + +\newfont {\tennashbf }{nash14bf} +\newfont {\elvnnashbf}{nash14bf scaled 1095} +\newfont {\twlvnashbf}{nash14bf \@magscale1} +\newfont {\frtnnashbf}{nash14bf \@magscale2} +\newfont {\svtnnashbf}{nash14bf \@magscale3} +\newfont {\twtynashbf}{nash14bf \@magscale4} +\newfont {\twfvnashbf}{nash14bf \@magscale5} + +% add the \pnash command to the size changing hooks + +\@addfontinfo \@vpt {\def\pnash {\tennash}} +\@addfontinfo \@viipt {\def\pnash {\tennash}} +\@addfontinfo \@viiipt {\def\pnash {\tennash}} +\@addfontinfo \@ixpt {\def\pnash {\tennash}} +\@addfontinfo \@xpt {\def\pnash {\tennash}} +\@addfontinfo \@xipt {\def\pnash {\elvnnash}} +\@addfontinfo \@xiipt {\def\pnash {\twlvnash}} +\@addfontinfo \@xivpt {\def\pnash {\frtnnash}} +\@addfontinfo \@xviipt {\def\pnash {\svtnnash}} +\@addfontinfo \@xxpt {\def\pnash {\twtynash}} +\@addfontinfo \@xxvpt {\def\pnash {\twfvnash}} + +\@addfontinfo \@vpt {\def\pnashbf {\tennashbf}} +\@addfontinfo \@viipt {\def\pnashbf {\tennashbf}} +\@addfontinfo \@viiipt {\def\pnashbf {\tennashbf}} +\@addfontinfo \@ixpt {\def\pnashbf {\tennashbf}} +\@addfontinfo \@xpt {\def\pnashbf {\tennashbf}} +\@addfontinfo \@xipt {\def\pnashbf {\elvnnashbf}} +\@addfontinfo \@xiipt {\def\pnashbf {\twlvnashbf}} +\@addfontinfo \@xivpt {\def\pnashbf {\frtnnashbf}} +\@addfontinfo \@xviipt {\def\pnashbf {\svtnnashbf}} +\@addfontinfo \@xxpt {\def\pnashbf {\twtynashbf}} +\@addfontinfo \@xxvpt {\def\pnashbf {\twfvnashbf}} + +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/tex/latex/arabtex/afonts1.sty b/Master/texmf-dist/tex/latex/arabtex/afonts1.sty new file mode 100644 index 00000000000..3d074dea54c --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/afonts1.sty @@ -0,0 +1,61 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% afonts1.sty +% ArabTeX +% load Naskh14 for NFSS1 +% 16.11.95 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally and Bernd Raichle +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@ident {afonts1.sty} {3.04 define Naskh font for NFSS1} {16.11.1995} + +\chardef \fntatcode = \catcode`\@ \catcode`\@ = 11 +\chardef \fntlscode = \catcode`\< \catcode`\< = 12 + +% NEW FONT SELECTION -- Version 1 + +% define \pnash to use the `nash' family, `m'edium series, `n'ormal shape. + +\def\pnash{\family{nash}\series{m}\shape{n}\selectfont} +\def\pnashbf{\family{nash}\series{bx}\shape{n}\selectfont} + +% setup the font definition table +% (`1' at the beginning of a fontname: size not available, print +% warning to inform the user) + +\new@fontshape{nash}{m}{n}{% + <5>1nash14% + <6>1nash14% + <7>1nash14% + <8>1nash14% + <9>1nash14% + <10>nash14 at14.4pt% + <11>nash14 at15.77441pt% + <12>nash14 at17.28pt% + <14>nash14 at20.736pt% + <17>nash14 at24.8832pt% + <20>1nash14 at29.85984pt% + <25>1nash14 at35.831808pt}{} + +\new@fontshape{nash}{bx}{n}{% + <5>1nash14bf% + <6>1nash14bf% + <7>1nash14bf% + <8>1nash14bf% + <9>1nash14bf% + <10>nash14bf at14.4pt% + <11>nash14bf at15.77441pt% + <12>nash14bf at17.28pt% + <14>nash14bf at20.736pt% + <17>nash14bf at24.8832pt% + <20>nash14bf at29.85984pt% + <25>nash14bf at35.831808pt}{} + +\extra@def{nash}{}{} + +\catcode`\@ = \fntatcode \catcode`\< = \fntlscode + +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/tex/latex/arabtex/afonts2.sty b/Master/texmf-dist/tex/latex/arabtex/afonts2.sty new file mode 100644 index 00000000000..6d3c75fd082 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/afonts2.sty @@ -0,0 +1,54 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% afonts2.sty +% ArabTeX +% load Naskh14 for NFSS2 +% 19.10.1999 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally and Bernd Raichle +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@ident {afonts2.sty} {3.10 define Naskh fonts for LaTeX2e} {19.10.1998} + +% NEW FONT SELECTION -- Version 2 + +% define \pnash to use the `unknown' fontencoding, `nash' fontfamily, +% `m'edium fontseries und `n'ormal fontshape. + +\def\pnash{\fontencoding{U}\fontfamily{nash}% + \fontseries{m}\fontshape{n}\selectfont} + +% define \pnashbf to use the `unknown' fontencoding, `nash' fontfamily, +% `b'old e`x'tended fontseries und `n'ormal fontshape. + +\def\pnashbf{\fontencoding{U}\fontfamily{nash}% + \fontseries{bx}\fontshape{n}\selectfont} + +% extended Nash fonts (14pt @ 12pt): + +\def \xnash {\protect \pxnash } +\def \xnashbf {\protect \pxnashbf } + +\def \pxnash {\fontencoding {U}\fontfamily {xnsh}% + \fontseries {m}\fontshape {n}\selectfont } + +\def \pxnashbf {\fontencoding {U}\fontfamily {xnsh}% + \fontseries {bx}\fontshape {n}\selectfont } + +% smaller fonts (12pt @ 12pt): + +\def \snash {\protect \psnash } +\def \snashbf {\protect \psnashbf } + +\def \psnash {\fontencoding {U}\fontfamily {xnsh}% + \fontseries {m}\fontshape {s}\selectfont } + +\def \psnashbf {\fontencoding {U}\fontfamily {xnsh}% + \fontseries {bx}\fontshape {s}\selectfont } + +% All other definitions are done in the files `Unash.fd' and `Uxnsh.fd', +% which are loaded on demand. + +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/tex/latex/arabtex/afoot.sty b/Master/texmf-dist/tex/latex/arabtex/afoot.sty new file mode 100644 index 00000000000..2d0bde03ce1 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/afoot.sty @@ -0,0 +1,100 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% afoot.sty +% ArabTeX footnotes +% 12.05.2003 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Formale Methoden der Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \undefined \LaTeX \xpa \endinput \fi + +\a@ident {afoot.sty} {3.11 ArabTeX footnotes} {12.05.2003} + +%%%%%%%%%%%%%%%%%%% \footnote in an arabic environment %%%%%%%%%%%%%%% +% footnotes inside an Arabic environment, Roman document style + +\let \a@@footnotemark \@footnotemark +\let \a@@footnotetext \@footnotetext + +\def \a@footnotemark {% inside Arabic environment +\iftrans \unskip \unskip \nobreak \@makefnmark \fi +\ifarab \a@spacefalse \putwordb@x \@makefnmark \a@spacetrue \fi } + +\long\def \a@footnotetext #1{\a@@footnotetext {#1}\arab@tail } + +\at@arabtext {% inside Arabic environments +\let \@footnotemark \a@footnotemark +\let \@footnotetext \a@footnotetext } + +\def \a@c@footnote {% ArabTeX-LaTeX version +\let \@footnotemark \a@footnotemark +\unarab@codes \footnote } + +\def \a@c@footnotemark {% ArabTeX-LaTeX version +\def \@footnotemark {\a@footnotemark \arab@tail }% +\unarab@codes \footnotemark } + +\long\def \a@c@footnotetext {% ArabTeX-LaTeX version +\unarab@codes \footnotetext } + +\def \LRfootnotes {% left to right footnotes +\def \a@fnhook {\a@@mkfntext }% Roman document +%\def \a@fnhook {\a@rmfntext }% Roman document +\def \a@@fnhook {\a@rmfntext }% Arabic document +} + +\all@wcmd \LRfootnotes \LRfootnotes % default + +%%%%%%%%%%%%%%%%%%% \footnote in an arabic environment %%%%%%%%%%%%%%% +% footnotes inside an Arabic environment, Arabic document style + +\iffalse +\def \a@@footnote {% ArabTeX-LaTeX version +\def \@footnotemark {% + \a@spacefalse \putwordb@x \@makefnmark \a@spacetrue }% +\def \a@@fntext ##1{% common part for footnote text + \def \end {\a@par \egroup \test@token }% + \hsize \columnwidth \@parboxrestore + \initlineb@x \@footnotemark \test@token ##1 \end } +} + +\def \a@@footnotemark {% +\def \@footnotemark % ArabTeX-LaTeX version + {\a@spacefalse \putwordb@x \@makefnmark \a@spacetrue \test@token }% +\footnotemark } +\fi + +\long\def \a@@fntext #1{% common part for footnote text +%\def \@footnotemark {% +% \a@spacefalse \putwordb@x \@makefnmark \a@spacetrue }% +\def \end {\a@par \egroup \test@token }% + \a@hsize \columnwidth \hsize \columnwidth \@parboxrestore + \initlineb@x \putwordb@x \@makefnmark \a@spacetrue +\set@arabfont + \arabtrue \test@token #1 \end } + +\long\def \a@@@fntext #1{% common part for RL footnote text, Roman mode +%\def \@footnotemark {% +% \a@spacefalse \putwordb@x \@makefnmark \a@spacetrue }% +\def \end {\a@par \egroup }% + \a@hsize \columnwidth \hsize \columnwidth \@parboxrestore + \the\arabtext@hook \putwordb@x \@makefnmark \a@spacetrue + \test@token #1 \end } + +%%%%%%%%%%%%%%%%%%% \footnote in an arabic environment %%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%w%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \RLfootnotes {% right to left footnotes +\def \a@fnhook {\a@@@fntext }% Roman document +\def \a@@fnhook {\a@@fntext }% Arabic document +} + +\all@wcmd \RLfootnotes + +\let \arabfootnotes \RLfootnotes \all@wcmd \arabfootnotes + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/tex/latex/arabtex/alatex.sty b/Master/texmf-dist/tex/latex/arabtex/alatex.sty new file mode 100644 index 00000000000..44a4443819b --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/alatex.sty @@ -0,0 +1,164 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% alatex.sty +% LaTeX extensions for ArabTeX +% 04.05.2003 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Formale Methoden der Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \undefined \LaTeX \xpa \endinput \fi + +\a@ident {alatex.sty} {3.11 ArabTeX extensions for LaTeX } {04.05.2003} + +%%%%%%%%%%%%%%%%%%% modify \document command %%%%%%%%%%%%%%%%%%%%%%%%%% + +\let \a@document \document \let \a@enddocument \enddocument + +\def \document {% activate Arabic insertions + \a@document \setarab } +\ifx \@listfiles \undefined +\def \enddocument {% report the configuration + {\newlinechar `$ \wlog {\arabtexconfig $}}\a@enddocument } +\fi + +\UsePackage {afoot} % ArabTeX footnotes + +%%%%%%%%%%%%%%%%%%%%%%% verbatim %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% patch for LaTeX2e +% thanks to Andreas Scherer +% + +\def \verb {% make < safe +\ifx \undefined\documentclass % LaTeX 2.09 +\begingroup \catcode ``=13 \tt +\else +\relax \ifmmode \hbox \fi \bgroup \verbatim@font +\fi +\catcode `<=12 \@noligs \let \do \@makeother \dospecials +\@ifstar {\@sverb }{\@verb }} + +%%%%%%%%%%%%%%%%%%%%%% enable LaTeX commands %%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \fdef #1#2#3#4{% define NFSS2 font +\pdef #1{\def \pheb {\fontencoding {U}\fontfamily {#2}% +\fontseries {#3}\fontshape {#4}\selectfont }% +\ifx \a@normalfont \a@default \gdef \a@normalfont {#1}\fi +\setarabfont \pheb \set@arabfont }% +\all@wcmd #1} + +\all@wcmd \tiny \all@wcmd \footnotesize \all@wcmd \small +\all@wcmd \normalsize \all@wcmd \large \all@wcmd \Large +\all@wcmd \LARGE \all@wcmd \huge \all@wcmd \Huge + +\all@wcmd \mdseries \all@wcmd \bfseries \all@wcmd \a@normalfont +\all@wcmd \upshape \all@wcmd \itshape \all@wcmd \slshape +\all@wcmd \rmfamily \all@wcmd \sffamily \all@wcmd \ttfamily +\all@wcmd \a@normalfont + +\def \a@c@input {\expandafter \test@token \@@input } + +\def \@abj #1{\abj@d {#1}} + +\def \Arabic #1{\expandafter \@Arabic \csname c@#1\endcsname } +\def \arab #1{\expandafter \@arab \csname c@#1\endcsname } +\def \Arab #1{\expandafter \@Arab \csname c@#1\endcsname } +\def \abj #1{\expandafter \@abj \csname c@#1\endcsname } +\def \Abj #1{\expandafter \@Abj \csname c@#1\endcsname } + +\let \@Arab \@arabic \let \@arab \@arabic \let \@Arabic \@arabic +\let \@abjad \@abj \let \@Abj \@abj + +%%%%%%%%%%%%%%%%%%%%%% Math in Arabic mode %%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@spec@def \({% inline math insertion in Arabic mode +\unarab@codes \test@mathx } + +\def \test@mathx #1\){% finish inline math insertion +\putwordb@x {$#1$}\a@spacetrue \arab@codes \test@token } + +\def \a@c@math {% inline math environment in Arabic mode + \def \endmath {$\egroup \aftergroup \test@mathy }% +\unarab@codes \global\setbox1 \hbox \bgroup $} + +\def \a@c@test@mathy {% finish inline math environment +\a@spacetrue \putwordb@x {\box1 }\a@spacetrue \test@token } + +\a@spec@def \[{% math display in Arabic mode +\begingroup \endarabtext \leavevmode \let \a@end@dis \]% + \def \]{\a@end@dis \endgroup \a@spacefalse \test@token }\[} + +\def \a@c@displaymath {% displaymath environment in Arabic mode +\endarabtext \leavevmode \displaymath } + +\def \a@c@equation {\endarabtext \equation } + +\def \a@c@eqnarray {\endarabtext \eqnarray } + +\xpa\def \csname a@c@eqnarray*\endcsname {% eqnarray* environment +\endarabtext \csname eqnarray*\endcsname } + +%%%%%%%%%%%%%%%%%%%%% inner environments %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \end #1{% modified LaTeX version: tail supplied by \begin + \csname end#1\endcsname \@checkend {#1}% +\if@endpe \aftergroup \@doendpe \fi +\endgroup } + +\def \a@c@@doendpe {% called in Arabic mode +\@doendpe \test@token } + +\def \begin #1{% from LaTeX2e; after \end stay in Roman mode +\@ifundefined {#1}% + {\def \reserved@a {\@latex@error + {Environment #1 undefined}\@eha }}% + {\def \reserved@a {\def \@currenvir {#1}\edef \@currenvline {\on@line}% + \csname #1\endcsname }}% +\@ignorefalse \begingroup \aftergroup \a@endx +\@endpefalse \reserved@a } + +\def \a@endx {% after \end in Roman mode +\if@ignore \@ignorefalse \ignorespaces \fi} + +\def \a@c@begin #1{% Arabic version; after \end set Arabic mode +\@ifundefined {a@c@#1}% + {\def \reserved@a {\@latex@error + {Arabic mode: Environment #1 undefined}\@eha \test@token }}% + {\def \reserved@a {\def \@currenvir {#1}\edef \@currenvline {\on@line}% + \csname a@c@#1\endcsname }}% +\@ignorefalse \begingroup \aftergroup \a@endy +\@endpefalse \reserved@a } + +\def \a@endy {% after \end in Arabic mode +\a@spacefalse \test@token } + +%%%%%%%%%%%%%%%%%%%%% new commands %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@c@newcommand #1#2#{\a@@def \newcommand {#1}{#2}} + +\def \a@c@renewcommand #1#2#{\a@@def \renewcommand {#1}{#2}} + +\def \a@c@providecommand #1#2#{\a@@def \providecommand {#1}{#2}} + +\def \a@c@@env {\putwordb@x {\unhbox1 }\a@spacetrue \test@token } + +\def \a@@env #1#2#3#4#5{% define environment in RL mode +\xpa \def \csname end#2\endcsname +{\def \end {\global \setbox1 \hbox {\unhbox \lineb@x}\aftergroup \@env }% +\test@token #5 \end }% +\xpa #1\csname a@c@#2\endcsname #3% +%{\setbox\lineb@x \box\lineb@x \a@spacetrue \test@token #4}% +{\setbox\lineb@x \box\lineb@x \let\ifa@space \ifa@space \test@token #4}% +\test@token } + +\def \a@c@newenvironment #1#2#{\a@@env \newcommand {#1}{#2}} + +\def \a@c@renewenvironment #1#2#{\a@@env \renewcommand {#1}{#2}} + +\def \a@c@protect {\test@token } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/tex/latex/arabtex/aligs.sty b/Master/texmf-dist/tex/latex/arabtex/aligs.sty new file mode 100644 index 00000000000..4fb971563e8 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/aligs.sty @@ -0,0 +1,635 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% aligs.sty +% ArabTeX +% Ligatures +% called in HMODE +% Version 26.05.2003 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Formale Methoden der Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@ident {aligs.sty} {3.11 compute ligatures} {26.05.2003} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \is@end@char #1{00% does not connect to the left ? +\a@test {#1}\xxpa \unp@ck@skl \skl@skel \relax +\ifnum \skl@con = 0 \else \xpa \setiffalse \fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \aw@endligs #1#2*#3#4*#5{% test for final ligatures +% c1 m1 * c2 m2 * c3 +\ifcase \act@cls \lam@lig #3#5% % 0 l +\or % 1 YntCbyp + \ifnum \act@cd = \a@yah \yah@end #1#3#5\else + \ifnum \act@cd = \a@yah@h \yah@end #1#3#5\else + \ifnum \act@cd = \a@yah@p \yah@p@end #1#3#5\else + \ifnum \act@cd = \a@yah@p@s \yah@p@end #1#3#5\else + \ifnum \act@cd = \a@nun \nun@end #1#3#5\else + \bah@end #1% + \fi\fi\fi\fi\fi +\or \sin@lig #1#5% % 2 sxSD +\or \gim@lig #1#3#5% % 3 GHXJ + \a@min 0 +\or \global\@highfalse \@mod@acttrue \put@tatwil % 4 cR +\or \kaf@end #3#5% % 5 kgM +\or \fah@end #1% % 6 fqv +\or \ttah@lig #1#5% % 7 VZ +\or \rah@end #1#2*#3#5% % 8 rzj \a@r \a@R +\or % 9 \a@t \a@n + \ifnum \act@cd = \a@yah@p@s \yah@p@end #1#3#5\else + \ifnum \act@cd = \a@nun@p \nun@end #1#3#5\else + \bah@end #1% + \fi\fi +\else \global\@highfalse \@mod@acttrue % 10 ... + \ifnum \act@cd = \a@hah \hah@end #1#2*#3#4*#5\else + \ifnum \act@cd = \a@h@s \hah@urd #3\else + \ifnum \act@cd = \a@mim \mim@end #2*#3#5\else + \put@tatwil + \ifnum \act@cd = \a@dal \gim@test #5\else + \ifnum \act@cd = \a@dal@p \gim@test #5\else + \fi\fi + \fi\fi\fi +\fi \aw@lower #5} + +%%%%%%%%%%%%%%%%%%%%%%% bah %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \bah@end #1{% bah skeleton +% c1 +\ifnum \act@cls = 1 \set@act\sk@b % YntCbyp +\else \set@act\sk@b@p +\fi +\put@tatwil \@mod@acttrue \global\@hightrue } + +%%%%%%%%%%%%%%%%%%%%%%% gim %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \gim@lig #1#2#3{% gim, hhah, khah, tchah etc. +% c1 c2 c3 +\ifnum \act@cd = \a@khah \else + \@mod@acttrue + \ifnum \act@cd = \a@gim@close \else \set@act\sk@hh + \fi +\fi +\ifs@nd \else +\if\is@end@char #3\gim@one #1#2#3\else + \gim@more #1#2#3% +\fi\fi } + +%%%%%%%%%%%%%%%%%%%%%%% gim %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \gim@one #1#2#3{% gim, hhah, khah, tchah % and one char +% c1 c2 c3 +%\ifligs +\ifcase \chr@cls + \act@gim #1\set@chr\sk@l@g@s % 0 l +\or \act@gim #1\chr@tie\a@g@to@bb % 1 YntCbyp + \set@chr\sk@spc +\or \act@gim #1\chr@tie\a@g@to@s \chr@sin % 2 sxSD +\or \act@gim #1% % 3 GHXJ +\or \put@tatwil % 4 cR +\or \act@gim #1% % 5 kgM +\or \act@gim #1% % 6 fqv +\else \ifx #2m\act@gim #1\set@chr\sk@m@s + \else \put@tatwil + \fi +%\fi +\fi } + +\def \gim@more #1#2#3{% gim, hhah, khah, tchah +% and more than one char +% c1 c2 c3 +\ifligs +\ifcase \chr@cls + \act@gim #1\set@chr\sk@l@y % 0 l +\or \act@gim #1\chr@tie\a@g@to@mb % 1 YntCbyp + \set@chr\sk@b@y +\or \act@gim #1\chr@tie\a@g@to@s \chr@sin % 2 sxSD +\or \put@tatwil % 3 GHXJ +\or \put@tatwil % 4 cR +\or \act@gim #1% % 5 kgM +\else \ifx #2m\ifx #3l\act@gim #1\set@chr\sk@m@l@g + \fi\fi +\fi +\fi } + +%%%%%%%%%%%%%%%%%%%%%% sin %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \sin@lig #1#2{% sin, shin, ssad, ddad, \a@s +% c1 c3 +\put@tatwil \@mod@acttrue +\ifnum \chr@cls = 1 % YntCbyp + \if\is@end@char #2\set@chr\sk@b@h \else + \ifx #1s\set@chr\sk@b@h \else + \ifx #1x\set@chr\sk@b@h \else + \fi\fi\fi +\fi } + +\def \sin@lig #1#2{% sin, shin, ssad, ddad, \a@s +% c1 c3 +\put@tatwil \@mod@acttrue +\ifnum \chr@cls = 1 % YntCbyp + \if\is@end@char #2\set@chr\sk@b@h \else + \ifnum \act@cd = \a@sin \set@chr\sk@b@h \else + \fi\fi +\fi } + +%%%%%%%%%%%%%%%%%%%%%% ttah %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \ttah@lig #1#2{% ttah, tthah +% c1 c3 +\put@tatwil \@mod@acttrue +\ifnum \chr@cls = 1 % YntCbyp + \if\is@end@char #2\set@chr\sk@b@h + \fi +\fi } + +%%%%%%%%%%%%%%%%%%%%%% rah %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \rah@end #1#2*#3#4{% final r, z, j +% c1 m1 * c2 c3 +\@mod@acttrue +\ifcase \chr@cls + \put@tatwil % 0 l +\or \if\is@end@char #4% % 1 YntCbyp + \else \set@chr\sk@b@sp \set@high@act + \fi +\or \chr@tie\a@er@to@s \chr@sin % 2 sxSD +\or \put@tatwil % 3 GHXJ +\or \put@tatwil % 4 cR +\or \ifligs % 5 kgM + \ifx #1r\if\is@updia #2*\put@tatwil + \else \kaf@lig + \fi + \else \put@tatwil + \fi + \else \put@tatwil + \fi +\else \put@tatwil +\fi } + +%%%%%%%%%%%%%%%%%%%%%% fah %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \fah@end #1{% fah family +% c1 +\ifnum \act@cd = \a@qaf + \ifnewfont \set@act\sk@q@s \@mod@acttrue + \fi +\else \@mod@acttrue +\fi \global\@highfalse } + +%%%%%%%%%%%%%%%%%%%%%% kaf %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \kaf@end #1#2{% kaf family +% c2 c3 +\ifnum \act@cd = \a@kaf + \gim@test #2% closed gim? + \kaf@test #1% kaf-kaf ? +\fi +\@mod@acttrue } + +%%%%%%%%%%%%%%%%%%%%%% lam %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \lam@lig #1#2{% lam family +% c2 c3 +\global\@highfalse +\ifnum \act@cd = \a@lam@gim + \if\is@end@char #1\chr@tie\a@skip + \fi \else +\ifnum \act@cd = \a@lam@spec@low \else + \@mod@acttrue + \gim@test #2% closed gim? + \kaf@test #1% kaf-lam ? +\fi\fi } + +%%%%%%%%%%%%%%%%%%%%%% mim %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \mim@end #1*#2#3{% final mIm +% m1 * c2 c3 +\ifs@nd \if\is@lodia #1*% simulate tail + \if\is@end@char #2\set@act\sk@m@s + \else \set@act\sk@B \chr@tie\a@mim + \fi + \else \set@act\sk@m@s + \fi +\else +\ifcase \chr@cls + \set@act\sk@m@s % 0 l + \if\is@end@char #3\else \set@chr\sk@l@m + \fi +\or \set@act\sk@m@s % 1 YntCbyp + \if\is@end@char #3\chr@tie\a@em@to@bb \set@chr\sk@spc + \else \set@chr\sk@b@e@m + \fi +\or \set@act\sk@m@s \chr@tie\a@em@to@s \chr@sin % 2 sxSD +\or \put@tatwil % 3 GHXJ +\or \put@tatwil % 4 cR +\or \if\is@updia #1*\put@tatwil % 5 kgM + \else \set@act\sk@m@s %\kaf@lig + \fi +\or \set@act\sk@m@s % 6 fqv +\else \ifx #2m\set@act\sk@m@s + \if\is@end@char #3\set@chr\sk@m@s \else + \set@chr\sk@m@s@h + \fi + \else \put@tatwil + \fi +\fi +\fi } + +%%%%%%%%%%%%%%%%%%%%%% nun %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \nun@end #1#2#3{% final nun +% c1 c2 c3 +\global\@highfalse \@mod@acttrue +\ifnum \chr@cls = 1 % YntCbyp + \if\is@end@char #3\else + \set@chr\sk@b@sp \set@high@act + \fi +\else \put@tatwil +\fi } + +%%%%%%%%%%%%%%%%%%%%%% hah %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \hah@end #1#2*#3#4+#5*#6{% hah, test for ligature +% c1 m1 * c2 m21 + m22 * c3 +\ifu@gh +\ifx #1\a@H \else +\set@act \sk@h@u +\fi +\else +\ifurd@ \ifm@lay \else \set@act \sk@h@s \fi % two eyes + \ifx #1T\else + \ifx #1\a@H + \ifx #3l\ifx #6l% % 0 l + \ifnum #4 = \c@shadda \set@chr\sk@l@w + % special short form of lam for the Name of God + \fi\fi + \put@tatwil + \fi + \else \set@act\sk@h@u + \if\is@end@char #3% + \else \set@loww@act \global\a@min 1 + \fi + \fi\fi +\else +\ifx #3l\ifx #6l% % 0 l + \ifnum #4 = \c@shadda \set@chr\sk@l@w + % special short form of lam for the Name of God + \fi\fi + \put@tatwil +\else +\ifnum \chr@cls = 1 \set@chr\sk@b \put@tatwil % 1 YntCbyp +\else +\ifnum \chr@cls = 3 % 3 GHX +% \if\is@updia #4+#5*\chr@tie\a@tatwil \else + \put@tatwil +% \fi +\else \gim@test #6\put@tatwil +\fi\fi\fi\fi +\fi } + +%%%%%%%%%%%%%%%%%%%%%% wavy hah %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \hah@urd #1{% wavy hah +% c2 +\if\is@end@char #1\set@act\sk@h % isolated round h +\fi +\@mod@actfalse % no mark below +\ifnum \chr@cls = 1 \set@chr\sk@b % YntCbyp normal height +\fi } + +%%%%%%%%%%%%%%%%%%%%%% yah %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \yah@end #1#2#3{% yah or alif maqsoura +% y/Y/L c2 c3 + \global\@highfalse +%\global \a@min 1 +\ifx #1y\ifyahd@ts \@mod@acttrue \fi +\else \@mod@acttrue +\fi +\if\is@end@char #3\yah@one #2\else \yah@more #2% +\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \yah@one #1{% yah or alif maqsoura % and one char +% c2 +\ifcase \chr@cls + \act@yah \set@chr\sk@l@lng % 0 l +\or % 1 YntCbyp + \ifh@mza \act@yah \set@chr\sk@b@y \else + \ifk@fs \act@yah \set@chr\sk@b@y \else % ++++ + \ifx #1y\else + \ifx #1Y\else + \act@yah \set@chr\sk@b@y + \fi\fi\fi\fi % ++++ +\or \act@yah \chr@tie\a@em@to@s \chr@sin % 2 sxSD +\or \act@yah \ifs@nd \chr@tie\a@em@to@s \fi % 3 GHXJ +\or \act@yah % 4 cR +\or \act@yah \ifs@nd \chr@tie\a@em@to@s \fi % 5 kgM +\or \act@yah % 6 fqv +\else \ifx #1m\act@yah \set@chr\sk@m@s \else + \put@tatwil + \fi +\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \yah@more #1{% yah or alif maqsoura % and more than one char +% c2 +\ifcase \chr@cls % 0 l + \act@yah \set@chr\sk@l@y + \set@low@act +\or \ifiz@fet % 1 YntCbyp + \ifx #1y\else + \ifx #1Y\else + \act@yah \set@chr\sk@b@e@m + \fi\fi + \else \act@yah \set@chr\sk@b@e@m + \fi +\or \act@yah \chr@tie\a@em@to@s \chr@sin % 2 sxSD +\or \act@yah \ifs@nd \chr@tie\a@em@to@s \fi % 3 GHXJ +\or \put@tatwil % 4 cR +\or \act@yah \kaf@lig % 5 kgM + \ifs@nd \chr@tie\a@em@to@s \fi +\or \ifs@nd \act@yah \else \put@tatwil \fi % 6 fqv +\else \ifx #1h\act@yah \chr@tie\a@em@to@s + \else \put@tatwil + \fi +\fi } + +%%%%%%%%%%%%%%%%%%%%%% long yah %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \yah@p@end #1#2#3{% long (Urdu) yah bari +% c2 c3 + \global\@highfalse +\global \a@min 2 +\ifx #1E\ifyahd@ts \@mod@acttrue + \fi +\else \@mod@acttrue +\fi +\if\is@end@char #3\yah@p@one #2\else \yah@p@more #2% +\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \yah@p@one #1{% yah bari and one char +% c2 +\ifcase \chr@cls \relax \set@chr\sk@l@lng % 0 l +\or \set@chr\sk@b@g % 1 YntCbyp +\or \chr@tie\a@g@to@s \chr@sin % 2 sxSD +\else \ifx #1m\set@chr\sk@m@s + \else \put@tatwil + \fi +\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \yah@p@more #1{% yah bari and more than one char c2 X +% c2 +\ifcase \chr@cls \relax \set@chr\sk@l@y % 0 l +\or \set@chr\sk@b@g % 1 YntCbyp +\or \chr@tie\a@g@to@s \chr@sin % 2 sxSD +\else \ifx #1m\set@chr\sk@m@s@h \else + \ifx #1h\set@chr\sk@h@s@l + \else + \put@tatwil + \fi\fi +\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \aw@midligs #1#2*#3#4{% check for medial ligatures +% c1 m1 * c2 c3 +\ifcase \act@cls \lam@lig #3#4% % 0 l +\or \bah@mid #2*#3#4% % 1 YntCbyp +\or \sin@lig #1#4% % 2 sxSD +\or \gim@lig #1#3#4% % 3 GHXJ +\or \global\@highfalse \put@tatwil % 4 cR +\or \global\@highfalse \put@tatwil % 5 kgM +\or \global\@highfalse \put@tatwil % 6 fqv +\or \ttah@lig #1#4% % 7 VZ +\else \global\@highfalse + \ifx #1m\mim@mid #2*#3#4\else + \ifx #1h\hah@mid #1#3#4\else % two-eyed hah + \ifx #1\a@h\hah@urd@mid #1#3#4\else + \put@tatwil + \fi\fi\fi +\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \chr@fam #1{% put family +% c2 +\if@con \@mod@chrtrue +\ifcase \chr@cls % 0 l +\or \set@chr\sk@b % 1 YntCbyp + \ifx #1\a@am \chr@mod 6 \fi % Malay +\or % 2 sxSD +\or \set@chr\sk@hh \@mod@chrtrue % 3 GHXJ +\or % 4 cR +\or \kaf@fam % 5 kgM +\or \set@chr\sk@f@s % 6 fqv +\or % 7 VZ +\or % 8 rzj +\or \set@chr\sk@b@p % 9 \a@t \a@n +\else +\fi\fi } + +%%%%%%%%%%%%%%%%%%%%%%% bah %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \bah@mid #1+#2*#3#4{% long form of bah etc. +% m11 + m12 * c2 c3 +\put@tatwil +\ifnum \act@cd = \a@bah@s % normal shape + \@mod@acttrue + \if@high \ifnum #1 > 9 \set@act\sk@b@h \global\@highfalse + \fi + \else \global\@hightrue + \fi + \else +\ifnum \act@cd = \a@bah@high % higher shape + \global\@highfalse + \else +\ifnum \act@cd = \a@bah@spec@gim % before medial gim + \global\@highfalse + \else +\ifnum \act@cd = \a@bah@spec@yah % before final yah + \global\@highfalse + \else +\ifnum \act@cd = \a@bah@mid@mim % before medial mim + \global\@highfalse + \else +\ifnum \act@cd = \a@bah@spec % before rah + \gim@test #4% closed gim ? + \global\@highfalse + \else +\fi\fi\fi\fi\fi\fi } + +%%%%%%%%%%%%%%%%%%%%%% mim %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \mim@mid #1*#2#3{% medial mIm +% m1 * c2 c3 +\ifnum \act@cd = \a@mim@spec@alif % s-m-a + \ifnum \chr@cls = 2 \chr@sin + \fi + \else +\ifligs \mim@mid@lig #1*#2#3\else +\if\is@end@char #3\mim@mid@lig #1*#2#3\else + \put@tatwil +\fi\fi\fi } + +\def \mim@mid@lig #1*#2#3{% ligature for medial mIm +% m1 * c2 c3 +\ifcase \chr@cls % 0 l + \ifnum \act@cd = \a@mim@lam@gim % l-m-^g + \if\is@end@char #3\set@chr\sk@l@h \else + \set@chr\sk@l@y + \fi + \if\is@updia #1*\set@act\sk@m@s@l + \fi + \else + \if\is@end@char #3\act@mim@spec #1*\set@chr\sk@l@m + \fi\fi +%\or \set@act\sk@m@s \set@chr\sk@b@m@m % 1 YntCbyp +\or \act@mim@spec #1*\set@chr\sk@b@m@m % 1 YntCbyp +%\or \act@mim@spec #1*\chr@tie\a@bah@mid@mim % 2 sxSD +\or \set@act\sk@m@s \chr@tie\a@bah@mid@mim % 2 sxSD + \chr@sin +\or \set@act\sk@m@s@h \gim@test #3% % 3 GHXJ +\or \set@act\sk@m@s@h % 4 cR +\or \put@tatwil % 5 kgM +\or \set@act\sk@m@s@h % 6 fqv +\else + \ifx #2m\if\is@end@char #3% +% \act@mim@spec #1*\set@chr\sk@m@s@m + \set@act\sk@m@s@l \set@chr\sk@m@s@m + \if\is@updia #1*\set@act\sk@m@s@l + \fi + \else \put@tatwil + \fi + \else \put@tatwil + \fi +\fi } + +%%%%%%%%%%%%%%%%%%%%%% hah %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \hah@mid #1#2#3{% medial hah, no ligature in Urdu +% c1 c2 c3 +\ifurd@ \ifnum \chr@cls = 0 % 0 l + \if\is@end@char #3\set@act\sk@h@s@l + \set@chr\sk@l@h + \else \put@tatwil + \fi + \else \put@tatwil + \fi +\else +\ifcase \chr@cls % 0 l + \ifligs \set@act\sk@h@s@l + \if\is@end@char #3\set@chr\sk@l@h + \else \set@chr\sk@l@m + \fi\fi +\or \act@hah \set@chr\sk@b@e@h % 1 YntCbyp +\or \act@hah \chr@tie\a@mh@to@s \chr@sin % 2 sxSD +\else \ifnum \chr@cls = 9 % \a@t \a@n + \act@hah \set@chr\sk@b@e@h + \else \put@tatwil + \fi +\fi +\fi } + +\def \hah@urd@mid #1#2#3{% medial (wavy) hah +% c1 c2 c3 +\ifcase \chr@cls \set@act\sk@h@s@l % 0 l + \if\is@end@char #3\set@chr\sk@l@h \else + \set@chr\sk@l@m + \fi +\or \act@hah \set@chr\sk@b@e@h % 1 YntCbyp +\or \act@hah \chr@tie\a@mh@to@s \chr@sin % 2 sxSD +\else \ifnum \chr@cls = 9 % \a@t \a@n + \act@hah \set@chr\sk@b@e@h + \else \put@tatwil + \fi +\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \gim@test #1{% closed gim ? +% c3 +\ifnum \chr@cls = \gim@cls % GHXJ +\if\is@end@char #1\set@chr\sk@j@cl + \@mod@chrtrue \global\@highfalse +\fi\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \kaf@test #1{% short kaf ? +%\ifx #1\a@ax \put@tatwil % swash kaf +\ifnum \chr@cd = \a@kaf@w \put@tatwil % swash kaf +\else \ifnum \chr@cls = \kaf@cls + \kaf@lig \global\@highfalse +\else \put@tatwil +\fi\fi } + +%%%%%%%%%%%%%%%%%%%%%% change chr@cd %%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \chr@sin {% shape without tooth % c +\@mod@chrtrue +\ifnum \chr@cd = \a@sin \set@chr\sk@sn@s \else +\ifnum \chr@cd = \a@sad \set@chr\sk@sd@s \else +\fi\fi } + +\def \kaf@lig {% put short kaf-alif ligature +\@mod@chrtrue +\ifnum \chr@cd = \a@kaf \set@chr\sk@k@sh \else +\ifnum \chr@cd = \a@kaf@s \set@chr\sk@k@sh \else +\ifnum \chr@cd = \a@kaf@p \set@chr\sk@k@sp \else +\ifnum \chr@cd = \a@kaf@p@s \set@chr\sk@k@sp \else +\ifnum \chr@cd = \a@gaf \set@chr\sk@g@sh \else +\ifnum \chr@cd = \a@gaf@s \set@chr\sk@g@sh \else +\ifnum \chr@cd = \a@gaf@p@s \set@chr\sk@g@sp \else +\fi\fi\fi\fi\fi\fi\fi } + +\def \kaf@fam {% no mark +\ifnum \chr@cd = \a@kaf \set@chr\sk@k@s \else +\ifnum \chr@cd = \a@kaf@p \set@chr\sk@k@p \else +\ifnum \chr@cd = \a@gaf \set@chr\sk@g@s \else +\fi\fi\fi } + +%%%%%%%%%%%%%%%%%%%%%% change act@cd %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \act@yah {% short yah +\global\a@min 1 +\ifnum \act@cd = \a@yah \set@act\sk@y@s \else +\ifnum \act@cd = \a@yah@h \set@act\sk@y@h@s +\fi\fi } + +\def \act@hah {% short hah +\ifurd@ \else +\ifnum \act@cd = \a@hah \set@act\sk@h@s +\fi\fi } + +\def \act@gim #1{% deposit ligature +\ifnum \act@cd = \a@khah \set@act\sk@kh@s \act@mod = 0 +\else \set@act\sk@hh@s \@mod@acttrue +\fi \a@min 1 } +%\fi } + +\def \act@mim@spec #1*{% lam-mim etc. +\if\is@updia #1*\set@act\sk@m@s@l +\else \set@act\sk@m@s +\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% keshide %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \put@tatwil {% deposit keshide +\ifspread \if@con \@tattrue +\fi\fi } + +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/tex/latex/arabtex/alists.sty b/Master/texmf-dist/tex/latex/arabtex/alists.sty new file mode 100644 index 00000000000..209af440c64 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/alists.sty @@ -0,0 +1,211 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% alists.sty +% called by altxext.sty +% 26.04.2003 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Formale Methoden der Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% chapter = al-fa.slu +% tableofcontents = al-mu.htawayAtu +% listoffigures = qA'imaTu al-.suwaru +% listoftables = qA'imaTu al-^gadAwilu +% listofpictures = qA'imaTu al-rusUmu +% index = al-fihrisu (al-fihristu) +% bibliography = al-marA^gi`u +% references = al-ma.sAdiru +% abstract = al-mula_h_ha.su +% appendix = al-mul.haqu +% attachments = al-murfaqAtu +% number = al-raqmu + +\a@ident {alists.sty} {3.11 inverted list macros} {26.04.2003} + +\iffalse %%%%%%%%%%%%%%%%%%% LaTeX 2.09 %%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\center{\trivlist \centering\item[]} + +%\let\endcenter=\endtrivlist + +\def\centering{\let\\=\@centercr\rightskip\@flushglue\leftskip\@flushglue +\parindent\z@\parfillskip\z@} + +%\let\enddescription\endlist + +\def\flushleft{\trivlist \raggedright\item[]} + +\def\raggedright +{\let\\=\@centercr\@rightskip\@flushglue \rightskip\@rightskip + \leftskip\z@ \parindent\z@} + +\let\endflushleft=\endtrivlist + +\def\flushright{\trivlist \raggedleft\item[]} + +\def\raggedleft +{\let\\=\@centercr\rightskip\z@\leftskip\@flushglue + \parindent\z@ \parfillskip\z@} + +\let\endflushright=\endtrivlist + +\def\@centercr{\ifhmode \unskip\else \@badcrerr\fi + \par\@ifstar{\penalty \@M\@xcentercr}{\@xcentercr}} + +\def\@xcentercr{\addvspace{-\parskip}\@ifnextchar + [{\@icentercr}{\ignorespaces}} + +\def\@icentercr[#1]{\vskip #1\ignorespaces} + +\fi %%%%%%%%%%%%%%%%%%% LaTeX 2.09 %%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@c@itemize +{\ifnum \@itemdepth >3 \@toodeep +\else \advance \@itemdepth \@ne + \edef \@itemitem {labelitem\romannumeral \the \@itemdepth }% + \a@@list {\csname \@itemitem \endcsname }% + {\def \makelabel ##1{\hbox to 1sp {##1\hss }\hfil }}% +\fi \test@token } + +\def \a@c@enumerate +{\ifnum \@enumdepth >3 \@toodeep +\else \advance \@enumdepth \@ne + \edef \@enumctr {enum\romannumeral \the \@enumdepth }% + \a@@list {\csname label\@enumctr \endcsname }% + {\usecounter {\@enumctr }% + \def \makelabel ##1% + {\edef \a@@tmp {##1}\hbox to 1sp + {\expandafter \<\a@@tmp >\hss }\hfil }}% +\fi \test@token } + +\def \a@c@description {\a@@list {}% +{\labelwidth\z@ \itemindent-\leftmargin \let\makelabel\descriptionlabel}% +\def \enddescription {\endlist }\test@token} + +\def \a@c@trivlist {\a@trivlist \test@token } + +\def \a@trivlist +{\parsep \a@parskip \@nmbrlistfalse \a@@trivlist +\labelwidth \z@ \leftmargin \z@ \itemindent \z@ +\let \@itemlabel \@empty \def \makelabel ##1{##1}} + +\def \a@c@center {% +\let\endcenter \a@@endtrivlist +\a@trivlist \a@@centering \a@@item[]} + +\def \a@c@flushright {% +\let\endflushright \a@@endtrivlist +\a@trivlist \a@@raggedright \a@@item[]} + +\def \a@c@flushleft {% +\let\endflushleft \a@@endtrivlist +\a@trivlist \a@@raggedleft \a@@item[]} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@@raggedright +{\let \a@last@line \put@line +\rightskip \@flushglue \@rightskip \@flushglue \leftskip \z@ +\a@parindent \z@ \spreadfalse } + +\def \a@@raggedleft +{\let \a@last@line \put@line +\rightskip \z@ \leftskip \@flushglue +\parfillskip \z@ \a@parindent \z@ \spreadfalse } + +\def \a@@centering +{\let \a@last@line \put@line +\rightskip \@flushglue \leftskip \@flushglue +\a@parindent \z@ \spreadfalse \parfillskip \z@ } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\a@centercr {% end of line +%{\ifhmode \unskip\else \@badcrerr\fi +%\par +\a@last@line +\@ifstar{\penalty \@M\@xcentercr}{\@xcentercr}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@@list #1#2{% +\ifnum \@listdepth >5\relax \@toodeep + \else \global \advance \@listdepth \@ne \fi +\rightmargin \z@ \listparindent \z@ \itemindent \z@ +\csname @list\romannumeral \the \@listdepth \endcsname +\def \@itemlabel {#1}\let \makelabel \a@@mklab \@nmbrlistfalse #2\relax +\a@@trivlist \a@parskip \parsep \a@parindent \listparindent +\advance \a@hsize -\leftmargin \advance \a@hsize -\rightmargin +\advance \@totalleftmargin \leftmargin \advance \a@leftmargin \rightmargin +\ignorespaces } + +\def \a@@trivlist +{\@topsepadd \topsep +\if@noskipsec \leavea@vmode \fi % \a@@everypar +\ifa@vmode \advance \@topsepadd \partopsep \fi \a@@par +\if@inlabel \@noparitemtrue \@noparlisttrue + \else \@noparlistfalse \@topsep \@topsepadd \fi +\advance \@topsep \a@parskip \leftskip \z@ \rightskip \@rightskip +\parfillskip \@flushglue +%\@setpar {\if@newlist \else {\@@par }\fi }% ?? +\let \endtrivlist \a@@endtrivlist +\global \@newlisttrue \@outerparskip \a@parskip } + +\def \a@@mklab #1{#1\hfil } + +\def \a@@endtrivlist +{\if@inlabel \putwordb@x {}\fi % \a@@everypar +\if@newlist \@noitemerr \fi +\a@@par +\if@noparlist \else +\ifdim \lastskip >\z@ + \@tempskipa \lastskip \vskip -\lastskip + \advance \@tempskipa \a@parskip + \advance \@tempskipa -\@outerparskip + \vskip \@tempskipa +\fi \@endparenv +\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@@item [#1]{% for arabic lists running from right to left +\if@noparitem \a@@donoparitem \else + \if@inlabel \putwordb@x {\arab@space }\a@@par \fi + \a@@par + \if@newlist \if@nobreak \@nbitem \else + \addpenalty \@beginparpenalty + \addvspace \@topsep \addvspace {-\a@parskip }\fi + \else \addpenalty \@itempenalty \addvspace \itemsep + \fi \global \@inlabeltrue +\fi +\a@@everypar {\global \@minipagefalse \global \@newlistfalse + \if@inlabel \global \@inlabelfalse \a@spacefalse + \putwordb@x {\box \@labels \hskip -\a@parindent }% + \fi \a@@everypar {}}% +\global \@nobreakfalse +\if@noitemarg \@noitemargfalse + \if@nmbrlist \refstepcounter {\@listctr }\fi +\fi +\setbox \@tempboxa \hbox {\makelabel {#1}}% +\global \setbox \@labels \hbox + {\hskip \labelsep + \ifdim \wd \@tempboxa >\labelwidth \box \@tempboxa + \else \hbox to\labelwidth {\unhbox \@tempboxa }\fi + \hskip \itemindent \hskip -\labelwidth \hskip -\labelsep + \unhbox \@labels }% +%\test@token } +\arab@tail } + +\def \a@@donoparitem +{\@noparitemfalse \global \setbox \@labels \hbox + {\hskip \leftmargin \unhbox \@labels \hskip -\leftmargin }% +\if@minipage \else + \@tempskipa \lastskip \vskip -\lastskip + \advance \@tempskipa \@outerparskip + \advance \@tempskipa -\a@parskip \vskip \@tempskipa +\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/tex/latex/arabtex/altxext.sty b/Master/texmf-dist/tex/latex/arabtex/altxext.sty new file mode 100644 index 00000000000..c4a7138339d --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/altxext.sty @@ -0,0 +1,101 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% altxext.sty +% patches for LaTeX in arabic mode +% for use with arabart.cls +% ArabTeX 3.11 +% 04.05.2003 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@ident {altxext.sty} {3.11 LaTeX extensions for Arabic mode} {04.05.2003} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@outputdblcol {% part of output routine for Arabic mode +\if@firstcolumn \global\@firstcolumnfalse + \global\setbox\@leftcolumn \box\@outputbox +\else \global\@firstcolumntrue + \setbox\@outputbox \vbox {\hbox to\textwidth {% + \hskip \columnwidth + \hfil \vrule width\columnseprule \hfil + \hbox to\columnwidth {\box\@leftcolumn \hss}% + \hskip -\textwidth + \hbox to\columnwidth{\box\@outputbox \hss}% + \hskip \columnsep + \hskip \columnwidth }}% + \@combinedblfloats \@outputpage + \begingroup \@dblfloatplacement \@startdblcolumn + \@whilesw\if@fcolmade \fi + {\@outputpage \@startdblcolumn }\endgroup +\fi} + +\let \@outputdblcol \a@outputdblcol % for Arabic mode + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@addmarginpar {% part of output routine for Arabic mode +\@next \@marbox \@currlist +{\@cons\@freelist\@marbox \@cons\@freelist\@currbox}\@latexbug +\@tempcnta \m@ne +\if@twocolumn + \if@firstcolumn \@tempcnta \@ne \fi +\else \if@mparswitch + \ifodd \c@page \else \@tempcnta \@ne \fi + \fi + \if@reversemargin \@tempcnta -\@tempcnta \fi +\fi +\ifnum \@tempcnta < \z@ + \global\setbox\@marbox \box\@currbox +\fi +\@tempdima \@mparbottom \advance\@tempdima -\@pageht +\advance\@tempdima \ht \@marbox +\ifdim \@tempdima > \z@ + \@@warning {Marginpar on page \thepage\space moved}% +\else \@tempdima \z@ +\fi +\global\@mparbottom \@pageht +\global\advance\@mparbottom \@tempdima +\global\advance\@mparbottom \dp\@marbox +\global\advance\@mparbottom \marginparpush +\advance\@tempdima -\ht\@marbox +\global\ht\@marbox \z@ \global\dp\@marbox \z@ +\vskip -\@pagedp \vskip\@tempdima \nointerlineskip +\hbox to\columnwidth + {\ifnum \@tempcnta > \z@ + \hskip\columnwidth \hskip\marginparsep + \else \hskip -\marginparsep \hskip -\marginparwidth + \fi \box\@marbox \hss}% +\nobreak %% RmS 91/06/21 \nobreak added +\vskip -\@tempdima \nointerlineskip +\hbox {\vrule \@height\z@ \@width\z@ \@depth\@pagedp }} + +\let \@addmarginpar \a@addmarginpar % for Arabic mode + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\markright#1{{\let\protect\noexpand + \let\label\relax \let\index\relax \let\glossary\relax + \expandafter\@markright\@themark + {#1}\mark{\@themark}}\if@nobreak\ifvmode\nobreak\fi\fi} + +\def\@markright#1#2#3{\gdef\@themark{{#1}{#3}}} + +\def \markleft #1{{\let\protect\noexpand +\let\label\relax \let\index\relax \let\glossary\relax +\expandafter\@markleft \@themark {#1}% +\mark {\@themark }}% +\if@nobreak \ifvmode \nobreak \fi \fi } + +\def \@markleft #1#2#3{\gdef\@themark {{#3}{#2}}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\UsePackage {alists} % load LaTeX extensions for Arabic lists +\UsePackage {asect} % load LaTeX extensions for Arabic sections +\UsePackage {atabg} % load LaTeX extensions for Arabic tabbing + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput diff --git a/Master/texmf-dist/tex/latex/arabtex/amac.sty b/Master/texmf-dist/tex/latex/arabtex/amac.sty new file mode 100644 index 00000000000..91241690269 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/amac.sty @@ -0,0 +1,164 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% amac.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% amac.sty +% Scanner for MAC Arabic +% to install it, include it as a LaTeX package or style option "amac" +% with Plain TeX, say "\input amac.sty" +% to activate it, say "\setcode{amac}" +% 26.04.2003 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Formale Methoden der Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \amacatcode \undefined \else \expandafter \endinput +\fi % load only once + +\chardef \amacatcode = \catcode`\@ \catcode`\@ = 11 + +\a@ident {amac.sty} {3.11 MAC Arabic encoding} {26.04.2003} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \amac@catcodes {% assignments for MAC Hebrew +\countdef \is@m=2 \countdef \is@n=4 +\is@m = 128 \is@n = 64 +\loop \ifnum \catcode \is@m = 11 \else \catcode \is@m = 11 \fi +\global\lccode \is@m = \is@n +\ifnum 159 > \is@m \advance \is@m 1 \advance \is@n 1 \repeat +\is@m = 160 \is@n = 32 +\loop \ifnum \catcode \is@m = 11 \else \catcode \is@m = 11 \fi +\global\lccode \is@m = \is@n +\ifnum 255 > \is@m \advance \is@m 1 \advance \is@n 1 \repeat +\is@m=0 \is@n=0 \catcode `\^^a0 12 } + +{\amac@catcodes +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% dynamic definitions for MAC Arabic +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\gdef \setamac@codes {% activate and change some codes +\globaldefs=1 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def \sc@^^80 {@} \def \sc@^^81 {@} \def \sc@^^82 {@} \def \sc@^^83 {@} +\def \sc@^^84 {@} \def \sc@^^85 {@} \def \sc@^^86 {@} \def \sc@^^87 {@} +\def \sc@^^88 {@} \def \sc@^^89 {@} \def \sc@^^8a {@} +\def \sc@^^8b {\n@xp\a@n} +\def \sc@^^8c {@} \def \sc@^^8d {@} \def \sc@^^8e {@} \def \sc@^^8f {@} + +\def \sc@^^90 {@} \def \sc@^^91 {@} \def \sc@^^92 {@} \def \sc@^^93 {\a@ell} +\def \sc@^^94 {@} \def \sc@^^95 {@} \def \sc@^^96 {@} \def \sc@^^97 {@} +\def \sc@^^98 {@} \def \sc@^^99 {@} \def \sc@^^9a {@} \def \sc@^^9b {\a@div} +\def \sc@^^9c {@} \def \sc@^^9d {@} \def \sc@^^9e {@} \def \sc@^^9f {@} + +\def \sc@^^a0 {@} \def \sc@^^a1 {!} +\def \sc@^^a2 {\a@dq} \def \sc@^^a3 {\a@hsh} +\def \sc@^^a4 {\a@dlr} \def \sc@^^a5 {\a@pct} +\def \sc@^^a6 {\a@amp} \def \sc@^^a7 {\a@qt} +\def \sc@^^a8 {)} \def \sc@^^a9 {(} \def \sc@^^aa {*} \def \sc@^^ab {+} +\def \sc@^^ac {,} \def \sc@^^ad {-} \def \sc@^^ae {.} \def \sc@^^af {/} +% +\def \sc@^^b0 {0} \def \sc@^^b1 {1} \def \sc@^^b2 {2} \def \sc@^^b3 {3} +\def \sc@^^b4 {4} \def \sc@^^b5 {5} \def \sc@^^b6 {6} \def \sc@^^b7 {7} +\def \sc@^^b8 {8} \def \sc@^^b9 {9} \def \sc@^^ba {:} \def \sc@^^bb {;} +\def \sc@^^bc {\a@rab} \def \sc@^^bd {=} +\def \sc@^^be {\a@lab} \def \sc@^^bf {?} +% +\def \sc@^^c0 {*} \def \sc@^^c1 {Q|} \def \sc@^^c2 {QA} \def \sc@^^c3 {Qa} +\def \sc@^^c4 {Qw} \def \sc@^^c5 {Qi} \def \sc@^^c6 {Qy} \def \sc@^^c7 {A} +\def \sc@^^c8 {b} \def \sc@^^c9 {T} \def \sc@^^ca {t} \def \sc@^^cb {C} +\def \sc@^^cc {G} \def \sc@^^cd {H} \def \sc@^^ce {X} \def \sc@^^cf {d} + +\def \sc@^^d0 {F} \def \sc@^^d1 {r} \def \sc@^^d2 {z} \def \sc@^^d3 {s} +\def \sc@^^d4 {x} \def \sc@^^d5 {S} \def \sc@^^d6 {D} \def \sc@^^d7 {V} +\def \sc@^^d8 {Z} \def \sc@^^d9 {P} \def \sc@^^da {R} \def \sc@^^db {]} +\def \sc@^^dc {\a@bsl} \def \sc@^^dd {[} +\def \sc@^^de {\a@up} \def \sc@^^df {\a@dn} + +\def \sc@^^e0 {B} \def \sc@^^e1 {f} \def \sc@^^e2 {q} \def \sc@^^e3 {k} +\def \sc@^^e4 {l} \def \sc@^^e5 {m} \def \sc@^^e6 {n} \def \sc@^^e7 {h} +\def \sc@^^e8 {w} \def \sc@^^e9 {Y} \def \sc@^^ea {y} \def \sc@^^eb {"aN} +\def \sc@^^ec {"uN}\def \sc@^^ed {"iN} \def \sc@^^ee {"a} \def \sc@^^ef {"u} + +\def \sc@^^f0 {"i} \def \sc@^^f1 {\n@xp\a@Ze} +\def \sc@^^f2 {""} \def \sc@^^f3 {p} +\def \sc@^^f4 {\n@xp\a@t} \def \sc@^^f5 {J} +\def \sc@^^f6 {\n@xp\a@H} \def \sc@^^f7 {v} +\def \sc@^^f8 {g} \def \sc@^^f9 {\n@xp\a@d} +\def \sc@^^fa {\n@xp\a@r} \def \sc@^^fb {\a@rbc} +\def \sc@^^fc {\a@bar} \def \sc@^^fd {\a@lbc} +\def \sc@^^fe {j} \def \sc@^^ff {E} +\a@digits = {0123456789} +\a@paren = {()[]} +\a@first = {"`^^e6\a@tok \lq \rq \cap \MIN \IN } +\globaldefs=0 } +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +}% end of dynamic definitions for MAC Arabic +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\gdef \amac@scan #1>{% standard 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 = {}\sc@beg #1\@ \@@ +\iftest@scan \tracingmacros = 0 % +\xpa \a@verb \xpa (\the\a@tokens )>\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\gdef \amac@beg {% start MAC Arabic scanner +\h@mzafalse \iz@fetfalse \@ssimfalse \novocalize % because of explicit quoting +\amac@word } + +{\catcode `\^^M=13 \endlinechar = -1 +\gdef \amac@word #1{% transform input into internal notation +\ifx #1\@ \def \next {\sc@endscan }\else % finished +\ifcat \nxp #1\relax \def \next {\t@cs #1}\else % control sequence +\if \nxp ^^M\nxp #1\def \next {\amac@par #1}% active character +\else \def \next {\amac@w@rd #1}% +\fi\fi\fi \next }% +} % catcode 13 + +\gdef \amac@w@rd #1#2{% special cases +\case #1\of +{ #2{\amac@word #1-#2} + -{\amac@minus #2} + ^^a0{\sc@back #2} + ^^ad{\amac@minus #2} +\default {\amac@@word #1#2} +}\endcase } + +\gdef \amac@@word #1{% default branch +\ifcat a\nxp #1\edef \sc@char {\csname sc@#1\endcsname }% +\else \def \sc@char {\nxp #1}% +\fi \sc@put \amac@word } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\gdef \amac@minus {% hyphen between words +\def \sc@char {-}\sc@put \amac@beg } + +\gdef \amac@par #1\@ \@@ {% new line, push back the rest +\sc@back \\ #1\@ \@@ } + +\gdef \amac@endscan \@@ {\global\let \a@scan \amac@scan } +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +} % \amac@catcodes + +\def \set@amac {% select the MAC Hebrew scanner +\let \sc@beg \amac@beg \let \sc@word \amac@word +\let \sc@back \sc@@back \let \sc@endscan \amac@endscan +\global\let \a@scan \amac@scan \setamac@codes +\amac@catcodes +\a@message {input encoding set to MAC Arabic and ISO 8859-6 conventions}} + +\xpa \def \xpa \sc@table \xpa {\sc@table % add the MAC Hebrew encoding +iso88596\set@amac iso8859-6\set@amac amac\set@amac } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@message {scanner for MAC Arabic code installed.} + +\catcode `\@ = \amacatcode +\endinput +%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/Master/texmf-dist/tex/latex/arabtex/aoutput.sty b/Master/texmf-dist/tex/latex/arabtex/aoutput.sty new file mode 100644 index 00000000000..b066d950d99 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/aoutput.sty @@ -0,0 +1,173 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% aoutput.sty +% ArabTeX +% Version 04.06.2000 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@ident {aoutput.sty} {3.10 build output lines} {04.06.2000} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newdimen \a@hsize \newdimen \a@limit \newdimen \a@leftmargin +\newcount \a@prevgraf \newcount \a@@prevgraf \newbox \a@tempb@x + +\def \setspace #1{\def \arab@space {\hskip #1\relax }}% redefine ? + +\def \arab@space {\space \hskip 0pt plus 0.001fil \relax } + +\def \def@arabstrut {\def \arab@strut {\if@vocals +%\vrule height2.5ex depth2.0ex width\z@ \relax \else +\vrule height2ex depth1.5ex width\z@ \relax \else +%\vrule height3ex depth1.5ex width\z@ \relax \else +\vrule height2ex depth1.0ex width\z@ \relax \fi }} + +\def \a@parparams {% get paragraph dimensions +\ifnum \parshape = \z@ \a@hsize \hsize +\a@leftmargin \z@ +\else \a@hsize \linewidth \a@leftmargin \@totalleftmargin +\fi +\a@leftmargin \z@ +\a@prevgraf \z@ \spreadfalse } + +\def \a@resetpar {% called by \a@par +\a@prevgraf \z@ } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% control variables for the "arabtext" environment: +% +% \the\arabtext@hook: executed when entering the environment +% +% \ifa@vmode: Arabic paragraph closed? +% +% \ifa@space: deposit a space? +% +% \ifspread: fill line by spreading the words? +% +% \ifarab: ignore Arabic script output? +% +% \a@parindent: skip at beginning of first line of paragraph +% \a@parindent: saved value from Roman mode +% +% \a@parskip: saved value from Roman mode +% +% \the\a@@everypar: token list, executed when starting a paragraph +% +% \a@oldhmode: saved value from outside +% +% \a@short@line: finish last line, close paragraph +% +% \a@put@line: deposit current line buffer, continue paragraph +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% TeX/LaTeX parameters influencing the shape of a paragraph: +% +% \hsize, \leftskip, \rightskip, \parindent, \parskip +% \parshape, \hangindent, \hangafter, \linewidth, \@totalleftmargin +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% internal control: +% +% \a@hsize = length of line buffer including \leftskip, \rightskip +% \a@limit = maximal Arabic text length +% +% \a@vmodetrue : linebuffer undefined, \a@hsize valid +% \a@vmodefalse: linebuffer valid, \a@limit valid, \a@@everypar used +% +%%%%%%%%%%%%%%%%%%%%%%% output routines %%%%%%%%%%%%%%%%%%%%%%%%% + +\def \putwordb@x #1{% deposit a word +\ifa@vmode \arab@indent \fi +\setbox \wordb@x \hbox {#1}\put@word } + +\def \arab@indent {% like \indent for Arabic +\ifa@vmode \putlineb@x {\hskip \a@parindent }\the\a@@everypar +\else \setbox \wordb@x \hbox {\hskip \a@parindent }\add@word \fi } + +\def \arab@noindent {% like \noindent for Arabic +\ifa@vmode \initlineb@x \the\a@@everypar \fi } + +\def \leavea@vmode {% like \leavevmode for Arabic +\ifa@vmode \arab@indent \fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \initlineb@x {% make an empty Arabic line +\putlineb@x {\arab@strut }\a@spacefalse } + +\def \putlineb@x #1{% open the line box +\a@vmodefalse \a@limit \a@hsize +\advance \a@limit -\leftskip \advance \a@limit -\rightskip +\setbox \lineb@x \hbox {#1}\a@spacefalse } + +\def \add@word {% add word to line without space +\putlineb@x {\unhbox \wordb@x \unhbox \lineb@x }} + +\def \addt@line {% add word to line unconditionally, spacing ? +\ifa@space \putlineb@x + {\unhcopy \wordb@x \arab@space \unhcopy \lineb@x }% +\else \add@word \fi } + +\def \put@word {% add word to line, spacing, break line if necessary +\setbox \a@tempb@x \hbox +{\unhcopy \wordb@x \ifa@space \arab@space \fi \unhcopy \lineb@x }% +\ifdim \a@limit < \wd\lineb@x \put@line \add@word \else +\ifdim \a@limit < \wd\a@tempb@x \put@line \add@word \else +\setbox \lineb@x \box \a@tempb@x +\fi\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \put@line {% output the line, adjusted +\ifarab \setbox\a@tempb@x \hbox to \a@hsize + {\hskip \rightskip \arab@strut + \charsubdefmax \m@ne \unhbox \lineb@x \hskip \leftskip }% + \put@ab@x +\fi \ifnum \tracingarab > 1 \message {|}\fi } + +\def \short@line{% put line without adjustment, close line +\ifarab \ifdim \wd\lineb@x = \z@ \else +\ifspread \dimen0 \a@limit \divide \dimen0 8 + \dimen2 \a@limit \advance \dimen2 -\wd\lineb@x + \setbox\a@tempb@x \hbox to \a@hsize + {\hskip \rightskip + \loop \hskip \parfillskip \advance \dimen2 -\dimen0 + \ifdim \dimen2 > \z@ \repeat + \arab@strut \charsubdefmax \m@ne + \unhbox \lineb@x \hskip \leftskip }% +\else \setbox\a@tempb@x \hbox to \a@hsize + {\hskip \rightskip \hskip \parfillskip + \arab@strut \charsubdefmax \m@ne + \unhbox \lineb@x \hskip \leftskip }% +\fi \put@ab@x +\fi\fi +\ifnum \tracingarab > 1 \message {/}\fi } + +\def \put@ab@x {% deposit line +\ifhmode \unskip {\endgraf }\penalty \clubpenalty +\parindent \z@ \parskip \z@ \else +\ifnum \a@prevgraf = \z@ \else \penalty \widowpenalty +\fi\fi +\begingroup \parfillskip 0pt plus 1fill + \leftskip \z@ \rightskip \z@ \noindent + \ifdim \a@leftmargin = \z@ \else \hskip \a@leftmargin \fi + \box\a@tempb@x \endgraf +\endgroup \parindent \z@ \parskip \z@ \initlineb@x +\advance \a@prevgraf \@ne \a@@prevgraf \prevgraf +\advance \a@@prevgraf \@ne \prevgraf \a@@prevgraf } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\let \a@par@hook \relax % reserved + +\def \testoutput {% show output box +\showboxbreadth = \maxdimen \showboxdepth = 6 +\message {"testoutput" activated.} +\tracingoutput = 1 } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/tex/latex/arabtex/aparse.sty b/Master/texmf-dist/tex/latex/arabtex/aparse.sty new file mode 100644 index 00000000000..9ebcf73c350 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/aparse.sty @@ -0,0 +1,1123 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% aparse.sty +% ArabTeX +% Parser 26.05.2003 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Formale Methoden der Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@ident {aparse.sty} {3.11 get syllables } {26.05.2003} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% dynamic definitions for Arabic +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\gdef \def@arabvoc {% define vowel parsing routines for Arabic +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%% short vowels %%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \sv@a {\sv@@a }% short a +\def \sv@e {\sv@@e }% short e +\def \sv@i {\sv@@i }% short i +\def \sv@o {\sv@@o }% short o +\def \sv@u {\sv@@u }% short u + +%%%%%%%%%%%%%%%%%%%%%%%%%% long vowels, plene %%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \sv@A {\sv@@A }% long a +\def \sv@E {\sv@@E }% long e +\def \sv@I {\sv@@I }% long i +\def \sv@O {\sv@@O }% long o +\def \sv@U {\sv@@U }% long u +\def \sv@Y {\sv@Ytest }% alif maqsura or tooth + +%%%%%%%%%%%%%%%%%%%%%%%%%% long vowels, defective %%%%%%%%%%%%%%%%%%%%%%%%%% + +\sv@def \a@a {\sv@a@a }% defective long a = Qur'an alif +\sv@def \a@e {\sv@a@e }% explicit sukun +\sv@def \a@i {\sv@a@i }% defective long i +\sv@def \a@o {\sv@U }% special short u +\sv@def \a@u {\sv@a@u }% defective long u + +%%%%%%%%%%%%%%%%%%%%%%%%%% special vowels %%%%%%%%%%%%%%%%%%%%%%%%%% + +%\sv@def \a@A {\sv@a }% Turkish "a +\sv@def \a@A {\sv@a@A }% Turkish "a +\sv@def \a@E {\sv@a@E }% Kurdish ^e +\sv@def \a@I {\sv@i }% Turkish "i +\sv@def \a@O {\sv@a@O }% Kurdish and Turkish "o +%\sv@def \a@U {\sv@u }% Turkish "u +\sv@def \a@U {\sv@a@U }% Turkish "u + +%%%%%%%%%%%%%%%%%%%%%%%%%% extra vowels %%%%%%%%%%%%%%%%%%%%%%%%%% + +\sv@def \a@Za {\sv@Za }% Kashmiri .a +\sv@def \a@Ze {\sv@Ze }% explicit shadda +\sv@def \a@Zi {\sv@Zi }% Sindhi -IN +\sv@def \a@Zo {\sv@Zo }% Kashmiri .o +\sv@def \a@Zu {\sv@Zu }% Kashmiri .u + +\sv@def \a@ZA {\sv@ZA }% Kashmiri .A +\sv@def \a@ZE {\sv@ZE }% explicit madda +\sv@def \a@ZI {\sv@ZI }% Kashmiri .y +\sv@def \a@ZO {\sv@ZO }% Kashmiri .O +\sv@def \a@ZU {\sv@ZU }% Kashmiri .U + +%%%%%%%%%%%%%%%%%%%%%%%%%% hamza handling %%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \syl@hamzabeg {\syl@@hamzabeg }% initial hamza + +\def \syl@hamza {\syl@@hamza }% non-initial hamza, context #1' + +\def \syl@test@voc {\syl@@test@voc }% vowel or sukun ? + +%%%%%%%%%%%%%%%%%%%%%%%%%% miscellaneous %%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \check@high {\check@@high }% long form for tooth ? +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +}% end of dynamic definitions for Arabic +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% static definitions for Arabic +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \sv@def #1{% define \sv@#1 +\xpa \def \csname sv@\string #1\endcsname } + +\newtoks \a@revwd +\newtoks \sv@revwd \newtoks \last@con +\newcount \last@mod \newcount \last@voc +\newif \ifsyl@wdend \newif \ifm@dda + +\def \a@parse #1>{% parse token sequence into syllables +\iftest@parse \tracingmacros = 1 +\iftest@scan \else \a@verb (#1)>\fi\fi +\last@con ={.}\last@mod = 0 \last@voc = 0 \global\@highfalse +\global \sv@revwd ={}\global \a@revwd ={}\syl@beg #1<<<>% +\iftest@parse \tracingmacros = 0 % +\xpa \a@verb \xpa (\the\a@revwd )>\fi } + +\def \test@wdend #1#2#3{% test for end of word: k #1 #2 #3 +\case #1\of +{ N<{\syl@wdendtrue } + |"{\test@wdend #2#3<} +\default {\if\is@shortvowel #1\test@wdend #2#3<\else + \ifcat -\nxp #1\syl@wdendtrue \else \syl@wdendfalse + \fi\fi } +}\endcase } + +\def \isat@wdend #1#2#3{00% at end of word? +\test@wdend #1#2#3\ifsyl@wdend \else \xpa \setiffalse \fi } + +\def \is@vowel #1{% test for all vowels +\is@in@list #1aeiouAEIOUY% +\a@a \a@e \a@i \a@o \a@u +\a@A \a@E \a@I \a@O \a@U +\a@Za \a@Ze \a@Zi \a@Zo \a@Zu +\a@ZA \a@ZE \a@ZI \a@ZO \a@ZU >} + +\def \is@shortvowel #1{% test for short vowels +\is@in@list #1aeiou\a@a >} + +\def \syl@end #1>{% kill the rest +\relax } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% start of word %%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \syl@beg #1{% start new word +\global\@highfalse +\case #1\of +{ <{\syl@end } + Q{\syl@hamzabeg } + ^{\syl@hamzabeg A} + B{\syl@tatwilbeg } + "{\syl@quote@beg } + |{\syl@bar } + Y{\syl@con Y} + \cap {\syl@beg } +\default {\syl@@beg #1} +}\endcase } + +\def \syl@@beg #1{% start new word +\ifcat -\nxp #1\def \next {\syl@spec #1}\else +\if\is@vowel #1\def \next {\syl@wasla #1}% check for wasla + \else \def \next {\syl@con #1}% start syllable +\fi\fi \next } + +\def \syl@bar #1{% check for || as "| +\case #1\of +{ |{\syl@quote@beg #1} + B{\syl@con |B} +\default {\put@con W\v@cfalse \@sukfalse\syl@voctest #1} +}\endcase } + +\def \syl@wasla #1{% start word with vowel without hamza +\put@con a\def \next {\syl@voc #1}% prepare for vowel +\ifx \a@lang \a@hebr % Hebrew mode + \ifx #1U\put@con W\else % Hebrew: no carrier, shureq follows + \ifx #1A\add@fathaspec % Hebrew: qames +\fi\fi\fi +\ifx #1E\put@con E\put@syl \def \next {\syl@con }\else +\ifx #1\a@ZA \add@kh@hamzl \put@syl \def \next {\syl@con }\else +\ifx #1A\ifiz@fet \add@madda \put@syl \def \next {\syl@con }\else + \def \next {\syl@voctest }% + \fi \else +\ifiz@fet \else % wasla only in Arabic ? +\ifh@mza \if\is@shortvowel #1% + \if@wasla \add@wasla \put@syl \def \next {\syl@con }% next syllable + \fi\fi +\fi\fi\fi\fi\fi \next } + +\def \syl@wasla #1{% start word with vowel without hamza +\def \next {\syl@voc #1}% prepare for vowel +\ifu@gh \put@con Y\add@hamza\else \put@con a% +\ifx \a@lang \a@hebr % Hebrew mode + \ifx #1U\put@con W\else % Hebrew: no carrier, shureq follows + \ifx #1A\add@fathaspec % Hebrew: qames +\fi\fi\fi +\ifx #1E\put@con E\put@syl \def \next {\syl@con }\else +\ifx #1\a@ZA \add@kh@hamzl \put@syl \def \next {\syl@con }\else +\ifx #1A\ifiz@fet \add@madda \put@syl \def \next {\syl@con }\else + \def \next {\syl@voctest }% + \fi \else +\ifiz@fet \else % wasla only in Arabic ? +\ifh@mza \if\is@shortvowel #1% + \if@wasla \add@wasla \put@syl \def \next {\syl@con }% next syllable + \fi\fi +\fi\fi\fi\fi\fi\fi \next } + +\def \syl@tatwilbeg #1{% start word with tatwIl: -- #1 + \put@con B% +\if\is@vowel #1\def \next {\syl@voc #1}% harakat on tatwil +\else \put@syl \def \next {\syl@con #1}% join +\fi \next } + +\def \syl@spec #1#2{% deposit special character +\ifx #1<\let \next \syl@end +\else \put@spec #1% deposit character + \ifx #1-\def \next {\syl@con #2}\else % create joining form + \ifx #2<\let \next \syl@end \else % isolated character + \def \next {\syl@beg #2}% % start new word + \fi\fi +\fi \next } + +\def \sv@syl #1#2#3{% explicit syllable +\put@con #1\last@mod 0#2\last@voc 0#3\@highfalse \put@syl \syl@con } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% start of syllable %%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \syl@con #1{% start a new syllable +\case #1\of +{ <{\syl@end }% not done + Q{\syl@hamza } % no Hamza + B{\put@con B\put@syl \syl@con } + W{\put@con w\syl@Wspec }% no ending wA or w- + "{\syl@quote@con } + |{\syl@bar@con } + \cap {\syl@con } + \sv@syl {\sv@syl } +\default {\syl@@con #1} +}\endcase } + +\def \syl@@con #1#2{% start a new syllable + \def \next {\syl@voctest #2}% +\ifx #2\cap \def \next {\syl@@con #1}\else +\ifx #1-\ifx #2<\def \next {\syl@spec #1#2}% joining form + \else \def \next {\syl@beg #2}% ignore hyphen, tie + \fi \else +\ifcat -\nxp #1\def \next {\syl@spec #1#2}\else % special character +\ifx #2-\def \next {\syl@assim #1}% assimilate? +\else \put@con #1% deposit consonant + \ifx #1#2\if@ssim \add@shadda + \def \next {\syl@shadd@voctest #2}% + \fi\fi + \ifiz@fet\ifx #1X\ifx #2w\put@syl + \def \next {\syl@con #2}% waw-e-ma`dul + \fi\fi\fi +\fi\fi\fi\fi \next } + +\def \syl@bar@con #1{% | +\case #1\of +{ |{\syl@quote@con #1} + B{\syl@tatwil } +\default {\put@con |\@sukfalse \syl@voctest #1} +}\endcase } + +\def \syl@tatwil #1{% test for 2 tatwils +\put@con B% +\ifx #1B\add@shadda \def \next {\syl@voctest }% +\else \def \next {\syl@voctest #1}% +\fi \next } + +\def\syl@shadd@voctest #1#2{% hyphen after shadda ? context #1#1 #2 +\ifx #2-\def \next {\syl@hyphen #1}\else + \def \next {\syl@voctest #2}% +\fi \next } + +%%%%%%%%%%%%%%%%%%%%%%%%%% hyphen %%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \syl@hyphen #1#2#3{% hyphen after consonant, #1 - #2 #3 +\ifx #2<\add@sukun \put@syl \def \next {\syl@con -#2#3}\else % k - || +\ifx #3<\def \next {\syl@contie #1#2#3}\else % k - x || +\ifx #3N\def \next {\syl@contie #1#2#3}\else % k - x N +\ifcat -\nxp #3\def \next {\syl@contie #1#2#3}\else % k - x - +\ifx #1l\def \next {\syl@art #2#3}\else % l - #2 #3 +\ifx #1\a@H \put@syl \put@spec W\def \next {\syl@beg #2#3}\else % H - x +\ifiz@fet \def \next {\syl@voctest #2#3}% Persian suffix +\else \add@sukun \put@syl \def \next {\syl@beg #2#3}% start new word +\fi\fi\fi\fi\fi\fi\fi \next } + +\def \syl@art #1#2#3{% article, (a)l-#1#2#3 + \def \next {\syl@beg #1#2#3}% ought to test for sun letter ! +\ifx #1#2% no sukun before double (sun) letter + \ifx #1Q\add@sukun \else + \ifx #2#3\def \next {\syl@beg #2#3}% special case l-ll + \fi \fi +\else \add@sukun % moon letter +\fi \put@syl \next } + +\def \syl@assim #1#2{% test for assimilation #1 - #2 +\ifx #2\cap \def \next {\syl@assim #1}\else + \put@con #1\def \next {\syl@hyphen #1#2}% #1 - #2 +\if@ssim\ifx #1#2% ought to test for sun letter ! + \put@con l\def\next {\syl@art #1#2}% substitute l - #1 #2 + \fi +\fi\fi \next } + +\def \syl@contie #1#2#3{% connecting vowel, #1 - #2#3 + \def \next {\syl@voctest #2#3}% +\ifiz@fet \sv@test@izafet #1#2#3% +\fi \next } + +\def \syl@voctie #1#2#3{% hyphen after vowel, #1 - #2 #3 + \def \next {\put@syl \syl@con -#2#3}% close syllable +\ifiz@fet\ifx #3<\sv@test@izafet #1#2#3\else + \ifcat -\nxp #3\sv@test@izafet #1#2#3\else + \ifx #1a\put@con \a@H % supply final silent H + \def \next {\syl@hyphen \a@H #2#3}\else + \ifx #1e\put@con \a@H % supply final silent H + \def \next {\syl@hyphen \a@H #2#3}% + \fi\fi\fi\fi +\fi \next } + +%%%%%%%%%%%%%%%%%%%%%%%%%% special cases for Persian %%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \syl@hahtie #1#2#3{% connecting vowel, H - #2#3 + \def \next {\syl@hah #2#3}% +\case #2\of +{ IE{} +\default {\sv@test@izafet #1#2#3} +}\endcase \next } + +\def \syl@hah{% H at the end, ha-ye hawwaz-e ma.hfi +\put@syl \put@spec W\syl@beg } + +\def \sv@izafet #1#2{% #1 - i/e/_i +\case #1\of +{ I\a@H{\add@hamza } + AU{\put@syl \put@con y} +}\endcase +\ifx #2\a@i \add@kasraspec \else \add@kasra % long izafet ? +\fi \put@syl \syl@con } + +\def \sv@wahdat #1#2{% #1 - I/E +\case #1\of +{ I\a@H{\put@syl \put@spec W\put@con a} + AU{\put@syl \put@con Y\add@hamza } +}\endcase +\ifx #2I\add@kasra \fi +\put@syl \put@con y\put@syl \syl@con } + +\def \sv@test@izafet #1#2#3{% special cases for -e, -i, -_e, -_i, -I, -E +\case #2\of +{ e{\def \next {\sv@izafet #1e#3}} +i\a@i\a@E{\def \next {\sv@izafet #1i#3}} + y{\def \next {\sv@izafet #1e}} + I{\def \next {\sv@wahdat #1I#3}} + E{\def \next {\sv@wahdat #1E#3}} +}\endcase } + +\def \syl@endvoc #1{% test for H + \def \next {\syl@con #1}% +\ifiz@fet \ifx #1\a@H \put@con \a@H + \def \next {\syl@@endvoc }% +\fi\fi \next } + +\def \syl@@endvoc #1#2{% char after H +\case #1\of +{ -{\syl@hahtie \a@H #2} + Q{\add@hamza \syl@voc } + <{\put@syl \syl@end #2} + "{\put@syl \syl@quote@beg #2} + |{\put@syl \syl@bar #2} +\default {\put@syl + \ifcat -\nxp #1\def \next {\syl@spec #1#2}\else + \def \next {\syl@beg #1#2}% start a new word + \fi \next } +}\endcase } + +%%%%%%%%%%%%%%%%%%%%%%%%%% quoting %%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \syl@quote@beg #1#2{% start word with quote: " #1 #2 +\case #1\of +{ '{\put@con Q\syl@voctest #2} + Q{\put@con Q\syl@voctest } + |{\put@spec W\syl@beg #2}% start new word +\default {\syl@@quote@beg #1#2} +}\endcase } + +\def \syl@@quote@beg #1{% start word with quote: " #1 #2 +\if\is@vowel #1\def \next {\syl@wasla #1}% " v k: alif vowel +% \if@wasla \v@ctrue \else \add@wasla \togglev@c \fi + \if@wasla \v@ctrue \@waslafalse \else \@waslatrue \togglev@c \fi +\else \put@con a\togglev@c \add@wasla \put@syl % alif implied + \ifx #1"\def \next {\syl@con }% " " k: alif wasla + \else \def \next {\syl@con #1}% " k: alif wasla + \fi +\fi \next } + +\def \syl@quote@con #1#2{% start syllable with quote: " #1 #2 +\case #1\of +{ '{\put@con Q\syl@voctest #2} + Q{\put@con Q\syl@voctest } + |{\put@con W\syl@voctest #2} +\default {\togglev@c \syl@con #2} +}\endcase } + +% original version of logic: +\def \syl@quote@voc #1#2{% continue syllable with quote: " #1 #2 +\case #1\of +{ B{\togglev@c \add@sukun \put@syl \syl@con #1#2} + "{\togglev@c \add@sukun \put@syl \syl@beg #2} + |{\syl@@quote@voc #2} + '{\add@hamza \syl@voctest #2} + Q{\add@hamza \syl@voctest } +\default {\togglev@c \syl@voctest #1#2}% vowel: sukun +}\endcase } + +% patches for Arnoud Vrolijk: +% make "' sukun hamza instead of hamza modifier +\def \syl@quote@voc #1{% continue syllable with quote: " #1 #2 +\case #1\of +{ B{\togglev@c \add@sukun \put@syl \syl@con #1} + "{\togglev@c \add@sukun \put@syl \syl@beg } + |{\syl@@quote@voc } +\default {\togglev@c \syl@voctest #1}% vowel: sukun +}\endcase } + +\def \syl@@quote@voc #1{% continue syllable with quote: "| #1 #2 + \put@syl \put@spec W% +\if\is@vowel #1\def \next {\syl@wasla #1}% vowel: wasla +\else \def \next {\syl@con #1}% consonant +\fi \next } + +\def \togglev@c {% toggle diacritic +\ifv@c \v@cfalse \else \v@ctrue \fi % toggle vowel indicator +\if@suk \@sukfalse \else \@suktrue \fi % toggle sukun, wasla +} + +\def \voc@suk {% normalize vowels and sukun +\let \ifv@c \if@vocals \let \if@suk \if@sukun } + +%%%%%%%%%%%%%%%%%%%%%%%%%% vowel or end of syllable %%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \syl@@test@voc #1{% vowel or sukun ? variant in Hebrew! +\if\is@vowel #1\def \next {\syl@voc #1}% test for vowel +\else \def \next {\syl@con #1}% + \ifurd@ \ifx #1h\else \add@sukun \fi + \else \add@sukun + \fi \put@syl +\fi \next } + +\def \syl@voctest #1{% continue open syllable: K #1 +\case #1\of +{ "{\syl@quote@voc } + ^{\m@ddatrue \syl@voctest } + |{\syl@bar@voc } + B{\syl@tatwil@voc } + \cap {\syl@voctest } +\default {\syl@test@voc #1} +}\endcase } + +\def \syl@bar@voc #1{% K | #1 +\ifx #1|\def \next {\syl@quote@voc |}\else +\ifx #1"\def \next {\syl@test@quote }\else +\if\is@vowel #1\def \next {\syl@test@voc #1|}\else + \def \next {\syl@test@voc |#1}% no bar +\fi\fi\fi \next } + +\def \syl@tatwil@voc #1{% K B #1 +\if\is@vowel #1\def \next {\syl@test@voc #1B}\else + \def \next {\syl@test@voc B#1}% no vowel +\fi \next } + +\def \syl@test@quote #1{% K |" #1 +\if\is@vowel #1\def \next {\syl@quote@voc #1|}\else + \put@syl \put@con |\def \next {\syl@quote@voc "#1}% +\fi \next } + +\iffalse % deleted for efficiency; for documentation only ! +% and also for compatibility with the Hebrew mode !! +\def \syl@voc #1{% test for vowel +\case #1\of +{ <{\syl@end }% this cannot happen! or can it? + -{\syl@voc }% ignore hyphen here + a \a@A{\sv@@a }% short a, Turkish "a + e {\sv@@e }% short e + i \a@I{\sv@@i }% short i, Turkish "i + o {\sv@@o }% short o + u \a@U{\sv@@u }% short u, Turkish "u + A {\sv@@A }% long a + E {\sv@@E }% long e + I {\sv@@I }% long i + O {\sv@@O }% long o + U \a@o{\sv@@U }% long u, special short u + Y {\sv@Ytest }% alif maqsura or tooth + \a@a {\sv@a@a }% Qur'an alif + \a@e {\sv@a@e }% frei + \a@i {\sv@a@i }% defective long i + \a@u {\sv@a@u }% defective long u + \a@E {\sv@a@E }% kurdish ^e + \a@O {\sv@a@O }% Kurdish and Turkish "o + \a@Za {\sv@Za }% Kashmiri .A + \a@Ze {\sv@Ze }% Kashmiri .a + \a@Zi {\sv@Zi }% Sindhi -IN + \a@Zo {\sv@Zo }% Kashmiri u' + \a@Zu {\sv@Zu }% Kashmiri U' +\default {\csname sv@\string #1\endcsname}% switch on vowel +}\endcase } +\fi + +\def \syl@voc #1{% test for vowel, also for Hebrew mode +\case #1\of +{ <{\syl@end }% this cannot happen! or can it? + -{\syl@voc }% ignore hyphen here +\default {\csname sv@\string #1\endcsname}% switch on vowel +}\endcase } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% auxiliary vowel routines +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \test@B #1#2{% tatweel or ligature break +\case #1\of +{ |B{\put@con #1\put@syl #2} +\default {#2#1}% deposit vowel carrier +}\endcase } + +%%%%%%%%%%%%%%%%%%%%%%%%%% short vowels %%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \sv@@a #1{% short a +\ifk@rd \put@syl \def \next {\test@B #1\sv@a@Hvwl }\else +\def \next {\sv@aInt #1}\fi \next } + +\def \sv@@a #1{% short a +\ifu@gh \put@syl \put@con a\put@syl \def \next {\syl@con #1}\else +\ifk@rd \put@syl \def \next {\test@B #1\sv@a@Hvwl }\else + \def \next {\sv@aInt #1}% +\fi\fi \next } + +\def \sv@a@Hvwl {% kurdish aH carrier +\put@con \a@H \put@syl \syl@endvoc } + +\def \sv@aInt #1{% short a +\ifx #1N\def \next {\syl@Nspec }% tanwin alif +\else \add@fatha \put@syl \def \next {\sv@@aInt #1}% +\fi \next } + +\def \sv@@aInt #1{% short a +\case #1\of +{ e{\ifurd@ \put@con E\else \put@con Y\add@hamza + \fi \put@syl \syl@con }\else + ou{\put@con w\put@syl \syl@con }\else + i{\put@con y\put@syl \syl@con }\else +\default {\syl@endvoc #1}% test for H +}\endcase } + +%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \sv@@e {% short e +\ifk@rd \xpa \sv@a \else +\ift@rk \xxpa \sv@a \else \xxpa \sv@eInt \fi\fi } + +\def \sv@@e {% short e +\ifk@rd \def \next {\sv@a }\else +\ift@rk \def \next {\sv@a }\else +\ifu@gh \put@syl \put@con \a@Y \put@syl \def \next {\syl@con }\else +\def \next {\sv@eInt }\fi\fi\fi \next } + +\def \sv@eInt #1{% zwarakay in Pashto, otherwise short a +\ifk@sh \put@syl \put@con \a@E \put@syl \def \next {\syl@con #1}% +\else \def \next {\syl@endvoc #1}% test for H + \ifp@sht \add@zwarakay \put@syl + \ifx #1e\def \next {\syl@con }\put@con Y\add@hamza \put@syl + \fi + \else \add@kasra \put@syl + \ifiz@fet % provisions for the preposition be- + \if\is@vowel #1\def \next {\syl@beg #1}% + \fi\fi + \fi +\fi \next } + +%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \sv@@i #1{% short i +\case #1\of +{ y{\sv@@I }% iy -> I + N{\add@kasratan \put@syl \syl@ignore }% tanwin yah + -{\add@kasra \syl@voctie i} +\default {\add@kasra \put@syl \syl@con #1}% next syllable +}\endcase } + +\def \sv@@i {% short i +\ifu@gh \put@syl \put@con Y\put@syl \xpa \syl@con +\else \xpa \sv@@iInt \fi } + +\def \sv@@iInt #1{% short i +\case #1\of +{ y{\sv@@I }% iy -> I + N{\add@kasratan \put@syl \syl@ignore }% tanwin yah + -{\add@kasra \syl@voctie i} +\default {\add@kasra \put@syl \syl@con #1}% next syllable +}\endcase } + +%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \sv@@o #1{% ammad in Pashto, otherwise short u +\ifk@sh \put@syl \put@con \a@W \put@syl + \def \next {\syl@con #1}\else +\ifk@rd \put@syl \def \next {\test@B #1\sv@a@Wvwl }\else + \def \next {\sv@oInt #1}% +\fi\fi \next } + +\def \sv@@o #1{% ammad in Pashto, otherwise short u +\ifk@sh \put@syl \put@con \a@W \put@syl + \def \next {\syl@con #1}\else +\ifu@gh \put@syl \put@con w\put@syl + \def \next {\syl@con #1}\else +\ifk@rd \put@syl \def \next {\test@B #1\sv@a@Wvwl }\else + \def \next {\sv@oInt #1}% +\fi\fi\fi \next } + +\def \sv@a@Wvwl {% kurdish O carrier +\put@con \a@W \put@syl \syl@con } + +\def \sv@oInt #1{% ammad in Pashto, otherwise short u +\ifp@sht \add@ammad \else \add@damma +\fi \put@syl +\ifx #1i\put@con y\put@syl \def \next {\syl@con }\else + \def \next {\syl@endvoc #1}% test for H +\fi \next } + +%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \sv@@u {% short u +\ifk@rd \put@syl \xpa \sv@ukurd \else \xpa \sv@uInt \fi } + +\def \sv@@u {% short u +\ifk@rd \put@syl \def \next {\sv@ukurd }\else +\ifu@gh \put@syl \put@con \a@w \put@syl \def \next {\syl@con }\else +\def \next {\sv@uInt }\fi\fi \next } + +\def \sv@ukurd #1{% short u, for Kurdish +\ifx #1Q\def \next {\syl@hamza }\else +\def \next {\test@B #1\sv@wvwl }\fi \next } + +\def \sv@wvwl {% w carrier +\put@con w\put@syl \syl@con } + +\def \sv@uInt #1{% short u, otherwise +\case #1\of +{ w{\sv@UInt }% uw -> U + N{\add@dammatan \put@syl \syl@ignore }% tanwin waw +\default {\add@damma \put@syl \syl@con #1}% next syllable +}\endcase } + +%%%%%%%%%%%%%%%%%%%%%%%%%% long vowels %%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \sv@@A #1{% long A +\ifk@rd \else \add@fatha \fi +\put@syl \test@B #1\sv@Avwl } + +\def \sv@Avwl #1{% long A vowel + \put@con a% may also serve as consonant, carry vowels + \ifm@dda \add@madda \m@ddafalse \fi +\ifx #1-\def \next {\syl@voctie A}\else + \def \next {\syl@voctest #1}\@sukfalse % next syllable +\fi \next } + +\def \sv@Aa #1{% long a + a ? whence ?? +\case #1\of +{ |B{\put@con #1\put@syl \put@con a% + \ifm@dda \add@madda \m@ddafalse + \fi \put@syl \syl@con } + -{\ifm@dda \add@madda \m@ddafalse + \fi \syl@voctie A} + a{\ifm@dda \add@madda \m@ddafalse + \fi \sv@AaN } + "{\ifm@dda \add@madda \m@ddafalse + \fi \v@ctrue \@suktrue \sv@Aa } +\default {\ifm@dda \add@madda \m@ddafalse + \fi \put@syl \syl@con #1}% next syllable +}\endcase } + +\def \sv@AaN #1{% long a + aN ? + \def \next {\syl@con a#1}% next syllable +\ifx #1N\def \next {\syl@aN}\else \put@syl +\fi \next } + +%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \sv@@E {% long e +\ift@rk \xpa \sv@I \else \xpa \sv@EInt \fi } + +\def \sv@EInt #1{% long E +\ifk@sh \put@syl \put@con E\put@syl \def \next {\syl@con #1}% +\else \def \next {\test@B #1\sv@Evwl }% + \ifp@sht \add@zwarakay \else + \ifiz@fet \else \add@kasra + \fi\fi \put@syl +\fi \next } + +\def \sv@Evwl #1{% long E vowel +\ifx #1e\put@con L\def \next {\syl@con }\else % ey + \def \next {\syl@con #1}% next syllable +\ifp@sht \put@con \a@Y \else +\ifurd@ \put@con E\else + \put@con y% +\fi\fi\fi \put@syl \next } + +%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \sv@@I #1{% long i +\ifk@sh \put@syl \put@con y\add@kasraspec \put@syl + \def \next {\syl@con #1}\else + \add@kasra \put@syl \def \next {\test@B #1\sv@Ivwl }% +\fi \next } + +\def \sv@Ivwl #1{% long i carrier + \put@con y\ifm@dda \add@madda \m@ddafalse \fi % -I becomes -iy, +\case #1\of +{ y{\@sukfalse \add@shadda \syl@voctest} % -Iy becomes -iyy + -{\syl@voctie I} +\default {\@sukfalse \syl@voctest #1}% next syllable +}\endcase } + +%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \sv@@O #1{% long o +\ifp@sht \add@ammad \else +\ifiz@fet \else \add@damma +\fi\fi \put@syl \test@B #1\sv@Ovwl } + +\def \sv@Ovwl {% long o carrier +\put@con w\put@syl \syl@con } + +%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \sv@@U #1{% long u +\ifk@sh \put@syl \put@con w\add@ammad \put@syl + \def \next {\syl@con #1}\else +\ifk@rd \put@syl \def \next {\test@B #1\sv@wwvwl }\else + \def \next {\sv@UInt #1}% +\fi\fi \next } + +\def \sv@wwvwl {% kurdish double w carrier +\put@con w\put@syl \put@con w\put@syl \syl@con } + +\def \sv@UInt #1{% long u +\add@damma \put@syl \test@B #1\sv@Uvwl } + +\def \sv@Uvwl #1{% long u carrier + \put@con w\ifm@dda \add@madda \m@ddafalse \fi % -U becomes -uw +\case #1\of +{ w{\@sukfalse\add@shadda \syl@voctest} % -Uw becomes -uww + -{\syl@voctie U} % not -U- + A{\put@syl \put@con a\put@syl \syl@con } % not -UA +\default {\sv@@Uvwl #1} +}\endcase } + +\def \sv@@Uvwl #1{% long u carrier +\ifiz@fet\ifx #1Q\def \next {\sv@UQ}\else % not -U' + \def \next {\syl@voctest #1}\@sukfalse % next syllable + \fi +\else \def \next {\syl@voctest #1}\@sukfalse % next syllable +\fi \next } + +\def \sv@UQ #1#2#3#4{% UQU#2#3#4, U' in Farsi +\if\isat@wdend #2#3#4\add@hamza % final hamza on waw ? + \ifx #2-\def \next {\syl@hyphen Q#3#4}% ezafe ? + \else \def \next {\syl@voctest #2#3#4}% vowel ? + \fi +\else \put@syl \def \next {\syl@hamza U#2#3#4}% next syllable +\fi \next } + +%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \sv@Ytest #1{% is alif maqsura vowel or consonant? +\case #1\of +{ "{\put@syl \syl@con Y#1} + < B{\sv@YInt #1} +\default {\ifcat -\nxp #1\def \next {\sv@YInt #1}% + \else \put@syl \def \next {\syl@con Y#1}% + \fi \next } +}\endcase } + +\def \sv@YInt #1{% alif maqsura is vowel +\add@fatha \put@syl \test@B #1\sv@Yvwl } + +\def \sv@Yvwl {% put alif maqsura +\put@con Y\ifqur@n \add@fathaspec \fi \put@syl \syl@con } + +%%%%%%%%%%%%%%%%%%%%%%%%%% special vowels %%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \sv@a@a #1{% Qur'an alif + \add@fathaspec \put@syl +\case #1\of +{ \a@H {\put@con \a@H\put@syl \syl@con }% + U{\put@con w\put@syl \syl@con }% + Y{\put@con Y\put@syl \syl@con }% + I{\put@con y\put@syl \syl@con }% +\default {\syl@con #1}% +}\endcase } + +\def \sv@a@e {% explicit sukun +\add@sukun \put@syl \syl@con } + +\def \sv@a@i {% defective long i +\add@kasraspec \put@syl \syl@con } + +\def \sv@a@u {% defective long u +\add@ammad \put@syl \syl@con } + +%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \sv@a@A {% Uighuric and Turkish +\ifu@gh \put@syl \put@con \a@H \put@syl \xpa \syl@con +\else \xpa \sv@a \fi } + +\def \sv@a@E #1{% kurdish ^e +\ifk@rd \put@syl \def \next {\test@B #1\sv@a@Evwl }\else +\add@kasraspec \put@syl \def \next {\syl@con #1}\fi \next } + +\def \sv@a@Evwl {% kurdish E carrier +\put@con \a@E \put@syl \syl@con } + +\def \sv@a@O #1{% Kurdish and Turkish "o +\put@syl +\ifk@rd \def \next {\test@B #1\sv@wa@Evwl }\else +\def \next {\test@B #1\sv@wvwl }\fi \next } + +\def \sv@a@O #1{% Kurdish and Turkish "o +\put@syl +\ifu@gh \put@con \a@W \put@syl \def \next {\syl@con #1}\else +\ifk@rd \def \next {\test@B #1\sv@wa@Evwl }\else +\def \next {\test@B #1\sv@wvwl }\fi\fi \next } + +\def \sv@wa@Evwl {% kurdish W E carrier +\put@con w\put@syl \put@con \a@E \put@syl \syl@con } + +\def \sv@a@U {% Uighuric and Turkish +\ifu@gh \put@syl \put@con \a@aw \put@syl \xpa \syl@con +\else \xpa \sv@u \fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \sv@Za {% Kashmiri .a +\add@kh@hamza \put@syl \syl@con } + +\def \sv@Ze {% explicit shadda +%\add@shadda \put@syl \syl@con } +%\add@shadda \syl@voctest } +\voc@suk \add@shadda \syl@voctest } + +\def \sv@Zi {% Sindhi -IN +\add@bars \put@syl \syl@con } + +\def \sv@Zo {% Kashmiri .o +\put@syl \put@con \a@aU \put@syl \syl@con } + +\def \sv@Zu {% Kashmiri .u +\add@kl@hamza \put@syl \syl@con } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \sv@ZA {% Kashmiri .A +\put@syl \put@con A% +\add@kh@hamzl \put@syl \syl@con } + +\def \sv@ZE {% explicit madda +\add@madda \put@syl \syl@con } + +\def \sv@ZI {% Kashmiri .y +\put@syl \put@con \a@as \syl@voctest } + +\def \sv@ZO {% Kashmiri .O +\put@syl \put@con \a@aU \put@syl \put@con A\add@fatha \put@syl \syl@con } + +\def \sv@ZU {% Kashmiri .U +\add@kl@hamzl \put@syl \syl@con } + +%%%%%%%%%%%%%%%%%%%%%%%%%% Nunation %%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \syl@Nspec {% tanwin fatha +\ifh@mza \ifaN@alif \def \next {\syl@aN@alif }% + \else \def \next {\syl@aN }% + \fi +\else \add@fathatan \put@syl \def \next {\syl@ignore }% +\fi \next } + +\def \syl@aN #1{% tanwin fatha on actual character, alif required ? + \add@fathatan \put@syl \def \next {\syl@ignore #1}% +\ifcat -\nxp #1% + \xpa\if \xpa\is@in@list \the\last@con YTaB>\else + \put@con a\put@syl % deposit alif + \fi +\fi \next } + +\def \syl@aN@alif #1{% tanwin fatha at the end, alif required ? +\ifcat -\nxp #1\def \next {\syl@ignore #1}% + \xpa\if \xpa\is@in@list \the\last@con YTaB>\else + \ifv@c \put@syl \v@ctrue \else \put@syl + \fi \put@con a% % deposit alif + \fi +\else \def \next {\syl@ignore }% + \ifv@c \put@syl \v@ctrue \else \put@syl + \fi \put@con #1% % deposit character +\fi \add@fathatan \put@syl \next } + +\def \syl@Wspec #1{% final w with silent alif ? +\case #1\of +{ -{\syl@Wspec }% ignore hyphen + u{\add@damma \put@syl + \put@con a\put@syl \syl@con }% % ending w-u +\default {\add@sukun \put@syl + \put@con a\put@syl \syl@con }% % ending w +}\endcase } + +\def \syl@ignore #1{% kill the rest after Tanwin except U, A, a, y, and Y +\case #1\of +{ -{\syl@ignore } + U{\put@con w\put@syl \syl@ignore } + aA{\put@con a\put@syl \syl@ignore } + Y{\put@con Y\put@syl \syl@ignore } + y{\put@con y\put@syl \syl@ignore } +\default {\let \next \syl@ignore + \ifcat -\nxp #1\def \next {\syl@con #1}% % tie + \fi \next } +}\endcase } + +%%%%%%%%%%%%%%%%%%%%%%%%%% Hamza %%%%%%%%%%%%%%%%%%%%%%%%%% + +\newif \if@ay + +\def \syl@@hamzabeg #1#2{% initial hamza +\ifk@rd \ifx #2i\def \next {\syl@con }\put@con a% alif + \add@hamza \add@hamzalow \put@syl + \else \put@con Y\add@hamza \def \next {\syl@voctest #2}% + \fi \else +\ifh@mza \def \next {\syl@beghamza #1#2}\else + \def \next {\syl@hamzaverb #1#2}% verbatim mode +\fi\fi \next } + +\def \syl@@hamzabeg #1#2{% initial hamza +\ifk@rd \ifx #2i\def \next {\syl@con }\put@con a% alif + \add@hamza \add@hamzalow \put@syl + \else \put@con Y\add@hamza \def \next {\syl@voctest #2}% + \fi \else +\ifu@gh \put@con Y\add@hamza \def \next {\syl@voctest #2}\else +\ifh@mza \def \next {\syl@beghamza #1#2}\else + \def \next {\syl@hamzaverb #1#2}% verbatim mode +\fi\fi\fi \next } + +\def \syl@@hamza #1{% non-initial hamza, context #1' +\ifx #1-\def \next {\syl@hamzabeg #1}\else +\ifh@mza \def \next {\syl@arabhamza #1}\else + \def \next {\syl@hamzaverb #1}% verbatim mode +\fi\fi \next } + +\def \syl@hamzaverb #1{% verbatim hamza, #1 = carrier +\case #1\of +{ |{\put@con Q} + A{\put@con a\add@madda \@sukfalse } + y{\put@con Y\add@hamza } + u{\put@con w\add@hamza } + i{\put@con a\add@hamza \add@hamzalow } +\default {\put@con #1\add@hamza } +}\endcase \syl@voctest } + +\def \syl@beghamza #1#2{% start word with hamza, context '#2 +\ifx #2"\def \next {\syl@beghamza #1}\togglev@c % toggle vowel +\else \def \next {\syl@@beghamza #2}% +\fi \next } + +\def \syl@@beghamza #1{% start word with hamza, context '#1 +\put@con a\def \next {\syl@con }% alif +\case #1\of +{ A{\add@madda } + \a@a {\add@fathaspec } + a\a@A{\add@hamza \add@fatha } +i\a@i\a@I{\add@hamza \add@kasra \add@hamzalow } +ou\a@O\a@U{\add@hamza \add@damma } + eE\a@E{\add@hamza \ifp@sht \add@zwarakay \else \add@kasra \fi } + I\a@e{\add@hamza \add@kasra \add@hamzalow \put@syl \put@con y} +OU\a@o\a@p\a@w{\add@hamza \add@damma \put@syl \put@con w} +\default {\add@hamza \add@sukun \def \next {\syl@con #1}} +}\endcase +\put@syl \next } + +\def \syl@arabhamza #1#2#3{% non-initial hamza, context #1'#2#3 +\case #2\of +{ "{\togglev@c \syl@hamza #1#3} % toggle vowel + |{\syl@hamza #1#3} % ignore bar + AIUYEO{\syl@hamzamid #1#2#3#3} % arabic rules +\default {\syl@@arabhamza #1#2#3} % test for final position +}\endcase } + +\def \syl@@arabhamza #1#2#3#4{% non-initial hamza, context #1'#2#3#4 + \def \next {\syl@hamzamid #1#2#3#3#4}% +\if\isat@wdend #2#3#4% test for hamza as last consonant +\ifiz@fet \else \def \next {\syl@hamzaend #1#2#3#4}% +\fi\fi \next } + +\def \syl@hamzamid #1#2#3{% test for #1 a y ; obsolete? + \@ayfalse +\ifx #2a\ifx #3y\@aytrue +\fi\fi \syl@@hamzamid #1#2#3} + +\def \syl@@hamzamid #1#2#3{% intermediate hamza, context #1'#2#3 + \def \next {\syl@voctest #2}% +\ifx #1I\ifqur@n \put@con B\else \put@con Y\fi \add@hamza \else +\if\is@in@list #1iy>\put@con Y\add@hamza \else +\if\is@in@list #2iIE>\put@con Y\add@hamza + \ifqur@n \add@hamzalow \fi \else +\if\is@in@list #1uo>\put@con w\add@hamza \else +\if\is@in@list #2uo>\put@con w\add@hamza \else +\if\is@in@list #2UO>% + \ifqur@n \put@Q #1\else \put@con w\add@hamza \fi \else +\if\is@in@list #1AUO>\put@Q #1\else +\if\is@in@list #2A>\put@con a\add@madda + \put@syl \def \next {\syl@con }\else +\if\is@in@list #2\a@a>\put@con a\add@fathaspec + \put@syl \def \next {\syl@con }\else +\ifx #1a\put@con a\add@hamza \else +\ifx #2a\ifqur@n \put@Q #1\else \put@con a\add@hamza \fi \else + \put@Q #1% deposit Hamza +\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi +\ifx #2Q\def \next {\syl@doublehamza }% +\fi \next } + +\def \syl@hamzaend #1{% final hamza, context #1' +\case #1\of +{ i{\put@con Y\add@hamza \syl@voctest } + u{\put@con w\add@hamza \syl@voctest } + a{\put@con a\add@hamza \syl@voctest } +\default {\syl@@hamzaend #1} +}\endcase } + +\def \syl@@hamzaend #1#2#3{% final hamza, context #1'#2#3 +\put@con Q\def \next {\syl@voctest #2#3}% deposit Hamza +\ifx #2a\ifx #3N\def \next {\syl@hamza@Nspec #1}% +\fi\fi \next } + +\def \syl@hamza@Nspec #1#2{% #1'aN , put alif ? +\ifx #1A\else +\ifx #1U\else +\if\is@end@char #1\else + \ifqur@n \put@con B\else \put@con Y\fi \add@hamza +\fi\fi\fi + \add@fathatan \put@syl +\ifx #1A\else + \ifx #2Y\put@con Y% put alif maqsoura + \else \put@con a% put alif + \fi + \put@syl +\fi \syl@ignore #2} + +\def \syl@doublehamza #1{% double Hamza +\add@shadda \syl@voctest } + +\def \put@Q #1{% deposit isolated hamza after #1 +\ifqur@n \if\is@end@char #1\put@con Q\else \put@con B\add@hamza \fi +\else\put@con Q% +\fi } + +%%%%%%%%%%%%%%%%%%%%%% deposit characters %%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \check@@high #1{% % long form for tooth ? +\if\is@in@list #1YntCbyp>% % YntCbyp : toggle + \if@high \global\@highfalse \else \global\@hightrue + \fi \else +\if\is@in@list #1sxSD>\global\@hightrue \else % sxSD : force high + \global\@highfalse % otherwise : force low +\fi\fi } + +\def \put@con #1{% start syllable +\last@con ={#1}} + +\def \put@syl {% deposit syllable +\if@high \advance \last@mod \c@high \fi +\xpa \check@high \the\last@con +\let \ifv@c \if@vocals \let \if@suk \if@sukun +\def \rev@wd {\the\last@con \the\last@mod +\the\last@voc *}\put@rev@wd +\global \@waslatrue } + +\def \put@spec #1{% deposit special character +\last@con={#1}\def \rev@wd {#10+0*}\put@rev@wd +\global \@waslafalse } + +\def \put@rev@wd {% deposit output item % no group! +\edef \temp {\global \nxp\a@revwd {\rev@wd \the\a@revwd }% % \temp +\global \nxp\sv@revwd {\the\sv@revwd \rev@wd }}\temp +\last@mod = 0 \last@voc = 0 } + +%%%%%%%%%%%%%%%%%%%%%% deposit .harakAt %%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \add@shadda {\advance \last@mod \c@shadda } +\def \add@hamza {\advance \last@mod \c@hamza } +\def \add@hamzalow {\advance \last@mod \c@hamzalow } +\def \add@madda {\advance \last@mod \c@madda } + +\def \add@wasla {\if@suk \last@voc \c@wasla \fi } +\def \add@sukun {\if@suk \last@voc \c@sukun \fi } +\def \add@fatha {\ifv@c \last@voc \c@fatha \fi } +\def \add@kasra {\ifv@c \last@voc \c@kasra \fi } +\def \add@damma {\ifv@c \last@voc \c@damma \fi } +\def \add@zwarakay {\ifv@c \last@voc \c@zwarakay \fi } +\def \add@fathatan {\ifv@c \last@voc \c@fathatan \fi } +\def \add@kasratan {\ifv@c \last@voc \c@kasratan \fi } +\def \add@dammatan {\ifv@c \last@voc \c@dammatan \fi } +\def \add@fathaspec {\ifv@c \last@voc \c@fathaspec \fi } +\def \add@kasraspec {\ifv@c \last@voc \c@kasraspec \fi } +\def \add@ammad {\ifv@c \last@voc \c@ammad \fi } +\def \add@bars {\ifv@c \last@voc \c@bars \fi } +\def \add@kh@hamza {\ifv@c \last@voc \c@kh@hamza \fi } +\def \add@kl@hamza {\ifv@c \last@voc \c@kl@hamza \fi } +\def \add@kh@hamzl {\ifv@c \last@voc \c@kh@hamzl \fi } +\def \add@kl@hamzl {\ifv@c \last@voc \c@kl@hamzl \fi } + +%%%%%%%%%%%%%%%%%%%%% output code constants %%%%%%%%%%%%%%%%%%%%%%%%%% + +\chardef \c@shadda = 1 \chardef \c@hamza = 2 +\chardef \c@hamzalow = 3 \chardef \c@madda = 4 +\chardef \c@high = 10 + +\chardef \c@sukun = 1 \chardef \c@fatha = 2 +\chardef \c@kasra = 3 \chardef \c@damma = 4 +\chardef \c@fathatan = 5 \chardef \c@kasratan = 6 +\chardef \c@dammatan = 7 \chardef \c@zwarakay = 8 +\chardef \c@wasla = 9 \chardef \c@fathaspec = 10 +\chardef \c@kasraspec = 11 \chardef \c@ammad = 12 +\chardef \c@kas@fath = 13 \chardef \c@bars = 14 +\chardef \c@kh@hamza = 15 \chardef \c@kl@hamza = 16 +\chardef \c@kh@hamzl = 17 \chardef \c@kl@hamzl = 18 + +%%%%%%%%%%%%%%%%%%%%%%%% end of routines %%%%%%%%%%%%%%%%%%%%%%%% + +\endinput +%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/tex/latex/arabtex/apatch.sty b/Master/texmf-dist/tex/latex/arabtex/apatch.sty new file mode 100644 index 00000000000..319bf4705f7 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/apatch.sty @@ -0,0 +1,1987 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% apatch.sty +% last minute corrections +% see \datum and \level at the end of the file +% template: 22.08.2003 +\def \version {3.11} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% this is just another *.sty file +% you do not have to do any manual patching +% just put this file onto the TEXINPUT path +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\chardef \patchatcode = \catcode`\@ \catcode`\@ = 11 +\chardef \patchdqcode = \catcode`\" \catcode`\" = 12 + +\ifx \version \theversion \else \edef \next {\errmessage +{This patch file only works with ArabTeX version \version }} +\next \def \a@patchlevel {-undefined-} +\xpa \endinput +\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% presently no patches + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% two passes with LaTeX; see: alatex.sty + +%\iffalse % no patches yet; otherwise: delete ! +\ifx \LaTeX \undefined \else +\ifx \a@patchlevel \undefined % first patching run +\let \a@@@document \a@document +\a@extend \document {\setnone \input {apatch.sty}} +\else % second pass after loading all modules +\let \a@document \a@@@document +\fi\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% patch patterns: + +\ifx \a@patchlevel \undefined % load only the first time +% patches on first pass +\else +% patches on second pass +\fi + +\ifx \a@hebr \undefined \else +%\a@message {Hebrew mode patches} +\fi + +\ifx \LaTeX \undefined \else +%\a@message {LaTeX mode patches} +\fi +%\fi % no patches yet; otherwise: delete ! + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def \datum {22.08.2003} \def \level {-} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% aligs.sty + +\def \hah@end #1#2*#3#4+#5*#6{% hah, test for ligature +% c1 m1 * c2 m21 + m22 * c3 +\ifu@gh \ifx #1\a@H + \else \set@act \sk@h@u + \fi +\else +\ifurd@ \ifm@lay + \else \set@act \sk@h@s \hah@urd #3% round h? + \fi + \ifx #1T\else + \ifx #3l\test@allah #4#6\else + \ifx #1\a@H + \else \set@act\sk@h@u + \if\is@end@char #3% + \else \set@loww@act \global\a@min 1 + \fi + \fi\fi\fi +\else +\ifx #3l\test@allah #4#6\else +\ifnum \chr@cls = 1 \set@chr\sk@b \put@tatwil % 1 YntCbyp +\else +\ifnum \chr@cls = 3 \put@tatwil % 3 GHX +\else \gim@test #6\put@tatwil +\fi\fi\fi\fi\fi } + +\def \test@allah #1#2{% special ligature +\ifx #2l\ifnum #1 = \c@shadda \set@chr\sk@l@w + % special short form of lam for the Name of God +\fi\fi \put@tatwil } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% arabtex.sty + +\def \setarabfont #1{% define font switching + \def \the@arabfont {\tr@ceoff #1\tr@ceon }} + +\def \arab@output {\ifx \a@lang \a@arab \else +\tr@ceoff % switch to Arabic output conventions +\def@arabchars % define character macros for Arabic +\def@arabaccent % define accent macros for Arabic +\def@arabvoc % define vowel parsing routines for Arabic +\def@arabstrut % define strut for Arabic +\tr@zdmg % define standard transliteration +\global\let \a@write \a@@write \global\let \a@write@hook \relax +\def \set@arabfont {\the@arabfont }% +\tr@ceon \let \a@lang \a@arab \fi } + +%\setnash + +\ifx \a@hebr \undefined \else +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% hebtex.sty + +\def \heb@output {\ifx \a@lang \a@hebr \else +\tr@ceoff % switch to Hebrew output conventions +\def@hebchars % define character macros for Hebrew +\def@hebvoc % define vowel parsing routines for Hebrew +\def@hebstrut % define strut for Hebrew +\global\let \a@write \heb@write \global\let \a@write@hook \relax +%\def \set@arabfont {\the@hebfont }% +%\def \set@arabfont {\pheb }% +\def \set@arabfont {\hebfont }% +\tr@heb \tr@ceon \global\let \a@lang \a@hebr \fi } + +\def \sethebfont #1{% define font switching + \def \hebfont {\tr@ceoff #1\tr@ceon }} + +\pdef \sethebrew {% switch to hebrew writing +\all@false \@ssimtrue \yahd@tstrue \heb@output } + +\let \setheb \sethebrew + +\ifx \LaTeX \undefined \else +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% hefonts2.sty + +\def \fdef #1#2#3#4{% define NFSS2 font command +\pdef #1{\def \pheb {\fontencoding {U}\fontfamily {#2}% +\fontseries {#3}\fontshape {#4}\selectfont }% +\sethebfont \pheb }% +\all@wcmd #1} + +\hdef \hc {m}{n} +\hdef \hp {bx}{n} +\hdef \Jm {m}{Jm} +\hdef \jm {m}{jm} +\hdef \ds {m}{ds} +\hdef \oj {m}{oj} +\hdef \ta {m}{ta} +\hdef \shlmold {m}{so} +\hdef \shlmscr {m}{sr} +\hdef \shlmstk {m}{sk} +\hdef \fr {m}{fr} +\hdef \frbx {bx}{fr} +\hdef \frsl {sl}{fr} +\hdef \crml {m}{crml} +\hdef \crmlsl {sl}{crml} + +\sethebfont \hc + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\fi % LaTeX +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\fi % Hebrew + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def \datum {27.08.2003} \def \level {a} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \a@hebr \undefined \else +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \LaTeX \undefined +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% hebtex.tex + +\def\smash{\relax % \relax, in case this comes first in \halign +\ifmmode \xpa\mathpalette \xpa\mathsm@sh \else \xpa\makesm@sh +\fi } + +\def \jm {\sethebfont {\jerusalem}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\fi % Plain + +\hc % default Hebrew font + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\fi % Hebrew + +\ifx \a@patchlevel \undefined % load only the first time +\ifx \LaTeX \undefined \else +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% alatex.tex + +\UsePackage {alists} % load LaTeX extensions for Arabic lists +\UsePackage {asect} % load LaTeX extensions for Arabic sections +\UsePackage {atabg} % load LaTeX extensions for Arabic tabbing + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\fi % LaTeX +\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def \datum {08.09.2003} \def \level {b} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifx \a@hebr \undefined \else +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% heparse.sty + +\def \add@@shewa {% put shewa on final kaf +\xpa\case \the\last@con \of +%{ k R {\add@shewa }} +{ k {\add@shewa }} +\endcase } + +\let \sv@qameslongum \sv@qamesaleph + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% hebtex.sty + +\pdef \setjudarab {% switch to hebrew writing +\all@false \@ssimtrue \yahd@tstrue \jud@output } + +\all@wcmd \setjudarab + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \jud@output {\ifx \a@lang \a@juda \else +\heb@output \tr@ceoff % switch to Hebrew output conventions +\def@judchars % define character macros for Judeo-Arabic +\tr@zdmg % standard transliteration +\tr@ceon \global\let \a@lang \a@juda \fi } + +\def \a@juda {JUDARAB} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% hebchrs.sty + +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +\gdef \def@judchars {% define character macros for Judeo-Arabic +\gdef \tc@f {\act@cd\hc@f \@finaltrue } % f +\gdef \tc@C {\act@cd\hc@t \act@mod \j@d@t } % _t +\gdef \tc@D {\act@cd\hc@ss \act@mod \j@d@t \@finaltrue } % .d +\gdef \tc@F {\act@cd\hc@d \act@mod \j@d@t } % _d +\gdef \tc@G {\act@cd\hc@j \act@mod \j@d@t } % ^g +\gdef \tc@R {\act@cd\hc@j \act@mod \j@@@d@t } % .g +\gdef \tc@T {\act@cd\hc@h \act@mod \j@@d@t } % T +\gdef \tc@X {\act@cd\hc@k \act@mod \j@d@t \@finaltrue } % _h +\gdef \tc@Z {\act@cd\hc@tt \act@mod \j@d@t } % .z +}}% end of dynamic definitions + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\fi %\a@hebr + +\ifx \setjudarab \undefined \else +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% hewrite.sty + +\chardef \j@d@t 5 \chardef \j@@d@t 6 \chardef \j@@@d@t 7 + +\def \h@putmod #1{% deposit modifier +\ifcase #1\relax +\or \h@sindot \or \h@shindot \or \h@rdot \or \h@raphe +\or \j@dot \or \j@@dot \or \j@@@dot \fi } + +\def \the@dots {\the@dot \kern2\h@p \the@dot } + +\def \the@gim {\raise \h@p \hbox {\the@dot }% +\the@dot \raise \h@p \hbox {\the@dot }} + +\def \j@dot {\j@put@dia {.5}{1.3}{\the@dot }} +\def \j@@dot {\j@put@dia {.5}{1.3}{\the@dots }} +\def \j@@@dot {\j@put@dia {.5}{1.3}{\the@gim}} + +\def \j@put@dia #1#2#3{% put diacritic #3 at (#1,#2) +\setbox0 \hbox to \z@ {\hss #3\hss}\dimen@ #2\a@ht +\dimen2 \a@slant\dimen@ \advance\dimen2 #1\a@wd +\global\setbox\ab@x \hbox +{\rlap {\kern\dimen2 \raise\dimen@\box0 }\unhcopy\ab@x }}% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\fi %\setjudarab +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def \datum {17.09.2003} \def \level {c} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% acmd.sty + +\let \a@c@emph \a@c@emphasize + +\def \arab@em #1{% overstrike group +\def \next@command {\test@special}% +\ifarab \setbox0 \hbox {\a@sequence {#1}}% + \putwordb@x {\vbox {\hrule \kern 1pt \box0}}% +\fi +\ifshow {\tt \string \emphasize \ }% +\if \bgroup \nxp \next@token \a@@verb {{#1}}\else \a@@verb {#1}% +\fi\fi +\iftrans \underbar {{\set@transfont \trans@text #1 \end }}% +\fi \test@token } + +\def \a@c@textbf #1{\a@c@bf #1\rm } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% for LyX: spacing.sty + +\let \a@c@noun \test@token + +\def \a@spacing {\let \a@@restore@spacing \restore@spacing +\let \restore@spacing \a@restore@spacing } + +\def \a@restore@spacing {\a@par \a@@restore@spacing } + +\def \a@c@singlespace {\a@par \a@spacing +\def \endsinglespace {\a@par \par }% +\singlespace \test@token } + +\def \a@c@onehalfspace {\a@par \a@spacing \onehalfspace \test@token } + +\def \a@c@doublespace {\a@par \a@spacing \doublespace \test@token } + +\def \a@c@spacing #1{\a@par \a@spacing \spacing {#1}\test@token } + +\xpa\def \csname a@c@singlespace*\endcsname +{\a@par \a@spacing +\xpa\let \xpa\a@endsinglespace \csname endsinglespace*\endcsname +\xpa\def \csname endsinglespace*\endcsname +{\a@par \a@endsinglespace \vskip -\baselineskip }% +\csname singlespace*\endcsname \test@token } + +\let \a@c@textsf \test@token % these are preliminary +\let \a@c@textsf \a@c@textbf + +\let \a@c@textit \test@token +\let \a@c@textit \a@c@textbf +\let \a@c@textit \a@c@emph + +\let \a@c@textsl \test@token +\let \a@c@textsl \a@c@textbf + +\let \a@c@texttt \test@token +\let \a@c@texttt \a@c@textbf + +\let \a@c@underbar \test@token +\let \a@c@underbar \a@c@textbf + +\def \a@c@underbar {% get next token +\def \next@command {\arab@ub }% +\futurelet \next@token \test@space } + +\def \arab@ub #1 {% underbar +\def \next@command {\test@special}% +\ifarab \setbox0 \hbox {\a@sequence {#1}}% + \putwordb@x {\vtop {\box0 \kern -5pt \hrule }}% +\fi +\ifshow {\tt \string \underbar \ }% +\if \bgroup \nxp \next@token \a@@verb {{#1}}\else \a@@verb {#1}% +\fi\fi +\iftrans \underbar {{\set@transfont \trans@text #1 \end }}% +\fi \test@token } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% awrite.sty + +\def \arab@testfont {% diagnose font, look for vowels and ayin +\edef \next {\the\font }% +\ifx \next \a@font \else +\ifnum \tracingarab > 0 \a@message{Arabic font \next selected.}\fi +\global\let \a@font \next \a@testfont \fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% hewrite.sty + +\def \heb@testfont {% diagnose font, look for vowels and ayin +\edef \next {\the\font }% +\ifx \next \h@font \else +\ifnum \tracingarab > 0 \a@message {Hebrew font \next selected.}\fi +\global\let \h@font \next \h@testfont \fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% arabrep.cls + +\at@arabtext {% + \def\a@l@section{\@dottedtocline{1}{1.0em}{1.8em}}% + \def\a@l@subsection{\@dottedtocline{2}{2.8em}{2.1em}}% + \def\a@l@subsubsectiom{\@dottedtocline{3}{4.9}{2.8em}}% +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% arabaux.sty + +\def \a@gextend #1#2{% global extend command definition, no pars! +\xpa\gdef \xpa#1\xpa{#1#2}} + +\def \a@extend #1#2{% extend command definition, no pars! +\xpa\def \xpa#1\xpa{#1#2}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% aparse.sty + +\def \syl@@quote@beg #1{% start word with quote: " #1 #2 +\if\is@vowel #1\def \next {\syl@wasla #1}% " v k: alif vowel +% \if@wasla \v@ctrue \else \add@wasla \togglev@c \fi + \if@wasla \v@ctrue \global\@waslafalse + \else \global\@waslatrue \togglev@c \fi +\else \put@con a\togglev@c \add@wasla \put@syl % alif implied + \ifx #1"\def \next {\syl@con }% " " k: alif wasla + \else \def \next {\syl@con #1}% " k: alif wasla + \fi +\fi \next } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% asect.sty + +\def \a@dottedtocline #1#2#3#4#5{% Level, Indent, Numwidth, Text, Pageno +% for Arabic mode +\ifnum #1>\c@tocdepth +\else \vskip \z@ plus.2\p@ + \begin{arabtext} +% \tocp@rs {#2}{#3}#4 {\le@ders \thep@geno {#5}} + \tocp@rs {#2}{#3}#4 \le@ders \thep@geno {#5} + \end{arabtext} +\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% aboxes.sty + +\def \fix@act@box {% fixup position and set tatwil +\if@high@act \advance\a@disp -\a@dsp \@high@actfalse \fi +%\advance\a@min@dp \a@ic \advance\a@disp \a@ic +\global\advance\a@min@dp \a@ic \advance\a@disp \a@ic +\if@tat \put@tat \@tatfalse \fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% aligs.sty + +\def \aw@endligs #1#2*#3#4*#5{% test for final ligatures +% c1 m1 * c2 m2 * c3 +\ifcase \act@cls \lam@lig #3#5% % 0 l +\or % 1 YntCbyp + \ifnum \act@cd = \a@yah \yah@end #1#3#5\else + \ifnum \act@cd = \a@yah@h \yah@end #1#3#5\else + \ifnum \act@cd = \a@yah@p \yah@p@end #1#3#5\else + \ifnum \act@cd = \a@yah@p@s \yah@p@end #1#3#5\else + \ifnum \act@cd = \a@nun \nun@end #1#3#5\else + \bah@end #1% + \fi\fi\fi\fi\fi +\or \sin@lig #1#5% % 2 sxSD +\or \gim@lig #1#3#5% % 3 GHXJ + \global\a@min 0 +\or \global\@highfalse \@mod@acttrue \put@tatwil % 4 cR +\or \kaf@end #3#5% % 5 kgM +\or \fah@end #1% % 6 fqv +\or \ttah@lig #1#5% % 7 VZ +\or \rah@end #1#2*#3#5% % 8 rzj \a@r \a@R +\or % 9 \a@t \a@n + \ifnum \act@cd = \a@yah@p@s \yah@p@end #1#3#5\else + \ifnum \act@cd = \a@nun@p \nun@end #1#3#5\else + \bah@end #1% + \fi\fi +\else \global\@highfalse \@mod@acttrue % 10 ... + \ifnum \act@cd = \a@hah \hah@end #1#2*#3#4*#5\else + \ifnum \act@cd = \a@h@s \hah@urd #3\else + \ifnum \act@cd = \a@mim \mim@end #2*#3#5\else + \put@tatwil + \ifnum \act@cd = \a@dal \gim@test #5\else + \ifnum \act@cd = \a@dal@p \gim@test #5\else + \fi\fi + \fi\fi\fi +\fi \aw@lower #5} + +\def \act@gim #1{% deposit ligature +\ifnum \act@cd = \a@khah \set@act\sk@kh@s \act@mod = 0 +\else \set@act\sk@hh@s \@mod@acttrue +%\fi \a@min 1 } +\fi \global\a@min 1 } + +\def \hah@end #1#2*#3#4+#5*#6{% hah, test for ligature +% c1 m1 * c2 m21 + m22 * c3 +\ifu@gh \ifx #1\a@H + \else \set@act \sk@h@u + \fi +\else +\ifurd@ \ifm@lay + \else \set@act \sk@h@s \hah@urd #3% round h? + \fi + \ifx #1T\else +% \ifx #3l\test@allah #4#6\else + \ifx #3l\test@allah {#4}{#6}\else + \ifx #1\a@H + \else \set@act\sk@h@u + \if\is@end@char #3% + \else \set@loww@act \global\a@min 1 + \fi + \fi\fi\fi +\else +%\ifx #3l\test@allah #4#6\else +\ifx #3l\test@allah {#4}{#6}\else +\ifnum \chr@cls = 1 \set@chr\sk@b \put@tatwil % 1 YntCbyp +\else +\ifnum \chr@cls = 3 \put@tatwil % 3 GHX +\else \gim@test #6\put@tatwil +\fi\fi\fi\fi\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% aoutput.sty + +\def \put@ab@x {% deposit line +\ifhmode \unskip {\endgraf }\penalty \clubpenalty +\parindent \z@ \parskip \z@ \else +\ifnum \a@prevgraf = \z@ \else \penalty \widowpenalty +\fi\fi +\begingroup \parfillskip 0pt plus 1fill + \leftskip \z@ \rightskip \z@ \noindent + \ifdim \a@leftmargin = \z@ \else \hskip \a@leftmargin \fi + \box\a@tempb@x \endgraf +%\endgroup \parindent \z@ \parskip \z@ \initlineb@x +\endgroup \parindent \z@ \parskip \z@ plus 1pt \initlineb@x +\advance \a@prevgraf \@ne \a@@prevgraf \prevgraf +\advance \a@@prevgraf \@ne \prevgraf \a@@prevgraf } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def \datum {23.10.2003} \def \level {d} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% arabtex.sty + +\newarabfont % as a side effect an Arabic font default is defined! +%\setnash + +% wg. utfcode.sty und inputenc.sty: + +\long\def \test@special #1{% check for special cases +\if \bgroup \nxp \next@token % arabic group + \a@@putword \def \next {\arab@group {#1}}\else +\if \relax \nxp #1% % command + \if\is@in@set #1\a@accent % known to scanner + \a@@append {#1}\def \next {\get@token }% + \else % general command + \a@@putword \def \next {\test@command #1}% + \fi \else +%\if \sp@ce \nxp \next@token % RTL space +% \a@@putword \def \next {\get@token }\else +\ifnum `#1 > 127 % inputenc command + \a@@append {#1}\def \next {\get@token}\else +\ifcat \nxp ~\nxp #1% % active character + \a@@putword \def \next {\test@command #1}\else +\if \nxp <\nxp #1\unarab@codes % Roman insert + \a@@putword \let \next \test@insert \else +\ifx $#1\unarab@codes % Math insert + \a@@putword \let \next \test@math +\else \a@@append {#1}\def \next {\get@token}% % normal case +\fi\fi\fi\fi\fi\fi \next } + +{\catcode `\< = \@other % better make sure +\gdef \a@ins {% arabic insertion or 'less' +\ifmmode \global\let \a@less < +%\else \global\let \a@less \arab@insert \leavevmode +\else \global\let \a@less \a@@insert \leavevmode + \bgroup \arab@codes \set@arabfont \global\@waslafalse \@wasfalse +\fi \a@less } +} % catcode < + +\def \a@@insert #1{% check for < > +\ifx #1>\egroup \unskip \else \xpa \arab@insert \xpa #1\fi} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% ascan.sty + +{\arab@codes % because of special characters + +\gdef \t@b@g #1{% start \ArabTeX scanner + \def \next {\sc@word {#1}}\def \sc@char {@}% +\ifcat a\nxp #1\else % letter +\apply \set@next \tocase #1\of +{ \@{\sc@endscan } % finished + '{\t@rquote } + `{\t@lquote } + *{\t@star } +\default {\sc@word {#1}} +}\endcase +\fi \next } + +\gdef \t@w@rd #1{% transform input into internal notation + \def \next {\sc@word }% +\ifx #1\@\def \next {\sc@endscan }\else % finished +\ifcat \nxp #1a% + \ifx #1a\def \next {\t@aa }\else % test for aa -> A + \ifx #1n\def \next {\t@nn }\else % test for ng, ny + \edef \sc@char {\csname sc@#1\endcsname }% letter + \ifx \sc@char \relax \def \sc@char {#1}% undef letter + \fi + \ifs@nd \edef \next {\nxp \t@asp {\sc@char }}\else \sc@put + \fi + \fi\fi \else % other character +\ifcat \nxp #1\relax \def \next {\t@cs #1}\else % control sequence +\ifx #1'\def \next {\t@hamza }\else % hamza + \def \sc@char {#1}% +\apply \set@next \tocase #1\of +{~\@ldtie{\t@tie } + .{\t@dot } + ,{\t@comma } + -{\t@minus } + `{\t@ain } + "{\t@dquote } + :={\t@colon } + ^{\t@up } + _{\t@down } + |{\t@bar } + *{\t@shadda } +\default {\t@w@@rd {#1}} +}\endcase +\fi\fi\fi\fi \next } + +} % \arab@codes + +\def \t@star {\sc@dep *} + +\let \sc@beg \t@b@g % apatch only +\let \sc@word \t@w@rd % apatch only + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% aligs.sty + +\def \test@allah #1#2{% special ligature +\ifx #2l% +%\ifnum #1 = \c@shadda +\set@chr\sk@l@w + % special short form of lam for the Name of God +%\fi +\fi \put@tatwil } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% aparse.sty + +\def \set@shadda {\advance \last@mod \c@shadda } + +\def \add@shadda {\ifcase \last@mod % set bit 1 +\set@shadda \or\or \set@shadda \or\or \set@shadda \or\or \set@shadda +\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\ifx \a@hebr \undefined \else +\iffalse +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% hebtex.sty + +\def \heb@output {\ifx \a@lang \a@hebr \else +\tr@ceoff % switch to Hebrew output conventions +\def@hebchars % define character macros for Hebrew +\def@hebvoc % define vowel parsing routines for Hebrew +\def@hebstrut % define strut for Hebrew +\global\let \a@write \heb@write \global\let \a@write@hook \relax +\def \set@arabfont {\the@hebfont }% +\tr@heb \tr@ceon \global\let \a@lang \a@hebr \fi } + +\def \sethebfont #1{% define font switching + \def \the@hebfont {\tr@ceoff #1\tr@ceon }} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% hefonts2.sty % apatch.sty only! + +\hdef \hc {m}{n} +\sethebfont \hc + +\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% abidir.sty + +\def \a@Rtobox #1{% pack the insertion into \Rinsertb@x +\setbox \Rinsertb@x \vbox {\a@hsize \a@Lwidth +\advance \a@hsize -\leftskip \advance \a@hsize -\rightskip +\a@normpen \widowpenalty \a@normpen \clubpenalty +\leftskip \z@ \rightskip \z@ +\parfillskip \z@ plus 1fil \relax \parskip \z@ +\let \a@@kern \a@kern \let \a@@mkern \a@mkern +\def \a@kern {\nobreak \a@@kern}\def \a@mkern {\nobreak \a@@mkern}% +\let \end \relax \spreadtrue \vskip \a@vglue \hbadness 10000 +\putlineb@x {\arab@strut \hskip \a@Llength }\a@spacefalse +\test@token #1 \end \unskip \unskip \vskip \a@vglue +\hbox {\box\lineb@x \hfill }}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifx \a@hebr \undefined \else +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% hewrite.sty + +\gdef \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@kf \def \hadj {-.1}\def \vadj {.75}\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 } + +\gdef \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@kf \def \hadj {-.1}\def \vadj {.75}\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 } + +\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% utfcode.sty + +\ifx \utfatcode \undefined \else + +{\catcode `\^ 7 \catcode `\^^M=13 +\gdef \utf@word #1{% transform input into internal notation +\ifx #1\@ \def \next {\utf@end }\else % finished +\ifx #1-\def \next {\utf@minus }\else % +\ifx #1/\def \next {\sc@back #1}\else % +\ifnum `#1="D6 \def \next {\utf@dvi }\else % +\ifnum `#1="D7 \def \next {\utf@dvii }\else % +\ifnum `#1="D8 \def \next {\utf@dviii }\else % +\ifnum `#1="D9 \def \next {\utf@dix }\else % +\ifnum `#1="DA \def \next {\utf@da }\else % +\ifnum `#1="DB \def \next {\utf@db }\else % +\ifnum `#1="E2 \def \next {\utf@eii }\else % + \def \next {\utf@asci #1}% +\fi % +\fi\fi\fi\fi\fi\fi % +\fi\fi\fi \next }% +} % catcode 13 + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \utf@eii #1#2{% segment E2 + \u@lb `#1\relax \advance \u@lb -128 + \u@lq `#2\relax \advance \u@lq -128 + \edef \sc@char {}% +\ifnum \u@lb = 0 +\ifnum \u@lq = 12 % ZERO WIDTH NON-JOINER (U+200C) +% \edef \sc@char {||}\else + \edef \sc@char {\n@xp\a@ba}\else +\ifnum \u@lq = 13 % ZERO WIDTH JOINER (U+200D) + \edef \sc@char {-}\else +% \edef \sc@char {\n@xp\a@bb}\else +\fi\fi\fi \utf@next } + +\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \utf@dix #1{% segment D9 + \u@lb `#1\relax \advance \u@lb -"80 + \u@lq \u@lb \divide \u@lq 8 +\ifcase \u@lq \edef \sc@char {\ifcase \u@lb + B\or f\or q\or k\or l\or m\or n\or h\or \fi }% +\or \advance \u@lb -8 \edef \sc@char {\ifcase \u@lb + w\or Y\or y\or "aN\or "uN\or "iN\or "a\or "u\or \fi }% +\or \advance \u@lb -"10 \edef \sc@char {\ifcase \u@lb + "i\or "\n@xp\a@Ze\or ""\or "\n@xp\a@ZE\or + "\n@xp\a@Za\or "\n@xp\a@Zu\or \or \or \fi }% +\or \advance \u@lb -"18 \edef \sc@char {}% +\or \advance \u@lb -"20 \edef \sc@char {\ifcase \u@lb + 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or \fi }% +\or \advance \u@lb -"28 \edef \sc@char {\ifcase \u@lb + 8\or 9\or \a@pc\or \f@sila\or + \f@sila\or *\or \n@xp\a@b\or \n@xp\a@bq\or \fi }% +\or \advance \u@lb -"30 \edef \sc@char {\ifcase \u@lb + "\n@xp\a@a\or "\or "\n@xp\a@ZA\or "\n@xp\a@ZU\or +% N"\n@xp\a@Za\or Qa\or Qw\or Qw"u\or \fi }% +N"\n@xp\a@Za\or N"\n@xp\a@Za A\or N"\n@xp\a@Za w\or N"\n@xp\a@Za w"u\or \fi }% +\or \advance \u@lb -"38 \edef \sc@char {\ifcase \u@lb +% Qy\or \n@xp\a@t\or \n@xp\a@T\or \n@xp\a@ab\or + N"\n@xp\a@Za Y\or \n@xp\a@t\or \n@xp\a@T\or \n@xp\a@ab\or + \n@xp\a@v\or \n@xp\a@at\or p\or \n@xp\a@ac\or \fi }% +\fi \utf@next } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \utf@db #1{% segment DB + \u@lb `#1\relax \advance \u@lb -"80 + \u@lq \u@lb \divide \u@lq 8 +\ifcase \u@lq \edef \sc@char {\ifcase \u@lb + Qh\or \n@xp\a@h\or \n@xp\a@B\or \n@xp\a@j\or + \n@xp\a@aU\or \n@xp\a@aV\or \n@xp\a@W\or \n@xp\a@w\or \fi }% +\or \advance \u@lb -8 \edef \sc@char {\ifcase \u@lb + \n@xp\a@aw\or \n@xp\a@au\or \n@xp\a@av\or \n@xp\a@X\or + Y\or L\or \n@xp\a@az\or \n@xp\a@x\or \fi }% +\or \advance \u@lb -"10 \edef \sc@char {\ifcase \u@lb + \n@xp\a@Y\or \n@xp\a@y\or E\or \n@xp\a@ay\or + B\or \n@xp\a@H\or \or \or \fi }% +\or \advance \u@lb -"18 \edef \sc@char {}% +\or \advance \u@lb -"20 \edef \sc@char {}% +\or \advance \u@lb -"28 \edef \sc@char {\ifcase \u@lb + \or \or \or \or + \or \or \n@xp\a@bd\or \n@xp\a@br\or \fi }% +\or \advance \u@lb -"30 \edef \sc@char {\ifcase \u@lb + 0\or 1\or 2\or 3\or + 4\or 5\or 6\or 7\or \fi }% +\or \advance \u@lb -"38 \edef \sc@char {\ifcase \u@lb + 8\or 9\or \n@xp\a@aI\or \n@xp\a@aN\or + \n@xp\a@P\or \n@xp\a@ai"\n@xp\a@Zi\or + \n@xp\a@ao"\n@xp\a@Zi\or \n@xp\a@bh-\or \fi }% +\fi \utf@next } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% arabtoks.sty + +\def \a@br {\sk@r ,25 } % rah with roof +\def \a@ba {\sk@W , 0 } % ZERO WIDTH NON-JOINER +\def \a@bb {\sk@spc , 0 } % ZERO WIDTH JOINER +\def \a@bb {\sk@N , 0 } % ZERO WIDTH JOINER +\def \a@bd {\sk@d ,25 } % dal with roof +\def \a@bh {\sk@h ,25 } % hah with roof +\def \a@bq {\sk@q@s , 0 } % qaf without dots +\def \a@br {\sk@r ,25 } % rah with roof + +\gdef \sk@Q {10 ,\a@hamzc ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % hamza char +\gdef \sk@W {10 ,\a@break ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % small space 34 +\gdef \sk@Wp {10 ,\a@break ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % small space 34 +\gdef \sk@N {10 ,\a@break ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % small space 34 +\gdef \sk@spc {10 ,\a@smspc ,1 ,{{0,0}{0,0}{2,0}{2,0}}} % small space 36 +\gdef \sk@spcn {10 ,\a@smspc ,0 ,{{0,0}{0,0}{2,0}{2,0}}} % small space 36 +\gdef \sk@skip{10 ,\a@skip ,1 ,{{0,0}{0,0}{2,0}{2,0}}} % small space 37 +\gdef \sk@skipn{10 ,\a@skip ,0 ,{{0,0}{0,0}{2,0}{2,0}}} % small space 37 + +\def \a@bc {\sk@@ , 0 } % empty +%\def \a@bc {\sk@skipn , 0 } % empty +\def \a@be {\sk@@ , 0 } % empty +%\def \a@be {\sk@spc , 0 } % empty +\def \a@bf {\sk@@ , 0 } % empty +%\def \a@bf {\sk@spcn , 0 } % empty +\def \a@bg {\sk@@ , 0 } % empty +%\def \a@bg {\sk@skip , 0 } % empty +\def \a@bi {\sk@@ , 0 } % empty +%\def \a@bi {\sk@Wp , 0 } % empty +\def \a@bj {\sk@@ , 0 } % empty +\def \a@bk {\sk@@ , 0 } % empty +\def \a@bl {\sk@@ , 0 } % empty +\def \a@bm {\sk@@ , 0 } % empty +\def \a@bn {\sk@@ , 0 } % empty +\def \a@bo {\sk@@ , 0 } % empty +\def \a@bp {\sk@@ , 0 } % empty +\def \a@bs {\sk@@ , 0 } % empty +\def \a@bt {\sk@@ , 0 } % empty +\def \a@bu {\sk@@ , 0 } % empty +\def \a@bv {\sk@@ , 0 } % empty +\def \a@bw {\sk@@ , 0 } % empty +\def \a@bx {\sk@@ , 0 } % empty +\def \a@by {\sk@@ , 0 } % empty +\def \a@bz {\sk@@ , 0 } % empty + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% atrans.sty + +\let \tr@@zdmg \tr@zdmg + +\iffalse % inserted in 3.11f +\def \tr@zdmg {% patches for Uzbek +\tr@def \a@H {\"a}% +\tr@def \a@ab {\"e}% +} +\fi % inserted in 3.11f + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% ascan.sty + +\def \setcode #1{% switch the input encoding +\lowercase {\def \sc@code {#1}% +\ifx \sc@code \sc@oldcode \else +\begingroup \def \sc@lookup ##1#1##2##3\@@ {\endgroup ##2}% +\xpa \sc@lookup \sc@table #1\sc@default \@@ \fi }% +%\let \sc@oldcode \sc@code } +\global\let \sc@oldcode \sc@code } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% aligs.sty + +\def \hah@urd #1{% wavy hah +% c2 +\if\is@end@char #1\set@act\sk@h % isolated round h +\fi +\ifx #1\a@h +\@mod@actfalse % no mark below +\fi +\ifnum \chr@cls = 1 \set@chr\sk@b % YntCbyp normal height +\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def \datum {16.11.2003} \def \level {d+UCS} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% witbhs.sty + +\if\AND{\isx\bhscode\undefined}{\isx\buckatcode\undefined}\else +\def \test@@token {\iftest@command \tracingmacros 0 \fi +\futurelet \next@token \test@space } + +\let \test@token \test@@token % get next token + +\xpa\def \xpa\kill@space \space {% gobble LTR space +\futurelet \next@token \test@space } + +\xpa\def \xpa\kill@sp@ce \sp@ce {% gobble RTL space +\futurelet \next@token \test@space } + +\def \test@space {% check for LTR space +\if \space \nxp\next@token \xpa\kill@space +\else \xpa\test@sp@ce \fi } + +\def \test@sp@ce {% check for RTL space +\if \sp@ce \nxp\next@token \xpa\kill@sp@ce +\else \xpa\next@command \fi } + +\long\def \test@special #1{% check for special cases +\ifcat \bgroup \nxp \next@token % arabic group + \def \next {\arab@group {#1}}\else +\if\is@in@set #1\a@first % normal case + \def \next {\test@word #1}\else +\if \relax \nxp #1% % command + \def \next {\test@command #1}\else +\ifcat \nxp ~\nxp #1% % active character + \def \next {\test@command #1}\else +\if \nxp <\nxp #1\unarab@codes % Roman insert + \let \next \test@insert \else +\ifx $#1\unarab@codes % Math insert + \let \next \test@math \else + \def \next {\test@word #1}% % normal case +\fi\fi\fi\fi\fi\fi \next } + +{\catcode `\^^a0 12 +\gdef \test@word #1 {% process next RTL word +\a@test@word #1^^a0\@@ } + +\gdef \a@test@word #1^^a0#2\@@ {% process next RTL word +\ifarab \putwordb@x {\arab@item #1\@@ }\fi +\a@spacetrue \a@showinput {#1}% +\ifx \relax #2\relax \def \next {\test@token }\else +\def \next {\test@token #2 }\fi +\next } +}% catcode ^^a0 + +\fi % witbhs + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% arabaux.sty + +\def \tr@ceoff {% suspend temporarily, local, no nesting! +\edef \tr@ceon {\nxp\tracingmacros \the\tracingmacros \relax }% +\tracingmacros 0 } + +\def \notr@ce {% suspend temporarily, for NFSS only, no nesting! +\edef \dotr@ce {\nxp\tracingmacros \the\tracingmacros \relax}% +\tracingmacros 0 } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def \datum {08.12.2003} \def \level {e} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% aboxes.sty + +\def \put@tie {% deposit ties between characters +\setbox0 \hbox {\char \the\act@tie }% +\setbox2 \hbox {\char \the\act@tie \/}% +\ifdim \a@disp = \z@ \unhcopy0 +\else \raise\a@disp \hbox {\unhcopy0 }\fi +\global\advance\a@disp \wd2 \global\advance\a@disp -\wd0 } + +\def \set@high@act {% prepare raising of actual character +\global\advance \a@disp \a@dsp \global\@high@acttrue } + +\def \set@low@act {% lower actual character +\global\advance \a@disp -.25ex } + +\def \set@loww@act {% lower actual character +\global\advance \a@disp -.50ex } + +\def \set@lowww@act {% lower actual character +\global\advance \a@disp -.75ex } + +\def \fix@act@box {% fixup position and set tatwil +\if@high@act \global\advance\a@disp -\a@dsp \global\@high@actfalse \fi +\global\advance\a@min@dp \a@ic \global\advance\a@disp \a@ic +\if@tat \put@tat \@tatfalse \fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\ifx \a@patchlevel \undefined % load only the first time +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% atrans.sty + +\iffalse +\def \tr@zdmg {% patches for Uzbek +\tr@@zdmg +\tr@def \a@H {\"a}% +\tr@def \a@ab {\"e}% +} +\fi +\let \tr@zdmg \tr@@zdmg % nullify problems in version 3.11d + +\gdef \tr@@aword #1{% transcribe rest of word +\let \tr@old \tr@act \def \tr@act {#1}% +\case #1\of +{ >{\@gobble } + \cap {\c@ptrue \tr@aword } +% |"^\a@e{\tr@aword } + |"^{\tr@aword } + -{-\tr@aword } +% XlEeQ{\csname tr@@\string #1\endcsname } + TXlEeQ{\csname tr@@\string #1\endcsname } + \a@a NUW{\setc@p #1\kill@alif } + P{\tr@P \tr@aword } + aiu{\tr@wasla #1} + \a@Ze{\xpa\tr@aword \tr@old } +\default {\@vocalfalse + \ifcat \nxp #1-#1\else \setc@p #1% + \fi \tr@aword } +}\endcase } + +\gdef \tr@@T #1{\@vocalfalse +\ifx #1|h\let \next \tr@aword \else +t\def \next {\tr@aword #1}\fi \next } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\fi +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifx \a@hebr \undefined \else +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% hebchrs.sty + +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +\gdef \def@judchars {% define character macros for Judeo-Arabic +\gdef \tc@f {\act@cd\hc@f \@finaltrue } % f +\gdef \tc@C {\act@cd\hc@t \act@mod \j@d@t } % _t +\gdef \tc@D {\act@cd\hc@ss \act@mod \j@d@t \@finaltrue } % .d +\gdef \tc@F {\act@cd\hc@d \act@mod \j@d@t } % _d +\gdef \tc@G {\act@cd\hc@j \act@mod \j@d@t } % ^g +\gdef \tc@H {\act@cd \hc@hh } % .h +\gdef \tc@R {\act@cd \hc@j } % .g +\gdef \tc@T {\act@cd\hc@h \act@mod \j@@d@t } % T +\gdef \tc@V {\act@cd \hc@tt } % .t +\gdef \tc@X {\act@cd\hc@k \act@mod \j@d@t \@finaltrue } % _h +\gdef \tc@Z {\act@cd\hc@tt \act@mod \j@d@t } % .z +}}% end of dynamic definitions + +\fi % Hebrew +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def \datum {12.02.2004} \def \level {f} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% cp1256.sty + +\ifx \awinatcode \undefined \else + +\def \set@awin {% select the CP 1256 scanner +\let \sc@beg \awin@beg \let \sc@word \awin@word +\let \sc@back \sc@@back \let \sc@endscan \awin@endscan +\global\let \a@scan \awin@scan \setawin@codes +\awin@catcodes \yahdots +\global \a@paren {}% +\a@message {input encoding set to Windows CP 1256 conventions}} + +\xpa \def \xpa \sc@table \xpa {\sc@table % add the CP 1256 encoding +arabwin\set@awin cp1256\set@awin } + +\gdef \awin@beg #1{% start CP 1256 scanner +\h@mzafalse \iz@fetfalse \yahdots \@ssimfalse +\novocalize % because of explicit quoting +\ifx #1"\def \next {\awin@lquote}\else +\ifx #1^^c7\def \next {\awin@alif}\else +\def \next {\awin@word #1}\fi\fi \next } + +\gdef \awin@lquote {% initial quote +\def \sc@char {`}\sc@put \awin@beg } + +\gdef \awin@dquote {% double quote, intermediate version +%\def \sc@char {\a@dq}\sc@put \awin@word } +\def \sc@char {\nxp\a@dq }\sc@put \awin@word } + +\gdef \awin@dquote {% right quote +\def \sc@char {'}\sc@put \awin@word } + +\fi % cp1256 + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% arabtex.sty + +\long\def \test@special #1{% check for special cases +%\if \bgroup \nxp \next@token % arabic group +\ifcat \bgroup \nxp \next@token % arabic group + \a@@putword \def \next {\arab@group {#1}}\else +\if \relax \nxp #1% % command + \if\is@in@set #1\a@accent % known to scanner + \a@@append {#1}\def \next {\get@token }% + \else % general command + \a@@putword \def \next {\test@command #1}% + \fi \else +%\if \sp@ce \nxp \next@token % RTL space +% \a@@putword \def \next {\get@token }\else +\ifnum `#1 > 127 % inputenc command + \a@@append {#1}\def \next {\get@token}\else +\ifcat \nxp ~\nxp #1% % active character + \a@@putword \def \next {\test@command #1}\else +\if \nxp <\nxp #1\unarab@codes % Roman insert + \a@@putword \let \next \test@insert \else +\ifx $#1\unarab@codes % Math insert + \a@@putword \let \next \test@math +\else \a@@append {#1}\def \next {\get@token}% % normal case +\fi\fi\fi\fi\fi\fi \next } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% ascan.sty + +{\arab@codes % because of special characters + +\gdef \t@b@g #1{% start \ArabTeX scanner + \def \next {\sc@word {#1}}\def \sc@char {@}% +\ifcat a\nxp #1\else % letter +\apply \set@next \tocase #1\of +{ \@{\sc@endscan } % finished + '{\t@rquote } + `{\t@lquote } + *{\t@star } + +{\t@plus } + ={\t@equ } +\default {\sc@word {#1}} +}\endcase +\fi \next } + +\gdef \t@w@rd #1{% transform input into internal notation + \def \next {\sc@word }% +\ifx #1\@\def \next {\sc@endscan }\else % finished +\ifcat \nxp #1a% + \ifx #1a\def \next {\t@aa }\else % test for aa -> A + \ifx #1n\def \next {\t@nn }\else % test for ng, ny + \edef \sc@char {\csname sc@#1\endcsname }% letter + \ifx \sc@char \relax \def \sc@char {#1}% undef letter + \fi + \ifs@nd \edef \next {\nxp \t@asp {\sc@char }}\else \sc@put + \fi + \fi\fi \else % other character +\ifcat \nxp #1\relax \def \next {\t@cs #1}\else % control sequence +\ifx #1'\def \next {\t@hamza }\else % hamza + \def \sc@char {#1}% +\apply \set@next \tocase #1\of +{~\@ldtie{\t@tie } + .{\t@dot } + ,{\t@comma } + -{\t@minus } + `{\t@ain } + "{\t@dquote } + :{\t@colon } + ^{\t@up } + _{\t@down } + |{\t@bar } + *{\t@shadda } + +{\t@madda } + ={\t@sukun } +\default {\t@w@@rd {#1}} +}\endcase +\fi\fi\fi\fi \next } + +} % \arab@codes + +\def \t@star {\sc@dep *} +\def \t@plus {\sc@dep +} +\def \t@equ {\sc@dep =} + +\let \sc@beg \t@b@g % apatch only +\let \sc@word \t@w@rd % apatch only + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% aparse.sty + +\def \a@parse #1>{% parse token sequence into syllables +\iftest@parse \tracingmacros = 1 +\iftest@scan \else \a@verb (#1)>\fi\fi +\csname a@parse@hook\endcsname +\last@con ={.}\last@mod = 0 \last@voc = 0 \global\@highfalse +\global \sv@revwd ={}\global \a@revwd ={}\syl@beg #1<<<>% +\iftest@parse \tracingmacros = 0 % +\xpa \a@verb \xpa (\the\a@revwd )>\fi } + +\def \sv@@I #1{% long i +\ifx #1N\def \next {\sv@Zi }\else +\ifk@sh \put@syl \put@con y\add@kasraspec + \put@syl \def \next {\syl@con #1}% +\else \add@kasra \put@syl \def \next {\test@B #1\sv@Ivwl }% +\fi\fi \next } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% verses.sty + +\ifx \verseatcode \undefined \else + +% define some verse dimensions, verses will be centered +\def \setversedim #1#2{% set length of half-verse, separation +\a@hvlen #1\relax \a@hvsep #2\relax +\ifx \LaTeX \undefined \a@hvind \hsize +\else \a@hvind \textwidth \fi +\advance \a@hvind -\a@hvsep +\divide \a@hvind 2 \advance \a@hvind -\a@hvlen } + +\def \connverses #1#2#3{% first half-verse, connection, second half-verse +\cond{\ifdim 0pt > \a@hvind }% +{\spreadbox \a@hvlen {#1}\par \hfill }% first block +{\noindent \hspace \a@hvind \spreadbox \a@hvlen {#1}}\fi +\spreadbox \a@hvsep {#2}% separator +\spreadbox \a@hvlen {#3}% second block +\par } + +\fi % verses.sty + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% awrite.sty + +\def \a@@write #1>{% Arabic output +\iftest@write \tracingmacros 1 +\iftest@parse \else \a@verb (#1 )>\fi\fi +\csname a@write@hook\endcsname +\ifa@@write \arab@testfont \aw@beg #1>0+0*>0+0*>\fi +\iftest@write \tracingmacros 0 \fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% hewrite.sty + +\ifx \a@hebr \undefined \else + +\def \heb@write #1>{% Hebrew output routine +\iftest@write \tracingmacros = 1 +\iftest@parse \else \a@verb (#1)>\fi\fi +\csname a@write@hook\endcsname +\ifa@@write \heb@testfont \heb@beg #1>0+0*>\fi +\iftest@write \tracingmacros = 0 +\fi } + +\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def \datum {26.02.2004} \def \level {g} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% ascan.sty + +\def \sc@restore {% restore scanner defaults +\let \vocalize \v@calize \let \fullvocalize \fullv@calize +\let \sc@beg \t@b@g \let \sc@word \t@w@rd +\let \sc@back \sc@@back \let \sc@endscan \sc@@endscan +\global\let \a@scan \a@@scan \seta@codes +\let \arab@codes \a@arab@codes +\let \unarab@codes \a@unarab@codes } + +\def \t@comma #1{% after , +\apply \set@char \tocase #1\of +{ a{a\nxp \a@H } + A{\nxp \a@a \nxp \a@H } + c{\ift@rk J\else \nxp \a@c \fi } + d{\ifp@sht \nxp \a@aA \else + \ifs@nd \nxp \a@D \else \nxp \a@d \fi\fi } + e{e\nxp \a@H } + g{\nxp \a@L } + h{\nxp \a@h } +% n{\ifs@nd \nxp \a@an \else \nxp \a@M \fi } + n{\ifs@nd \nxp \a@an \else \nxp \a@m \fi } + r{\ifp@sht \nxp \a@q \else + \ifs@nd \nxp \a@ar \else \nxp \a@r \fi\fi } + s{\ift@rk x\else \nxp \a@s \fi } + t{\ifp@sht \nxp \a@v \else + \ifs@nd \nxp \a@at \else \nxp \a@t \fi\fi } + z{\ift@rk D\else \nxp \a@z \fi } +}\endcase \t@tail ,#1} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% utf8.sty + +\ifx \utfatcode \undefined \else + +\gdef \set@utfc {% select the UTF-8 scanner +\global\let \a@scan \utfc@scan +\let \sc@beg \utf@beg +\let \sc@word \utf@word +\global\a@digits = {0123456789}% +\global\a@first = {}% +\catcode ` 11 +\a@message {input encoding set to UTF-8 conventions}} + +\fi % utf8.sty + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% bhs.sty + +\ifx \bhsatcode \undefined \else + +% dynamic definitions for BHS Hebrew coding +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +\catcode `\"=12 \catcode `\&=12 \catcode `\$ 12 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\gdef \setbhs@codes {% activate and change some codes +\globaldefs=1 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def \sc@A {a} \def \sc@B {b} \def \sc@C {S} \def \sc@D {d} +\def \sc@E {e} \def \sc@F {A} \def \sc@G {g} \def \sc@H {h} +\def \sc@I {i} \def \sc@J {t} \def \sc@K {k} \def \sc@L {l} +%\def \sc@M {m} \def \sc@N {n} \def \sc@O {O} \def \sc@P {p} +\def \sc@M {m} \def \sc@N {n}\def\sc@O{\n@xp\a@o}\def \sc@P {p} +\def \sc@Q {q} \def \sc@R {r} \def \sc@S {s} \def \sc@T {t} +%\def \sc@U {u} \def \sc@V {D} \def \sc@W {W} \def \sc@X {X} +\def \sc@U {u} \def \sc@V {D} \def \sc@W {w} \def \sc@X {X} +\def \sc@Y {y} \def \sc@Z {z} \def \sc@@ {QQ} +\a@digits = {0123456789} \a@paren = {[]} +\a@first = {)+(##&$":.,*0123456789} +\globaldefs=0 } +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +}% end of dynamic definitions for BHS + +{\arab@codes +\catcode `\& 12 \catcode `\$ 12 + +\gdef \bhs@beg #1#2{% start BHS scanner +\@ssimfalse \def \next {\bhs@word #1#2}% +\ifx #1\@\def \next {\sc@endscan #2}\else % finished +\ifx #2\@\def \next {\bhs@testpara #1#2}\else +\ifx #2?\def \next {\bhs@testpara #1#2}\else +\fi\fi\fi \next } + +\gdef \bhs@word #1#2{% transform input into internal notation + \def \next {\bhs@word #2}% +\ifx #1\@\def \next {\sc@endscan #2}\else % finished +\ifx #1]\def \next {\bhs@word }\else +\ifx #10\def \next {\bhs@zero #2}\else +\ifx #17\def \next {\bhs@seven #2}\else +% +\if\is@in@set #1\a@digits \def \next {\bhs@word }\else +\ifx #1?\def \next {\bhs@query #2}\else +\ifx #1:\def \next {\bhs@colon #2}\else +\ifx #1|\def \sc@char {|}\sc@put \else +% +\ifx #1.\def \sc@char {\nxp \a@Zu }\sc@put \else +\ifx #1'\def \sc@char {'}\sc@put \else +\ifx #1)\def \sc@char {Q}\sc@put \else +\ifx #1+\def \sc@char {C}\sc@put \else +% +\ifx #1(\def \sc@char {P}\sc@put \else +\if #1\a@hash \def \sc@char {\nxp \a@S }\sc@put \else +\ifx #1&\def \sc@char {\nxp \a@s }\sc@put \else +\ifx #1$\def \sc@char {x}\sc@put \else +% +\ifx #1"\def \sc@char {\nxp \a@E }\sc@put \else +\ifx #1-\def \sc@char {B}\sc@put \else +\ifx #1*\def \sc@char {*}\sc@put \else +\ifcat \nxp #1a\edef \sc@char {\csname sc@#1\endcsname }% + \sc@put +\fi\fi\fi\fi +\fi\fi\fi\fi +\fi\fi\fi\fi +\fi\fi\fi\fi +\fi\fi\fi\fi +\next } +} % arabcodes + +\fi % bhs.sty + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% cp1255.sty + +\ifx \hwinatcode \undefined \else + +\def \hwin@catcodes {% assignments for CP 1255 +\countdef \is@m=2 \is@m = 192 \is@n = 64 +\loop \catcode \is@m = 11 \global\lccode \is@m = \is@n +\ifnum 255 > \is@m \advance \is@m 1 \advance \is@n 1 \repeat +\is@m=0 \is@n=0 \catcode `\^^a0 12 } + +{\hwin@catcodes +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% dynamic definitions for Hebrew +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\gdef \sethwin@codes {% activate and change some codes +\globaldefs=1 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def \sc@^^c0 {"\n@xp\a@e} \def \sc@^^c1 {"\n@xp\a@I} +\def \sc@^^c2 {"\n@xp\a@A} \def \sc@^^c3 {"\n@xp\a@O} +\def \sc@^^c4 {"i} \def \sc@^^c5 {"\n@xp\a@E} +\def \sc@^^c6 {"e} \def \sc@^^c7 {"a} +\def \sc@^^c8 {"A} \def \sc@^^c9 {"\n@xp\a@o} +\def \sc@^^ca {L} \def \sc@^^cb {"u} +\def \sc@^^cc {"\n@xp\a@Zu} \def \sc@^^cd {|} +\def \sc@^^ce {B} \def \sc@^^cf {"\n@xp\a@Zo} + +\def \sc@^^d0 {K} \def \sc@^^d1 {"\n@xp\a@Ze} +\def \sc@^^d2 {"\n@xp\a@Za} \def \sc@^^d3 {:} +\def \sc@^^d4 {"\n@xp\a@Zi} \def \sc@^^d5 {w-w} +\def \sc@^^d6 {wy} \def \sc@^^d7 {y-y} +\def \sc@^^d8 {@} \def \sc@^^d9 {@} \def \sc@^^da {@} \def \sc@^^db {@} +\def \sc@^^dc {@} \def \sc@^^dd {@} \def \sc@^^de {@} \def \sc@^^df {@} + +\def \sc@M {M} %\def \sc@N {N} +\def \sc@^^e0 {Q} \def \sc@^^e1 {b} \def \sc@^^e2 {g} \def \sc@^^e3 {d} +\def \sc@^^e4 {h} \def \sc@^^e5 {w} \def \sc@^^e6 {z} \def \sc@^^e7 {X} +\def \sc@^^e8 {C} \def \sc@^^e9 {y} \def \sc@^^ea {k} \def \sc@^^eb {k} +\def \sc@^^ec {l} \def \sc@^^ed {m} \def \sc@^^ee {m} \def \sc@^^ef {n} + +\def \sc@^^f0 {n} \def \sc@^^f1 {s} \def \sc@^^f2 {P} \def \sc@^^f3 {p} +\def \sc@^^f4 {p} \def \sc@^^f5 {S} \def \sc@^^f6 {S} \def \sc@^^f7 {q} +\def \sc@^^f8 {r} \def\sc@^^f9{\n@xp\a@S} \def\sc@^^fa {t} \def \sc@^^fb {@} +\def \sc@^^fc {@} \def \sc@^^fd {@} \def \sc@^^fe {@} \def \sc@^^ff {@} +\a@digits = {0123456789} +\a@paren = {()[]} +\a@first = {"`^^e6} +\globaldefs=0 } +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +}% end of dynamic definitions for Arabic +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\fi % cp1255.sty + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifx \a@hebr \undefined \else +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% hescan.sty + +\def \hwin@catcodes {% assignments for CP 1255 +\countdef \is@m=2 \is@m = 192 \is@n = 64 +\loop \catcode \is@m = 11 \global\lccode \is@m = \is@n +\ifnum 255 > \is@m \advance \is@m 1 \advance \is@n 1 \repeat +\is@m=0 \is@n=0 \catcode `\^^a0 12 } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% heparse.sty + +\def \sv@ay {% Yiddish ay +\put@syl \put@con \a@h \v@ctrue \add@fatha \put@syl \test@patf } + +\def \sv@ey {% Yiddish ey +\put@syl \put@con \a@h \put@syl \test@patf } + +\def \sv@oy {% Yiddish oy +\put@syl \put@con \a@p \put@syl \test@patf } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% hebchrs.sty + +\tc@def \a@h {\act@cd \hc@ey } % yod yod +\tc@def \a@p {\act@cd \hc@oy } % waw yod + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\fi % Hebrew + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% verses.sty + +\ifx \verseatcode \undefined \else + +%\newdimen \a@@hvlen +\csname newdimen\endcsname \a@@hvlen + +% define some verse dimensions, verses will be centered +\def \setversedim #1#2{% set lengths of half-verse, separation +\ifx \LaTeX \undefined \a@hvind \hsize +\else \a@hvind \textwidth \fi +\a@hvlen #1\relax \advance \a@hvind -\a@hvlen +\ifx [#2\def \next {\set@verseI [}\else +\a@@hvlen \a@hvlen \def \next {\set@@verse {#2}}\fi \next } + +\def \set@verseI [#1]{% optional parameter +\a@@hvlen #1\relax \set@@verse } + +\def \set@@verse #1{% separation +\advance \a@hvind -\a@@hvlen \a@hvsep #1\relax +\advance \a@hvind -\a@hvsep \divide \a@hvind 2 } + +\def \connverses #1#2#3{% first half-verse, connection, second half-verse +\cond{\ifdim 0pt > \a@hvind }% +{\spreadbox \a@hvlen {#1}\\ \hfill }% first block +{\noindent \hskip \a@hvind \relax \spreadbox \a@hvlen {#1}}\fi +\spreadbox \a@hvsep {#2}% separator +\spreadbox \a@@hvlen {#3}% second block +\tracingmacros 0 +\par } + +\def \a@c@halfverses #1#2{% optional parameter? +%\tracingmacros 1 +\cond{\ifx [#2}{\half@verses {#1}[}% +{\half@verses {#1}[\hfill]{#2}}\fi } + +\def \half@verses #1[#2]#3{% first[mid]second +\test@token \connverses {#1}{#2}{#3}} + +\fi % verses.sty + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% utfcode.sty + +\ifx \utfatcode \undefined \else + +\def \utf@dvii #1{% segment D7 + \u@lb `#1\relax \advance \u@lb -128 + \u@lq \u@lb \divide \u@lq 8 +\ifcase \u@lq \edef \sc@char + {\ifcase \u@lb + K\or "\n@xp\a@Ze\or "\n@xp\a@Za\or :\or "\n@xp\a@Zi\or \or \or \or + \fi }% +\or \advance \u@lb -8 \edef \sc@char {}% +\or \advance \u@lb -16 \edef \sc@char + {\ifcase \u@lb + Q\or b\or g\or d\or h\or w\or z\or X\or + \fi }% +\or \advance \u@lb -24 \edef \sc@char + {\ifcase \u@lb + C\or y\or k\or k\or l\or m\or m\or n\or + \fi }% +\or \advance \u@lb -32 \edef \sc@char + {\ifcase \u@lb + n\or s\or P\or p\or p\or S\or S\or q\or + \fi }% +\or \advance \u@lb -40 \edef \sc@char + {\ifcase \u@lb + r\or \n@xp\a@S \or t\or \or \or \or \or \or + \fi }% +\or \advance \u@lb -48 \edef \sc@char + {\ifcase \u@lb +% w\n@xp\a@U w\or wy\or y\n@xp\a@U y\or '\or + \n@xp\a@w \or \n@xp\a@p \or \n@xp\a@h \or '\or + ''\or \or \or \or + \fi }% +\or \advance \u@lb -56 \edef \sc@char + {\ifcase \u@lb + \or \or \or \or \or \or \or "|\or + \fi }% +\fi \utf@next } + +\fi % utfcode.sty + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% yiddish.sty + +\ifx \yidatcode \undefined \else + +\def \yid@t #1{% ts ? +\ifx #1s\def \next {\yid@ts }\else +\def \sc@char {C}\def \next {\yid@word #1}\sc@put +\fi \next } + +\def \yid@ts #1{% tsh ? +\ifx #1h\def \sc@char {C\nxp\a@S}\def \next {\yid@word }\else +\def \sc@char {S}\def \next {\yid@word #1}% +\fi \sc@put \next } + +\fi % yiddish.sty + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def \datum {15.03.2004} \def \level {h} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% abidir.sty + +\ifx \a@patchlevel \undefined % first patching run + +\newtoks \a@oldoutput +\newbox \a@oldbox +\newbox \a@newbox +\newdimen \a@prevdepth + +\def \a@@Rinsert #1{% RL insertion inside Ltext +%\tracingmacros 1 +\ifshow \a@@verb {#1}\fi % verbating listing +\ifarab \a@Rinsert {#1}\fi % arabic writing +\iftrans \set@transfont \trans@text #1 \end \/\fi +\ifnum \tracingarab > \@ne \message {>}\fi +\unskip \egroup } + +\def \a@Rinsert #1{% put a sequence of RL words into Ltext +%\leavevmode % go to hmode if not there already +\ifinner \a@sequence {#1}% inside a \hbox: append +\else \a@@Rsplit {#1}% splice into the current paragraph +\fi } + +\def \a@box@aparm {% Arabic parameters for vbox +\let \end \relax \def \next@command {\test@special}\transfalse +\def \a@kern {\nobreak\kern.05em } \def \a@mkern {\nobreak\kern-.05em } +\showfalse \spreadtrue \a@hsize \a@Lwidth +\advance \a@hsize -\leftskip \advance \a@hsize -\rightskip +\leftskip \z@ \rightskip \z@ +%\advance \a@hsize 20pt % TENTATIVE +\def \arab@space {\nobreak\hskip 5pt plus 4pt minus 1pt }% +\def \tat@skip {0.04ex plus 0.5ex }} + +\def \a@box@rparm {% Roman parameters for vbox +\hbadness 10000 \tolerance 5000 +\parskip \z@ \parfillskip \z@ plus 1fil \relax \vskip \a@vglue } + +\def \a@@Rsplit #1{% splice RL words into the current paragraph +\tracingmacros 0 +\bgroup \global\a@oldoutput = \output +$$\global\a@lines \prevgraf \global\a@Lwidth \displaywidth +$${\endgraf }% +\ifinner \a@back@line \else +\global\output = {\a@newoutput }\eject +\fi \vskip -\parskip \prevdepth \a@prevdepth +\ifvoid \a@oldbox +\else \advance \a@lines -1 \setbox\a@oldbox \hbox +{\hskip -\leftskip \unhbox\a@oldbox \unskip \unskip \unpenalty }\fi +\setbox\Rinsertb@x \vbox {\a@box@rparm \a@box@aparm +\putlineb@x {\copy\a@oldbox }\a@spacefalse +\test@token #1 \end \unskip \unskip +\vskip \a@vglue \hbox {\box\lineb@x \hfill }}% +\a@Rgetline +\setbox\tempb@x \hbox {\unhbox \tempb@x \unskip \unpenalty + \global\setbox \a@newbox \lastbox }% +\noindent \prevgraf \a@lines +\ifdim \wd\a@newbox = 0pt \unhbox \tempb@x +\else \unhbox \a@newbox +\ifdim \wd\tempb@x = 0pt +\else \space \ins@skip \unhbox \tempb@x +\fi\fi \penalty -9999 +\ifvbox \Rinsertb@x \break \a@Runpack \fi +\egroup } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\gdef \a@back@line {% skip back +\dimen0 \baselineskip \unskip \unpenalty \setbox0 \lastbox +\dimen2 \lastskip \unskip \unskip \unpenalty +\global\setbox \a@oldbox \lastbox +\ifvoid \a@oldbox \else \dimen2 \lastskip \unskip +\advance\dimen0 -\ht\a@oldbox \fi +\advance\dimen0 -\dimen2 \global\a@prevdepth \dimen0 \unskip }% + +\gdef \a@newoutput {% intermediate output routine +\global\output = \a@oldoutput +%\showbox 255 +\setbox 255 \vbox {\unvbox 255 % put back to MVL +\a@back@line }\unvbox 255 } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\fi % first run + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def \datum {29.04.2004} \def \level {i1} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% buck.sty + +\ifx \buckatcode \undefined \else +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% dynamic definitions for Arabic +{\catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\gdef \setbuck@codes {% activate and change some codes +\globaldefs=1 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def \sc@@ {@} \def \sc@c {@} \def \sc@e {@} +\def \sc@B {@} \def \sc@C {J} \def \sc@G {g} \def \sc@I {Qi} +\def \sc@J {j} \def \sc@L {@} \def \sc@M {@} \def \sc@O {Qa} +\def \sc@P {p} \def \sc@Q {@} \def \sc@R {@} \def \sc@U {Qw} +\def \sc@V {v} \def \sc@W {Qw} \def \sc@X {@} + +\sc@def ' {Q|} \sc@def | {QA} \sc@def > {Qa} \sc@def & {Qw} +\sc@def < {Qi} \sc@def ## {|} \def \sc@A {A} \def \sc@b {b} +\def \sc@p {T} \def \sc@t {t} \def \sc@v {C} \def \sc@j {G} +\def \sc@H {H} \def \sc@x {X} \def \sc@d {d} \sc@def * {F} +\def \sc@r {r} \def \sc@z {z} \def \sc@s {s} \sc@def $ {x} +\def \sc@S {S} \def \sc@D {D} \def \sc@T {V} \def \sc@Z {Z} +\def \sc@E {P} \def \sc@g {R} \sc@def _ {|B} +\def \sc@f {f} \def \sc@q {q} \def \sc@k {k} \def \sc@l {l} +\def \sc@m {m} \def \sc@n {n} \def \sc@h {h} \def \sc@w {w} +\def \sc@Y {Y} \def \sc@y {y} \def \sc@F {"aN} \def \sc@N {"uN} +\def \sc@K {"iN} \def \sc@a {"a} \def \sc@u {"u} \def \sc@i {"i} +%\sc@def ~ {@} \def \sc@o {""} \sc@def ` {"\n@xp \a@a} +\sc@def ~ {\n@xp \a@Ze} \def \sc@o {""} \sc@def ` {"\n@xp \a@a} +\sc@def ^ {"'} +\sc@def = {"\n@xp \a@ZE } + +\a@digits = {0123456789} \a@paren = {()[]} +\a@first = {"`} +\setbuck@codes@hook +\globaldefs=0 } +\global\let \setbuck@codes@hook \relax +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +}% end of dynamic definitions for Arabic +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +{\catcode `\[ 1 \catcode `\{ 11 +\gdef \buck@beg #1[% start the TB scanner +\h@mzafalse \iz@fetfalse \novocalize \@ssimfalse + \def \next [\buck@word #1}% +\ifx #1\@ \def \next [\sc@endscan }\else % finished +\ifx #1{\def \next [\buck@lbrace }\else +\ifx #1"\def \next [\buck@lquote }\else +\ifx #1A\def \next [\buck@alif }\else +\fi\fi\fi\fi \next } +} % catcodes 1 and 11 + +{\catcode `\^^M=13 \catcode `\~ 11 % +\gdef \buck@word #1#2{% transform input into internal notation + \def \next {\buck@word #2}% +\ifx #1\@ \def \next {\sc@endscan #2}\else % finished +\ifx #1-\def \next {\buck@minus #2}\else % +\ifx #1"\def \next {\buck@rquote #2}\else % +\ifx #1y\def \next {\buck@yah #2}\else % +\if \nxp ^^M\nxp #1\def \next {\buck@par #1#2}\else % active character +\ifx #1#2\def \next {\buck@two #1}\else % + \ifcat a\nxp #1\edef \sc@char {\csname sc@#1\endcsname }% + \else \def \sc@char {\nxp #1}% + \fi % + \sc@put % +\fi\fi\fi\fi\fi\fi \next }% +} % catcodes 13 and 11 + +\def \buck@alif #1{% specials? +\def \next {\buck@word }% +\if \nxp #1=\def \sc@char {QA}\sc@put \else +\if \nxp #1@\def \sc@char {"}\sc@put \else +\if \nxp #1^\def \sc@char {Qa}\sc@put \else +\if \nxp #1_\def \sc@char {Qi}\sc@put \else +\def \sc@char {A}\def \next {\buck@word #1}\sc@put +\fi\fi \fi\fi \next } + +\def \buck@yah #1{% hamza? +\def \next {\buck@word }% +\if \nxp #1^\def \sc@char {Qy}\sc@put \else +\def \sc@char {y}\def \next {\buck@word #1}\sc@put +\fi \next } + +\def \set@buck {% substitute new scanner +\let \sc@beg \buck@beg \let \sc@word \buck@word +\let \sc@back \sc@@back \let \sc@endscan \sc@@endscan +\global\let \a@scan \a@@scan \setbuck@codes +\let \arab@codes \buck@codes \let \unarab@codes \unbuck@codes +\let \test@special \buck@special +\message {input coding set to Tim Buckwalter's encoding conventions}} + +\def \buck@cat {% change catcodes +\catcode `\# 11 \catcode `\= 11 \catcode `\^ 11 \catcode `\~ 11 +\catcode `\' 11 \catcode `\| 11 \catcode `\> 11 \catcode `\& 11 +\catcode `\< 11 \catcode `\} 11 \catcode `\* 11 \catcode `\$ 11 +\catcode `\_ 11 \catcode `\~ 11 \catcode `\` 11 \catcode `\{ 11 } + +\def \buck@recat {% change catcodes back +\catcode `\# 6 \catcode `\= 12 \catcode `\^ 7 \catcode `\~ 13 +\catcode `\' 12 \catcode `\| 12 \catcode `\> 12 \catcode `\& 4 +\catcode `\< 12 \catcode `\} 2 \catcode `\* 12 \catcode `\$ 3 +\catcode `\_ 8 \catcode `\~ 13 \catcode `\` 12 \catcode `\{ 1 } + +\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% aparse.sty + +\def \syl@hamzaverb #1{% verbatim hamza, #1 = carrier +\case #1\of +{ |{\put@con Q} + A{\put@con a\add@madda \@sukfalse } + y{\put@con Y\add@hamza \ifqur@n \add@hamzalow \fi } + u{\put@con w\add@hamza } + i{\put@con a\add@hamza \add@hamzalow } +\default {\put@con #1\add@hamza } +}\endcase \syl@voctest } + +\def \syl@quote@voc #1{% continue syllable with quote: " #1 #2 +\case #1\of +{ B{\togglev@c \add@sukun \put@syl \syl@con #1} + "{\togglev@c \add@sukun \put@syl \syl@beg } + |{\syl@@quote@voc } + '{\add@hamza \syl@voctest } +\default {\togglev@c \syl@voctest #1}% vowel: sukun +}\endcase } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% hewrite.sty + +\ifx \a@hebr \undefined \else + +\ifx \a@patchlevel \undefined % load only the first time +\else +\global\let \@@set@hcls \set@hcls + +\gdef \set@hcls {% +\@@set@hcls +\global\let \h@putvowel \h@put@@vowel +} + +\fi + +\gdef \h@put@@vowel #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@kf \def \hadj {-.1}\def \vadj {.80}\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@ -1\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 } + +\fi % a@hebr + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def \datum {17.05.2004} \def \level {j} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% abidir.sty + +\def \a@RL {% RTL insertion inside LRtext +\ifaRL \else \aRLtrue + \let \a@RLpar \par % prepare for normal baselines + \edef \a@lslimit {\lineskiplimit \the\lineskiplimit}% + \def \par {\a@RLpar \let \par \a@RLpar \a@lslimit \aRLfalse }% +\fi +\ifhmode \lineskiplimit -.9\baselineskip +\fi % enforce uniform baselines +\bgroup \arab@codes \set@arabfont \@waslafalse \@wasfalse \a@@Rinsert } + +\def \a@Rinsert #1{% put a sequence of RL words into Ltext +\leavevmode % go to hmode if not there already +\ifinner \a@sequence {#1}% inside a \hbox: append +\else \a@@Rsplit {#1}% splice into the current paragraph +\fi } + +\def \a@@Rsplit #1{% splice RL words into the current paragraph +\bgroup \global\a@oldoutput = \output +$$\global\a@lines \prevgraf \global\a@Lwidth \displaywidth +$${\endgraf }% +\ifinner \a@back@line \else +\global\output = {\a@newoutput }\eject +\fi \vskip -\parskip \global\prevdepth \a@prevdepth +\ifvoid \a@oldbox \else +\advance \a@lines -1 \setbox\a@oldbox \hbox +{\hskip -\leftskip \unhbox\a@oldbox \unskip \unskip \unpenalty }\fi +\setbox\Rinsertb@x \vbox {\a@box@rparm \a@box@aparm + \putlineb@x {\copy\a@oldbox }\a@spacefalse + \test@token #1 \end \unskip \unskip + \vskip \a@vglue \hbox {\box\lineb@x \hfill }}% +\a@Rgetline +\setbox\tempb@x \hbox {\unhbox \tempb@x \unskip \unpenalty + \global\setbox \a@newbox \lastbox }% +\noindent \prevgraf \a@lines \unhcopy \a@newbox +\ifdim \wd\a@newbox = 0pt \else +\ifdim \wd\a@newbox = \parindent \else \space \ins@skip +\fi\fi \unhbox \tempb@x \penalty -9999 +\ifvbox \Rinsertb@x \break \a@Runpack \fi +\egroup } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% alatex.sty + +\def \a@endx {\if@ignore \@ignorefalse \xpa\ignorespaces \fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def \datum {24.05.2004} \def \level {k} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% arabtex.sty + +\def \all@false {% reset language code to default +\k@rdfalse \t@rkfalse \m@ghfalse \urd@false \p@shtfalse +\s@ndfalse \m@layfalse \u@ghfalse \k@srafalse \k@shfalse +\h@mzafalse \@ssimfalse \iz@fetfalse \yahd@tsfalse \k@fsfalse \f@rsnfalse +\let \vocalize \v@calize \let \fullvocalize \fullv@calize +\arab@output \catcode`\<=\active } + +\pdef \setuighur {% switch language specific processing +\let \vocalize \novocalize \let \fullvocalize \novocalize +\novocalize \all@false \@ssimfalse \h@mzafalse +\u@ghtrue \def \a@defaultfont {\setnash }} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% abidir.sty + +\def \a@RL {% RTL insertion inside LRtext +\ifaRL \else \aRLtrue + \let \a@RLpar \par % prepare for normal baselines + \edef \a@lslimit {\lineskiplimit \the\lineskiplimit}% + \def \par {\a@RLpar \let \par \a@RLpar \a@lslimit \aRLfalse }% +\fi +\lineskiplimit -.9\baselineskip % enforce uniform baselines +\bgroup \arab@codes \set@arabfont \@waslafalse \@wasfalse \a@@Rinsert } + +\def \a@@Rsplit #1{% splice RL words into the current paragraph +\bgroup \global\a@oldoutput = \output +$$\global\a@lines \prevgraf \global\a@Lwidth \displaywidth +$${\endgraf }% +\ifinner \a@back@line \else +\global\output = {\a@newoutput }\eject +\fi \global\prevdepth \a@prevdepth +\ifvoid \a@oldbox \else \advance \a@lines -1 +\setbox\a@oldbox \hbox {\hskip -\leftskip \unhbox\a@oldbox + \unskip \unskip \unpenalty \unpenalty }% +\fi +\setbox\Rinsertb@x \vbox {\a@box@rparm \a@box@aparm + \putlineb@x {\hbox {\unhcopy\a@oldbox }}\a@spacefalse + \test@token #1 \end \hbox {\box\lineb@x \hfill }}% +\a@Rgetline +\setbox\tempb@x \hbox {\unhbox \tempb@x \unskip \unpenalty + \global\setbox \a@newbox \lastbox }% +\noindent \prevgraf \a@lines \unhcopy \a@newbox +\ifdim \wd\a@newbox = 0pt \else +\ifdim \wd\a@newbox = \parindent \else +\ifdim \wd\tempb@x = 0pt \else + \space \LRskip +\fi\fi\fi \unhbox \tempb@x +\ifvbox \Rinsertb@x \break \a@Runpack \fi +\egroup } + +\gdef \a@newoutput {% intermediate output routine +\global\output = \a@oldoutput +%\showbox 255 +\setbox 255 \vbox {\unvbox 255 % put back to MVL +\a@back@line }\unvbox 255 } + +\def \a@Runpack {% unpack all lines from the insertion +\loop \a@Rgetline \unhbox \tempb@x \unskip \unskip \break +\ifvbox \Rinsertb@x \repeat \unpenalty \RLskip } + +\def \LRskip {\hskip \z@ plus 0.1em }% before RL insertion (right) +\def \RLskip {\hskip \z@ plus 0.1em }% after RL insertion (left) + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@Linsert #1{% splice Ltext into RL paragraph +\putwordb@x {\RLskip }\a@spacefalse \a@@Linsert {#1}\a@Lunpack +\putwordb@x {\LRskip }\a@spacetrue \arab@codes +\tracingmacros 0 +\test@token } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def \datum {22.06.2004} \def \level {l} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% alists.sty + +\def \a@c@item +{\@ifnextchar [{\a@@item }{\@noitemargtrue +\expandafter \a@@item \expandafter [\@itemlabel ]}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% awrite.sty + +\let \ac@high \relax + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% arabrep.cls + +\at@arabtext {% switch to Arabic terms + \def\labelenumi{\theenumi\nospace-} + \def\labelenumiii{\theenumiii\nospace)} +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% aparse.sty + +\def \test@B #1#2{% tatweel or ligature break +#2#1}% deposit vowel carrier + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def \datum {24.01.2005} \def \level {m} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \a@patchlevel \undefined % first patching run +\a@ident {apatch.sty} {\version\level\space last minute patches } {\datum } + \edef \a@patchlevel {\version \level \space (\datum )} +\else \a@message {version \a@patchlevel: second phase of patching} +\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\catcode`\" = \patchdqcode \catcode`\@ = \patchatcode +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/tex/latex/arabtex/arababel.sty b/Master/texmf-dist/tex/latex/arabtex/arababel.sty new file mode 100644 index 00000000000..a714bd23803 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/arababel.sty @@ -0,0 +1,39 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% arababel.sty +% protect against a conflict with the BABEL package +% as suggested by Olaf Kummer and Johannes Braams +% 10.03.98 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@ident {arababel.sty}{3.07 BABEL compatibility } {10.03.1998} + +\def\peek@token#1#2{% + \expandafter\let\expandafter\bbl@nexta\csname #1\string#2\endcsname + \expandafter\let\expandafter\bbl@nextb + \csname system@active\string#2\endcsname + \futurelet\bbl@token\bbl@test@token} + +\def\bbl@test@token{% + \let\bbl@next\bbl@nexta + \ifcat\noexpand\bbl@token a% + \else + \ifcat\noexpand\bbl@token=% + \else + \ifcat\noexpand\bbl@token\noexpand\bbl@next + \else + \let\bbl@next\bbl@nextb + \fi + \fi + \fi + \bbl@next} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + diff --git a/Master/texmf-dist/tex/latex/arabtex/arabart.cls b/Master/texmf-dist/tex/latex/arabtex/arabart.cls new file mode 100644 index 00000000000..429618e62b2 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/arabart.cls @@ -0,0 +1,24 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% arabart.cls +% ArabTeX extension +% Arabic version of article.cls +% for use with ArabTeX Version 3.04 +% +% Copyright (C) 1995 by Klaus Lagally +% 21.05.96 +% +% reusing arabrep.cls of 21 May 1996 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\NeedsTeXFormat {LaTeX2e}[1995/06/01] +\ProvidesClass {arabart}[1996/05/21 v0.01 arabic article format] + +\DeclareOption* {\PassOptionsToClass {\CurrentOption}{arabrep}} +\ProcessOptions +\LoadClass [article]{arabrep}[1996/05/21] % load the Arabic report class + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% end of file arabart.cls +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/Master/texmf-dist/tex/latex/arabtex/arabaux.sty b/Master/texmf-dist/tex/latex/arabtex/arabaux.sty new file mode 100644 index 00000000000..490c00af79c --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/arabaux.sty @@ -0,0 +1,134 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% arabaux.sty +% auxiliary macros for ArabTeX +% 27.04.2003 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Formale Methoden der Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@ident {arabaux.sty} {3.11 auxiliary macros for ArabTeX} {21.05.2003} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@message #1{% ArabTeX message +\message{(ArabTeX) #1}} + +\def \isfalse {\xxpa \iffalse \fi } % invert condition before \fi +\def \setiffalse {\xpa \iffalse \fi } % invert condition before \fi + +\def \NOT #1{00\if #1\xpa \setiffalse \fi } + +\def \AND #1#2{00\if #1\if #2\else \xxpa \setiffalse \fi +\else \xpa \setiffalse \fi } + +\def \OR #1#2{00\if #1\else \if #2\else \xpa \setiffalse \fi \fi } + +\def \isx #1#2{00\ifx #1#2\else\xpa \setiffalse \fi } + +\def \iscat #1#2{00\ifcat #1#2\else\xpa \setiffalse \fi } + +\def \is #1#2{00\if #1#2\else\xpa \setiffalse \fi } + +\long\def \Return #1\fi {\fi #1} +\long\def \ReturnFi #1\fi {\fi #1} +\long\def \ReturnElseFi #1\else #2\fi {\fi #1} + +\long\def \cond #1#2#3\fi {% call conditional +#1\ReturnElseFi {#2}\else \ReturnFi {#3}\fi } + +%%%%%%%%%%%%%%%%%%%% + +\def \@gobble #1{} + +\let \protect \relax + +\ifx \@\undefined \def \@{@}\fi + +\ifx \nil \undefined \def \nil {NIL}\fi + +\def \pdef #1{% define robust command +\edef #1{\nxp\protect \xpa\nxp\csname \xpa\@gobble\string #1 \endcsname }% +\xpa\def \csname \xpa\@gobble\string #1 \endcsname } + +\def \a@extend #1#2{% extend command definition, no pars! +\xpa\gdef \xpa#1\xpa{#1#2}} + +%%%%%%%%%%%%%%%%%%%% + +% map token to action +% allow list of labels +\def \case #1\of #{% + \begingroup \tracingmacros 0 + \def \l@@kup ##1#1##2##{\h@@d }% + \getc@se #1\of } + +\def \getc@se #1\of #2#3\endcase {% + \doc@se #1#2\default {}\@end } + +\def \doc@se #1#2\default #3#4\@end {% + \l@@kup #2#1{#3}\@end } + +\def \h@@d #1#2\@end {\endgroup #1} + +% evaluate map: sets \result +\def \evalcase #1\of #{% + \begingroup \tracingmacros 0 + \def \l@@kup ##1#1##2##{\r@sult }% + \getc@se #1\of } + +\def \r@sult #1#2\@end {\endgroup \def \result {#1}} + +% apply function to map: +\def \apply #1\tocase #2\of #{% + \begingroup \tracingmacros 0 + \def \l@@kup ##1#2##2##{\@pply {#1}}% + \getc@se #2\of } + +\def \@pply #1#2#3\@end {\endgroup #1{#2}} + +%%%%%%%%%%%%%%%%%%%%%%%% tracing control %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \tr@ceoff {% suspend temporarily, local, no nesting! +\edef \tr@ceon {\nxp\tracingmacros \the\tracingmacros }\tracingmacros 0 } + +\def \notr@ce {% suspend temporarily, for NFSS only, no nesting! +\edef \dotr@ce {\nxp\tracingmacros \the\tracingmacros }\tracingmacros 0 } + +\let \tr@ceon \relax \let \dotr@ce \relax + +\let \a@setfontsize \@setfontsize + +\def \@setfontsize #1#2#3{% do not trace NFSS routine +\notr@ce \a@setfontsize {#1}{#2}{#3}\dotr@ce } + +%%%%%%%%%%%%%%%%%%%%%%%% list utilities %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\long\def \is@in@list #1#2>{00% #1 token, #2 list + \begingroup \tracingmacros 0 + \def \l@@kup ##1#1##2\@ {\endgroup \ifx >##2\isfalse \fi }% + \l@@kup #2#1>\@ } + +\long\def \ismember #1#2{00% #1 token, #2 list + \begingroup \tracingmacros 0 + \def \l@@kup ##1#1##2\@@ {\endgroup \ifx \nil ##2\xpa \setiffalse \fi }% + \l@@kup #2#1\nil \@@ } + +\long\def \is@in@set #1#2{% #1 = symbol, #2 = token list of symbols +\xpa \ismember \xpa #1\xpa {\the #2}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newcount \hours \newcount \mins + +\def \timeofday +{\hours \time \divide \hours 60 \the\hours:% +\mins \time \multiply \hours 60 \advance \mins -\hours +\ifnum 10 > \mins \relax 0\fi \the\mins } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + diff --git a/Master/texmf-dist/tex/latex/arabtex/arabbook.cls b/Master/texmf-dist/tex/latex/arabtex/arabbook.cls new file mode 100644 index 00000000000..45b3b9e0cd8 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/arabbook.cls @@ -0,0 +1,23 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% arabbook.cls +% ArabTeX extension +% Arabic version of book.cls +% for use with ArabTeX Version 3.04 +% +% Copyright (C) 1995 by Klaus Lagally +% 21.05.96 +% +% reusing arabrep.cls of 18 May 1996 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\NeedsTeXFormat {LaTeX2e}[1995/06/01] +\ProvidesClass {arabbook}[1996/05/21 v0.01 arabic book format] + +\DeclareOption* {\PassOptionsToClass {\CurrentOption}{arabrep}} +\ProcessOptions +\LoadClass [book]{arabrep}[1996/05/18] % load the Arabic report class + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% end of file arabbook.cls +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/tex/latex/arabtex/arabchrs.sty b/Master/texmf-dist/tex/latex/arabtex/arabchrs.sty new file mode 100644 index 00000000000..3980ffdcb19 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/arabchrs.sty @@ -0,0 +1,77 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% arabchrs.sty +% ArabTeX +% dynamic letter token definitions for Arabic +% Version 11.07.98 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@ident {arabchrs.sty} {3.07 letter token definitions } {11.07.1998} + +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +\gdef \def@arabchars {% define character macros for Arabic +% dynamic letter token definitions for Arabic +% pattern: skeleton, modifier +\gdef \tc@@ {\sk@@ , 0 } % illegal +\gdef \tc@a {\sk@a , 0 } % alif +\gdef \tc@b {\sk@b , 4 } % bah +\gdef \tc@c {\sk@hh , 7 } % gim with hamza +\gdef \tc@d {\sk@d , 0 } % dal +\gdef \tc@e {\sk@@ , 0 } % reserved for vowel +\gdef \tc@f {\sk@f@s , 1 } % fah +\gdef \tc@g {\sk@g@s , 0 } % gaf with bar +\gdef \tc@h {\sk@h , 0 } % hah +\gdef \tc@i {\sk@@ , 0 } % reserved for vowel +\gdef \tc@j {\sk@r , 3 } % zhah +\gdef \tc@k {\sk@k , 0 } % kaf +\gdef \tc@l {\sk@l , 0 } % lam +\gdef \tc@m {\sk@m , 0 } % mim +\gdef \tc@n {\sk@n , 1 } % nun +\gdef \tc@o {\sk@@ , 0 } % reserved for vowel +\gdef \tc@p {\sk@b , 6 } % pah +\gdef \tc@q {\sk@q , 2 } % qaf +\gdef \tc@r {\sk@r , 0 } % rah +\gdef \tc@s {\sk@s , 0 } % sin +\gdef \tc@t {\sk@b , 2 } % tah +\gdef \tc@u {\sk@@ , 0 } % reserved for vowel +\gdef \tc@v {\sk@f@s , 3 } % vah +\gdef \tc@w {\sk@w , 0 } % waw +\gdef \tc@x {\sk@s , 3 } % shin +\gdef \tc@y {\sk@y , 5 } % yah +\gdef \tc@z {\sk@r , 1 } % zay +% +\gdef \tc@A {\sk@a , 0 } % alif also +\gdef \tc@B {\sk@B , 0 } % tatwil +\gdef \tc@C {\sk@b , 3 } % thah +\gdef \tc@D {\sk@ss , 1 } % ddad +\gdef \tc@E {\sk@y@p , 5 } % yah bari +\gdef \tc@F {\sk@d , 1 } % dhal +\gdef \tc@G {\sk@hh , 4 } % gim +\gdef \tc@H {\sk@hh , 0 } % hhah +\gdef \tc@I {\sk@@ , 0 } % reserved for vowel +\gdef \tc@J {\sk@hh , 6 } % tchah +\gdef \tc@K {\sk@k , 3 } % kaf-i-nun +\gdef \tc@L {\sk@y@h , 0 } % yah with stroke +\gdef \tc@M {\sk@n , 6 } % nya (Malay) +\gdef \tc@N {\sk@W , 0 } % small space +\gdef \tc@O {\sk@@ , 0 } % reserved for vowel +\gdef \tc@P {\sk@ain , 0 } % `ain +\gdef \tc@Q {\sk@Q , 0 } % hamza +\gdef \tc@R {\sk@ain , 1 } % ghain +\gdef \tc@S {\sk@ss , 0 } % ssad +\gdef \tc@T {\sk@h@m , 2 } % tah marbuta +\gdef \tc@U {\sk@@ , 0 } % reserved for vowel +\gdef \tc@V {\sk@tt , 0 } % ttah +\gdef \tc@W {\sk@W , 0 } % small space +\gdef \tc@X {\sk@kh , 1 } % khah +\gdef \tc@Y {\sk@y , 0 } % alif maqsura +\gdef \tc@Z {\sk@tt , 1 } % zzah +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +}}% end of dynamic letter token definitions for Arabic +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/Master/texmf-dist/tex/latex/arabtex/arabext.sty b/Master/texmf-dist/tex/latex/arabtex/arabext.sty new file mode 100644 index 00000000000..136d05566a3 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/arabext.sty @@ -0,0 +1,103 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% arabext.sty +% ArabTeX +% 21.08.2003 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Formale Methoden der Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% patches for arabtex.sty etc +% for use with arabart.cls +% ArabTeX 3.11 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@ident {arabext.sty} {3.11 patches for use with arabart.cls} {21.08.2003} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@c@ignorespaces {\test@token } + +\def \a@c@ref {\unarab@codes \a@@ref } + +\def \a@@ref #1{\putwordb@x {\ref {#1}}\arab@codes \test@token } + +\def \a@c@cite {\unarab@codes \a@@cite } + +\def \a@@cite #1{\putwordb@x {\rm \cite {#1}}\arab@codes \test@token } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \arabdef #1{% define command valid for Arabic environment only +\begingroup \escapechar -1 +\xdef \reserved@a {\xpa \nxp \csname a@\string #1\endcsname }\endgroup +\toks@ \xpa {\xpa \let \xpa #1\reserved@a }\allowarab #1% +\xpa \at@arabtext \xpa {\the\toks@ }\xpa \def \reserved@a } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@c@table {\unarab@codes \a@@table } + +\def \a@@table [#1]{% table within Arabic environment +\let \a@endtable \endtable \def \endtable {\a@par \a@endtable }% +\table [#1]% +\arab@tail } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@c@figure {\unarab@codes \a@@figure } + +\def \a@@figure [#1]{% figure within Arabic environment +\let \a@endfigure \endfigure \def \endfigure {\a@par \a@endfigure }% +\figure [#1]% +\arab@tail } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\all@w@ne \label + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@endtabular {\a@@endtabular \advance \parfillskip \rightskip +\rightskip \leftskip \leftskip \parfillskip \parfillskip \z@ \par } + +\def \a@c@hline {% \\ missing +\errmessage{table row not terminated: \string\\ inserted; proceed.}% +\test@token \\ \hline } + +\def \a@c@tabular {\unarab@codes \let \@mkpream \a@mkpream +\let \a@@endtabular \endtabular \let \endtabular \a@endtabular +\a@@par \leavevmode \tabular } + +\def \a@c@array {\unarab@codes +\let \a@@endtabular \endarray \let \endarray \a@endtabular +\a@@par \leavevmode \array } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\let \a@@mkpream \@mkpream + +\def \a@c@a@RL {\test@token } + +\def \a@c@protect {\test@token } + +\def \a@mkpream #1{\a@@mkpream {#1}\let \@@sharp \relax \let \a@END \relax +\edef \@sharp {\protect\a@SEQ \@@sharp \a@END }% +\edef \@preamble {\@preamble}% +\def \@@sharp {\@sharp }\let \@sharp \relax +\edef \@preamble {\@preamble}} + +\def \a@SEQ {% put a sequence of words into a \hbox +\begingroup \transfalse \showfalse +\arab@codes \set@arabfont \@waslafalse \@wasfalse +\def \next@command {\test@special}\let \a@put@line \break@line +\def \a@last@line {\let \next \a@NL }\let \put@word \addt@line +\initlineb@x \test@token } + +\def \a@c@a@END {\box\lineb@x \endgroup } + +\def \a@NL {\box\lineb@x \endgroup \\}% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/tex/latex/arabtex/arabrep.cls b/Master/texmf-dist/tex/latex/arabtex/arabrep.cls new file mode 100644 index 00000000000..378e40c97f6 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/arabrep.cls @@ -0,0 +1,1076 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% arabrep.cls +% ArabTeX extension +% Arabic version of report.cls +% for use with ArabTeX Version 3.08 - 3.10 +% +% Copyright (C) 1997 - 2003 by Klaus Lagally +% 16.05.1997 +% 21.03.1999 +% 26.04.2003 +% +% reusing report.cls (and book.cls) of 19 Jun 1995 +% reusing report.cls (and book.cls) of 26 May 1996 +% patches for pagenumbering 25 March 1999 +% 15.07.1999 +% 21.04.2000 % new font handling +% 14.09.2001 % RTL footnotes, chapter names etc. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\NeedsTeXFormat {LaTeX2e}[1996/06/01] +\ProvidesClass {arabrep}[2003/04/26 v3.11 arabic report format] + +\newif\if@mainmatter \@mainmattertrue +\newif\ifa@book \a@bookfalse +\newif\ifa@article \a@articlefalse +\DeclareOption {book}{\a@booktrue \@mainmattertrue } +\DeclareOption {article}{\a@articletrue \@mainmattertrue } +\DeclareOption* {\PassOptionsToClass {\CurrentOption}{report}} +\ProcessOptions +\LoadClass {report}[1996/05/26] % load the LaTeX standard class + +\ifa@book \@openrighttrue \fi +%\input{bk1\@ptsize.clo} % collision on \small !! + +\ifa@article \@titlepagefalse \fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%\RequirePackage {arabtex}[1997/05/08] % load the ArabTeX processor +\RequirePackage {arabtex}[2003/04/26] % load the ArabTeX processor + +\UsePackage {altxext} % load local patches for LaTeX + +% **************************************** +% * PAGE STYLES * +% **************************************** + +\if@twoside % If two-sided printing. + \def \ps@headings {% for arabic mode + \let \@mkboth \markboth \def\@oddfoot{}\def\@evenfoot{}% + \def \@evenhead {\edef \thep@ge {\nxp\RL{\thepage }}% left heading + \a@normalfont \leftmark \hfil \thep@ge }% + \def \@oddhead {\edef \thep@ge {\nxp\RL{\thepage }}% right heading + \a@normalfont \thep@ge \hfil \rightmark }% + \def \chaptermark ##1{\markboth {##1% + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \hskip 1em\relax \RL{\@chapapp \space \thechapter. }% + \fi\fi }{}}% + \def \sectionmark ##1{\markleft {##1\ifnum \c@secnumdepth >\@ne + \hskip 1em\relax \RL{\thesection }\fi }}% + \ifa@article + \def \subsectionmark ##1{\markleft {##1\ifnum \c@secnumdepth >\@ne + \hskip 1em\relax \RL{\thesubsection }\fi }}% + \fi } +\else % If one-sided printing. + \def \ps@headings {% for arabic mode + \let \@mkboth \markboth \def \@oddfoot{}\def \@evenfoot{}% + \def \@oddhead {\edef \thep@ge {\nxp\RL{\thepage }}% right heading + \a@normalfont \thep@ge \hfil \rightmark }% + \def \chaptermark ##1{\markright {##1% + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \hskip 1em\relax \RL{\@chapapp\space \thechapter. }% + \fi\fi }}} +\fi + +\def \ps@plain {% for arabic mode + \let \@mkboth\@gobbletwo \let\@oddhead\@empty \let\@evenhead\@empty + \def \@oddfoot {\edef \thep@ge {\nxp\RL{\thepage }}% right heading + \a@normalfont \hfil \thep@ge \hfil }% + \let \@evenfoot\@oddfoot } + +\def \ps@myheadings {% for arabic mode + \let\@oddfoot \@empty \let\@evenfoot \@empty + \def \@oddhead {\edef \thep@ge {\nxp\RL{\thepage }}% right heading + \a@normalfont \thep@ge \hfil \rightmark }% + \def \@evenhead {\edef \thep@ge {\nxp\RL{\thepage }}% left heading + \a@normalfont \leftmark \hfil \thep@ge }% + \let\@mkboth\@gobbletwo \let\subsectionmark\@gobble + \let\chaptermark\@gobble \let\sectionmark\@gobble } + +% **************************************** +% * TITLE AND ABSTRACT * +% **************************************** + +\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\if@titlepage + \newcommand\maketitle{\begin{titlepage}% + \let\footnotesize\small + \let\footnoterule\relax + \null\vfil + \vskip 60\p@ + \begin{center}% + {\LARGE \@title \par}% + \vskip 3em% + {\large + \lineskip .75em% + \begin{tabular}[t]{c}% + \@author + \end{tabular}\par}% + \vskip 1.5em% + {\large \@date \par}% % Set date in \large size. + \end{center}\par + \@thanks + \vfil\null + \end{titlepage}% + \setcounter{footnote}{0}% + \let\thanks\relax\let\maketitle\relax + \gdef\@thanks{}\gdef\@author{}\gdef\@title{}} +\else + \newcommand\maketitle{\par + \begingroup + \renewcommand\thefootnote{\@fnsymbol\c@footnote}% + \def\@makefnmark{\hb@xt@\z@{$\m@th^{\@thefnmark}$\hss}}% + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{\hss\@makefnmark}##1}% + \if@twocolumn + \ifnum \col@number=\@ne + \@maketitle + \else + \twocolumn[\@maketitle]% + \fi + \else + \newpage + \global\@topnum\z@ % Prevents figures from going at top of page. + \@maketitle + \fi + \thispagestyle{plain}\@thanks + \endgroup + \setcounter{footnote}{0}% + \let\thanks\relax + \let\maketitle\relax\let\@maketitle\relax + \gdef\@thanks{}\gdef\@author{}\gdef\@title{}} + + \def\@maketitle{% + \newpage + \null + \vskip 2em% + \begin{center}% + {\LARGE \@title \par}% + \vskip 1.5em% + {\large + \lineskip .5em% + \begin{tabular}[t]{c}% + \@author + \end{tabular}\par}% + \vskip 1em% + {\large \@date}% + \end{center}% + \par + \vskip 1.5em} +\fi + +\else %============= arabart.cls ================================== +\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% **************************************** +% * UNITS * +% **************************************** + +\ifa@book +\newcommand\frontmatter + {\cleardoublepage \@mainmatterfalse \pagenumbering{Abjad}} +% {\cleardoublepage \@mainmatterfalse \pagenumbering{Abj}} +\newcommand\mainmatter + {\cleardoublepage \@mainmattertrue \pagenumbering{arabic}} +% {\cleardoublepage \@mainmattertrue \pagenumbering{arab}} +\newcommand\backmatter + {\if@openright \cleardoublepage \else \clearpage + \fi \@mainmatterfalse } +\fi + +\ifa@article +\renewcommand\thesection {\@arabic\c@section} +\fi + +%\allowarab \@chapapp + +% **************************************** +% * PARTS * +% **************************************** + +\renewcommand \thepart {\@arabic\c@part } + +\def \a@c@part {\a@@par +\ifa@article \addvspace{4ex}\@afterindentfalse +\else \cleardoublepage \thispagestyle{plain}% + \if@twocolumn \onecolumn \@tempswatrue + \else \@tempswafalse + \fi + \hbox{}\vfil +\fi \secdef \a@part \a@spart } + +\ifa@article + +\def \a@part [#1]#2{% numbered part +\ifnum \c@secnumdepth > \m@ne + \refstepcounter {part}% + \addcontentsline {toc}{part}{\protect\RL + {\protect\abjad {\thepart}\hspace {1em} #1 }}% +\else \addcontentsline {toc}{part}{\protect\RL {#1}}% +\fi +\begingroup \let \end \a@@par \a@parindent \z@ \a@@raggedright + \a@normalfont \bfseries \interlinepenalty \@M +\ifnum \c@secnumdepth >\m@ne + \Large \set@arabfont + \test@token \partname \abjad{\thepart } \end \nobreak +\fi + \huge \set@arabfont \test@token #2 \end + \markboth {}{} +\endgroup +\nobreak \vskip 3ex +\a@afterheading \test@token } + +\def \a@spart #1{% unnumbered part +\begingroup \let \end \a@@par \a@@raggedright \a@parindent \z@ + \interlinepenalty \@M + \a@normalfont \huge \bffamily \set@arabfont \test@token #1 \end +\endgroup +\nobreak \vskip 3ex +\a@afterheading \test@token } + +\else % report or book + +\def \a@part [#1]#2{% numbered part + \ifnum \c@secnumdepth > \ifa@article \m@ne \else -2 \fi + \refstepcounter {part}% + \addcontentsline {toc}{part}{\protect\RL + {\protect\abjad {\thepart}\hspace {1em} #1 }}% + \else \addcontentsline {toc}{part}{\protect\RL {#1}}% + \fi + \markboth{}{} +\begingroup \let \end \a@@par \a@@centering \interlinepenalty \@M + \a@normalfont \bfseries + \ifnum \c@secnumdepth > -2\relax + \huge \set@arabfont + \test@token \partname \abjad{\thepart } \end + \vskip 20\p@ + \fi + \Huge \set@arabfont \test@token #2 \end +\endgroup +\@endpart \test@token } + +\def \a@spart #1{% unnumbered part +\begingroup \let \end \a@@par \a@@centering \interlinepenalty \@M + \a@normalfont \Huge \bfseries \set@arabfont \test@token #1 \end +\endgroup +\@endpart \test@token } + +\fi % article, report or book + +\def\@part[#1]#2{% \part outside Arabic text +\begin{arabtext} +\a@part[\LR{#1}]{\LR{#2}} +\end{arabtext}} + +\def\@spart#1{% \part* outside Arabic text +\begin{arabtext} +\a@spart {\LR{#1}} +\end{arabtext}} + +% **************************************** +% * CHAPTERS * +% **************************************** + + +\ifa@article \else % report or book +\allowarab \thechapter + +\newcommand \a@c@chapter {\a@@par + \if@openright \cleardoublepage \else \clearpage \fi + \thispagestyle {plain}% + \global\@topnum \z@ \@afterindentfalse + \secdef \a@chapter \a@schapter } + +\def \a@chapter [#1]#2{% numbered chapter + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \refstepcounter {chapter}% + \typeout {\@chapapp \space \thechapter.}% + \addcontentsline {toc}{chapter}% + {\protect\numberline {\thechapter }\protect\RL {#1}}% + \else \addcontentsline {toc}{chapter}{\protect\RL {#1}}% + \fi + \else \addcontentsline {toc}{chapter}{\protect\RL {#1}}% + \fi +\chaptermark{\RL {#1}}% +\addtocontents {lof}{\protect\addvspace {10\p@}}% +\addtocontents {lot}{\protect\addvspace {10\p@}}% + \if@twocolumn \@topnewpage [\a@makechapterhead {#2}]% + \else \a@makechapterhead {#2}\a@afterheading + \fi +\tracingmacros 0 +\test@token } + +\def\a@makechapterhead #1{% make heading with number + \null \vskip 50\p@ +\begingroup \let \end \a@@par \a@@raggedright \interlinepenalty\@M + \a@normalfont \bfseries + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \edef \thechapter {\@chapapp \space \thechapter . }% + \huge \set@arabfont \test@token {\thechapter } \end + \nobreak \vskip 20\p@ + \fi\fi + \Huge \set@arabfont \test@token #1 \end + \nobreak \vskip 40\p@ +\endgroup } + +\def\a@schapter #1{% unnumbered chapter + \if@twocolumn \@topnewpage [\a@makeschapterhead {#1}]% + \else \a@makeschapterhead {#1}\a@afterheading + \fi +\test@token } + +\def\a@makeschapterhead #1{% +\null \vskip 50\p@ +\begingroup \let \end \a@@par \a@@raggedright \interlinepenalty\@M + \a@normalfont \Huge \bfseries \set@arabfont \test@token #1 \end +\endgroup +\nobreak \vskip 40\p@ } + +\fi % report or book + +%********************************************************************* +%********************************************************************* +%************************* rest not yet adapted ********************** +%********************************************************************* +%********************************************************************* + +% **************************************** +% * SECTIONS * +% **************************************** + +\def \a@c@section {\a@startsection +{section}{1}{\z@}{-3.5ex plus-1ex minus -.2ex}{2.3ex plus.2ex}% +%{\reset@font \Large\setnashbf }} +{\a@normalfont \Large \bfseries }} + +\def \a@c@subsection {\a@startsection +{subsection}{2}{\z@}{-3.25ex plus-1ex minus-.2ex}{1.5ex plus.2ex}% +{\a@normalfont \large \bfseries }} + +\def \a@c@subsubsection {\a@startsection +{subsubsection}{3}{\z@}{-3.25ex plus -1ex minus-.2ex}{1.5ex plus.2ex}% +{\a@normalfont \normalsize \bfseries }} + +\def \a@c@paragraph {\a@startsection +{paragraph}{4}{\z@}{3.25ex plus1ex minus.2ex}{-1em}% +{\a@normalfont \normalsize \bfseries }} + +\def\a@c@subparagraph {\a@startsection +{subparagraph}{5}{\parindent}{3.25ex plus1ex minus .2ex}{-1em}% +{\a@normalfont \normalsize \bfseries }} + +% **************************************** +% * LISTS * +% **************************************** + +\at@arabtext {% switch to Arabic terms + \def\theenumii{\arabic{enumii}} + \def\theenumiii{\arabic{enumiii}} + \def\theenumiv{\arabic{enumiv}} +% + \def\labelenumi{\theenumi\space-} + \def\labelenumii{\abj@d{\theenumii}-} + \def\labelenumiii{\theenumiii\nospace(} + \def\labelenumiv{\abj@d{\theenumiv}\nospace)} +% + \def\labelitemi{$\circ$} + \def\labelitemii{$-$} + \def\labelitemiii{$\star$} + \def\labelitemiv{$+$} +} + +% **************************************** +% * OTHER ENVIRONMENTS * +% **************************************** + +% DESCRIPTION + +\def \descriptionlabel #1{\setnashbf \RL{#1}\hskip \labelsep } +\def \descriptionlabel #1{\bfseries \RL{#1}\hskip \labelsep } + +% THEOREM +%%%%%%%%%%%%% NOT IMPLEMENTED + +% EQUATION and EQNARRAY +%%%%%%%%%%%%% NOT IMPLEMENTED + +% TITLEPAGE +%%%%%%%%%%%%% NOT IMPLEMENTED + +% TABBING +%%%%%%%%%%%%% NOT IMPLEMENTED + +% MINIPAGE +%%%%%%%%%%%%% NOT IMPLEMENTED + +% FRAMEBOX +%%%%%%%%%%%%% NOT IMPLEMENTED + +% **************************************** +% * ABSTRACT * +% **************************************** + +\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifa@book +\else +\if@titlepage + \newenvironment{abstract}{% + \titlepage + \null\vfil + \begin{center}% + \bfseries \abstractname + \@endparpenalty\@M + \end{center}}% + {\par\vfil\null\endtitlepage} +\else + \newenvironment{abstract}{% + \if@twocolumn + \section*{\abstractname}% + \else + \small + \begin{center}% + {\bfseries \abstractname\vspace{-.5em}\vspace{\z@}}% + \end{center}% + \quotation + \fi} + {\if@twocolumn\else\endquotation\fi} +\fi +\fi + +\else %============= arabart.cls ================================== + +\ifa@book +\else +\if@titlepage +\iffalse +\newenvironment{abstract}{% + \titlepage + \null\vfil + \begin{center}% + \bfseries \abstractname + \@endparpenalty\@M + \end{center}}% + {\par\vfil\null\endtitlepage} +\fi +\else + +\def \a@c@abstract{% +\if@twocolumn \def \next + {\a@c@section*{\abstractname}}% +\else \def \next + {\small + \begingroup \center +% \setnashbf \abstractname + \a@normalfont \bfseries \abstractname + \vspace{-.5em}\vspace{\z@}% + \endcenter \endgroup + \a@c@quotation }% +\fi + \def \endabstract + {\if@twocolumn\else\endquotation\fi}% +\next } + +\fi +\fi + +\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% **************************************** +% * OTHER ENVIRONMENTS * +% **************************************** + +\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newenvironment{verse} + {\let\\=\@centercr + \list{}{\itemsep \z@ + \itemindent -1.5em% + \listparindent\itemindent + \rightmargin \leftmargin + \advance\leftmargin 1.5em}% + \item[]} + {\endlist} + +\newenvironment{quotation} + {\list{}{\listparindent 1.5em% + \itemindent \listparindent + \rightmargin \leftmargin + \parsep \z@ \@plus\p@}% + \item[]} + {\endlist} + +\newenvironment{quote} + {\list{}{\rightmargin\leftmargin}% + \item[]} + {\endlist} + +\else %============= arabart.cls ================================== + +\def \a@c@verse {% +%\tracingmacros 1 +\let \endverse \a@@endtrivlist +\a@@list{}{\itemsep\z@ \itemindent -1.5em \listparindent \itemindent + \rightmargin\leftmargin \advance\leftmargin 1.5em}\a@@item[]} + +\def \a@c@quotation {% +%\tracingmacros 1 +\a@@list{}{\listparindent 1.5em \itemindent\listparindent + \rightmargin\leftmargin \parsep \z@ plus\p@}\a@@item[]} + +\def \a@c@quote {% +%\tracingmacros 1 +\let \endquote \a@@endtrivlist +\a@@list{}{\rightmargin\leftmargin}\a@@item[]} + +\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% **************************************** +% * TITLE PAGE * +% **************************************** + +\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newenvironment{titlepage} +{% \titlepage + \ifa@book + \cleardoublepage + \fi + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse\newpage + \fi + \thispagestyle{empty}% + \if@compatibility + \setcounter{page}{0} + \else + \ifa@book \else + \setcounter{page}{1}% + \fi + \fi }% +{% \endtitlepage + \if@restonecol\twocolumn \else \newpage \fi + \ifa@book \else + \setcounter{page}{1}% + \fi } + +\else %============= arabart.cls ================================== +\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% **************************************** +% * APPENDIX * +% **************************************** + +\def\a@c@appendix{%\par + \setcounter{section}{0}% + \renewcommand\@chapapp {\appendixname }% +\ifa@article \renewcommand\thesection {\@Abjad \c@section }% + \setcounter{subsection}{0}% +\else \renewcommand\thechapter {\@Abjad \c@chapter }% + \setcounter{chapter}{0}% +\fi \test@token } + +% **************************************** +% * FIGURES AND TABLES * +% **************************************** + +\ifa@article + \renewcommand\theequation{\@arabic\c@equation} + \renewcommand\thefigure{\@arabic\c@figure} + \renewcommand\thetable{\@arabic\c@table} +\fi + +\def\fnum@figure {\figurename \space \thefigure } + +\def\fnum@table {\tablename \space \thetable } + +\long\def \a@makecaption #1#2{% + \vskip\abovecaptionskip + \sbox\@tempboxa{#2 : #1}% + \ifdim \wd\@tempboxa >\hsize + #2 : #1\par + \else + \global \@minipagefalse + \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% + \fi + \vskip\belowcaptionskip } + +\let \@makecaption \a@makecaption + +\long\def \a@caption #1[#2]#3{\par + \addcontentsline {\csname ext@#1\endcsname}{#1} + {\protect\numberline {\csname the#1\endcsname}\protect #2}% +\begingroup \@parboxrestore \normalsize + \edef \reserved@a {\csname fnum@#1\endcsname }% + \@makecaption {\xpa \RL \xpa {\reserved@a }}{#3}\par +\endgroup} + +\let \@caption \a@caption + +\long\def \a@@caption #1[#2]#3{\par + \addcontentsline {\csname ext@#1\endcsname}{#1} + {\protect\numberline {\csname the#1\endcsname}\protect\RL {#2}}% +\begingroup \@parboxrestore \normalsize + \edef \reserved@a {\csname fnum@#1\endcsname }% + \@makecaption {\xpa \RL \xpa {\reserved@a }}{\RL {#3}}\par +\endgroup \test@token } + +\at@arabtext {\let \@caption \a@@caption } + +\let \a@c@caption \caption + +% **************************************** +% * TABLE OF CONTENTS, ETC. * +% **************************************** + +\ifa@article \setcounter{tocdepth}{3} +\else \setcounter{tocdepth}{2} +\fi + +\setcounter{tocdepth}{5} % for test only + +\def \a@c@tableofcontents {\a@t@ble {\contentsname }{toc}} +%\def \a@c@tableofcontents {\a@t@ble {\RL{\contentsname }}{toc}} + +\def \a@c@starttoc #1{\endarabtext +\the\arabtext@hook +\@starttoc {#1}\arabtext } + +%\def \a@t@ble #1#2{% \tableofcontents etc. +% \a@c@section *{#1}\@mkboth {#1}{#1}\starttoc {#2}} + +%\def \a@c@@mkboth #1#2{\@mkboth {\RL{#1}}{\RL{#2}}\test@token } + +\def \a@l@section #1#2{% for arabic mode +\ifnum \c@tocdepth >\z@ + \addpenalty {\@secpenalty }\addvspace {1.0em plus\p@ } + \if@twocolumn \@tempdima 1.0em \else \@tempdima 1.5em \fi + \a@@lsection {#1}{#2}{\a@normalfont \bfseries }% +\fi } + +\def \a@l@part #1#2{% for arabic mode +\ifnum \c@tocdepth >-2\relax + \addpenalty {-\@highpenalty }\addvspace {2.25em plus\p@ } + \if@twocolumn \@tempdima 2.0em \else \@tempdima 3.0em \fi + \a@@lsection {#1}{#2}{\a@normalfont \large \bfseries }% +\fi } + +\def \a@l@chapter #1#2{% for arabic mode +\ifnum \c@tocdepth >\m@ne + \addpenalty {-\@highpenalty }\addvspace {1.0em plus\p@ } + \if@twocolumn \@tempdima 1.0em \else \@tempdima 1.5em \fi + \a@@lsection {#1}{#2}{\a@normalfont \bfseries }% + \penalty\@highpenalty +\fi } + +\at@arabtext {% switch to Arabic terms + \let \l@part \a@l@part + \let \l@section \a@l@section + \let \l@chapter \a@l@chapter +} + +\if@twocolumn + \def\l@subsection{\@dottedtocline{2}{1.0em}{1.5em}} + \def\l@subsubsection{\@dottedtocline{3}{2.5em}{2.3em}} + \def\l@paragraph{\@dottedtocline{4}{4.8em}{3.1em}} + \def\l@subparagraph{\@dottedtocline{5}{7.9em}{3.9em}} + \def\@tocrmarg {1.55em} +\fi + +\def \a@c@listoffigures {\a@t@ble {\listfigurename }{lof}} + +\def \a@c@listoftables {\a@t@ble {\listtablename }{lot}} + +% **************************************** +% * BIBLIOGRAPHY * +% **************************************** + +\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newdimen\bibindent +\bibindent=1.5em + +\newenvironment{thebibliography}[1] +% {\chapter*{\bibname + {\section*{\bibname + \@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}}% + \list{\@biblabel{\@arabic\c@enumiv}}% + {\settowidth\labelwidth{\@biblabel{#1}}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \@openbib@code + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\@arabic\c@enumiv}}% + \sloppy\clubpenalty4000\widowpenalty4000% + \sfcode`\.=\@m} + {\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \endlist} + +%\newcommand\newblock{\hskip .11em\@plus.33em\@minus.07em} +%\let\@openbib@code\@empty + +\else %============= arabart.cls ================================== +\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% **************************************** +% * THE INDEX * +% **************************************** + +\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newcommand\newblock{} + +\newenvironment{theindex} + {\if@twocolumn + \@restonecolfalse + \else + \@restonecoltrue + \fi + \columnseprule \z@ + \columnsep 35\p@ + \twocolumn[\@makeschapterhead{\indexname}]% + \@mkboth{\MakeUppercase\indexname}% + {\MakeUppercase\indexname}% + \thispagestyle{plain}\parindent\z@ + \parskip\z@ \@plus .3\p@\relax + \let\item\@idxitem} + {\if@restonecol\onecolumn\else\clearpage\fi} + +\newcommand\@idxitem{\hangindent 40\p@} +\newcommand\subitem{\par\hangindent 40\p@ \hspace*{20\p@}} +\newcommand\subsubitem{\par\hangindent 40\p@ \hspace*{30\p@}} +\newcommand\indexspace{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax} + +\else %============= arabart.cls ================================== +\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% **************************************** +% * FOOTNOTES * +% **************************************** + +% Default definition +\def\@makefnmark{\hbox{$^{\@thefnmark}\m@th$}} + +\def \footnoterule{% + \kern-3\p@ + \hbox to \columnwidth{\hskip .6\columnwidth \hrulefill } + \kern2.6\p@} + +\RLfootnotes + +% see also "alatex.sty" + +% **************************************** +% * LANGUAGE DEPENDENT NAMES * +% **************************************** + +\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newcommand\contentsname{Contents} +\newcommand\listfigurename{List of Figures} +\newcommand\listtablename{List of Tables} +\newcommand\bibname{Bibliography} +\newcommand\refname{References} +\newcommand\indexname{Index} +\newcommand\figurename{Figure} +\newcommand\tablename{Table} +\newcommand\partname{Part} +\newcommand\chaptername{Chapter} +\newcommand\appendixname{Appendix} +\newcommand\abstractname{Abstract} + +\else %============= arabart.cls ================================== + +% tableofcontents = al-mu.htawayAtu +% listoffigures = qA'imaTu al-.suwaru +% listoftables = qA'imaTu al-^gadAwilu +% listofpictures = qA'imaTu al-rusUmu +% bibliography = al-marA^gi`u +% references = al-ma.sAdiru +% index = al-fihrisu (al-fihristu) +% chapter = al-fa.slu +% appendix = al-mul.haqu +% abstract = al-mula_h_ha.su +% attachments = al-murfaqAtu +% number = al-raqmu + +%\at@arabtext {% switch to Arabic terms + \def\bibname {\a@tok(al-marAGiPu)} + \def\refname {\a@tok(al-maSAdiru)} + \def\indexname {\a@tok(al-fihristu)} + \def\figurename {\a@tok(SUraTuN)} + \def\tablename {\a@tok(GadwaluN)} + \def\partname {\a@tok(al-GuzQzu)} + \def\chaptername {\a@tok(al-faSlu)} + \def\appendixname {\a@tok(al-mulHaqu)} + \def\abstractname {\a@tok(al-mulaXXaSu)} +%} + +\allowarab \contentsname +\allowarab \listfigurename +\allowarab \listtablename +\allowarab \bibname +\allowarab \refname +\allowarab \indexname +\allowarab \figurename +\allowarab \tablename +\allowarab \partname +\allowarab \chaptername +\allowarab \appendixname +\allowarab \abstractname + +\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% **************************************** +% * INITIALIZATION * +% **************************************** + +% Default initializations + +\ifa@book \pagestyle{headings} +\else \pagestyle{plain} +\fi + +\pagenumbering{arabic} % Arabic page numbers + +% **************************************** +% * SIZE DEPENDENT PATCHES * +% **************************************** + +\input {asize1\@ptsize.clo} + +\UsePackage {arabext} % load local patches for ArabTeX + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\gdef \contentsname{Contents} +\gdef \listfigurename{List of Figures} +\gdef \listtablename{List of Tables} + +\at@arabtext {% switch to Arabic terms + \def\contentsname {\a@tok(al-muHtawayAtu)} + \def\listfigurename {\a@tok(qAQAimaTu aS-Suwari)} + \def\listtablename {\a@tok(qAQAimaTu al-GadAwili)} + \def\chaptername {\a@tok(al-faSlu)} +} + +\ifx \a@part \undefined \else + +% tableofcontents = al-mu.htawayAtu +% listoffigures = qA'imaTu al-.suwaru +% listoftables = qA'imaTu al-^gadAwilu +% listofpictures = qA'imaTu al-rusUmu +% bibliography = al-marA^gi`u +% references = al-ma.sAdiru +% index = al-fihrisu (al-fihristu) +% chapter = al-fa.slu +% appendix = al-mul.haqu +% abstract = al-mula_h_ha.su +% attachments = al-murfaqAtu +% number = al-raqmu + +\def\bibname {\stdcode{al-marA^gi`u}} +\def\refname {\stdcode{al-ma.sAdiru}} +\def\indexname {\stdcode{al-fihristu}} +\def\figurename {\stdcode{.sUraTuN}} +\def\tablename {\stdcode{^gadwaluN}} +\def\partname {\stdcode{al-^guz'u}} +\def\chaptername {\stdcode{al-fa.slu}} +\def\appendixname {\stdcode{al-mul.haqu}} +\def\abstractname {\stdcode{al-mula_h_ha.su}} + +\at@arabtext {% switch to Arabic terms +\def\contentsname {\stdcode{al-mu.htawayAtu}} +\def\listfigurename {\stdcode{qA'imaTu al-.suwari}} +\def\listtablename {\stdcode{qA'imaTu al-^gadAwili}} +} +\fi + +\def\a@makechapterhead #1{% make heading with number + \null \vskip 50\p@ +\begingroup \let \end \a@@par \a@@raggedright \interlinepenalty\@M + \a@normalfont \bfseries + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \edef \thechapter {\thechapter }% + \huge \set@arabfont \test@token \@chapapp {\thechapter} \end + \nobreak \vskip 20\p@ + \fi\fi + \Huge \set@arabfont \test@token #1 \end + \nobreak \vskip 40\p@ +\endgroup } + +\allowarab \@chapapp + +\def\a@c@appendix{%\par + \setcounter{section}{0}% + \renewcommand\@chapapp {\appendixname }% +\ifa@article \renewcommand\thesection {\@abjad \c@section }% + \setcounter{subsection}{0}% +\else \renewcommand\thechapter {\@abjad \c@chapter }% + \setcounter{chapter}{0}% +\fi \test@token } + +\def \a@chapter [#1]#2{% numbered chapter +\ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \refstepcounter {chapter}% + \typeout {\@chapapp \space \thechapter.}% + \addcontentsline {toc}{chapter}% + {\protect\numberline + {\protect\RL{\protect\stdcode{\thechapter }}}% + \protect\RL {#1}}% + \else \addcontentsline {toc}{chapter}{\protect\RL {#1}}% + \fi +\else \addcontentsline {toc}{chapter}{\protect\RL {#1}}% +\fi +\chaptermark{\RL {#1}}% +\addtocontents {lof}{\protect\addvspace {10\p@}}% +\addtocontents {lot}{\protect\addvspace {10\p@}}% +\if@twocolumn \@topnewpage [\a@makechapterhead {#2}]% +\else \a@makechapterhead {#2}\a@afterheading +\fi \test@token } + +\long\def \a@@caption #1[#2]#3{\par + \addcontentsline {\csname ext@#1\endcsname}{#1} + {\protect\numberline {\csname the#1\endcsname}\protect\RL {#2}}% +\begingroup \@parboxrestore \normalsize + \def \protect {\nxp\protect\nxp} + \edef \thecaption {\csname fnum@#1\endcsname }% + \let \protect \relax + \@makecaption {\RL {\thecaption }}{\RL {#3}}\par +\endgroup \test@token } + +\long\def \a@makecaption #1#2{% + \vskip\abovecaptionskip + \sbox\@tempboxa{\RL{#1: #2}}% + \ifdim \wd\@tempboxa >\hsize +\begin{arabtext} #1: #2 +\end{arabtext} + \else + \global \@minipagefalse + \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% + \fi + \vskip\belowcaptionskip } + +\allowarab \caption +\allowarab \thecaption + +\at@arabtext {\let \@caption \a@@caption +\let \@makecaption \a@makecaption } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@l@section #1#2{% Text, Pageno +% for arabic mode +\ifnum \c@tocdepth >\z@ + \addpenalty {\@secpenalty }% + \addvspace {1.0em plus\p@ }% +% \@tempdima 1.5em + \@tempdima 1.0em +% \@tempdima \if@twocolumn 1.0em \else 1.5em \fi \relax + \a@@lsection {#1}{#2}{\a@normalfont \bfseries }% +\fi } + +\def \a@l@part #1#2{% Text, Pageno +% for arabic mode +\ifnum \c@tocdepth >-2\relax + \addpenalty {-\@highpenalty }% + \addvspace {2.25em plus\p@ }% + \@tempdima 2.0em +% \@tempdima \if@twocolumn 2.0em \else 3.0em \fi \relax + \a@@lsection {#1}{#2}{\a@normalfont \large \bfseries }% +\fi } + +\def \a@l@chapter #1#2{% Text, Pageno +% for arabic mode +\ifnum \c@tocdepth >\m@ne + \addpenalty {-\@highpenalty }% + \addvspace {1.0em plus\p@ }% +% \@tempdima 1.5em + \@tempdima 1.0em +% \@tempdima \if@twocolumn 1.0em \else 1.5em \fi \relax + \a@@lsection {#1}{#2}{\a@normalfont \bfseries }% + \penalty\@highpenalty +\fi } + +\def \a@x@sect {% arabic section TOC formats if article + \def\a@l@subsection{\@dottedtocline{2}{1.0em}{1.5em}} + \def\a@l@subsubsection{\@dottedtocline{3}{2.5em}{2.1em}} + \def\a@l@paragraph{\@dottedtocline{4}{4.6em}{2.8em}} + \def\a@l@subparagraph{\@dottedtocline{5}{9.4em}{3.4em}} +} + +\def \a@y@sect {% arabic section TOC formats if report or book + \def\a@l@section{\@dottedtocline{1}{1.0em}{1.5em}} + \def\a@l@subsection{\@dottedtocline{2}{2.5em}{2.1em}} + \def\a@l@subsubsection{\@dottedtocline{3}{4.6em}{2.8em}} + \def\a@l@paragraph{\@dottedtocline{4}{9.4em}{3.4em}} + \def\a@l@subparagraph{\@dottedtocline{5}{23.8em}{4.1em}} +} + +\def \a@xy@sect {% arabic section TOC formats +\ifa@article \a@x@sect \else \a@y@sect \fi } + +\def \a@c@tableofcontents {\a@xy@sect % define arabic section TOC formats +\a@t@ble {\contentsname }{toc}} + +% CAUTION: \a@xy@sect must be executed before expanding \the\arabtex@hook +% and prior to \@starttoc within \a@t@ble, see arabrep.cls + +\def\a@l@figure{\@dottedtocline{1}{1.0em}{1.5em}} +\def\a@l@table{\@dottedtocline{1}{1.0em}{1.5em}} + +\at@arabtext {% switch to Arabic terms, execute from asect::a@t@ble + \let \l@part \a@l@part + \let \l@chapter \a@l@chapter + \let \l@section \a@l@section + \let \l@subsection \a@l@subsection + \let \l@subsubsection \a@l@subsubsection + \let \l@paragraph \a@l@paragraph + \let \l@subparagraph \a@l@subparagraph + \let \l@figure \a@l@figure + \let \l@table \a@l@table +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% restore LaTeX version, delete \a@caption! + +\long\def\@caption#1[#2]#3{% + \par + \addcontentsline{\csname ext@#1\endcsname}{#1}% + {\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}% + \begingroup + \@parboxrestore + \if@minipage + \@setminipage + \fi + \normalsize + \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par + \endgroup} + +\long\def \a@caption #1[#2]#3{\par + \addcontentsline {\csname ext@#1\endcsname}{#1} + {\protect\numberline {\csname the#1\endcsname}\protect #2}% +\begingroup \@parboxrestore \normalsize + \protected@edef \reserved@a {\csname fnum@#1\endcsname }% + \xpa\@makecaption \xpa{\xpa\RL \xpa{\reserved@a }}{#3}\par +\endgroup} + +%\let \@caption \a@caption + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% end of file arabrep.cls +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/Master/texmf-dist/tex/latex/arabtex/arabskel.sty b/Master/texmf-dist/tex/latex/arabtex/arabskel.sty new file mode 100644 index 00000000000..8790052f6d6 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/arabskel.sty @@ -0,0 +1,185 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% arabskel.sty +% ArabTeX +% character skeleton definitions for font nash14 +% called in HMODE +% Version 04.06.2000 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\chardef \sklatcode = \catcode`\@ \catcode`\@ = 11 +\a@ident {arabskel.sty}{3.10 character skeleton definitions }{04.06.2000} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% dynamic definitions for Arabic +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +\gdef \seta@skels {% define \ArabTeX character skeletons for font nash +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% pattern: class, code, connect, {iso, fin, med, ini} +\gdef \sk@@ {10 ,\a@block ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % illegal +\gdef \sk@def {10 ,\a@block ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % default + +% basic letters +\gdef \sk@a {10 ,\a@alif ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % alif +\gdef \sk@ain { 4 ,\a@ain ,1 ,{{4,0}{4,1}{0,0}{2,0}}} % `ain +\gdef \sk@b { 1 ,\a@bah ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % bah, no dot +\gdef \sk@b@p { 9 ,\a@bah@p ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % bah, loop +\gdef \sk@d {10 ,\a@dal ,0 ,{{0,0}{0,0}{0,2}{0,0}}} % dal +\gdef \sk@d@p {10 ,\a@dal@p ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % dal, loop +\gdef \sk@dd { 2 ,\a@dad ,1 ,{{2,4}{2,4}{0,1}{0,2}}} % ddad +\gdef \sk@f { 6 ,\a@fah ,1 ,{{0,5}{0,5}{0,0}{2,1}}} % fah +\gdef \sk@f@s { 6 ,\a@fah@s ,1 ,{{0,5}{0,5}{0,0}{2,0}}} % fah, no dot +\let \sk@g \sk@@ +\gdef \sk@g@p { 5 ,\a@gaf@p ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % gaf, loop +\gdef \sk@g@s { 5 ,\a@gaf@s ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % gaf, bar +\let \sk@g@ps \sk@@ +\gdef \sk@h {10 ,\a@hah ,1 ,{{0,0}{0,-1}{0,0}{0,0}}} % hah +\gdef \sk@h@m {10 ,\a@hah ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % hah marbouta +\gdef \sk@h@s {10 ,\a@h@s ,1 ,{{1,0}{0,0}{0,0}{0,0}}} % urdu hah +\gdef \sk@hh { 3 ,\a@hhah ,1 ,{{4,0}{4,0}{0,0}{0,2}}} % hhah +\gdef \sk@j { 3 ,\a@gim ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % gim +\gdef \sk@k { 5 ,\a@kaf ,1 ,{{0,2}{0,2}{0,0}{0,-1}}} % kaf +\gdef \sk@k@p { 5 ,\a@kaf@p@s,1,{{0,2}{0,2}{0,0}{0,-1}}} % kaf, loop +\gdef \sk@k@s { 5 ,\a@kaf@s ,1 ,{{0,2}{0,2}{0,0}{0,-1}}} % kaf, no mark +\gdef \sk@k@w { 5 ,\a@kaf@w ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % wide kaf +\gdef \sk@kh { 3 ,\a@khah ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % khah +\gdef \sk@l { 0 ,\a@lam ,1 ,{{0,3}{0,2}{0,0}{0,0}}} % lam +\gdef \sk@l@w { 0 ,\a@lam@l ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % lower lam +\gdef \sk@m {10 ,\a@mim ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % mim +\gdef \sk@n { 1 ,\a@nun ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % nun, no dot +\gdef \sk@n@p { 9 ,\a@nun@p ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % nun, loop +\gdef \sk@q { 6 ,\a@qaf ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % qaf +\let \sk@q@s \sk@@ +\gdef \sk@r { 8 ,\a@rah ,0 ,{{0,2}{0,1}{0,0}{0,0}}} % rah +\gdef \sk@r@p { 8 ,\a@rah@p ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % rah, loop +\gdef \sk@r@s { 8 ,\a@rah@s ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % rah, two dots +\gdef \sk@s { 2 ,\a@sin ,1 ,{{2,6}{2,4}{0,1}{0,3}}} % sin +\gdef \sk@s@p { 2 ,\a@sin@p ,1 ,{{0,6}{0,4}{0,2}{0,4}}} % sin, two dots +\gdef \sk@sh { 2 ,\a@shin ,1 ,{{2,6}{2,4}{0,2}{0,2}}} % shin +\gdef \sk@ss { 2 ,\a@sad ,1 ,{{2,4}{2,4}{0,1}{0,2}}} % ssad +\gdef \sk@ts { 3 ,\a@tsah ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % tchah +\gdef \sk@tt { 7 ,\a@ttah ,1 ,{{1,2}{1,2}{1,1}{1,1}}} % ttah +\gdef \sk@v { 6 ,\a@vah ,1 ,{{0,5}{0,5}{0,0}{0,0}}} % vah +\gdef \sk@w {10 ,\a@waw ,0 ,{{0,1}{0,1}{0,0}{0,0}}} % waw +\let \sk@w@r \sk@@ +\let \sk@w@b \sk@@ +\gdef \sk@y { 1 ,\a@yah ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % yah +\gdef \sk@y@h { 1 ,\a@yah@h ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % yah, stroke +\gdef \sk@y@p { 1 ,\a@yah@p ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % yah bari +\let \sk@y@ps \sk@@ +\gdef \sk@z { 8 ,\a@zay ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % zay +\gdef \sk@zh { 8 ,\a@zhah ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % zhah +\gdef \sk@zz { 7 ,\a@zzah ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % zzah + +% special forms +\gdef \sk@sn@s { 2 ,\a@sin@spec ,1 ,{{2,6}{2,4}{0,-2}{0,-1}}} % sin short +\gdef \sk@sd@s { 2 ,\a@sad@spec ,1 ,{{2,4}{2,4}{0,-3}{0,-2}}} % ssad short +\gdef \sk@j@cl { 3 ,\a@gim@close ,1 ,{{0,0}{0,0}{0,0}{0,1}}} % gim closed +\gdef \sk@k@sh { 5 ,\a@kaf@spec ,1 ,{{0,2}{0,2}{0,0}{0,0}}} % kaf, short +\let \sk@k@sp \sk@@ +\gdef \sk@g@ph { 5 ,\a@gaf@p ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % gaf' short +\gdef \sk@g@sh { 5 ,\a@gaf@s ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % gaf- short +\let \sk@g@sp \sk@@ +\gdef \sk@y@s { 1 ,\a@yah@spec ,1 ,{{0,0}{0,2}{0,0}{0,0}}} % yah lig +\gdef \sk@y@h@s { 1 ,\a@yah@h@spec ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % yah' lig +\gdef \sk@j@s { 3 ,\a@gim@spec ,1 ,{{0,0}{0,0}{0,1}{0,0}}} % gim short +\gdef \sk@hh@s { 3, \a@hhah@spec ,1 ,{{4,0}{4,6}{0,1}{0,0}}} % hhah short +\gdef \sk@kh@s { 3 ,\a@khah@spec ,1 ,{{0,0}{0,0}{0,1}{0,0}}} % khah short +\gdef \sk@ts@s { 3 ,\a@tsah@spec ,1 ,{{0,0}{0,0}{0,1}{0,0}}} % tchah short +\gdef \sk@l@a {10 ,\a@lam@alif ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % lam-alif +\let \sk@m@si \sk@@ + +% specials +\gdef \sk@B {10 ,\a@tatwil,1 ,{{0,0}{0,0}{0,0}{0,0}}} % tatwil +\gdef \sk@Q {10 ,\a@hamzc ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % hamza char +\gdef \sk@W {10 ,\a@break ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % small space 34 +\gdef \sk@spc {10 ,\a@smspc ,1 ,{{0,0}{0,0}{2,0}{2,0}}} % small space 36 +\gdef \sk@skip{10 ,\a@skip ,1 ,{{0,0}{0,0}{2,0}{2,0}}} % small space 37 + +% ligatures +\gdef \sk@b@sp { 1 ,\a@bah@spec ,1 ,{{0,0}{0,0}{0,0}{0,1}}} % r-b-? +\gdef \sk@b@g { 1 ,\a@bah@spec@gim ,1 ,{{0,0}{0,0}{0,2}{0,4}}} % j-b-? +\gdef \sk@b@h { 1 ,\a@bah@high ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % s-b-? +\gdef \sk@b@y { 1 ,\a@bah@spec@yah ,1 ,{{0,0}{0,0}{0,-1}{0,0}}} % y-b-? +\gdef \sk@b@e@m { 1 ,\a@bah@end@mim ,1 ,{{0,0}{0,0}{0,1}{0,0}}} % m-b-? +\gdef \sk@b@m@m { 1 ,\a@bah@mid@mim ,1 ,{{0,0}{0,0}{2,2}{2,2}}} % m-b-? +\gdef \sk@b@e@h { 1 ,\a@bah@end@hah ,1 ,{{0,0}{0,0}{2,2}{0,0}}} % h-b-? +\gdef \sk@h@s@l {10 ,\a@hah@spec@lam ,1 ,{{1,0}{0,0}{1,-3}{0,0}}} % E-h-? +\gdef \sk@l@h { 0 ,\a@lam@spec@hah ,1 ,{{0,0}{0,0}{0,0}{0,-3}}} % m-l-| +\gdef \sk@l@g { 0 ,\a@lam@gim ,1 ,{{0,0}{0,0}{0,0}{0,4}}} % j-l-| +\gdef \sk@l@g@s { 0 ,\a@lam@gim ,1 ,{{0,0}{0,0}{0,0}{0,1}}} % j-l-| +\gdef \sk@l@y { 0 ,\a@lam@spec@yah ,1 ,{{0,0}{0,0}{0,1}{0,0}}} % j-l-? +\gdef \sk@l@m { 0 ,\a@lam@spec@mim ,1 ,{{0,0}{0,0}{0,0}{0,-2}}} % m-l-| +\gdef \sk@l@lng { 0 ,\a@lam@long ,1 ,{{0,0}{0,0}{0,0}{0,1}}} % y-l-| +\gdef \sk@m@s {10 ,\a@mim@spec ,1 ,{{0,0}{0,-1}{0,2}{0,2}}} % ?-m-l +\gdef \sk@m@s@h {10 ,\a@mim@spec@high,1 ,{{0,0}{0,0}{0,0}{0,0}}} % j-m-| +\gdef \sk@m@s@l {10 ,\a@mim@spec@long,1 ,{{0,0}{0,0}{0,-2}{0,0}}} % ?-m-l +\gdef \sk@m@s@m {10 ,\a@mim@spec@mim ,1 ,{{0,0}{0,0}{0,5}{0,0}}} % m-m-| +\gdef \sk@m@l@g {10 ,\a@mim@lam@gim ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % j-m-l +\gdef \sk@l@spc {10 ,\a@smspc ,1 ,{{0,0}{0,0}{0,0}{0,-4}}} % small space + +\global\let \sk@free \sk@W % phantom for outtable + +\global\let \sk@b@s \sk@b +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +}}% end of dynamic definitions for Arabic +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\seta@skels % activate skeletons + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% ACT = 1. char +\def \set@act #1{\def \act@skel {#1}\xpa \unp@ck@act #1\relax } + +\def \get@act {\xxpa \unp@ck@act \act@skel \relax } + +\def \new@act #1{\xxpa \unp@ck@act #1\relax } + +\def \unp@ck@act #1,#2,#3,#4\relax {% unpack skeleton description +\act@cls #1\act@cd #2\act@con #3\def \act@dia {#4}} + +% CHR = 2. char +\def \set@chr #1{\def \chr@skel {#1}\xpa \unp@ck@chr #1\relax } + +\def \get@chr {\xxpa \unp@ck@chr \chr@skel \relax } + +\def \new@chr #1{\xxpa \unp@ck@chr #1\relax } + +\def \unp@ck@chr #1,#2,#3,#4\relax {% unpack skeleton description +\chr@cls #1\chr@cd #2\chr@con #3\def \chr@dia {#4}} + +% SKL = 3. char +\def \set@skl #1{\def \skl@skel {#1}\xpa \unp@ck@skl #1\relax } + +\def \get@skl {\xxpa \unp@ck@skl \skl@skel \relax } + +\def \new@skl #1{\xxpa \unp@ck@skl #1\relax } + +\def \unp@ck@skl #1,#2,#3,#4\relax {% unpack skeleton description +\skl@cls #1\skl@cd #2\skl@con #3\def \skl@dia {#4}} + +\def \a@skl@init {% default attributes +\set@skel \sk@def } + +\def \dia@pos #1#2#3#4#5\relax {% unpack diacritics list +\edef \temp {\ifcase #5 #1\or #2\or #3\or #4\fi }% +\xpa \get@dia \temp \relax } + +\def \get@dia #1,#2\relax {% position of diacritic +\def \dia@mod {#1}\def \dia@hadj {#2}} + +\def \dia@mod {0} \def \dia@hadj {0} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\chardef \bah@cls 1 \chardef \gim@cls 3 \chardef \kaf@cls 5 +\chardef \rah@cls 8 \chardef \other@cls 10 + +\catcode`\@ = \sklatcode +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/tex/latex/arabtex/arabsymb.sty b/Master/texmf-dist/tex/latex/arabtex/arabsymb.sty new file mode 100644 index 00000000000..46453557829 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/arabsymb.sty @@ -0,0 +1,192 @@ +%%%%%%%%%%%%%%%%%%%% xarbsymb.sty %%%%%%%%%%%%%%%%%%%% +% 20.4.1998 11:30:59 +% code assignments for arabic font in ArabTeX +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +% 20.04.98 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@ident {xarbsymb.sty} {3.07 symbolic output encoding } {12.07.1997} + +\chardef \a@nashcode = '1 % file has been read + +%%%%%%%%%%%%%%%%%% connection forms %%%%%%%%%%%%%%%%%% + +\chardef \a@f@iso = '0 % isolated +\chardef \a@f@end = '1 % final +\chardef \a@f@mid = '2 % medial +\chardef \a@f@beg = '3 % initial + +%%%%%%%%%%%%%%%%%% diacritical marks %%%%%%%%%%%%%%%%% + +\chardef \a@ttah@dia = '010 % for urdu +\chardef \a@one@dot@up = '011 % +\chardef \a@two@dots@down = '012 % +\chardef \a@fatha = '013 % +\chardef \a@kasra = '013 % +\chardef \a@damma = '014 % +\chardef \a@hamza = '015 % +\chardef \a@madda = '016 % +\chardef \a@shadda = '017 % +\chardef \a@two@dots@up = '020 % +\chardef \a@three@dots@up = '021 % +\chardef \a@three@dots@down = '022 % +\chardef \a@fathatan = '023 % +\chardef \a@kasratan = '023 % +\chardef \a@dammatan = '024 % +\chardef \a@sukun = '025 % +\chardef \a@wasla = '026 % +\chardef \a@quran@alif = '027 % +\chardef \a@bow@dia = '030 % for kurdish +\chardef \a@e@dia = '040 % for pashto +\chardef \a@zwarakay = '040 % for pashto +\chardef \a@one@dot@down = '056 % period +\chardef \a@h@dia = '146 % for urdu +\chardef \a@ammad = '146 % for pashto + +%%%%%%%%%%%%%%%%%% letters %%%%%%%%%%%%%%%%%%%%%%%%%% + +\chardef \a@alif = '100 % 100,101 +\chardef \a@bah@s = '110 % 110-113 +%% gim 140 140-143 +\chardef \a@hhah = '150 % 150-153 +\chardef \a@khah = '160 % 160-163 +%% tsah 170 170-173 +\chardef \a@dal = '130 % 130,131 +\chardef \a@rah = '120 % 120,121 +%% zay 122 122,123 +%% zhah 124 124,125 +\chardef \a@sin = '200 % 200-203 +%% shin 210 210-213 +\chardef \a@sad = '220 % 220-223 +%% dad 230 230-233 +\chardef \a@kaf@w = '234 % 234-237 wide kaf +\chardef \a@ttah = '240 % 240-243 +%% zzah 244 244-247 +\chardef \a@ain = '250 % 250-253 +\chardef \a@fah@s = '254 % 254-257 fah family +%% fah 362 362,363 +\chardef \a@qaf = '364 % 364,365 +%% vah 366 366,367 +\chardef \a@kaf@s = '270 % 270-273 kaf family +\chardef \a@kaf = '274 % 274,275 +\chardef \a@gaf@s = '300 % 300-303 gaf family +\chardef \a@gaf = '304 % 304,305 +\chardef \a@lam = '310 % 310-313 +\chardef \a@mim = '320 % 320-323 +\chardef \a@nun = '340 % 340,341 +\chardef \a@hah = '350 % 350-354 +\chardef \a@waw = '360 % 360,361 +\chardef \a@yah = '370 % 370,371 + +\chardef \a@hamza@iso = '132 % 132 + +\chardef \a@alif@iso = \a@alif % 100 +\chardef \a@alif@end = '101 % 101 +\chardef \a@bah = \a@bah@s % 110 +\chardef \a@hamzc = \a@hamza@iso % 132 + +%%%%%%%%%%%%%%%%%% special characters %%%%%%%%%%%%%%%%%%% + +\chardef \a@block = '000 % 000-003 +\chardef \a@tatwil = '004 % 004-007 + +\chardef \a@rquotes = '042 % 042 +\chardef \a@period = '056 % 056 +\chardef \a@lquotes = '134 % 134 + +\chardef \a@space@spec = '044 % 046,047 carrier for dots +\chardef \a@skip = '045 % 047 small space, initial (!) +\chardef \a@no@break = '046 % 046 no space, breaks ligatures +\chardef \a@break = '047 % 047 small space, medial + +\chardef \a@smspc = \a@space@spec % 044 + +%%%%%%%%%%%%%%%%%% ligatures %%%%%%%%%%%%%%%%%%%%%%%%%% + +\chardef \a@bah@spec@gim = '027 % 031 medial bah before gim +\chardef \a@bah@beg@gim = '030 % 032 initial (!) bah before gim +\chardef \a@g@to@mb = '031 % 033 medial bah to gim +\chardef \a@bah@high = '032 % 034,035 before sin, sad +\chardef \a@bah@spec = '034 % 036,037 bah before final rah, nun +\chardef \a@lam@spec@low = '072 % 074 medial lam for 'allah' +\chardef \a@alif@spec@mim = '075 % 076 final alif after mim +\chardef \a@lam@alif = '102 % 102,103 +\chardef \a@bah@end@hah = '102 % 104,105 bah before final hah +\chardef \a@bah@spec@yah = '104 % 106,107 bah before gim, with tie; + % also bah before yah +%% gim_spec 143 144,145 from above +\chardef \a@gim@close = '144 % 146,147 closed gim +\chardef \a@hhah@spec = '153 % 154,155 from above +\chardef \a@khah@spec = '163 % 164,165 from above +\chardef \a@rah@k = '166 % 166,167 kurdish rah +%% tsah_spec 173 174,175 from above +\chardef \a@sin@spec = '202 % 204,205 short form +%% shin_spec 204 206,207 short form +\chardef \a@sad@spec = '222 % 224,225 short form +%% dad_spec 224 226,227 short form +\chardef \a@kaf@spec = '274 % 276,277 short form +\chardef \a@gaf@spec = '304 % 306,307 short form +\chardef \a@lam@gim = '311 % 314 lam on gim +\chardef \a@lam@on@gim = '312 % 314 initial (!) lam before gim +\chardef \a@lam@long = '312 % 315 initial lam before yah +\chardef \a@lam@spec@yah = '314 % 316 before final yah ? +\chardef \a@lam@spec@mim = '314 % 317 initial lam before medial mim +\chardef \a@mim@spec@high = '322 % 324 from above +\chardef \a@mim@spec = '324 % 325-327 final; medial after lam; + % also before gim +\chardef \a@mim@spec@mim = '325 % 330 initial mim before mim +\chardef \a@mim@lam@gim = '327 % 331 medial mim between lam and gim +\chardef \a@lam@spec@hah = '330 % 333 initial lam before medial hah +\chardef \a@mim@spec@long = '332 % 334 medial mim after lam, vocalized +\chardef \a@mm@to@b = '333 % 335 bah to medial mim +\chardef \a@bah@mid@mim = '334 % 336,337 bah before medial mim +\chardef \a@mim@spec@alif = '342 % 344 medial mim before alif +\chardef \a@er@to@s = '343 % 345 sin to final rah +\chardef \a@bah@end@mim = '344 % 346 medial bah before final mim +\chardef \a@bah@beg@mim = '345 % 347 initial (!) bah before final mim +\chardef \a@hah@urd = '353 % 353,354 two-eyed hah, + % see hah and hah_spec_lam +\chardef \a@hah@spec@lam = '352 % 354 medial hah after initial lam +\chardef \a@hah@spec = '354 % 355-357 final short hah; + % also medial hah after sin +\chardef \a@yah@spec = '371 % 372 ligature for final yah + +\chardef \a@lam@alif@iso = \a@lam@alif % 102 +\chardef \a@lam@alif@end = '103 % 103 + +\chardef \a@h@s = \a@hah@spec % 354 +\chardef \a@lam@l = \a@lam@spec@low % 072 + +%lam_spec_gim 311 + +%%%%%%%%%%%%%%%%%% ties %%%%%%%%%%%%%%%%%%%%%%%%%% + +\chardef \a@g@to@s = \a@bah@spec@gim % sin to gim +\chardef \a@em@to@s = \a@bah@end@mim % sin to final mim +\chardef \a@mh@to@s = \a@bah@end@hah % sin to medial hah or final mim +\chardef \a@g@to@bb = \a@bah@beg@gim % initial bah to gim +\chardef \a@em@to@bb = \a@bah@beg@mim % initial bah to final mim + +%%%%%%%%%%%%%%%%%% others %%%%%%%%%%%%%%%%%%%%%%%%%% + +\chardef \a@bah@p = '114 % 114-117 bah family with loop +\chardef \a@rah@p = '126 % 126,127 rah with loop +\chardef \a@dal@p = '136 % 136,137 dal with loop +\chardef \a@rah@s = '156 % 156,157 rah with two dots +%% sin_p 214 214,215 sin with two dots +\chardef \a@kaf@p@s = '260 % 260-263 kaf family with loop +\chardef \a@kaf@p = '264 % 264,265 kaf with loop and mark +\chardef \a@kaf@p@spec = '264 % 266,267 short form of kaf with loop +\chardef \a@nun@p = '342 % 342,343 nun with loop +\chardef \a@yah@h = '373 % 373,374 yah with hook +\chardef \a@yah@h@spec = '374 % 375 ligature for final yah with hook +\chardef \a@yah@p = '376 % 376,377 long yah + +\chardef \a@gaf@p = \a@kaf@p@s % 260 + +%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%% + +\endinput diff --git a/Master/texmf-dist/tex/latex/arabtex/arabtex.sty b/Master/texmf-dist/tex/latex/arabtex/arabtex.sty new file mode 100644 index 00000000000..b1d788c6b84 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/arabtex.sty @@ -0,0 +1,634 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% arabtex.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% arabtex.sty +% this is the driver module for the ArabTeX macro package +\def \theversion {3.11} +\def \thedatum {22.08.2003} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally EMail: lagallyk@acm.org +% Institut fuer Formale +% Methoden der Informatik TEL: +49-711-7816-392 +% Universitaet Stuttgart FAX: +49-711-7816-370 +% Universitaetsstrasse 38 +% D-70569 Stuttgart INFO: arabtex@informatik.uni-stuttgart.de +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% This program can be redistributed and/or modified under the terms +% of the LaTeX Project Public License distributed from CTAN +% archives in directory macros/latex/base/lppl.txt; either +% version 1 of the License, or (at your option) any later version. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \undefined \Lagally \else +\errhelp {ArabTex should be loaded *after* EDMAC (if applicable),^^J +but *before* any non-standard LaTeX packages or options.^^J +Correct your configuration and try again.} +\errmessage {Inconsistent configuration.^^J +The command `\string \undefined' has been redefined by some package.^^J +`\string \undefined' is defined as `\meaning \undefined'.^^J +This might utterly confuse ArabTeX which is therefore not loaded.^^J +}\fi + +\ifx \ar@batcode \undefined \else \expandafter \endinput +\fi % load only once + +\chardef \ar@batcode = \catcode`\@ \catcode`\@ = 11 \chardef \@other = 12 +\chardef \ar@bdqcode = \catcode`\" \catcode`\" = 12 % for german.sty + +%%%%%%%%%%%%%%%%%%%%%%%% auxiliary macros %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \ArabTeX {Arab\TeX } + +\let \xpa \expandafter \def \xxpa {\xpa \xpa \xpa } +\def \xxxpa {\xpa \xxpa \xpa } + +\let \nxp \noexpand \def \nxxp {\nxp \nxp \nxp } +\def \n@xp {\nxp \nxp \nxp } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%% identify yourself %%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\input aconfig.sty % check environment + +\let \a@wlog \wlog \def \wlog #1{\relax } + +\a@ident {arabtex.sty} {\theversion \space ArabTeX main module} {\thedatum } + +\UsePackage {arabaux} % load auxiliary macros + +%%%%%%%%%%%%%%%%%%% various declarations %%%%%%%%%%%%%%%%%%%%% + +\newbox \wordb@x \newbox \lineb@x \newbox \tempb@x +\newtoks \a@tokens \newtoks \sc@next \newtoks \sc@rest +\newtoks \a@@cmd \newtoks \a@@name \newtoks \a@@tail +\newtoks \a@digits \newtoks \a@first \newtoks \a@paren +\newtoks \a@@everypar \newtoks \a@accent +\newskip \a@parindent \newskip \a@parskip +\newwrite \a@@err \newwrite \a@@out +\newcount \tracingarab \def \quiet {\tracingarab = 0 } + +\newif \if@vocals \newif \ifv@c \newif \if@sukun +\newif \if@suk \newif \if@wasla \newif \if@was +\newif \if@high \newif \ifacc@hi \newif \ifa@vmode +\newif \ifa@space \newif \iftr@ns \newif \ifa@oldhmode + +\newif \iftest % \testtrue % for internal use only +\newif \iftest@scan \newif \iftest@trans +\newif \iftest@parse \newif \iftest@write +\newif \iftest@command \newif \iftest@font + +\newif \ifnewfont \newif \ifaRL + +%%%%%%%%%%%%%%%%%%% language specific switches %%%%%%%%%%%%%%%%%%%%% + +%% beware of moving arguments! + +\newif \ifarab % generate the arabic script +\newif \ifshow % display the input text verbatim +\newif \ifligs % set all ligatures active +\newif \ifspread % spread characters by keshide +\newif \iftrans % generate the transliteration + +%newif \ifRL % alias for \ifarab +\let \RLtrue \arabtrue \let \RLfalse \arabfalse + +% internal switches + +\newif \ifaN@alif % tanwin on alif +\newif \ifqur@n % old hamza rules +\newif \ifh@mza % hamza rules, assimilation +\newif \if@ssim % assimilation +\newif \ifiz@fet % izafet rules +\newif \ifyahd@ts % yah with dots +\newif \ifk@fs % final kaf without mark +\newif \iff@rsn % Farsi numerals +\newif \ifk@sra % Kasra always below char + +\newif \ifp@sht % loop chars, e as two dots, diphtongs +\newif \ifurd@ % e as long yah, urdu accent, two hah chars +\newif \ifm@gh % variants of fah, vah and qaf +\newif \ift@rk % special transliteration and coding +\newif \ifk@rd % special transliteration and coding +\newif \ifs@nd % special transliteration and coding +\newif \ifu@gh % special transliteration and coding +\newif \ifm@lay % special transliteration and coding +\newif \ifk@sh % special transliteration and coding + +\newif \ifn@arab % load Arabic default + +%%%%%%%%%%%%%%%%%%% various robust options %%%%%%%%%%%%%%%%%%%%% + +\pdef \yahdots {\yahd@tstrue } \pdef \yahnodots {\yahd@tsfalse } +\pdef \accentshigh {\acc@hitrue } \pdef \accentslow {\acc@hifalse } +\pdef \oldtanwin {\aN@aliffalse } \pdef \newtanwin {\aN@aliftrue } +\pdef \oldhamza {\qur@ntrue } \pdef \newhamza {\qur@nfalse } + +%%%%%%%%%%%%%%%%%%% various defaults %%%%%%%%%%%%%%%%%%%%% + +\def \transtrue {% activate the transliteration +\iftr@ns \else \tr@zdmg \fi \let \iftrans \iftrue } + +\let \tr@zdmg \relax \n@arabtrue + +\def \arab@output {\ifx \a@lang \a@arab \else +\tr@ceoff % switch to Arabic output conventions +\def@arabchars % define character macros for Arabic +\def@arabaccent % define accent macros for Arabic +\def@arabvoc % define vowel parsing routines for Arabic +\def@arabstrut % define strut for Arabic +\tr@zdmg % define standard transliteration +\let \a@write \a@@write \let \a@write@hook \relax +\tr@ceon \let \a@lang \a@arab \fi } + +\def \a@arab {ARABIC} \def \a@lang {NONE} + +%%%%%%%%%%%%%%%%%%% ML-TeX compatibility (br) %%%%%%%%%%%%%%%%%%%%% + +\newcount \arab@charsubdefmax \arab@charsubdefmax \m@ne + +\ifx \charsubdefmax \undefined + \csname newcount\endcsname \charsubdefmax +\else % save actual \charsubdefmax value + \arab@charsubdefmax=\charsubdefmax + % restore it, when outputting a new box in \output routine + \csname newtoks\endcsname \a@@output \a@@output=\output + \output={\charsubdefmax \arab@charsubdefmax \the\a@@output } +\fi + +%%%%%%%%%%%%%%%%%%% language selection %%%%%%%%%%%%%%%%%%%%% + +\def \all@false {% reset language code to default +\k@rdfalse \t@rkfalse \m@ghfalse \urd@false \p@shtfalse +\s@ndfalse \m@layfalse \u@ghfalse \k@srafalse +\h@mzafalse \@ssimfalse \iz@fetfalse \yahd@tsfalse \k@fsfalse \f@rsnfalse +\let \vocalize \v@calize \let \fullvocalize \fullv@calize +\arab@output \catcode`\<=\active } + +% all language selection commands are robust! + +\pdef \setarab {% kaf with mark, hamza rules, yah with dots +\all@false \h@mzatrue \@ssimtrue \yahd@tstrue \oldtanwin +\def \a@defaultfont {\setnash }} + +\pdef \setmaghribi {% variants of fah and qaf +\setarab \m@ghtrue } + +\pdef \setfarsi {% no kaf mark, yah without dots, izafet +\all@false \iz@fettrue \h@mzatrue \@ssimtrue \k@fstrue \f@rsntrue +\newtanwin \def \a@defaultfont {\setnast }} + +\pdef \setkurdish {% no kaf mark, yah without dots, izafet +\setfarsi \k@rdtrue } + +\pdef \setturk {% kaf with mark, yah without dots, izafet, hamza +\all@false \iz@fettrue \h@mzatrue \@ssimtrue \newtanwin \t@rktrue +\def \a@defaultfont {\setnash }} + +\pdef \seturdu {% two hah, long yah, urdu accent, long e, izafet +\all@false \iz@fettrue \h@mzatrue \@ssimtrue \k@fstrue \f@rsntrue +\newtanwin \urd@true \def \a@defaultfont {\setnast }} + +\pdef \setpashto {% pashto loop, e: two dots, izafet, hamza +\all@false \iz@fettrue \h@mzatrue \@ssimtrue \yahd@tstrue \k@fstrue +\newtanwin \p@shttrue \def \a@defaultfont {\setnast }} + +\pdef \setbalut {% temporary +\setpashto} + +\pdef \setsindhi {% switch language specific processing +\seturdu \h@mzafalse \ligsfalse \yahd@tstrue \s@ndtrue }% ALA-LC has dots! + +%\seturdu \h@mzafalse \ligsfalse \yahd@tsfalse \s@ndtrue }% A.Pandey not + +\pdef \setmalay {% p, ng, ny +\seturdu \yahd@tstrue \m@laytrue \def \a@defaultfont {\setnash }} + +\pdef \setuighur {% switch language specific processing +\let \vocalize \novocalize \let \fullvocalize \novocalize +\novocalize \@ssimfalse \h@mzafalse +\u@ghtrue \def \a@defaultfont {\setnash }} + +\pdef \setkashmiri {% Kashmiri language mode +\seturdu \k@shtrue \newarabfont \settrans{kashmiri}} + +\pdef \setverb {% no special processing +\all@false \yahd@tstrue \oldtanwin \def \a@defaultfont {\setnash }} + +\pdef \setnone {\catcode`\<=\@other }% deselect arabic quotations + +\pdef \setquot {\catcode`\<=\active }% select arabic quotations + +\pdef \setnoquot {\catcode`\<=\@other }% deselect arabic quotations + +%%%%%%%%%%%%%%%%%%%%%%% vowelization options %%%%%%%%%%%%%%%%%%%%%%%% + +% must be robust! + +\pdef \novocalize {% no diacritics except explicitly indicated +\@vocalsfalse \v@cfalse \@sukunfalse \@sukfalse } + +\pdef \v@calize {% diacritics for short vowels only +\@vocalstrue \v@ctrue \@sukunfalse \@sukfalse } + +\pdef \fullv@calize {% all diacritics +\@vocalstrue \v@ctrue \@sukuntrue \@suktrue } + +\let \vocalize \v@calize \let \fullvocalize \fullv@calize + +%%%%%%%%%%%%%%%%%%%%%%%% robust font selection %%%%%%%%%%%%%%%%%%%%%%%% + +\def \setarabfont #1{% define font switching + \def \set@arabfont {\tr@ceoff #1\tr@ceon }} + +\pdef \set@nash {\setarabfont \nash } +\pdef \set@nashbf {\setarabfont \nashbf } +\pdef \set@nast {\setarabfont \nastaliq } +\pdef \set@xnash {\setarabfont \xnash } +\pdef \set@xnashbf {\setarabfont \xnashbf } + +% presently no nastaliq font +\def \nastaliq {\nash } + +\def \newarabfont {% switch to new ArabTeX fonts version +\setx@skels % activate new skeletons +\let \setnash \set@xnash +\let \setnashbf \set@xnashbf +\let \setnastaliq \set@xnash +\let \setnast \set@xnash +\newfonttrue \setnash } + +\def \oldarabfont {% switch to old ArabTeX fonts version +\seta@skels % activate old skeletons +\let \setnash \set@nash +\let \setnashbf \set@nashbf +\let \setnastaliq \set@nash +\let \setnast \set@nash +\newfontfalse \setnash } + +\def \a@defaultfont {\setnash } +\def \a@default {\a@defaultfont } +\def \a@normalfont {\a@defaultfont } + +%%%%%%%%%%%%%%%%%%%%%%%% handling of special characters %%%%%%%%%%%%%%% + +\def \a@arab@codes {% save and set special characters +\chardef \spc@de = \catcode`\ \catcode`\ = 10 +\chardef \dqc@de = \catcode`\" \catcode`\" = \@other +\chardef \lsc@de = \catcode`\< \catcode`\< = \@other +\csname originalTeX\endcsname % reset codes if BABEL is present +\arab@charsubdefmax \charsubdefmax \charsubdefmax \m@ne } + +\def \a@unarab@codes {% reset catcodes +\catcode`\ = \spc@de \catcode`\< = \lsc@de \catcode`\" = \dqc@de +\charsubdefmax \arab@charsubdefmax +\csname germanTeX\endcsname }% reset codes if german.sty is present + +\let \arab@codes \a@arab@codes \let \unarab@codes \a@unarab@codes + +%%%%%%%%%%%%%%%%%%%%%%% Arabic environment %%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newif \ifin@arab % inside Arabic environment? + +\def \arabtext {% environment for RTL formatting +\a@parparams % aoutput::a@parparams +\the\arabtext@hook \test@token } + +\newtoks \arabtext@hook + +\arabtext@hook = {% initialize RTL environment +\in@arabtrue \a@parindent \parindent \a@parskip \parskip +\edef \a@@font {\the\font }% +\ifhmode \a@oldhmodetrue \else \a@oldhmodefalse \fi +\a@vmodetrue \a@@everypar {}% +\let \| \break \def \\{\hfil \break }% +\let \emphasize \underbar % define internal commands +\let \a@last@line \short@line \let \a@put@line \put@line +\arab@codes \set@arabfont \@waslafalse \@wasfalse +\def \next@command {\test@special}} + +\def \at@arabtext #1{% extend the initialization +\arabtext@hook \xpa{\the\arabtext@hook #1}} + +\let \at@arabtex \at@arabtext % catch typo + +\def \a@par {% close a RTL paragraph +\ifa@vmode \else % terminate last RTL line +\a@last@line \spreadfalse \a@vmodetrue +\parindent \a@parindent \parskip \a@parskip +\a@resetpar \a@par@hook % aoutput:: +\ifnum \tracingarab > 0 \message {##}\fi +\fi } + +\let \a@@par \a@par % save for \a@@everypar in \a@c@autopar + +\def \endarabtext {% close RTL environment +\a@last@line +\ifa@oldhmode \noindent \fi +\ifnum \tracingarab > 0 \message {||}\fi +\global \@ignoretrue } + +\let \RLtext \arabtext \let \arabtex \arabtext % catch typo +\let \endRLtext \endarabtext \let \endarabtex \endarabtext % catch typo + +%%%%%%%%%%%%%%%%%%%%%%%%%% next token %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@accent = {\lq \rq \cap \MIN \IN \a@tok \shadda \madda \sukun + \raphe \dagesh \mappiq \ldot \rdot \cdot \maqqef \abbr \,} + +{\catcode `\^^a0 12 \gdef \sp@ce {^^a0} +}% catcode ^^a0 + +\a@digits = {0123456789} \a@paren = {()[]} +\a@first = {.^_-'`~,|"=:} % default, scanner dependent + +\def \test@@token {\iftest@command \tracingmacros 0 \fi +\let \a@@word \empty \get@token } + +\def \get@token {\futurelet \next@token \test@space } + +\let \test@token \test@@token % get next token + +\def \test@space {% check for LTR space +\if \space \nxp\next@token \a@@putword \xpa\kill@space +\else \xpa\next@command \fi }% hook for acmd, aedpatch, arabext + +\xpa\def \xpa\kill@space \space {% gobble LTR space +\futurelet \next@token \test@special } + +\xpa\def \xpa\kill@sp@ce \sp@ce {% gobble RTL space +\futurelet \next@token \test@space } + +\def \obey@space {% after control characters +\a@spacefalse \futurelet \next@token \obey@@space } + +\def \obey@@space {% check for space after control character +\if \space \nxp\next@token \a@spacetrue \fi \test@space } + +\def \test@rest {% continue after \control sequence in text +\global\let \test@token \test@@token % global! +\xpa \xpa \xpa \test@token \xpa \a@rest \space } + +%%%%%%%%%%%%%%%%%%%%%% special cases %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\long\def \test@special #1{% check for special cases +\if \bgroup \nxp \next@token % arabic group + \a@@putword \def \next {\arab@group {#1}}\else +\if \relax \nxp #1% % command + \if\is@in@set #1\a@accent % known to scanner + \a@@append {#1}\def \next {\get@token }% + \else % general command + \a@@putword \def \next {\test@command #1}% + \fi \else +\if \sp@ce \nxp \next@token % RTL space + \a@@putword \def \next {\get@token }\else +\ifcat \nxp ~\nxp #1% % active character + \a@@putword \def \next {\test@command #1}\else +\if \nxp <\nxp #1\unarab@codes % Roman insert + \a@@putword \let \next \test@insert \else +\ifx $#1\unarab@codes % Math insert + \a@@putword \let \next \test@math +\else \a@@append {#1}\def \next {\get@token}% % normal case +\fi\fi\fi\fi\fi\fi \next } + +\def \a@@putword {% process characters +\ifx \a@@word \empty \else + \ifarab \putwordb@x {\xpa\arab@item \a@@word \@@ }\fi + \a@spacetrue \xpa\a@showinput \xpa{\a@@word }% + \let \a@@word \empty +\fi } + +\def \a@@append #1{% add character +\a@extend \a@@word {#1}} + +%%%%%%%%%%%%%%%%%%%%%% Arabic word %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \arab@item #1#2\@@ {% split the word if necessary +\ifx \relax #1\relax \else % empty word +\ifx \relax #2\relax \a@rabwrite {#1}\else % single character +\if\is@in@set #1\a@first + \a@rabwrite {#1#2}\else % start symbol: word +\if\is@in@set #1\a@digits + \a@split #1#2\@@ \else % digit: number +\if\is@in@set #1\a@paren + \arab@item #2\@@ \a@rabwrite {#1}\else % parenthesis: test content + \a@rabwrite {#1#2}% % normal case +\fi\fi\fi\fi\fi } + +\def \a@rabwrite #1{% process an Arabic word (called within a group) +\tracingmacros 0 % use \test@XXXtrue for testing ! + \a@scan #1>% % generate the token sequence + \xpa \a@parse \the\a@tokens >% split it into syllables and reverse + \xpa \a@write \the\a@revwd >% output the word +\ifnum \tracingarab > 2 \message {.}\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%% Arabic commands %%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\gdef \a@c@last@ {\\} \gdef \a@c@put@ {\|} \gdef \a@c@par@ {\par } + +{\catcode `\^ 7 \catcode `\^^M=\active \gdef \a@c@M {^^M}} + +{\catcode `\ =\active\gdef\a@c@SP{ }} + +\long \def \test@command #1{% check for special commands +\gdef \a@arg {#1}\let \next \test@token +\ifx \a@arg \a@c@par@ \a@@par \else % \par +\ifx \a@arg \a@c@M \a@@par \else % \obeylines +\ifx \a@arg \a@c@SP \else % \obeyspaces +\ifx \a@arg \a@c@last@ \a@last@line \else % \\ +\ifx \a@arg \a@c@put@ \a@put@line \else % \| + \def \next {\a@command #1}% process the command inside "acmd.sty" +\fi\fi\fi\fi\fi \next } + +%%%%%%%%%%%%%%%%%%%%%%%%%% Arabic groups %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \arab@group #1{% process the next group +\bgroup \initlineb@x +\def \end {\global \setbox1 \hbox {\unhbox \lineb@x}% +\egroup \putwordb@x {\unhbox1 }\a@spacetrue \test@token }% last line +\test@token #1 \end } + +\def \a@sequence #1{% put a sequence of words into a \hbox +\bgroup \transfalse \showfalse \let \end \relax +\let \a@last@line \finish@line \let \a@put@line \break@line +\def \next@command {\test@special}\let \put@word \addt@line +\initlineb@x \test@token #1 \end \box\lineb@x \egroup } + +%%%%%%%%%%%%%%%%%%%%%%%%%% arabic number %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@split #1#2\@@ {% next word starts with digit +\ifx \relax #2\relax \a@rabwrite {#1}\else + \def \a@body {}\def \a@number {#1}\a@splitnumber #2\@@ + \xpa \a@rabwrite \xpa {\a@body }% +\fi } + +%{\catcode `\B =12 \gdef \f@sila {B}} % cf. awrite::ac@other +%{\catcode `\C =12 \gdef \h@phen {C}} + +\def \a@splitnumber #1#2\@@ {% process word starting with digit +\if\is@in@set #1\a@digits \edef \a@number {#1\a@number }\else +\ifx -#1\edef \a@number {\h@phen \a@number }\else +\ifx /#1\edef \a@number {/\a@number }\else +\ifx ,#1\ifx \relax #2\relax + \edef \a@body {\a@body \a@number #1}\def \a@number {}% + \else \edef \a@number {\f@sila \a@number }\fi +\else \edef \a@body {\a@body \a@number #1}\def \a@number {}% +\fi\fi\fi\fi +\ifx \relax #2\relax \edef \a@body {\a@body \a@number}\let \next \relax +\else \def \next {\a@splitnumber #2\@@ }% +\fi \next } + +%%%%%%%%%%%%%%%%%%%%%%%%%% insertions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \test@math #1${% Math insertion in Arabic text +\def \next {#1}% test for display math +\ifx \next \empty \def \next + {\begingroup \endarabtext $$\aftergroup \endgroup + \aftergroup \a@spacefalse \aftergroup \test@token }% +\else \def \next + {\putwordb@x {$#1$}\a@spacetrue \arab@codes \test@token }% +\fi \next } + +\def \test@insert #1>{% Roman insertion in Arabic text +\putwordb@x {\rm #1}\a@spacetrue \arab@codes \test@token } +%\putwordb@x {\a@@font #1}\a@spacetrue \arab@codes \test@token } + +% cf. abidir::\LR + +%%%%%%%%%%%%%%%%%%%%%%%%%% verbatim mode %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@showinput #1{% show verbatim text and transliteration +\ifshow \a@@verb {#1}\fi +\iftrans {\tracingmacros 0 \set@transfont \trans@text #1 \end }\fi } + +\def \a@@verb #1{\def \verb@text {#1}% list input words verbatim + {\tracingmacros 0 \penalty \z@ \tt + \xpa \get@meaning \meaning \verb@text }\ } + +\def \get@meaning #1>{} % strip off macro header + +\def \a@verb #1>{\a@@verb {#1}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% arabic insertion %%%%%%%%%%%%%%%%%%%%%%%% + +{\catcode `\< = \@other % better make sure + +\gdef \a@ins {% arabic insertion or 'less' +\ifmmode \global\let \a@less < +\else \global\let \a@less \arab@insert \leavevmode + \bgroup \arab@codes \set@arabfont \@waslafalse \@wasfalse +\fi \a@less } + +\gdef \<{\protect \a@ins } % explicit command \< + +\catcode`\< = \active % prepare active < +\gdef <{\protect \a@ins } +} % catcode < + +\def \break@line {% \| inside insertion +\box\lineb@x \break \initlineb@x } + +\def \finish@line {% \\ inside insertion +\box\lineb@x \hfil \break \initlineb@x } + +\def \arab@insert #1>{% Arabic insertion in Roman text +\ifshow \a@@verb {#1}\fi % verbating listing +\ifarab \a@sequence {#1} \fi % arabic writing +\iftrans \set@transfont \trans@text #1 \end \/\fi +\ifnum \tracingarab > \@ne \message {>}\fi +\unskip \egroup } + +% cf. abidir::\LR + +%%%%%%%%%%%%%%%%%%%%%%%%% transliteration %%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \settransfont #1{% set transliteration style or \style +\if \relax \nxp#1\relax \def \set@transfont + {\tr@ceoff #1\csname selectfont\endcsname \tr@ceon }% +\else \def \set@transfont + {\tr@ceoff \csname #1\endcsname + \csname selectfont\endcsname \tr@ceon }% +\fi} + +\settransfont {\rm \it }% standard font for transliteration + +\long \def \trans@text #1{% check for special cases +\leavevmode \def \next {\trans@text }% +\if\is@in@set {#1}\a@first \def \next {\trans@elem #1}\else % normal case +\ifx \end #1\let \next \relax \else +\ifx \par #1\endgraf \else +\ifx \\#1\hfil \break \else +\ifx \|#1\hfil \break \else +\ifx \emphasize #1\def \next {\a@emp }\else +\if \relax \nxp #1\relax % ignore control sequences +\else \def \next {\trans@elem #1}% normal case +\fi\fi\fi\fi\fi\fi\fi \next } + +\def \a@emp #1{\trans@text #1 } + +\def \trans@elem #1 {% transliterate next word of text +\a@transword {#1}\trans@text } + +\def \a@transword #1{% transliterate a word +{\tracingmacros 0 \a@scan #1>\xpa \a@trans \the\a@tokens >\ }} + +\ifx \a@trans \undefined % atrans.sty not yet loaded +\def \a@trans #1>{\gdef \a@trans ##1>{\relax }% default +\message {`atrans.sty' not loaded; transliteration ignored.}} +\fi + +%%%%%%%%%%%%%%%%%%%%%%%%% initialization %%%%%%%%%%%%%%%%%%%%%%%% + +\def \startarab {% set default initializations +\newarabfont +\a@normalfont % default font +\transfalse \arabtrue \vocalize \ligsfalse +\tracingarab = 0 \setnone } % \catcode < := 12 for user macros + +%%%%%%%%%%%%%%%%%%%%%%% load the later passes %%%%%%%%%%%%%%%%%%%%%% + +\UsePackage {acmd} % load the command processor module +\UsePackage {afonts} % load the default fonts +\UsePackage {ascan} % generate a token sequence +\UsePackage {aparse} % parse it into syllables and reverse them +\UsePackage {awrite} % generate the basic writing +\UsePackage {aligs} % modify for any ligatures +\UsePackage {aoutput} % generate output lines +\UsePackage {abidir} % bidirectional linebreaking +\UsePackage {atrans} % generate the transliteration +\UsePackage {alatex} % extensions for LaTeX +\UsePackage {abjad} % abjad numerals +\ifx \edmacloaded \relax + \UsePackage {aedpatch} \fi % patches for EDMAC ? +\ifx \undefined \peek@token \else +\ifx \undefined \bbl@test@token + \UsePackage {arababel} \fi\fi % patches for old BABEL ? +\ifx \CJK \undefined \else + \UsePackage {acjk} \fi % patches for CJK ? +\UsePackage {apatch} % any last minute corrections + +%%%%%%%%%%%%%%%%%%%%%%% statistics %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \arab@stat {{\newlinechar `$ +\wlog {$Parameterless commands valid in Arabic mode:} +\wlog {\space (\the\a@@listzero )} +\wlog {$Commands with 1 parameter valid in Arabic mode:} +\wlog {\space (\the\a@@listone )} +\wlog {$Commands with 2 parameters valid in Arabic mode:} +\wlog {\space (\the\a@@listtwo )} +\wlog {$User defined commands valid in Arabic mode:} +\wlog {\space (\the\a@@listreg )}}} + +\let \arabstat \arab@stat + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% here we go %%%%%%%%%%%%%%%%%%%%%%% + +\let \wlog \a@wlog + +\startarab \a@report + +\a@message {... now be patient ... } + +\catcode`\" = \ar@bdqcode \catcode`\@ = \ar@batcode + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/tex/latex/arabtex/arabtoks.sty b/Master/texmf-dist/tex/latex/arabtex/arabtoks.sty new file mode 100644 index 00000000000..b75e68f894d --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/arabtoks.sty @@ -0,0 +1,146 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% arabtoks.sty +% ArabTeX +% extra \CS token definitions for Arabic +% Version 17.07.1999 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@ident {arabtoks.sty} {3.09 ArabTeX CS token definitions } {17.07.1999} + +% extra \CS token definitions for Arabic +% pattern: skeleton, modifier +\def \a@a {\sk@@ , 1 } % reserved for vowel +\def \a@b {\sk@b , 0 } % bah without dot +\def \a@c {\sk@hh , 3 } % gim with three dots +\def \a@d {\sk@d , 8 } % dal with ttah +\def \a@e {\sk@@ , 2 } % reserved for vowel +\def \a@f {\sk@f@s , 0 } % fah without dot +\def \a@g {\sk@g@p , 0 } % gaf with loop +\def \a@h {\sk@h@s ,11 } % urdu hah +\def \a@i {\sk@@ , 3 } % reserved for vowel +\def \a@j {\sk@h@s , 2 } % urdu hah with 2 dots .. +\def \a@k {\sk@k@s , 0 } % kaf without mark +\def \a@l {\sk@l ,12 } % kurdish lam +\def \a@m {\sk@n@p , 1 } % nun with loop, 1 dot above +\def \a@n {\sk@n , 0 } % nun without dot +\def \a@o {\sk@@ , 4 } % reserved for vowel +\def \a@p {\sk@ain , 3 } % `ain with three dots +\def \a@q {\sk@r@p , 0 } % rah with loop +\def \a@r {\sk@r , 8 } % rah with ttah +\def \a@s {\sk@s ,10 } % sin with two dots +\def \a@t {\sk@b , 8 } % tah with ttah +\def \a@u {\sk@@ , 5 } % reserved for vowel +\def \a@v {\sk@b@p , 2 } % tah with loop +\def \a@w {\sk@w ,19 } % waw with damma (Uighur) +\def \a@x {\sk@w , 1 } % waw with dot (Malay) +\def \a@y {\sk@y , 6 } % yah with three dots below +\def \a@z {\sk@r@s , 0 } % Pashto rah with two dots + +\def \a@A {\sk@@ , 6 } % reserved for vowel +\def \a@B {\sk@h@s , 7 } % wavy hah with hamza +\def \a@C {\sk@hh , 2 } % hhah with two dots above +\def \a@D {\sk@d , 4 } % dal with dot below +\def \a@E {\sk@y ,14 } % kurdish yah +\def \a@F {\sk@f@s , 4 } % fah with dot below +\def \a@G {\sk@hh ,15 } % hhah with two vert dots above +\def \a@H {\sk@h@m , 0 } % hah marbuta ! +\def \a@I {\sk@@ , 7 } % reserved for vowel +\def \a@J {\sk@g@ps , 0 } % gaf with ring and bar +\def \a@K {\sk@k@s , 1 } % kaf with dot +\def \a@L {\sk@k , 1 } % kaf with dot and mark +\def \a@M {\sk@g@s , 3 } % gaf with 3 dots above +\def \a@N {\sk@n@p , 0 } % nun with loop +\def \a@O {\sk@@ , 8 } % reserved for vowel +\def \a@P {\sk@ain ,10 } % ghain wit 1 dot above, 1 below +\def \a@Q {\sk@f@s , 1 } % fah with one dot above +\def \a@R {\sk@r ,13 } % kurdish rah +\def \a@S {\sk@s , 2 } % sin with two dots +\def \a@T {\sk@b ,15 } % tah with two vert. dots above +\def \a@V {\sk@f@s , 6 } % fah with three dots below +\def \a@U {\sk@@ , 9 } % reserved for vowel +\def \a@W {\sk@w ,12 } % kurdish waw with dot +\def \a@X {\sk@w , 3 } % waw with three dots +\def \a@Y {\sk@y , 9 } % yah with two vert. dots below +\def \a@Z {\sk@s ,15 } % sin with two dots vertical + +\def \a@aa {\sk@a , 0 } % alif as consonant (Uighur) +\def \a@ab {\sk@b , 9 } % bah with 2 dots below : +\def \a@ac {\sk@b ,17 } % bah with 4 dots above :: +\def \a@ad {\sk@d , 2 } % dal with 2 dots above .. +\def \a@ae {\sk@d ,16 } % dal with 3 dots above v +\def \a@af {\sk@d , 5 } % dal with 2 dots below .. +\def \a@ag {\sk@hh , 5 } % gim with 2 dots below .. +\def \a@ah {\sk@hh , 9 } % gim with 2 dots below : +%\def \a@ai {\sk@free, 0 } % unassigned +\def \a@ai {\sk@Q , 0 } % isolated hamza} +\def \a@aj {\sk@hh ,18 } % gim with 4 dots below :: +\def \a@ak {\sk@g@s , 9 } % gaf with 2 dots below : +\def \a@al {\sk@g@s , 2 } % gaf with 2 dots above .. +\def \a@am {\sk@n , 3 } % nun with 3 dots ^ +\def \a@an {\sk@n , 8 } % nun with small ttah +%\def \a@ao {\sk@free, 0 } % unassigned +\def \a@ao {\sk@m@si, 0 } % Sindhi final mim +\def \a@ap {\sk@b ,18 } % bah with 4 dots below :: +\def \a@aq {\sk@f@s ,17 } % fah with 4 dots :: +\def \a@ar {\sk@r ,17 } % rah with 4 dots :: +\def \a@as {\sk@y@ps, 0 } % yah bari with ring +\def \a@at {\sk@b ,16 } % bah with 3 dots above v +%\def \a@au {\sk@free, 0 } % unassigned +\def \a@au {\sk@free, 0 } % unassigned +\def \a@au {\sk@w ,25 } % waw with roof +\def \a@av {\sk@w , 2 } % waw with 2 dots +\def \a@aw {\sk@w ,20 } % waw with alif (Uighur) +\def \a@ax {\sk@k@w , 0 } % wide kAf +\def \a@ay {\sk@y@p , 7 } % yah bari with hamza +\def \a@az {\sk@y ,12 } % alif maqsura with bow + +\def \a@aA {\sk@d@p , 0 } % dal with loop +\def \a@aB {\sk@d ,21 } % dal with ttah and dot below +\def \a@aC {\sk@d , 3 } % dal with 3 dots above +\def \a@aD {\sk@d ,17 } % dal with 4 dots above :: +\def \a@aE {\sk@hh ,23 } % gim with 1 dot above, 3 below +\def \a@aF {\sk@r ,12 } % rah with bow +\def \a@aG {\sk@r , 4 } % rah with dot below +\def \a@aH {\sk@r , 2 } % rah with 2 dots .. +\def \a@aI {\sk@s ,24 } % sin with 3 dots above, 1 below +\def \a@aJ {\sk@s , 6 } % sin with 3 dots below v +\def \a@aK {\sk@s ,22 } % sin with 3 dots above, 3 below +\def \a@aL {\sk@ss , 5 } % ssad with 2 dots below +\def \a@aM {\sk@ss , 3 } % ssad with 3 dots above +\def \a@aN {\sk@ss ,10 } % ssad with 1 dot above, 1 below +\def \a@aO {\sk@tt , 3 } % ttah with 3 dots above +\def \a@aP {\sk@f@s ,10 } % fah with 1 dot above, 1 below +\def \a@aQ {\sk@q@s , 1 } % qaf with 1 dot above +\def \a@aR {\sk@q@s , 3 } % qaf with 3 dots above +\def \a@aS {\sk@k , 6 } % kaf with 3 dots below +\def \a@aT {\sk@g@s , 5 } % gaf with 2 dots below .. +\def \a@aU {\sk@w@r , 0 } % waw with ring +\def \a@aV {\sk@w@b , 0 } % waw with bar +\def \a@aW {\sk@l , 1 } % lam with 1 dot above +\def \a@aX {\sk@l , 3 } % lam with 3 dots above +\def \a@aY {\sk@l , 6 } % lam with 3 dots below +\def \a@aZ {\sk@n ,10 } % nun with 1 dot above, 1 below + +\def \a@Za {\sk@@ ,10 } % reserved for vowel +\def \a@Ze {\sk@@ ,11 } % reserved for vowel +\def \a@Zi {\sk@@ ,12 } % reserved for vowel +\def \a@Zo {\sk@@ ,13 } % reserved for vowel +\def \a@Zu {\sk@@ ,14 } % reserved for vowel +\def \a@Zz {\sktt , 1 } % zzah with variant transliteration +\def \a@ZZ {\sk@@ , 0 } % illegal + +\def \a@ZA {\sk@@ ,15 } % reserved for vowel +\def \a@ZE {\sk@@ ,16 } % reserved for vowel +\def \a@ZI {\sk@@ ,17 } % reserved for vowel +\def \a@ZO {\sk@@ ,18 } % reserved for vowel +\def \a@ZU {\sk@@ ,19 } % reserved for vowel + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + diff --git a/Master/texmf-dist/tex/latex/arabtex/arabwin.sty b/Master/texmf-dist/tex/latex/arabtex/arabwin.sty new file mode 100644 index 00000000000..7143b3bf6f1 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/arabwin.sty @@ -0,0 +1,90 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%% arabwin.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% arabwin.sty based on iso88596.sty +% Scanner module for the encoding used by Windows with Arabic support +% how to install it: +% with LaTeX2e, say "\usepackage {arabwin}" +% with LaTeX 2.09, add the style option "arabwin" +% with Plain TeX, say "\input arabwin.sty" +% how to activate it: say "\setcode {arabwin}" +% 10.04.1997 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Isam G. Ishaq +% (isam0732@mailszrz.zrz.TU-Berlin.DE) +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\UsePackage {asmo449} \catcode `\@ = 11 +\a@ident {arabwin.sty} {3.05 Arabic Windows encoding} {10.04.1997} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \win@scan #1>{% modified scanner call: token sequence -> \a@tokens +\iftest@scan \ifshow \else \lowercase {\a@verb #1>}\fi +\tracingmacros = 1 \fi +\gdef \a@rest {}\a@tokens = {}\lowercase {\sc@beg #1\@ \@@ }% transform +\iftest@scan \tracingmacros = 0 % +\expandafter \a@verb \expandafter (\the\a@tokens )>\fi } + +\def \win@endscan \@@ {\gdef \a@scan {\win@scan }} + +\def \win@back #1\@ \@@ {% end scanning, push back into input +\gdef \a@scan {\a@@scan }% +\gdef \a@rest {#1 \reset@win }% +\global\let \test@token \test@rest } + +\def \reset@win {% after pushback +\gdef \a@scan {\win@scan }% +\gdef \sc@endscan {\win@endscan }} + +\def \a@c@reset@win {% after pushback +\reset@win \test@token } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newcount \win@s \newcount \win@d + +\def \awin@loop #1#2#3{% transform characters +\win@s = #1 \win@d = #2 \loop \lccode \win@s = \win@d +\advance \win@d 1 \advance \win@s 1 \ifnum \win@d < #3 \repeat } + +\def \set@awin {% substitute scanner for Windows with Arabic support +\awin@loop {160}{32}{44} % arabic space (NBSP) +\awin@loop {161}{44}{45} % arabic comma +\awin@loop {173}{45}{46} % soft hyphen +\awin@loop {186}{59}{60} % arabic semicolon +\awin@loop {191}{63}{87} +\awin@loop {216}{87}{91} +\awin@loop {220}{96}{100} +\awin@loop {225}{100}{101} % lam +\awin@loop {227}{101}{105} +\awin@loop {236}{105}{107} +\awin@loop {240}{107}{111} +\awin@loop {245}{111}{113} +\awin@loop {248}{113}{114} +\awin@loop {250}{114}{115} + +\win@d = 193 \win@s = 225 +\loop \catcode \win@s = 11 \catcode \win@d = 11 % make letters +\advance \win@d 1 \advance \win@s 1 \ifnum \win@d < 224 \repeat + +\catcode 192 = 10 \catcode 255 = 15 \catcode 220 = 12 + +\set@asmo \global\let \a@scan \win@scan +\a@first = {^^dc} +\let \sc@back \win@back \let \sc@endscan \win@endscan +\message {input encoding set to Windows cp1256 conventions}} + +\xpa \def \xpa \sc@table \xpa {\sc@table % add the CP 1256 encoding +arabwin\set@awin cp1256\set@awin } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\message {scanner for Arabic Windows encoding (CP1256) installed.} +\setcode {arabwin} + +\catcode `\@ = \asmoatcode % !! +\endinput +%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/Master/texmf-dist/tex/latex/arabtex/ascan.sty b/Master/texmf-dist/tex/latex/arabtex/ascan.sty new file mode 100644 index 00000000000..94786041904 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/ascan.sty @@ -0,0 +1,502 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%% ascan.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% ascan.sty +% ArabTeX +% Standard Scanner +% 22.08.2003 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Formale Methoden der Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@ident {ascan.sty} {3.11 standard ZDMG input encoding } {22.08.2003} + +\chardef \testatcode = \catcode`\@ \catcode`\@ = 11 + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% dynamic definitions for Arabic +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\gdef \seta@codes {% define standard \ArabTeX input coding +\globaldefs=1 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def \sc@@ {@} % illegal character +\def \sc@a {a} +\def \sc@b {b} +\def \sc@c {\ift@rk G\else \ifs@nd J\else + \ifm@lay J\else c\fi\fi\fi } +\def \sc@d {d} +\def \sc@e {e} +\def \sc@f {\ifm@gh \n@xp \a@F \else f\fi } +\def \sc@g {\ifm@lay \n@xp \a@K \else g\fi } +\def \sc@h {h} +\def \sc@i {i} +\def \sc@j {\ift@rk j\else G\fi } +\def \sc@k {\ifs@nd \n@xp \a@ax \else + \ifk@fs \n@xp \a@k \else k\fi\fi } +\def \sc@l {l} +\def \sc@m {m} +\def \sc@n {n} +\def \sc@o {o} +\def \sc@p {\ifm@lay v\else p\fi } +\def \sc@q {\ifm@gh \n@xp \a@Q \else q\fi } +\def \sc@r {r} +\def \sc@s {s} +\def \sc@t {t} +\def \sc@u {u} +\def \sc@v {\ifm@gh \n@xp \a@V \else \ift@rk w\else + \ifm@lay \n@xp \a@x \else v\fi\fi\fi } +\def \sc@w {\ifu@gh \n@xp \a@X \else w\fi } +\def \sc@x {X} +\def \sc@y {y} +\def \sc@z {z} +\def \sc@A {A} +\def \sc@B {B} +\def \sc@C {@} +\def \sc@D {@} +\def \sc@E {E} +\def \sc@F {@} +\def \sc@G {\n@xp \a@g } % Pashto gaf with ring +\def \sc@H {\n@xp \a@H } % Heh marbouta +\def \sc@I {I} +\def \sc@J {@} +\def \sc@K {K} +\def \sc@L {@} +\def \sc@M {M} +\def \sc@N {N} +\def \sc@O {O} +\def \sc@P {@} +\def \sc@Q {@} +\def \sc@R {@} +\def \sc@S {\n@xp \a@S } +\def \sc@T {T} +\def \sc@U {U} +\def \sc@V {v} +\def \sc@W {W} +\def \sc@X {@} +\def \sc@Y {Y} +\def \sc@Z {@} +\a@digits = {0123456789} +\a@paren = {()[]} +\global\a@first = {.^_-'`~,|"=:\a@tok \lq \rq \cap \MIN \IN } +\globaldefs=0 } +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +}% end of dynamic definitions for Arabic +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@@scan #1>{% standard scanner call: token sequence -> \a@tokens +\iftest@scan \tracingmacros = 1 +\ifshow \else \a@verb #1>\fi\fi +\global\def \a@rest {}\global\a@tokens = {}\sc@beg #1\@ \@@ +\iftest@scan \tracingmacros = 0 % +\xpa \a@verb \xpa (\the\a@tokens )>\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +{\arab@codes % because of special characters + +\gdef \set@next #1{\def \next {#1}} + +\gdef \t@b@g #1{% start \ArabTeX scanner + \def \next {\sc@word {#1}}\def \sc@char {@}% +\ifcat a\nxp #1\else % letter +\apply \set@next \tocase #1\of +{ \@{\sc@endscan } % finished + '{\t@rquote } + `{\t@lquote } +\default {\sc@word {#1}} +}\endcase +\fi \next } + +\gdef \t@w@rd #1{% transform input into internal notation + \def \next {\sc@word }% +\ifx #1\@\def \next {\sc@endscan }\else % finished +\ifcat \nxp #1a% + \ifx #1a\def \next {\t@aa }\else % test for aa -> A + \ifx #1n\def \next {\t@nn }\else % test for ng, ny + \edef \sc@char {\csname sc@#1\endcsname }% letter + \ifx \sc@char \relax \def \sc@char {#1}% undef letter + \fi + \ifs@nd \edef \next {\nxp \t@asp {\sc@char }}\else \sc@put + \fi + \fi\fi \else % other character +\ifcat \nxp #1\relax \def \next {\t@cs #1}\else % control sequence +\ifx #1'\def \next {\t@hamza }\else % hamza + \def \sc@char {#1}% +\apply \set@next \tocase #1\of +{~\@ldtie{\t@tie } + .{\t@dot } + ,{\t@comma } + -{\t@minus } + `{\t@ain } + "{\t@dquote } + :={\t@colon } + ^{\t@up } + _{\t@down } + |{\t@bar } +\default {\t@w@@rd {#1}} +}\endcase +\fi\fi\fi\fi \next } + +\gdef \t@w@@rd #1{% default branch +\ifcat \nxp #1\nxp ~\def \next {\t@cs #1}% % active character +\else \def \sc@char {\nxp #1}% % other character + \ifs@nd \edef \next {\nxp \t@asp {\sc@char }}% + \else \sc@put \def \next {\sc@word }% + \fi +\fi \next } + +} % \arab@codes + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \set@char@next #1#2{\def \sc@char {#1}\def \next {#2}} + +\def \set@@c@n #1{\set@char@next #1} + +\def \t@cs #1{% control sequence within a word; push back +\apply \set@@c@n \tocase #1\of +{ \a@tok \MIN \IN \cap + \shadda \madda \sukun + \raphe \dagesh \mappiq \ldot \rdot \cdot + {{#1} {\csname t@\xpa\@gobble\string #1\endcsname }} + \maqqef {{B} {\sc@put \sc@word }} + \, {{"|} {\sc@put \sc@word }} + \lq {{`} {\sc@put \sc@word }} + \c@p {{\nxp \cap } {\sc@put \sc@word }} + \abbr {{'} {\sc@put \sc@word }} + \rq {{'} {\sc@put \sc@back }} +\default {{#1} {\sc@back #1}}% +}\endcase \next } + +\def \tdef #1{% define robust ArabTeX scanner command +\def #1{\nxp #1}% +\xpa\def \csname t@\xpa\@gobble\string #1\endcsname } + +\tdef \a@tok (#1){% direct substitution +\global \a@tokens \xpa {\the\a@tokens #1}\sc@word } + +\tdef \MIN {\def \sc@char {\nxp\a@ao \nxp\a@Zi }\sc@put \sc@word } + +\tdef \IN {\def \sc@char {\nxp\a@ai \nxp\a@Zi }\sc@put \sc@word } + +\tdef \shadda {\sc@dep {\nxp \a@Ze }} +\tdef \madda {\sc@dep {\nxp \a@ZE }} +\tdef \sukun {\sc@dep {\nxp \a@e }} +\tdef \raphe {\sc@dep {\nxp \a@Zo }} +\tdef \dagesh {\sc@dep {\nxp \a@Zu }} +\tdef \mappiq {\sc@dep {\nxp \a@Zu }} +\tdef \ldot {\sc@dep {\nxp \a@Za }} +\tdef \rdot {\sc@dep {\nxp \a@Ze }} + +\def \t@cdot {\sc@dep {\nxp \a@Zi }} +\def \t@cap #1{\sc@word \c@p #1} % kill braces on #1 + +\def \sc@@back #1\@ \@@ {% end scanning, push back into input +\global\def \a@rest {#1}\global\let \test@token \test@rest } + +\def \sc@@endscan \@@ {\global\let \a@scan \a@@scan } + +\def \sc@dep #1{% deposit tokens and proceed +\def \sc@char {#1}\sc@put \sc@word } + +\def \sc@put {% deposit a symbol % no group! +\edef \temp {\global \nxp \a@tokens % \temp + {\the\a@tokens \sc@char }}\temp } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \t@rquote #1#2{% context '#1#2 , initial +\ifh@mza \ifx #1\@ \def \sc@char {QQ}\sc@put % '> + \def \next {\sc@endscan #2}\else + \ifx #1'\ifx #2\@ \def \sc@char {'}\sc@put + \def \next {\sc@word #2}% ''> + \else \def \sc@char {QQ}\sc@put \def \sc@char {Q}% + \def \next {\sc@word '#2}% ''x + \fi + \else \def \sc@char {QQ}\sc@put \def \sc@char {Q}% + \def \next {\sc@word #1#2}% 'xy + \fi\fi +\else \ifu@gh \def \sc@char {QY}\sc@put + \else \def \sc@char {Q}\sc@put + \fi \def \next {\sc@word #1#2}% +\fi \next } + +\def \t@hamza #1{% context \sc@char ' #1 +\ifh@mza % not verbatim mode + \ifx #1'\let \next \t@hamza@ii \else + \ifcat -\sc@char \def \sc@char {QQ}\sc@put + \else \xpa\def \xpa\sc@char \xpa{\xpa Q\sc@char }\sc@put + \fi \def \sc@char {Q}\def \next {\sc@word #1}% + \fi +\else % verbatim mode + \ifx #1'\def \sc@char {'}\sc@put \let \next \sc@word + \else \ifu@gh \def \sc@char {QY}\sc@put + \else \def \sc@char {Q}\sc@put + \fi \def \next {\sc@word #1}% + \fi +\fi \next } + +\def \t@hamza@ii #1#2{% context \sc@char '' #1 #2 +\ifcat \nxp #1a% + \edef \sc@toks {\the\a@tokens Q\sc@char QQ}% + \global \a@tokens =\xpa {\sc@toks }\def \sc@char {Q}% +\else +\ifcat \nxp #2a% + \edef \sc@toks {\the\a@tokens Q\sc@char QQ}% + \global \a@tokens =\xpa {\sc@toks }\def \sc@char {Q}% +\else \def \sc@char {'}\sc@put % right quote +\fi\fi \sc@word #1#2} + +\def \t@dquote #1{% verbatim +\ifx #1'\ifh@mza \def \sc@char {"QQ}\sc@put + \else \def \sc@char {"Q}\sc@put + \fi \def \sc@char {Q}\let \next \sc@word +\else \def \sc@char {"}\sc@put \def \next {\sc@word #1}% +\fi \next } + +\def \t@ain {% ` = `ain +\def \sc@char {P}\sc@put \sc@word } + +\def \t@lquote #1#2{% context `#1#2 at the beginning of a word +\ifx #1`\def \sc@char {`}\sc@put \def \next {\sc@word #2}% ``x +\else \def \sc@char {P}\sc@put \def \next {\sc@word #1#2}% `xy +\fi \next } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \t@aa #1{% aa -> A +\edef \@tempa {\sc@char }% +\xpa\ifx \@tempa Q\def \next {\sc@word #1}\def \sc@char {a}\else +\ifx #1a\def \sc@char {A}\def \next {\sc@word }\else + \edef \sc@char {\sc@a }\def \next {\sc@word #1}% +\fi\fi \sc@put \next } + +\def \t@nn #1{% after n + \def \sc@char {n}\def \next {\sc@word }% +\ifm@lay \ifx #1g\def \sc@char {\nxp \a@p }\else + \ifx #1y\def \sc@char {\nxp \a@am }\else + \def \next {\sc@word #1}% + \fi\fi +\else \def \next {\sc@word #1}% +\fi \sc@put \next } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \t@minus #1{% after - +\ifx #1-\def \sc@char {B}\def \next {\sc@word }\else + \def \sc@char {-}\def \next {\sc@word #1}% +\fi \sc@put \next } + +\def \t@bar #1{% after | +\ifx #1|\def \next {\sc@word \,}\else + \def \sc@char {|}\sc@put \def \next {\sc@word #1}% +\fi \next } + +\def \set@char #1{\def \sc@char {#1}} + +\def \t@tail #1#2{% default exit +\ifx \sc@char \empty \set@char {#1}\def \next {\sc@put \sc@word #2}% +\else \def \next {\edef \temp {\nxp \t@asp {\sc@char }}\temp }% +\fi \next } + +\def \t@dot #1{% after . +\apply \set@char \tocase #1\of +{ a{\ifk@sh \nxp \a@Za \else \nxp \a@A \fi } + b{\nxp \a@b } + c{c} + d{D} + e{\nxp \a@I } + f{\nxp \a@f } + g{R} + h{H} + i{\nxp \a@e } + k{\ift@rk q\else \nxp \a@k \fi } + l{\nxp \a@l } + n{\ifp@sht \nxp \a@m \else + \ifs@nd \nxp \a@an \else \nxp \a@n \fi\fi } + o{\ifk@sh \nxp \a@Zo \else \nxp \a@O \fi } + p{\nxp \a@f } + r{\ifs@nd \nxp \a@ar \else \nxp \a@R \fi } + s{S} + t{V} + u{\ifk@sh \nxp \a@Zu \else \nxp \a@U \fi } + v{\nxp \a@b } + y{\nxp \a@ZI } + z{Z} + A{\nxp \a@ZA } + O{\nxp \a@ZO } + U{\nxp \a@ZU } + Z{\nxp \a@Zz } + T{Y} +}\endcase \t@tail .#1} + +\def \t@comma #1{% after , +\apply \set@char \tocase #1\of +{ a{a\nxp \a@H } + A{\nxp \a@a \nxp \a@H } + c{\ift@rk J\else \nxp \a@c \fi } + d{\ifp@sht \nxp \a@aA \else + \ifs@nd \nxp \a@D \else \nxp \a@d \fi\fi } + e{e\nxp \a@H } + g{\nxp \a@L } + h{\nxp \a@h } + n{\ifs@nd \nxp \a@an \else \nxp \a@M \fi } + r{\ifp@sht \nxp \a@q \else + \ifs@nd \nxp \a@ar \else \nxp \a@r \fi\fi } + s{\ift@rk x\else \nxp \a@s \fi } + t{\ifp@sht \nxp \a@v \else + \ifs@nd \nxp \a@at \else \nxp \a@t \fi\fi } + z{\ift@rk D\else \nxp \a@z \fi } +}\endcase \t@tail ,#1} + +\def \t@up #1{% after ^ +\apply \set@char \tocase #1\of +{ c{J} + d{\nxp \a@D } + e{\nxp \a@E } + g{\ift@rk \nxp \a@p \else \ifk@rd R\else + \ifu@gh R\else G\fi\fi\fi } + l{\nxp \a@l } + n{\ifs@nd \nxp \a@ag \else \ifm@lay M\else K\fi\fi } + s{x} + u{U} + z{j} +}\endcase \t@tail ^#1} + +\def \t@down #1{% after _ +\apply \set@char \tocase #1\of +{ a{\nxp \a@a } + A{Y} + d{F} + e{\nxp \a@E } + h{X} + i{\nxp \a@i } + k{R} + o{\nxp \a@o } + O{\nxp \a@O } + s{C} + t{C} + u{\nxp \a@u } + U{\nxp \a@o } + z{F} +}\endcase \t@tail @#1} + +\gdef \t@colon #1{% after = or : +\apply \set@char \tocase #1\of +{ a{\ifu@gh \nxp \a@H \else \nxp \a@A \fi } + b{\nxp \a@ab } + d{\nxp \a@ae } + e{\nxp \a@I } + g{\nxp \a@ak } + i{\nxp \a@I } + j{\nxp \a@ah } + I{\nxp \a@e } + n{\nxp \a@al } + o{\ifu@gh \nxp \a@W \else \nxp \a@O \fi } + s{\nxp \a@aJ } + O{\nxp \a@P } + t{V} + u{\ifu@gh \nxp \a@aw \else \nxp \a@U \fi } + U{\nxp \a@w } + z{D} +}\endcase \t@tail :#1} + +\gdef \t@colon #1{% after = or : +\apply \set@char \tocase #1\of +{ a{\nxp \a@A } + b{\nxp \a@ab } + d{\nxp \a@ae } + e{\nxp \a@I } + g{\nxp \a@ak } + i{\nxp \a@I } + j{\nxp \a@ah } + I{\nxp \a@e } + n{\nxp \a@al } + o{\nxp \a@O } + s{\nxp \a@aJ } + O{\nxp \a@P } + t{V} + u{\nxp \a@U } + U{\nxp \a@w } + z{D} +}\endcase \t@tail :#1} + +\def \t@tie #1{% after ~ +\apply \set@char \tocase #1\of +{ l{\nxp \a@l } + g{\nxp \a@p } + n{\ifs@nd \nxp \a@ag \else \ifm@lay M\else K\fi\fi } +}\endcase \t@tail ^#1} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \t@asp #1#2{% test for hah +\ifs@nd \ifx #2h\def \next {\t@@asp {#1}}% + \else \def \next {\sc@put \sc@word #2}% + \fi +\else \def \next {\sc@put \sc@word #2}% +\fi \next } + +\def \t@@asp #1{% test for aspiration +\apply \set@char \tocase #1\of +{ b{\nxp \a@ap } + c{J} + d{\nxp \a@ad } + p{\nxp \a@aq } + k{\ifs@nd \nxp \a@k \else X\fi } + t{\nxp \a@ac } + J{\nxp \a@aj } + \a@D{\nxp \a@af } + \a@at{\nxp \a@T } + \a@ax{\nxp \a@k } +}\endcase +\ifx \empty \sc@char \def \sc@char {\nxp #1}\def \next {\sc@word h}% +\else \def \next {\sc@word }% +\fi \sc@put \next } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% preparations for additional scanners +\def \setcode #1{% switch the input encoding +\lowercase {\def \sc@code {#1}% +\ifx \sc@code \sc@oldcode \else +\begingroup \def \sc@lookup ##1#1##2##3\@@ {\endgroup ##2}% +\xpa \sc@lookup \sc@table #1\sc@default \@@ \fi }% +\let \sc@oldcode \sc@code } + +\pdef \stdcode #1{% prepare temp switch to standard +\let \a@oldcode \sc@code \sc@standard \test@token #1 \@stdcode } + +\def \a@c@@stdcode {\xpa\setcode\xpa{\a@oldcode }} + +\all@w@ne \stdcode +\xpa \all@w@ne \csname stdcode \endcsname + +\def \sc@table {% table of code names +standard\sc@standard arabtex\sc@standard } + +\def \sc@restore {% restore scanner defaults +\let \vocalize \v@calize \let \fullvocalize \fullv@calize +\let \sc@beg \t@b@g \let \sc@word \t@w@rd +\let \sc@back \sc@@back \let \sc@endscan \sc@@endscan +\let \a@scan \a@@scan \seta@codes +\let \arab@codes \a@arab@codes +\let \unarab@codes \a@unarab@codes +} + +\def \sc@standard {\sc@restore % standard encoding +\ifx \sc@code \sc@oldcode \else +\a@message {input encoding set to ArabTeX standard conventions.}\fi } + +\def \sc@default {\sc@restore % unknown encoding +\a@message {unknown input encoding `\sc@code'; +ArabTeX standard encoding is assumed.}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@message {scanner for code `arabtex' installed.} +\let \sc@oldcode \@ \setcode {standard} % default + +\endinput +%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/Master/texmf-dist/tex/latex/arabtex/asect.sty b/Master/texmf-dist/tex/latex/arabtex/asect.sty new file mode 100644 index 00000000000..15bf952e69a --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/asect.sty @@ -0,0 +1,390 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% asect.sty +% called by altxext.sty +% 26.04.2003 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Formale Methoden der Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@ident {asect.sty} {3.11 section macros for Arabic} {26.04.2003} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% sections +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\iffalse % LaTeX 2.09 routines + +\def\@xsect#1{\@tempskipa #1\relax +\ifdim \@tempskipa > \z@ + \par \nobreak + \vskip\@tempskipa + \@afterheading +\else \global\@nobreakfalse \global\@noskipsectrue + \everypar + {\if@noskipsec \global\@noskipsecfalse + \clubpenalty\@M \hskip -\parindent + \begingroup \@svsechd + \endgroup + \unskip \hskip -#1\relax % relax added 14 Jan 91 + \else \clubpenalty \@clubpenalty + \everypar {}% + \fi} +\fi \ignorespaces } + +\def\@sect#1#2#3#4#5#6[#7]#8{% +\ifnum #2 > \c@secnumdepth \let\@svsec \@empty +\else \refstepcounter{#1}% + \edef\@svsec {\csname the#1\endcsname \hskip 1em}% +\fi +\@tempskipa #5\relax +\ifdim \@tempskipa>\z@ + \begingroup #6\relax + \@hangfrom {\hskip #3\relax \@svsec }% + {\interlinepenalty \@M #8\par}% + \endgroup + \csname #1mark\endcsname {#7}% + \addcontentsline {toc}{#1}% + {\ifnum #2>\c@secnumdepth + \else \protect\numberline {\csname the#1\endcsname}% + \fi #7}% +\else \def\@svsechd + {#6\hskip #3\relax %% \relax added 2 May 90 + \@svsec #8\csname #1mark\endcsname {#7}% + \addcontentsline {toc}{#1}% + {\ifnum #2>\c@secnumdepth + \else \protect\numberline {\csname the#1\endcsname}% + \fi #7}}% +\fi \@xsect{#5}} + +\def\@ssect#1#2#3#4#5{\@tempskipa #3\relax +\ifdim \@tempskipa > \z@ + \begingroup #4% + \@hangfrom {\hskip #1}% + {\interlinepenalty \@M #5\par}% + \endgroup +\else \def\@svsechd {#4\hskip #1\relax #5}% +\fi \@xsect{#3}} + +\def\@startsection#1#2#3#4#5#6{\if@noskipsec \leavevmode \fi +\par \@tempskipa #4\relax +\@afterindenttrue +\ifdim \@tempskipa < \z@ + \@tempskipa -\@tempskipa \@afterindentfalse +\fi +\if@nobreak \everypar{}% +\else \addpenalty{\@secpenalty}\addvspace{\@tempskipa}% +\fi +\@ifstar {\@ssect{#3}{#4}{#5}{#6}}% + {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}} + +\def\@afterheading{\global\@nobreaktrue +\everypar {\if@nobreak \global\@nobreakfalse \clubpenalty \@M + \if@afterindent \else {\setbox\z@\lastbox}\fi + \else \clubpenalty \@clubpenalty \everypar{}% + \fi}} + +\fi % end of LaTeX 2.09 routines +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Arabic versions +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@startsection #1#2#3#4#5#6{% Arabic mode +%\tracingmacros 1 +\if@noskipsec \leavea@vmode \fi +\a@@par \@tempskipa #4\relax \@afterindenttrue +\ifdim \@tempskipa <\z@ \@tempskipa -\@tempskipa \@afterindentfalse +\fi +\if@nobreak \a@@everypar {}% +\else \addpenalty \@secpenalty \addvspace \@tempskipa +\fi +\@ifstar {\a@ssect {#3}{#4}{#5}{#6}}% + {\@dblarg {\a@sect {#1}{#2}{#3}{#4}{#5}{#6}}}} + +\def \a@ssect #1#2#3#4#5{% Arabic mode +\@tempskipa #3\relax +\ifdim \@tempskipa > \z@ + \begingroup \let \end \a@@par + #4\relax \set@arabfont % style + \a@hangfrom {\hskip #1\relax }% indentation + \test@token #5 \end + \endgroup +\else \def \@svsechd {\putwordb@x {#4\xpa\RL \xpa{#5}\hskip #1\relax }}% +\fi \a@xsect{#3}} + +\def\a@sect #1#2#3#4#5#6[#7]#8{% Arabic mode +\ifnum #2 > \c@secnumdepth \let \@svsec \@empty +\else \refstepcounter{#1}% + \edef \@svsec {\hskip 1em \nxp\RL {\csname the#1\endcsname }}% +\fi +\@tempskipa #5\relax +\ifdim \@tempskipa > \z@ + \begingroup \let \end \a@@par + #6\relax \set@arabfont % style + \a@hangfrom {\hskip #3\relax \@svsec }% section number + \test@token #8 \end + \endgroup + \csname #1mark\endcsname {\RL {#7}}% + \addcontentsline {toc}{#1}% + {\ifnum #2 > \c@secnumdepth \else + \protect\numberline {\csname the#1\endcsname }\fi + \protect\RL {#7}}% +\else \def \@svsechd % saved head, executed by \everypar + {\putwordb@x {#6\xpa\RL {#8}\@svsec \hskip #3\relax }% + \csname #1mark\endcsname {\RL {#7}}% + \addcontentsline {toc}{#1}% + {\ifnum #2>\c@secnumdepth \else + \protect\numberline {\csname the#1\endcsname}\fi + \protect\RL {#7}}}% \@svsechd +\fi \a@xsect {#5}} + +\def\a@xsect #1{% Arabic mode +\@tempskipa #1\relax +\ifdim \@tempskipa>\z@ \a@@par \nobreak \vskip \@tempskipa + \a@afterheading +\else \global\@nobreakfalse \global\@noskipsectrue +\a@@everypar {\if@noskipsec \global\@noskipsecfalse \clubpenalty \@M + \putwordb@x {\hskip -\a@parindent }\@svsechd + \putwordb@x {\hskip -#1\relax }% + \else \clubpenalty \@clubpenalty \a@@everypar {}% + \fi} +\fi \a@spacefalse +%\tracingmacros 0 +\test@token } + +\def \a@afterheading {% Arabic mode +\global\@nobreaktrue +\a@@everypar {% when entering Arabic horizontal mode + \if@nobreak \global\@nobreakfalse \clubpenalty \@M + \if@afterindent \else \putwordb@x {\hskip -\a@parindent }% + \fi + \else \clubpenalty \@clubpenalty \a@@everypar{}% + \fi}} + +\def \a@hangfrom #1{% hanging indentation for rest of paragraph (group) +\setbox0 \hbox {#1}\@tempdima \wd0 +\advance \leftskip \@tempdima \advance \a@limit -\@tempdima +\putlineb@x {\rlap {\unhbox0 }}\a@spacefalse } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% for table of contents +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\iffalse % LaTeX 2.09 routines + +\def\contentsline#1{\csname l@#1\endcsname} + +% \@dottedtocline{LEVEL}{INDENT}{NUMWIDTH}{TITLE}{PAGE} : +% Macro to produce a table of contents line with the following +% parameters: +% LEVEL : If LEVEL > \c@tocdepth, then no line produced. +% INDENT : Total indentation from the left margin. +% NUMWIDTH : Width of box for number if the TITLE has a +% \numberline command. +% As of 25 Jan 88, this is also the amount of extra indentation +% added to second and later lines of a multiple line entry. +% TITLE : Contents of entry. +% PAGE : Page number. +% +% Uses the following parameters, which must be set by the document style. +% They should be defined with \def's. +% \@pnumwidth : Width of box in which page number is set. +% \@tocrmarg : Right margin indentation for all but last line of +% multiple-line entries. +% \@dotsep : Separation between dots, in mu units. Should be \def'd to +% a number like 2 or 1.7 +% + +%% RmS 91/09/29: added \reset@font for page number +\def\@dottedtocline#1#2#3#4#5{\ifnum #1>\c@tocdepth \else + \vskip \z@ plus.2\p@ + {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip + \parindent #2\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima #3\relax \advance\leftskip \@tempdima \hbox{}\hskip -\leftskip + #4\nobreak\leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern \@dotsep + mu$}\hfill \nobreak + \hbox to\@pnumwidth{\hfil\reset@font\rm #5}\par}\fi} + + +%%% Note: \nobreak's added 7 Jan 86 to prevent bad line break that +%%% left the page number dangling by itself at left edge of a new line. +%%% +%%% Changed 25 Jan 88 to use \leftskip instead of \hangindent so +%%% leaders of multiple-line contents entries would line up properly. + +% \numberline{NUMBER} : For use in a \contentsline command. +% It puts NUMBER flushleft in a box of width \@tempdima +% (Before 25 Jan 88 change, it also added \@tempdima to the hanging +% indentation.) + +\def\numberline#1{\hbox to\@tempdima{#1\hfil}} + +\fi % end of LaTeX 2.09 routines + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Arabic versions of toc auxiliary routines +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@c@starttoc #1{\endarabtext +\the\arabtext@hook \@starttoc {#1}\arabtext } + +\def \a@t@ble #1#2{% \tableofcontents etc. +\a@c@section *{#1}\@mkboth {#1}{#1}\starttoc {#2}} + +\def \a@c@@mkboth #1#2{\@mkboth {\RL{#1}}{\RL{#2}}\test@token } + +\def \a@@lsection #1#2#3{% common part for \part and \section + \begin{arabtext} +% \tocp@rs {\z@ }{\@tempdima }#3 #1 {\hfill \thep@geno {#2}} + \tocp@rs {\z@ }{\@tempdima }#3 #1 {#3\hfill \thep@geno {#2}} + \end{arabtext}} + +\def \a@dottedtocline #1#2#3#4#5{% for Arabic mode +\ifnum #1>\c@tocdepth +\else \vskip \z@ plus.2\p@ + \begin{arabtext} + \tocp@rs {#2}{#3}#4 {\le@ders \thep@geno {#5}} + \end{arabtext} +\fi } + +\def \a@c@tocp@rs #1#2{% change toc parameters +\advance \leftskip #1\relax \advance \a@limit -#1\relax +\advance \leftskip #2\relax \advance \a@limit -#2\relax +\advance \rightskip \@tocrmarg \advance \a@limit -\@tocrmarg +\@tempdima #2\relax % for \numberline, width of number +\parfillskip \z@ \test@token } + +\def \a@c@le@ders {% for toc +\setbox \wordb@x \hbox to \z@ {\leaders \hbox +{$\m@th \mkern \@dotsep mu\hbox {.}\mkern \@dotsep mu$}\hfill }% +\put@word \test@token } + +\def \a@c@thep@geno #1{% pagenumber of width \@pnumwidth +\dimen@ \@pnumwidth \advance \dimen@ -\rightskip +\a@c@spreadbox {\dimen@ }{\hss #1 \hspace {-\rightskip }}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\iffalse +\def \a@numberline #1#2{% for arabic mode +#2\hbox to\@tempdima {\hfil \<#1>}} + +\def \a@numberline #1\a@RL #2{% for arabic mode +\RL {\spreadbox \@tempdima {#1 \hfill }#2}} +\fi + +\def \a@c@numberline #1{% external Arabic command +\a@c@hspace {-\@tempdima }\spreadbox \@tempdima {#1 \hfill }} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\at@arabtext {% modify LaTeX for Arabic mode + \let \numberline \a@numberline + \let \@dottedtocline \a@dottedtocline +\if@twocolumn + \def\@pnumwidth{1.0em} + \def\@tocrmarg {1em} +\fi +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@c@addcontentsline #1#2#3{% Arabic version +\addcontentsline {#1}{#2}{\LR{#3}}\arab@tail } + +\let \a@c@abstract \a@c@quotation +\let \endabstract \endquotation + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\iffalse % LaTeX 2.09 routines + +\def\@starttoc#1{\begingroup + \makeatletter + \@input{\jobname.#1}\if@filesw \expandafter\newwrite\csname tf@#1\endcsname + \immediate\openout \csname tf@#1\endcsname \jobname.#1\relax + \fi \global\@nobreakfalse \endgroup} + +\fi % end of LaTeX 2.09 routines + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\a@sect #1#2#3#4#5#6[#7]#8{% Arabic mode +\ifnum #2 > \c@secnumdepth \let \@svsec \@empty +\else \refstepcounter{#1}% + \edef \@svsec + {\nxp\RL {\nxp\stdcode {\csname the#1\endcsname }\hskip 1em}}% +\fi +\@tempskipa #5\relax +\ifdim \@tempskipa > \z@ + \begingroup \let \end \a@@par + #6\relax \set@arabfont % style + \a@hangfrom {\hskip #3\relax \@svsec }% section number + \test@token #8 \end + \endgroup + \csname #1mark\endcsname {\RL {#7}}% + \addcontentsline {toc}{#1}% + {\ifnum #2 > \c@secnumdepth \else \protect\numberline + {\protect\RL{\protect\stdcode{\csname the#1\endcsname }}}\fi + \protect\RL {#7}}% +\else \def \@svsechd {% saved head, executed by \everypar + #6\relax \set@arabfont % style + \let \a@@end \end \def \end {\let \end \a@@end }% + \test@token \@svsec % saved section number + \hskip #3\relax #8 \end + \csname #1mark\endcsname {\RL {#7}}% + \addcontentsline {toc}{#1}% + {\ifnum #2>\c@secnumdepth \else \protect\numberline + {\protect\RL{\protect\stdcode{\csname the#1\endcsname }}}\fi + \protect\RL {#7}}}% \@svsechd +\fi \a@xsect {#5}} + +\allowarab \@svsec + +\def\a@xsect #1{% Arabic mode +\@tempskipa #1\relax +\ifdim \@tempskipa>\z@ \a@@par \nobreak \vskip \@tempskipa + \a@afterheading +\else \global\@nobreakfalse \global\@noskipsectrue +\a@@everypar {\if@noskipsec \global\@noskipsecfalse \clubpenalty \@M + \putwordb@x {\hskip -\a@parindent }\@svsechd + \putwordb@x {\hskip -#1\relax }% + \else \clubpenalty \@clubpenalty \a@@everypar {}% + \fi} +\fi \a@spacefalse \test@token } + +\def \a@c@numberline #1{% external Arabic command +\a@c@hspace {-\@tempdima }\spreadbox \@tempdima {#1 \hfill }} + +\def \a@@lsection #1#2#3{% Text, Pageno, Font +% common part for \part and \section + \begin{arabtext} + #3\tocp@rs {\z@ }{\@tempdima }#1 \hfill \thep@geno {#2} + \end{arabtext}} + +\def \a@dottedtocline #1#2#3#4#5{% Level, Indent, Numwidth, Text, Pageno +% for Arabic mode +\ifnum #1>\c@tocdepth +\else \vskip \z@ plus.2\p@ + \begin{arabtext} + \tocp@rs {#2}{#3}#4 {\le@ders \thep@geno {#5}} + \end{arabtext} +\fi } + +\def \a@c@tocp@rs #1#2{% Indent, Numwidth +% change toc parameters +\leftskip #1\relax \advance \leftskip #2\relax +\advance \rightskip \@tocrmarg +\@tempdima #2\relax % for \numberline, width of number +\a@parindent \z@ \parfillskip \z@ \test@token } + +\at@arabtext {% modify LaTeX for Arabic mode + \let \numberline \a@numberline + \let \@dottedtocline \a@dottedtocline +} + +\c@secnumdepth \c@tocdepth % for test TOC + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/tex/latex/arabtex/asize10.clo b/Master/texmf-dist/tex/latex/arabtex/asize10.clo new file mode 100644 index 00000000000..bc7bd58b47e --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/asize10.clo @@ -0,0 +1,40 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% This is ASIZE10.CLO in text format +% size dependent corrections for arabart.cls and size10.clo +% for use with ArabTeX Version 3.04 +% 29.11.1995 +% +% Copyright (C) 1995 by Klaus Lagally +% +% reusing art12.sty of 14 Jan 1992 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ProvidesFile {asize10.clo}[1995/11/29 v1.00 10pt parameters for arabart] + +% **************************************** +% * PAGE LAYOUT * +% **************************************** + +\columnsep 20pt +\columnseprule .4pt +\headheight 18pt + +% **************************************** +% * LISTS * +% **************************************** + +% presently not changed + +\iffalse +\leftmargini 2.5em +\leftmarginii 2.2em % > \labelsep + width of '(m)' +\leftmarginiii 1.87em % > \labelsep + width of 'vii.' +\leftmarginiv 1.7em % > \labelsep + width of 'M.' +\leftmarginv 1em +\leftmarginvi 1em +\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/Master/texmf-dist/tex/latex/arabtex/asize11.clo b/Master/texmf-dist/tex/latex/arabtex/asize11.clo new file mode 100644 index 00000000000..ccb865e3095 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/asize11.clo @@ -0,0 +1,40 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% This is ASIZE11.CLO in text format +% size dependent corrections for arabart.cls and size11.clo +% for use with ArabTeX Version 3.04 +% 29.11.1995 +% +% Copyright (C) 1995 by Klaus Lagally +% +% reusing art12.sty of 14 Jan 1992 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ProvidesFile {asize11.clo}[1995/11/29 v1.00 11pt parameters for arabart] + +% **************************************** +% * PAGE LAYOUT * +% **************************************** + +\columnsep 20pt +\columnseprule .4pt +\headheight 18pt + +% **************************************** +% * LISTS * +% **************************************** + +% presently not changed + +\iffalse +\leftmargini 2.5em +\leftmarginii 2.2em % > \labelsep + width of '(m)' +\leftmarginiii 1.87em % > \labelsep + width of 'vii.' +\leftmarginiv 1.7em % > \labelsep + width of 'M.' +\leftmarginv 1em +\leftmarginvi 1em +\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/Master/texmf-dist/tex/latex/arabtex/asize12.clo b/Master/texmf-dist/tex/latex/arabtex/asize12.clo new file mode 100644 index 00000000000..c5687134e65 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/asize12.clo @@ -0,0 +1,40 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% This is ASIZE12.CLO in text format +% size dependent corrections for arabart.cls and size12.clo +% for use with ArabTeX Version 3.04 +% 29.11.1995 +% +% Copyright (C) 1995 by Klaus Lagally +% +% reusing art12.sty of 14 Jan 1992 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ProvidesFile {asize12.clo}[1995/11/29 v1.00 12pt parameters for arabart] + +% **************************************** +% * PAGE LAYOUT * +% **************************************** + +\columnsep 20pt +\columnseprule .4pt +\headheight 18pt + +% **************************************** +% * LISTS * +% **************************************** + +% presently not changed + +\iffalse +\leftmargini 2.5em +\leftmarginii 2.2em % > \labelsep + width of '(m)' +\leftmarginiii 1.87em % > \labelsep + width of 'vii.' +\leftmarginiv 1.7em % > \labelsep + width of 'M.' +\leftmarginv 1em +\leftmarginvi 1em +\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/Master/texmf-dist/tex/latex/arabtex/asmo449.sty b/Master/texmf-dist/tex/latex/arabtex/asmo449.sty new file mode 100644 index 00000000000..da79c8dd7a0 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/asmo449.sty @@ -0,0 +1,122 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%% asmo449.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% asmo449.sty +% Scanner for ASMO 449 Code (ISO 9036) (table driven) +% to install it, include it as a LaTeX package or style option "asmo449" +% with Plain TeX, say "\input asmo449.sty" +% to activate it, say "\setcode {asmo449}" or "\setcode {iso9036}" +% 26.04.2003 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Formale Methoden der Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \asmoatcode \undefined \else \expandafter \endinput +\fi % load only once + +\chardef \asmoatcode = \catcode`\@ \catcode`\@ = 11 + +\a@ident {asmo449.sty} {3.11 ASMO449 input encoding (table)} {26.04.2003} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% dynamic definitions for Arabic +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\gdef \setasmo@codes {% activate and change some codes +\a@digits = {0123456789}% +\a@paren = {"'([}% +\a@first = {}% +}% end of dynamic definitions for Arabic +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \asmo@tbli {% ASMO re-encoding table +\\AQ|\\BQA\\CQa\\DQw\\EQi\\FQy\\GA\\Hb\\IT% +\\Jt\\KC\\LG\\MH\\NX\\Od\\PF\\Qr\\Rz% +\\Ss\\Tx\\US\\VD\\WV\\XZ\\YP\\ZR% +\\af\\bq\\ck\\dl\\em\\fn\\gh\\hw\\iY% +\\jy\\k"aN\\l"uN\\m"iN\\n"a\\o"u\\p"i\\q@\\r""% +\\s@\\t@\\u@\\v@\\w@\\x@\\y@\\z@\\`B\\@@} + +\def \asmo@tblii {% shadda + harakaat +\\q\\sk\\tl\\um\\vn\\wo\\xp} + +\def \asmo@tbliii {% medial special characters +\\\@\sc@endscan\\-\asmo@minus\\"\asmo@rquote} + +\def \asmo@tbliv {% initial special characters +\\\@\sc@endscan\\G\asmo@alif\\"\asmo@lquote\\'\asmo@lquote} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newif \ifa@quote + +\def \asmo@beg #1#2{% start ASMO 449 scanner + \h@mzafalse \iz@fetfalse \novocalize % because of explicit quoting + \@ssimfalse + \def \next {\asmo@word #1#2}% + \def \l@@kup ##1\\#1##2\\##3\@@ {% look for special chars + \ifx *##2\relax\xpa\xpa\xpa\iffalse\fi\fi % not found; else + \def \next {##2#2}}% +\iftrue \xpa \l@@kup \asmo@tbliv \\#1*\\\@@ \else +\ifx #1/\global \a@tokens ={#1}\def \next {\asmo@word #2}% /x +\fi\fi \next } + +{\catcode `\^ 7 \catcode `\^^M=13 +\gdef \asmo@word #1#2{% transform input into internal notation + \def \l@@kup ##1\\#1##2\\##3\@@ {% look for special chars + \ifx *##2\relax\xpa\xpa\xpa\iffalse\fi\fi % + \def \next {##2#2}}% +\iftrue \xpa \l@@kup \asmo@tbliii \\#1*\\\@@ \else % +\ifx #1/\def \next {\sc@back #1#2}\else % +\if \nxp ^^M\nxp #1\def \next {\asmo@par #2}\else % +\ifx #1#2\def \next {\asmo@word #1-#2}\else % + \def \l@@kup ##1\\#1##2\\##3\@@ {% reencode char + \def \sc@char {##2}}% + \xpa \l@@kup \asmo@tbli \\#1\nxp #1\\\@@ % reencode + \sc@put % + \def \l@@kup ##1\\#2##2\\##3\@@ {% look for shadda variants + \ifx *##2\relax\def \next {\asmo@word #2}% + \else \def \next {\asmo@word #1##2}\fi }% + \xpa \l@@kup \asmo@tblii \\#2*\\\@@ % double 1st char +\fi\fi\fi\fi \next }% +} % catcode 13 + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \asmo@alif {% alif at the beginning of a word +\def \sc@char {a}\sc@put \asmo@word } + +\def \asmo@minus {% hyphen between words +\def \sc@char {-}\sc@put \asmo@beg } + +\def \asmo@lquote {% left quote +\ifa@quote \def \sc@char {'}\global\a@quotefalse +\else \def \sc@char {`}\global\a@quotetrue +\fi +\sc@put \asmo@beg } + +\def \asmo@rquote {% right quote +\global\a@quotefalse +\def \sc@char {'}\sc@put \asmo@word } + +\def \asmo@par #1\@ \@@ {% new line, push back the rest +\sc@back \\#1\@ \@@ } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \set@asmo {% select the ASMO 449 scanner +\let \sc@beg \asmo@beg \let \sc@word \asmo@word +\let \sc@back \sc@@back \let \sc@endscan \sc@@endscan +\global\let \a@scan \a@@scan \setasmo@codes \a@quotefalse +\a@message {input encoding set to ASMO 449 (ISO 9036) conventions}} + +\xpa \def \xpa \sc@table \xpa {\sc@table % add the ASMO449 encoding +asmo449\set@asmo iso9036\set@asmo } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@message {scanner for code ASMO 449 (ISO 9036) installed.} + +\catcode `\@ = \asmoatcode +\endinput +%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/Master/texmf-dist/tex/latex/arabtex/atabg.sty b/Master/texmf-dist/tex/latex/arabtex/atabg.sty new file mode 100644 index 00000000000..06bdc3488e9 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/atabg.sty @@ -0,0 +1,129 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% atabg.sty +% called by altxext.sty +% 21.01.1997 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@ident {atabg.sty} {3.05 LaTeX tabbing macros for Arabic} {21.01.1997} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@tabdef #1{\xpa\def \csname a@c@\string #1\endcsname } + +\def \a@c@tabbing {% tabbing in Arabic mode +\a@tabdef >{\a@rtab \test@token } +\a@tabdef ={\a@settab \test@token } +\a@tabdef <{\@ltab \test@token } +\a@tabdef +{\@tabplus \test@token } +\a@tabdef -{\@tabminus \test@token } +\a@tabdef `{\a@tabrj \test@token } +\a@tabdef '{\a@tablab \test@token } +\def \a@last@line {\let \next \a@tabcr } +\let \endtabbing \a@endtabbing +\a@@par \lineskip \z@skip +\@hightab \@firsttab \global\@nxttabmar \@firsttab +\dimen\@firsttab \@totalleftmargin \global\@tabpush \z@ +\global\@rjfieldfalse +\trivlist \item\relax +\if@minipage \else \vskip\parskip \fi +\setbox\@tabfbox \hbox + {\rlap {\indent \hskip\@totalleftmargin \the\everypar }}% +\def \@itemfudge {\box\@tabfbox }% +\a@startline \test@token } + +\def \a@endtabbing {% end of Arabic tabbing environment +\a@stopline \aftergroup \a@spacefalse +\ifnum\@tabpush >\z@ \@badpoptabs \fi +\endtrivlist } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@startline{% open new tabbing line +\ifnum \@nxttabmar >\@hightab \@badtab \global\@nxttabmar \@hightab \fi +\global\@curtabmar \@nxttabmar \global\@curtab \@curtabmar +\global\setbox\@curline \hbox {}\a@startfield } + +\def \a@stopline {% deposit tabbing line +\a@stopfield \a@spacefalse +\if@rjfield \global\@rjfieldfalse + \@tempdima\@totalleftmargin \advance\@tempdima\linewidth + \putwordb@x {\hb@xt@ \@tempdima + {\box\@curfield \hfil \box\@curline + \hskip\dimen\@curtabmar \@itemfudge }}% +\else \a@addfield \putwordb@x {\hbox + {\box\@curline \hskip\dimen\@curtabmar \@itemfudge }}% +\fi \short@line } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@startfield {% new tabbing field +\initlineb@x \putwordb@x {\color@endgroup }} + +\def \a@stopfield {% end of tabbing field +\global\setbox\@curfield \hbox {\color@begingroup \unhbox\lineb@x }} + +\def \a@contfield {% continue tabbing field +\setbox\lineb@x \box\@curfield +\a@spacefalse \putwordb@x {\color@endgroup }} + +\def \a@addfield {% add field to current line +\ifdim \wd\@curfield = \z@ \else +\global\setbox\@curline \hbox + {\arab@space \unhbox\@curfield \unhbox\@curline }\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@tabcr {\a@stopline \@ifstar{\penalty \@M \a@xtabcr }\a@xtabcr } +\def \a@xtabcr {\@ifnextchar[\a@itabcr {\a@startline \test@token }} +\def \a@itabcr [#1]{\vskip #1\a@startline \test@token } + +\def \a@c@kill {\a@stopfield \a@startline \test@token } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@rtab {% \> skip right +\a@stopfield \a@addfield +\ifnum \@curtab<\@hightab \global\advance\@curtab \@ne +\else\@badtab\fi +\@tempdima \dimen\@curtab +\advance\@tempdima -\dimen\@curtabmar +\advance\@tempdima -\wd\@curline +\global\setbox\@curline \hbox {\hskip\@tempdima \unhbox\@curline }% +\a@startfield } + +\def \a@settab {% \= set tab +\a@stopfield \a@addfield +\ifnum \@curtab <\@maxtab + \ifnum\@curtab =\@hightab \advance\@hightab \@ne \fi + \global\advance\@curtab \@ne +\else \@latex@error{Tab overflow}\@ehd \fi +\dimen\@curtab \dimen\@curtabmar \advance\dimen\@curtab \wd\@curline +\a@startfield } + +\def \a@tabrj {% \` field at right margin +\a@stopfield \a@addfield \global\@rjfieldtrue \a@startfield } + +\def \a@tablab {% \' field right adjusted to last tab +\a@stopfield \dimen@ \wd\@curfield +\global\setbox\@curline \hbox {\hskip\tabbingsep \box\@curfield + \hskip-\dimen@ \hskip-\tabbingsep \box\@curline }% +\a@startfield } + +\def \a@c@pushtabs {% new level of tabs +\a@stopfield \a@addfield \global\advance\@tabpush \@ne +\begingroup \a@contfield \test@token } + +\def \a@c@poptabs {% return to previous level +\a@stopfield \a@addfield +\ifnum \@tabpush >\z@ \endgroup \global\advance\@tabpush \m@ne + \ifnum \@curtab >\@hightab \global\@curtab \@hightab \@badtab \fi +\else \@badpoptabs \fi +\a@contfield \test@token } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/tex/latex/arabtex/atrans.sty b/Master/texmf-dist/tex/latex/arabtex/atrans.sty new file mode 100644 index 00000000000..fe9b31baa78 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/atrans.sty @@ -0,0 +1,432 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% atrans.sty +% transcription module for ArabTeX +% ZDMG Transcription +% Encyclopedia of Islam Transcription +% Modern Turkish Transcription +% Urdu Transcription +% Uighuric Transcription +% 14.06.2003 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Formale Methoden der Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Additional Transcription Modes for Farsi: +% Encyclopedia Iranica [Standard Farsi] +% Farsi [Modified Encyclopedia Iranica] +% Lazard [Philological: Gilbert Lazard, etc.] +% (c) Adrian Rezus [adriaan@{sci,cs}.kun.nl]: Nijmegen, Nederland +% 21.12.95 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \transatcode \undefined +\chardef \transatcode = \catcode`\@ \catcode`\@ = 11 +\a@ident {atrans.sty} {3.11 generate the transliteration } {14.06.2003} +\else \xpa \endinput +\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\let \a@hyp \- \let \a@macron \= +\let \a@acute \' \let \a@grave \` + +\gdef \a@trans #1>{% transcribe word +\iftest@trans \tracingmacros=1 +\iftest@scan \else \a@verb (#1)>\fi\fi +{\if@was \@vocaltrue \else \@vocalfalse \fi +\let \- \a@hyp \let \= \a@macron +\let \' \a@acute \let \` \a@grave \def \tr@act {-}% +\tr@aword #1|||>>% +\if@vocal \global \@wastrue \else \global \@wasfalse \fi }% +\iftest@trans \tracingmacros=0 \fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newif \if@vocal \newif \ifc@p + +\gdef \tr@@aword #1{% transcribe rest of word +\let \tr@old \tr@act \def \tr@act {#1}% +\case #1\of +{ >{\@gobble } + \cap {\c@ptrue \tr@aword } +% |"^\a@e{\tr@aword } + |"^{\tr@aword } + -{-\tr@aword } + XlEeQ{\csname tr@@\string #1\endcsname } + \a@a NUW{\setc@p #1\kill@alif } + P{\tr@P \tr@aword } + aiu{\tr@wasla #1} + \a@Ze{\xpa\tr@aword \tr@old } +\default {\@vocalfalse + \ifcat \nxp #1-#1\else \setc@p #1% + \fi \tr@aword } +}\endcase } + +\def \setc@p #1{% capitalize if needed +\xpa\ifx \xpa\relax \csname tr@\string #1\endcsname \tr@@ \else +\ifc@p \xxxpa\uppercase \xxpa{\csname tr@\string #1\endcsname }\c@pfalse +\else \csname tr@\string #1\endcsname +\fi\fi } + +\def \@gobble #1{} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\gdef \kill@alif #1{% delete alif or waw after N, U, W, _a +\case #1\of +{ aAIYU{\tr@aword } +\default {\tr@aword #1} +}\endcase } + +\gdef \tr@wasla #1{% initial vowel, Arabic +\ifiz@fet \@vocalfalse \fi +\ifu@gh \@vocalfalse \fi +\ifh@mza \if@vocal '\else \setc@p #1\fi +\else \setc@p #1\fi +\@vocaltrue \tr@aword } + +\gdef \tr@vowel #1{% vowel +\setc@p #1\@vocaltrue \tr@aword } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\gdef \sp@cw@w #1#2{% handle w after _h (Persian) specially +\def \next {\tr@aword #2}\@vocalfalse +\ifiz@fet \ifx #2w#1\let\next\tr@aword +\fi\fi \next } + +\gdef \putw@w {\sp@cw@w w } % w after _h (Persian): normal + +\gdef \killw@w {\sp@cw@w {}} % w after _h (Persian): delete + +\gdef \superv@w {\sp@cw@w {$^v\!$}}% w after _h (Persian): super v + +\gdef \superw@w {\sp@cw@w {$^w\!$}}% w after _h (Persian): super w + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\gdef \tr@@l #1{% test assimilation after l +\ifx #1-\def \next {\tr@@la }\else + \setc@p l\def \next {\tr@aword #1}% +\fi \@vocalfalse \next } + +\gdef \tr@@la #1#2{% test assimilation after l- +\case #1\of +{ Q{\setc@p l-\tr@Q \tr@aword } % l - Q x -> l - ' + #2{\tr@aword #1-#2} % l - x x -> x - x + \cap {\tr@@lb #2} % l - \cap x +\default {\setc@p l-\tr@aword #1#2} +}\endcase } + +\gdef \tr@@lb #1#2{% test assimilation after l-\cap +\case #1\of +{ #2{\tr@aword #1-\cap #2} % l - \cap x x -> x - \cap x +\default {\setc@p l-\tr@aword \cap #1#2} +}\endcase } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\gdef \x@s #1{\oalign{#1\crcr\hidewidth \sh@ft{34}% accent for _h + \vbox to -.2ex {\hbox{\char'25}\vss}\hidewidth}} + +\gdef \x@x #1{\oalign{#1\crcr\hidewidth \sh@ft{29}% accent for .s in Urdu + \vbox to.2ex{\hbox{\char'177}\vss}\hidewidth}} + +\def \ish@ft #1{\dimen\z@.00#1ex\multiply\dimen\z@\fontdimen1\font + \kern.0156\dimen\z@} % positive kern for slant + +\def \rsh@ft #1#2{\ish@ft{#1}#2\sh@ft{#1}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \tr@def #1#2{% define \tr@#1 as {#2} +\xpa \gdef \csname tr@\string #1\endcsname {#2}} + +\def \tr@cap #1{\ifc@p \uppercase {#1}\else #1\fi } + +\def \tr@ng {\tr@cap ng} \def \tr@ny {\tr@cap ny} +\def \tr@kh {\tr@cap kh} \def \tr@th {\tr@cap th} +\def \tr@dh {\tr@cap dh} \def \tr@bh {\tr@cap bh} +\def \tr@ph {\tr@cap ph} \def \tr@zh {\tr@cap zh} +\def \tr@sh {\tr@cap sh} \def \tr@ch {\tr@cap ch} +\def \tr@gh {\tr@cap gh} \def \tr@af {\tr@cap {\'d}h} +\def \tr@ag {\tr@cap {\'t}h} \def \tr@aj {\tr@cap {\v{c}}h} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +\gdef \tr@zdmg {% define character macros for transliteration +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\let \specw@w \killw@w % special handling of w after .h in Farsi +\gdef \tr@@e ##1{% test for ee -> ey + \ifx ##1e\def \next {\setc@p e\tr@aword y}\else + \def \next {\setc@p e\tr@aword ##1}\fi \next} +\gdef \tr@@E ##1{% test for Ee -> ey + \ifx ##1e\def \next {\setc@p e\tr@aword y}\else + \def \next {\setc@p E\tr@aword ##1}\fi \next} +\gdef \tr@@Q ##1{\tr@Q \def \next {\tr@aword ##1}% + \ifh@mza \let \next \tr@aword \fi \next } +\gdef \tr@@X {\setc@p X\specw@w } +\gdef \tr@@ {{$\bullet $}}% substitute for illegal characters +\gdef \tr@a {a\@vocaltrue } +\gdef \tr@b {b} \gdef \tr@c {c} \gdef \tr@d {d} +\gdef \tr@e {e\@vocaltrue } +\gdef \tr@f {f} \gdef \tr@g {g} \gdef \tr@h {h} +\gdef \tr@i {i\@vocaltrue } +\gdef \tr@j {\v{z}} \gdef \tr@k {k} \gdef \tr@l {l} +\gdef \tr@m {m} \gdef \tr@n {n} +\gdef \tr@o {o\@vocaltrue } +\gdef \tr@p {p} \gdef \tr@q {q} \gdef \tr@r {r} +\gdef \tr@s {s} \gdef \tr@t {t} +\gdef \tr@u {u\@vocaltrue } +\gdef \tr@v {v} \gdef \tr@w {w} \gdef \tr@x {\v{s}} +\gdef \tr@y {y} \gdef \tr@z {z} +\gdef \tr@A {\=a\-\@vocaltrue } \gdef \tr@B {} +\gdef \tr@C {\b{t}} \gdef \tr@D {\d{d}} +\gdef \tr@E {\=e\-\@vocaltrue } +\gdef \tr@F {\b{d}} \gdef \tr@G {\v{g}} +\gdef \tr@H {\d{h}} \gdef \tr@I {\ifc@p\=I\else\=\i\fi\-\@vocaltrue } +\gdef \tr@J {\v{c}} \gdef \tr@K {\~n} +\gdef \tr@L {y} \gdef \tr@M {\tr@ny} +\gdef \tr@N {n\@vocalfalse } +\gdef \tr@O {\=o\-\@vocaltrue } +\gdef \tr@P {\rsh@ft{07}{\ifc@p \raise .2ex \hbox {$\lhook $}\kern-.1em + \else \kern-.05em$\lhook$\kern-.05em\fi }\@vocalfalse } +\gdef \tr@Q {\rsh@ft{07}{\ifc@p \raise .2ex \hbox {$\rhook $}\kern-.1em + \else \kern-.05em$\rhook$\kern-.05em\fi }\@vocalfalse } +\gdef \tr@R {\.g} +\gdef \tr@S {\d{s}} \gdef \tr@T {t} +\gdef \tr@U {\=u\-\@vocaltrue } +\gdef \tr@V {\d{t}} +\gdef \tr@W {w\@vocalfalse } +\gdef \tr@X {\x@s{h}} +\gdef \tr@Y {\=a\-\@vocaltrue } +\gdef \tr@Z {\d{z}} +\tr@def \a@a {\=a\-\@vocaltrue } +\tr@def \a@b {\d{b}} \tr@def \a@c {\'c} \tr@def \a@d {\'d} +\tr@def \a@e {\'d} \tr@def \a@f {\d{f}} \tr@def \a@g {g} +\tr@def \a@h {h} \tr@def \a@i {\ifc@p\=I\else\=\i\fi\-\@vocaltrue } +\tr@def \a@j {\ifc@p\"I\else\"\i\fi\@vocaltrue } +\tr@def \a@k {\ifs@nd \tr@kh\else k\fi } +\tr@def \a@l {\~l} \tr@def \a@m {k} \tr@def \a@n {\d{n}} +\tr@def \a@o {u\@vocaltrue } \tr@def \a@p {\tr@ng} +\tr@def \a@q {\'r} \tr@def \a@r {\'r} \tr@def \a@s {\'s} +\tr@def \a@t {\'t} \tr@def \a@u {\=u\-\@vocaltrue } +\tr@def \a@v {\'t} \tr@def \a@w {{u}\@vocaltrue } +\tr@def \a@x {v} \tr@def \a@y {y} \tr@def \a@z {\'z} +\tr@def \a@A {e\@vocaltrue } +\tr@def \a@B {\tr@@ } \tr@def \a@C {\'c} \tr@def \a@D {\'{d}} +\tr@def \a@E {\ifk@rd\v{e}\else\={e}\fi\@vocaltrue } +\tr@def \a@F {f} \tr@def \a@G {\'c} \tr@def \a@H {h} +\tr@def \a@I {\ifc@p\"J\else\"\j\fi } \tr@def \a@J {\.g} +\tr@def \a@K {\d{k}} \tr@def \a@L {k} \tr@def \a@M {k} +\tr@def \a@N {\d{n}} +\tr@def \a@O {o\@vocaltrue } +\tr@def \a@P {\={u}\@vocaltrue } \tr@def \a@Q {q} +\tr@def \a@R {\.r} \tr@def \a@S {\'s} \tr@def \a@T {\tr@ag} +\tr@def \a@U {u\@vocaltrue } +\tr@def \a@V {v} \tr@def \a@W {o} +\tr@def \a@X {w} \tr@def \a@Y {\=e\-} \tr@def \a@Z {\'s} +\tr@def \a@aa {a\@vocaltrue } % Uighuric alif +\tr@def \a@ab {\x@x{b}} \tr@def \a@ac {\tr@th} \tr@def \a@ad {\tr@dh} +\tr@def \a@ae {\x@x{d}} \tr@def \a@af {\tr@af} \tr@def \a@ag {\~{n}} +\tr@def \a@ah {\"{\j}} \tr@def \a@aj {\v{c}h} \tr@def \a@ak {\x@x{g}} +\tr@def \a@al {\x@x{n}} \tr@def \a@an {\'{n}} \tr@def \a@ap {\tr@bh} +\tr@def \a@aq {\tr@ph} \tr@def \a@ar {\'{r}} \tr@def \a@at {\'{t}} +\tr@def \a@au {w} % Uighuric waw with roof +\tr@def \a@ax {k} +\tr@def \a@aA {\'{d}} +\tr@def \a@aJ {s} % sin with 3 dots below +\tr@def \a@Zz {\d{\b{d}}} % .z, Palestinian, coded .Z +\tr@def \a@aO {\d{\b{d}}} % .z, Palestinian, coded .Z, (for test only) +\gdef \tr@aword {\tr@@aword }\global \tr@nstrue }% end \tr@zdmg +}% catcodes + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +\catcode `\~=10 +\gdef \tr@encislam {% define Enc. of Islam transliteration +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\tr@zdmg \let \@ub \underbar +\let \specw@w \killw@w % special handling of w after .h in Farsi +\def \tr@j {\@ub{\tr@zh}} \def \tr@x {\@ub{\tr@sh}} +\def \tr@C {\@ub{\tr@th}} \def \tr@F {\@ub{\tr@dh}} +\def \tr@G {j} \def \tr@J {\@ub{\tr@ch}} +\def \tr@R {\@ub{\tr@gh}} \def \tr@X {\@ub{\tr@kh}} +%\def \tr@q {\d{k}} % variant qaf; uncomment if required +%\def \tr@P {$^c$} % variant `ain; uncomment if required +\a@message {Encyclopedia~of~Islam~transliteration.}}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +\catcode `\~=10 +\gdef \tr@turk {% define character macros for modern Turkish +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\tr@zdmg +\let \specw@w \putw@w % no special handling of w after .h in Farsi +\gdef \tr@e {e\@vocaltrue } \gdef \tr@q {k} +\gdef \tr@w {v} \gdef \tr@x {\c{s}} +\gdef \tr@A {\^a\@vocaltrue } \gdef \tr@E {\^e\@vocaltrue } +\gdef \tr@G {c} \gdef \tr@H {h} +\gdef \tr@I {\^{\i}\@vocaltrue} \gdef \tr@J {\c{c}} +\gdef \tr@K {n} \gdef \tr@O {\^o\@vocaltrue } +\gdef \tr@P {\-} \gdef \tr@R {g} +\gdef \tr@S {s} \gdef \tr@T {t} +\gdef \tr@U {\^u\@vocaltrue \kill@alif } +\gdef \tr@V {t} \gdef \tr@Z {z} +\tr@def \a@j {\i\@vocaltrue } +\tr@def \a@m {\u{g}} \tr@def \a@w {{\"u}\@vocaltrue } +\tr@def \a@A {\"a\@vocaltrue } \tr@def \a@H {} +\tr@def \a@I {{\i}\@vocaltrue } \tr@def \a@J {\u{g}} +\tr@def \a@L {g} \tr@def \a@M {n} +\tr@def \a@O {\"o\@vocaltrue } +\tr@def \a@P {\"o\@vocaltrue } \tr@def \a@Q {q} +\tr@def \a@U {\"u\@vocaltrue } \tr@def \a@V {v} +\catcode `\ =10 +\a@message {modern~Turkish~transliteration.}}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Specific definitions for Persian: +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +\catcode `\~=10 +\gdef \tr@enciran {% Encyclopaedia Iranica transliteration +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\tr@zdmg % start with default and modify +\let \specw@w \superv@w % special handling of w after .h in Farsi +\gdef\tr@w{v\@vocalfalse} % EIran = Lazard <> ZDMG +\gdef\tr@W{v\@vocalfalse} % EIran = Lazard <> ZDMG +\gdef\tr@G{\v{\j}\@vocalfalse} % EIran = Lazard <> ZDMG +\gdef\tr@D{\.{z}\@vocalfalse} % EIran = Lazard <> ZDMG +\gdef\tr@C{\b{s}\@vocalfalse} % EIran <> Lazard <> ZDMG +\gdef\tr@F{\b{z}\@vocalfalse} % EIran <> Lazard <> ZDMG +\gdef\tr@R{\={g}\@vocalfalse} % EIran <> Lazard <> ZDMG +\gdef\tr@X{\b{k}} % EIran <> Lazard <> ZDMG +\tr@def\a@H{} % EIran = Lazard <> ZDMG +\a@message {Encyclopaedia~Iranica~transliteration.}}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +\catcode `\~=10 +\gdef \tr@farsi {% Modified Encyclopaedia Iranica transliteration +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\tr@enciran % start with default and modify +\let \specw@w \superv@w % special handling of w after .h in Farsi +\gdef\tr@R{\.{g}\@vocalfalse} % ZDMG = Persian +\gdef\tr@X{x} % Lazard = Persian +\tr@def\a@H{$\hbar\!$} % Persian <> EIran = nil +\a@message {Modified~Encyclopaedia~Iranica~transliteration.}}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +\gdef \tr@lazard {% Philological Farsi transliteration; cf., e.g., + % Gilbert Lazard + % "La langue des plus anciens documents de la prose persane" + % (Paris: Cl. Klincksieck 1963). +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\tr@enciran % start with default and modify +\let \specw@w \superv@w % special handling of w after .h in Farsi +\gdef\tr@C{\b{s}\@vocalfalse} % Lazard <> EIran +\gdef\tr@C{$\theta\!$\@vocalfalse} % Lazard <> EIran +\gdef\tr@F{$\delta\!$\@vocalfalse} % Lazard <> EIran <> ZDMG +\gdef\tr@R{$\gamma\!$\@vocalfalse} % Lazard <> EIran <> ZDMG +\gdef\tr@X{x} % Lazard <> EIran <> ZDMG +\a@message {Philological~Farsi~transliteration.}}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +\catcode `\~=10 +\gdef \tr@urdu {% define Urdu transliteration +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\tr@zdmg +\let \specw@w \killw@w % special handling of w after .h in Farsi +\gdef \tr@j {\.{z}} \gdef \tr@x {\'{s}} \gdef \tr@C {\x@x{s}} +\gdef \tr@D {\b{z}} \gdef \tr@F {\d{z}} \gdef \tr@G {j} +\gdef \tr@H {\b{h}} \gdef \tr@J {c} \gdef \tr@O {o\-\@vocaltrue} +\gdef \tr@S {\b{s}} \gdef \tr@T {t} \gdef \tr@V {\x@x{t}} +\gdef \tr@X {x} \gdef \tr@Z {\x@x{z}} \tr@def \a@d {\d{d}} +\tr@def \a@r {\d{r}} \tr@def \a@t {\d{t}} \tr@def \a@H {} +\a@message {Urdu~transliteration.}}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +\catcode `\~=10 +\gdef \tr@kash {% define Kashmiri transliteration +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\tr@zdmg \let \@ub \underbar +\let \specw@w \putw@w % no special handling of w after .h +\gdef \tr@j {ts} \gdef \tr@x {\'{s}} \gdef \tr@C {\b{s}} +\gdef \tr@D {\x@x{z}} \gdef \tr@F {\b{z}} \gdef \tr@G {j} +\gdef \tr@H {\d{h}} \gdef \tr@J {c} \gdef \tr@R {\@ub{\tr@gh}} +\gdef \tr@S {\d{s}} \gdef \tr@T {t} \gdef \tr@V {\b{t}} +\gdef \tr@X {\@ub{\tr@kh}} \gdef \tr@Z {\d{z}} +\tr@def \a@d {\d{d}} \tr@def \a@r {\d{r}} \tr@def \a@t {\d{t}} +\tr@def \a@Za {\d{a}} \tr@def \a@ZA {\d{\=a}} +\tr@def \a@Zo {\d{o}} \tr@def \a@ZO {\d{\=o}} +\tr@def \a@Zu {u'} \tr@def \a@ZU {\=u'} \tr@def \a@ZI {\.y} +\a@message {Kashmiri~transliteration.}}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +\catcode `\~=10 +\gdef \tr@uigh {% define Uighuric transliteration +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\tr@zdmg +\gdef \tr@a {a} \gdef \tr@e {e} +\gdef \tr@i {i} \gdef \tr@j {j} +\gdef \tr@o {o} \gdef \tr@u {u} +\gdef \tr@G {\v{g}} \gdef \tr@X {x} +\gdef \tr@Y {} +\tr@def \a@A {\"a} \tr@def \a@O {\"o} +\tr@def \a@U {\"u} \tr@def \a@X {v} +\a@message {Uyghuric~transliteration.}}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +\catcode `\~=10 +\gdef \tr@uighe {% define Uighuric English transliteration +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\tr@zdmg \let \@ub \underbar +\gdef \tr@a {a} \gdef \tr@e {e} +\gdef \tr@i {i} \gdef \tr@j {\@ub{\tr@zh}} +\gdef \tr@o {o} \gdef \tr@u {u} +\gdef \tr@x {\@ub{\tr@sh}} \gdef \tr@G {j} +\gdef \tr@J {\@ub{\tr@ch}} \gdef \tr@K {\@ub{\tr@ng}} +\gdef \tr@R {\@ub{\tr@gh}} \gdef \tr@X {\@ub{\tr@kh}} +\gdef \tr@Y {} +\tr@def \a@A {\"a} \tr@def \a@O {\"o} +\tr@def \a@U {\"u} \tr@def \a@X {v} +\a@message {Uyghuric~English~transliteration.}}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \settrans #1{% switch the transliteration +\lowercase {\def \tr@code {#1}\begingroup +\def \tr@lookup ##1#1##2##3\@@ {\endgroup ##2}% +\xpa \tr@lookup \tr@table #1\tr@default \@@ }% +\let \tr@oldcode \tr@code } + +\def \tr@table {% table of transliterations +standard\tr@standard zdmg\tr@standard english\tr@encislam +turk\tr@turk urdu\tr@urdu iranica\tr@enciran +farsi\tr@farsi lazard\tr@lazard kashmiri\tr@kash +uighur\tr@uigh uighure\tr@uighe } + +\def \tr@standard {% standard transliteration +\ifx \tr@code \tr@oldcode \else \tr@zdmg +\a@message {ZDMG transliteration.}\fi } + +\def \tr@default {% unknown transliteration +\tr@zdmg \message {unknown transliteration `\tr@code'}% +\a@message {ZDMG transliteration is assumed.}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\let \tr@oldcode \tr@code \settrans {zdmg} % default + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\catcode`\@ = \transatcode + +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/tex/latex/arabtex/awrite.sty b/Master/texmf-dist/tex/latex/arabtex/awrite.sty new file mode 100644 index 00000000000..8ba345dcf73 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/awrite.sty @@ -0,0 +1,397 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% awrite.sty +% ArabTeX +% basic contextual analysis +% called in HMODE +% Version 05.06.2003 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@ident {awrite.sty} {3.11 build output word } {05.06.2003} + +\UsePackage {xarbsymb} % character definitions +\UsePackage {arabskel} % skeleton definitions +\UsePackage {xarbskel} +\UsePackage {aboxes} % deposit output boxes + +\UsePackage {arabtoks} % token definitions +\UsePackage {arabchrs} % character macros + +% ACT = 1. char +\newcount \act@cd \newcount \act@cls \newcount \act@mod +\newcount \act@con \newcount \act@tie + +% CHR = 2. char +\newcount \chr@cd \newcount \chr@cls \newcount \chr@mod +\newcount \chr@con \newcount \chr@tie + +% SKL = 3. char +\newcount \skl@cd \newcount \skl@cls \newcount \skl@mod +\newcount \skl@con + +\newcount \red@mod \newcount \a@shp +\newcount \a@max \newcount \a@min + +\newif \if@con \newif \if@mod@act \newif \if@high@act +\newif \if@mod@chr \newif \if@tat \newif \if@tatl +\newif \if@updia \newif \if@lodia \newif \ifa@sk +\newif \ifa@min \newif \ifa@max + +\newdimen \a@min@dp \newdimen \a@dx \newdimen \a@dy + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newif \ifa@@write \a@@writetrue + +\def \a@@write #1>{% Arabic output +\iftest@write \tracingmacros 1 +\iftest@parse \else \a@verb (#1 )>\fi\fi +\a@write@hook +\ifa@@write \arab@testfont \aw@beg #1>0+0*>0+0*>\fi +\iftest@write \tracingmacros 0 \fi } + +\let \a@write \a@@write \let \a@write@hook \relax + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%em# := 25.4dx#; %ex# := 8dy#; + +{\catcode `p=12 \catcode `t=12 % see TeXbook, Appendix D +\csname expandafter\endcsname \gdef +\csname getfactor\endcsname #1pt{#1}} + +\def \arab@testfont {% diagnose font, look for vowels and ayin +\edef \next {\the\font }% +\ifx \next \a@font \else +\iftest@font \a@message{Arabic font \next selected.}\fi +\global\let \a@font \next \a@testfont \fi } + +\def \a@testfont {% diagnose font, set params +\xdef \a@slant {\xpa\getfactor \the\fontdimen1\font }% +\dimen@ 128\fontdimen7\font % assumes \fontdimen7 < 128 pt +\divide \dimen@ \fontdimen6\font \multiply \dimen@ 512 +\xdef \a@skew {\xpa\getfactor \the\dimen@}} + +\def \a@norm {% start a new character group +\global\@highfalse \global\a@min@dp \z@ \global\a@min \z@ +\global\a@max \z@ \a@disp \z@ \@high@actfalse \global\a@sktrue } + +\def \aw@init {% start word, get font parameters +\a@norm \leavevmode \a@dx .04em \a@dy .125ex } + +\def \a@skew {0} \def \a@slant {0} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \aw@beg #1#2*#3#4*#5{% start output +% c m * c m * c + \aw@init + \test@chr #1\def \next {\aw@end #1#2*#3#4*#5}% +\ifx #1-\test@chr #3\chr@fam #3% + \def \next {\aw@mid #3#4*#5}% + \ifx #3>\ac@other #1#2*#3#4*#5<% + \fi \else +\ifcat -\nxp #1\a@shift \test@chr #3% + \@confalse \ac@other #1#2*#3#4*#5<\else +\fi\fi \next } + +\def \aw@beg #1#2*#3#4*#5{% start output +% c m * c m * c +\ifx #1>\let \next \relax \else + \aw@init + \test@chr #1\def \next {\aw@end #1#2*#3#4*#5}% +\ifx #1-\test@chr #3\chr@fam #3% + \def \next {\aw@mid #3#4*#5}% + \ifx #3>\ac@other #1#2*#3#4*#5<% + \fi \else +\ifcat -\nxp #1\a@shift \test@chr #3% + \@confalse \ac@other #1#2*#3#4*#5<\else +\fi\fi\fi \next } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \aw@end #1#2*#3#4*#5{% character is not joined to the left +% c m * c m * c +% ACT, CHR defined +\ifx #1>\let \next \relax \else +\if \AND{\isx #3|}{\is@end@char #5}\def \next {\aw@end #1#2*#5}% +\else \def \next {\aw@end #3#4*#5}% + \a@shift \test@chr #3% + \if \AND{\iscat -{\nxp #3}}% + {\NOT {\is@end@char #5}}\@contrue + \fi + \ifnum \act@cd = \a@alif \def \next {\alif@lig #2*#3#4*#5}\else + \ifcat \nxp ~\nxp #1\else + \ifx #1-\chr@fam #3\else +% \ifcat -\nxp #1\ac@other #1#2*#3#4*#5<\else + \ifcat -\nxp #1\@confalse \ac@other #1#2*#3#4*#5<\else + \ifnum \act@cd = \a@hamzc \@confalse \else + \ifnum \act@cd = \a@break \@confalse \else + \if@con \chr@fam #3% + \fi + \ifu@gh \@mod@acttrue + \ifnum \act@cd = \a@qaf \set@act\sk@q@s + \fi + \else \aw@endligs #1#2*#3#4*#5% + \fi + \fi\fi + \a@kern + \ifnum \act@cd = \a@waw \under@cut #2*\else + \ifnum \act@cls = \rah@cls \under@cut #2*\else + \ifnum \act@cd = \a@hah \a@kern + \fi\fi\fi + \put@end #2*#3#4*#5<% + \fi\fi\fi\fi +\fi\fi \next } + +\def \alif@lig #1*#2#3*#4{% alif, test for ligature +% m * c m * c +\a@kern +\chr@fam #2\global\@highfalse +\ifx #2l\def \next {\lam@alif #1*#3*#4}\else + \gim@test #4% closed gim? + \kaf@test #2% kaf-alif ? + \aw@lower #4% + \put@end #1*#2#3*#4<% +\fi \next } + +\def \lam@alif #1*#2*#3#4*#5{% ligature lam-alif +% m * m * c m * c +\global\@highfalse \a@shift \test@chr #3\chr@fam #3% +\gim@test #5% closed gim? +\ifu@gh \else \kaf@test #3\fi % kaf-lam ? +\set@act\sk@l@a +\if@con \lig@end #1*#2*\def \next {\aw@mid #3#4*#5}% + \else \lig@iso #1*#2*\def \next {\aw@end #3#4*#5}% +\fi \next } + +\def \lig@iso #1*#2*{% isolated shape % m1 * m2 * +\put@lig@skel 0\a@f@iso #1*#2*\a@norm } + +\def \lig@end #1*#2*{% final shape % m1 * m2 * +\put@lig@skel 1\a@f@end #1*#2*} + +\def \aw@lower #1{% adjust vertical position +% uses ACT, CHR, and #1 +\ifligs +\ifnum \chr@cd = \a@hah + \ifx #1l\set@lowww@act \fi +\fi +\ifnum \chr@cls = 3 % gim etc + \a@test {#1}\xxpa \unp@ck@skl \skl@skel \relax +% \ifnum \skl@cls = 0 \set@lowww@act \fi + \ifnum \skl@cls = 1 \set@lowww@act \fi + \ifnum \skl@cls = 2 \set@lowww@act \fi + \ifnum \skl@cls = 5 \set@lowww@act \fi +\fi\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \aw@mid #1#2*#3#4*#5{% character is joined to the left +% c m * c m * c +% ACT, CHR defined +\ifx #1>\let \next \relax \else +\if \AND{\isx #3|}{\is@end@char #5}\def \next {\aw@mid #1#2*#5}\else +\ifx #1-\test@chr #3\chr@fam #3\def \next {\aw@mid #3#4*#5}\else + \a@shift \test@chr #3\chr@fam #3% +\ifcat -\nxp #1\ac@other #1#2*#3#4*#5<% +\else \if \AND{\iscat -{\nxp #3}}% + {\NOT {\is@end@char #5}}\@contrue + \fi + \ifu@gh \else + \aw@midligs #1#2*#3#5% + \fi + \put@mid #2*#3#4*#5<% + \if@con \else % initial shape + \ifnum \act@cls = \kaf@cls % kaf etc. + \xpa\if \xpa\is@in@list \chr@skel \sk@a \sk@l >\a@kern + \else \unkern \a@mkern + \fi + \fi\fi +\fi\fi\fi\fi \next } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \test@updia #1+#2*{% test for upper diacritic +% m21 + m22 * +\@updiafalse \@lodiafalse +\global\red@mod #1 \relax +\ifnum #1 > 9 \global\advance \red@mod -10 \fi +\ifcase \red@mod + \relax\or \@updiatrue\or \@updiatrue\or \@updiatrue\or + \@updiatrue\or \@lodiatrue\or +\fi +\ifcase #2\relax + \relax\or \@updiatrue\or \@updiatrue\or \@lodiatrue\or + \@updiatrue\or \@updiatrue\or \@lodiatrue\or \@updiatrue\or + \@updiatrue\or \@updiatrue\or \@updiatrue\or \@lodiatrue\or + \@updiatrue\or +\fi } + +\def \is@updia #1*{00% is there an upper diacritic ? +\test@updia #1*\if@updia \else \xpa \setiffalse \fi } + +\def \is@lodia #1*{00% is there a lower diacritic ? +\test@updia #1*\if@lodia \else \xpa \setiffalse \fi } + +\def \under@cut #1*{% if no upper diacritic % m2 * +\ifdim \a@dp > .5ex \else % \if\is@updia #1*\else +\unkern \a@mkern \fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \put@end #1*#2<{% deposit non-joining character, set new state +% m * c m * c < +\if@con \ac@end #1*\def \next {\aw@mid #2}% + \else \ac@iso #1*\def \next {\aw@end #2}% +\fi } + +\def \put@mid #1*#2<{% deposit joining character, set new state +% m * c m * c < +\if@con \ac@mid #1*\def \next {\aw@mid #2}% + \else \ac@beg #1*\def \next {\aw@end #2}% +\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \ac@high #1{\raise.5ex\hbox{#1}} +\def \ac@high #1{% raise punctuation +\ifu@gh #1\else \raise.5ex\hbox{#1}\fi } + +% define CS names for special punctuation + +{\catcode`\$ 12 \gdef \a@dlr {$} % $ +\catcode `\# 12 \gdef \a@hsh {#} % # +\catcode `\% 12 \gdef \a@pct {%}} % % +{\catcode`\^ 12 \gdef \a@up {^} % ^ +\catcode `\_ 12 \gdef \a@dn {_} % _ +\catcode `\& 12 \gdef \a@amp {&} % & +\catcode `\A 12 \gdef \a@dq {A} % " +\catcode `\B 12 \gdef \f@sila {B} % , +\catcode `\C 12 \gdef \h@phen {C} % - +\catcode `\D 12 \gdef \a@bar {D} % | +\catcode `\E 12 \gdef \a@qt {E} % ' +\catcode `\F 12 \gdef \a@bsl {F} % \ +\catcode `\G 12 \gdef \a@lbc {G} % { +\catcode `\H 12 \gdef \a@rbc {H} % } +\catcode `\I 12 \gdef \a@ell {I} % ... +\catcode `\J 12 \gdef \a@div {J} % :- +\catcode `\K 12 \gdef \a@lab {K} % < +\catcode `\L 12 \gdef \a@rab {L} % > +\catcode `\M 12 \gdef \a@end {M} % -- +\catcode `\N 12 \gdef \a@emd {N} % --- +\catcode `\O 12 \gdef \a@lq {O} % ` +\catcode `\P 12 \gdef \a@rq {P} % ' + +\gdef \ac@other #1#2*#3<{% special punctuation mark +% c * c m * c +\case #1\of +{ ){\ac@high {(}} + ({\ac@high {)}} + ]{\ac@high {[}} + [{\ac@high {]}} + `{\a@kern \ac@high {\char \a@lquotes }} + '{\ac@high {\char \a@rquotes }\a@kern } + ^{{\tt ^}} + _{{\tt _}} + &{{\tt \char`\&}} + A{{\tt "}} + B{{\rm \bf ,}} + C{\ac@high {-}} + D{{\tt \char`\|}} + 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 \char'173}} + N{{\rm \bf \char'174}} + O{{\rm \bf `}} + P{{\rm \bf '}} +% |{\char \a@break } + |{} + 4{\ac@high {\iff@rsn \char \a@f@iv \else 4\fi }\a@kern } + 5{\ac@high {\iff@rsn \char \a@f@v \else 5\fi }\a@kern } + 6{\ac@high {\iff@rsn \char \a@f@vi \else 6\fi }\a@kern } +\default {\ac@high {#1}\a@kern } +}\endcase +\if@con \def \next {\aw@mid #3}% + \else \def \next {\aw@end #3}% +\fi } +%\def \next {\aw@end #3}} +}% catcodes 12 + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \ac@iso #1*{% isolated shape % m * +\put@skel 0\a@f@iso #1*\a@norm } + +\def \ac@end #1*{% final shape % m * +\put@skel 1\a@f@end #1*} + +\def \ac@mid #1*{% medial shape % m * +\put@skel 2\a@f@mid #1*} + +\def \ac@beg #1*{% initial shape % m * +\put@skel 3\a@f@beg #1*\a@norm } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@shift {% go to next position +% ACT := CHR +\let \act@skel \chr@skel \act@mod \chr@mod \get@act +\act@tie \chr@tie +\let \if@mod@act \if@mod@chr \@mod@chrfalse } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \test@chr #1{% get attributes of next character +% set CHR := SKL := <#1> +\a@test #1\chr@tie 0 +\let \chr@skel \skl@skel \chr@mod \skl@mod \get@chr +\ifnum \chr@con = 0 \@confalse \else \@contrue \fi } + +\def \a@test #1{% get character attributes +% set SKL := <#1> +\set@skl \sk@def \skl@mod 0 +\ifcat \nxp #1a% + \xpa \ifx \csname tc@\string #1\endcsname \relax + \else \unp@ck@tc {#1}% + \fi \else +\if \nxp #1\relax \unp@ck@cs {#1}\else +\ifx #1-\set@skl \sk@B \else +\ifx #1|\set@skl \sk@spc \else +\fi\fi\fi\fi } + +\def \a@test #1{% get character attributes +% set SKL := <#1> + \skl@mod 0 +\ifcat \nxp #1a% + \xpa \ifx \csname tc@\string #1\endcsname \relax + \set@skl \sk@def + \else \unp@ck@tc {#1}% + \fi \else +\if \nxp #1\relax \unp@ck@cs {#1}\else +\ifx #1-\set@skl \sk@B \else +\ifx #1|\set@skl \sk@spc \else + \set@skl \sk@def +\fi\fi\fi\fi } + +\def \unp@ck@cs #1{% evaluate token routine +\xpa\unp@ck@token #1\relax } + +\def \unp@ck@tc #1{% evaluate letter description +\xxpa\unp@ck@token \csname tc@\string #1\endcsname \relax } + +\def \unp@ck@token #1,#2\relax {% unpack letter description +\def \skl@skel {#1}\skl@mod #2} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/Master/texmf-dist/tex/latex/arabtex/bhs.sty b/Master/texmf-dist/tex/latex/arabtex/bhs.sty new file mode 100644 index 00000000000..79af79cb529 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/bhs.sty @@ -0,0 +1,213 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%% bhs.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% bhs.sty +% Scanner for the CCAT encoding used in the machine-readable +% Biblia Hebraica Stuttgardiana +% to install it, include it as a LaTeX package or style option "bhs" +% with Plain TeX, say "\input bhs.sty" +% to activate it, say "\setcode {bhs} +% 26.07.1999 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \bhsatcode \undefined \else \expandafter \endinput +\fi % load only once + +\chardef \bhsatcode = \catcode`\@ \catcode`\@ = 11 + +\a@ident {bhs.sty} {3.09 read BHS Hebrew encoding} {26.07.1999} + +\UsePackage {bhslabel} % process BHS labels + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% dynamic definitions for BHS Hebrew coding +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +\catcode `\"=12 \catcode `\&=12 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\gdef \setbhs@codes {% activate and change some codes +\globaldefs=1 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def \sc@A {a} \def \sc@B {b} \def \sc@C {S} \def \sc@D {d} +\def \sc@E {e} \def \sc@F {A} \def \sc@G {g} \def \sc@H {h} +\def \sc@I {i} \def \sc@J {t} \def \sc@K {k} \def \sc@L {l} +%\def \sc@M {m} \def \sc@N {n} \def \sc@O {O} \def \sc@P {p} +\def \sc@M {m} \def \sc@N {n}\def\sc@O{\n@xp\a@o}\def \sc@P {p} +\def \sc@Q {q} \def \sc@R {r} \def \sc@S {s} \def \sc@T {t} +%\def \sc@U {u} \def \sc@V {D} \def \sc@W {W} \def \sc@X {X} +\def \sc@U {u} \def \sc@V {D} \def \sc@W {w} \def \sc@X {X} +\def \sc@Y {y} \def \sc@Z {z} \def \sc@@ {QQ} +\a@digits = {0123456789} \a@paren = {[]} +\a@first = {)+(##&$":.,*0123456789} +\globaldefs=0 } +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +}% end of dynamic definitions for BHS +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +{\arab@codes +\catcode `\& 12 + +\gdef \bhs@beg #1#2{% start BHS scanner +\@ssimfalse \def \next {\bhs@word #1#2}% +\ifx #1\@\def \next {\sc@endscan #2}\else % finished +\ifx #2\@\def \next {\bhs@testpara #1#2}\else +\ifx #2?\def \next {\bhs@testpara #1#2}\else +%\ifx #1W\def \next {\bhs@begW #2}\else +%\fi +\fi\fi\fi \next } + +\gdef \bhs@word #1#2{% transform input into internal notation + \def \next {\bhs@word #2}% +\ifx #1\@\def \next {\sc@endscan #2}\else % finished +\ifx #1]\def \next {\bhs@word }\else +\ifx #10\def \next {\bhs@zero #2}\else +\ifx #17\def \next {\bhs@seven #2}\else +\if\is@in@set #1\a@digits \def \next {\bhs@word }\else +% +\ifx #1?\def \next {\bhs@query #2}\else +\ifx #1:\def \next {\bhs@colon #2}\else +%\ifx #1O\def \next {\bhs@O #2}\else +%\ifx #1W\def \next {\bhs@W #2}\else +\ifx #1|\def \sc@char {|}\sc@put \else +%\ifx #1#2\def \next {\bhs@word #1|#2}\else +% +%\ifx #1.\sc@put \else +\ifx #1.\def \sc@char {\nxp \a@Zu }\sc@put \else +\ifx #1'\def \sc@char {'}\sc@put \else +\ifx #1)\def \sc@char {Q}\sc@put \else +\ifx #1+\def \sc@char {C}\sc@put \else +% +\ifx #1(\def \sc@char {P}\sc@put \else +\if #1\a@hash \def \sc@char {\nxp \a@S }\sc@put \else +\ifx #1&\def \sc@char {\nxp \a@s }\sc@put \else +\ifx #1$\def \sc@char {x}\sc@put \else +% +\ifx #1"\def \sc@char {\nxp \a@E }\sc@put \else +\ifx #1-\def \sc@char {B}\sc@put \else +\ifx #1*\def \sc@char {*}\sc@put \else +\ifcat \nxp #1a\edef \sc@char {\csname sc@#1\endcsname }% + \sc@put +\fi\fi\fi\fi +\fi\fi\fi\fi +\fi\fi\fi\fi +% +%\fi +%\fi +\fi\fi\fi\fi +%\fi +\fi\fi\fi\fi +\next } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\gdef \bhs@colon #1{% shwa or chatef +\def \next {\bhs@word }% +\ifx #1A\def \sc@char {\nxp \a@A }\else +\ifx #1F\def \sc@char {\nxp \a@O }\else +\ifx #1E\def \sc@char {\nxp \a@I }\else +\def \sc@char {\nxp \a@e }\def \next {\bhs@word #1}% +\fi\fi\fi \sc@put \next } + +\gdef \bhs@O #1#2{% cholem or cholem waw +\if\is@in@set #1\a@digits \def \next {\bhs@word #1#2O}\else + \ifx #1W\def \sc@char {O}\def \next {\bhs@word #2}% + \else \def \sc@char {\nxp \a@o }\def \next {\bhs@word #1#2}% + \fi \sc@put +\fi \next } + +\iffalse +\gdef \bhs@W #1{% waw or shureq +\def \sc@char {w}\def \next {\bhs@word #1}% +\sc@put \next } + +\gdef \bhs@begW #1{% initial waw +\ifx #1.\def \sc@char {ww}\def \next {\bhs@word }% +\else \def \sc@char {w}\def \next {\bhs@word #1}% +\fi \sc@put \next } +\fi + +\gdef \bhs@seven #1{% meteg +\def \next {\bhs@word }% +\ifx #15\def \sc@char {|}\sc@put \else +\if\is@in@set #1\a@digits \else \def \next {\bhs@word #1}% +\fi\fi \next } + +\gdef \bhs@zero #1{% sop pasuq and pasuq +\ifx #10\def \sc@char {:}\sc@put \def \next {\bhs@word }\else +%\ifx #15\def \sc@char {K}\sc@put \def \next {\bhs@word }\else +\ifx #15\def \next {\bhs@pasuq }\else +\if\is@in@set #1\a@digits \def \next {\bhs@word }\else + \def \next {\bhs@word #1}% +\fi\fi\fi \next } + +}% \arab@codes + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \bhs@testpara #1#2{% single initial P ? +\ifx #1P\def \next {\bhs@para #1#2}% +\else \def \next {\bhs@word #1#2}% +\fi \next } + +\def \a@c@bhspara {% small paragraph mark +\putwordb@x {\small \heb@font \heb@testfont +\act@cd '164 \advance \act@cd \heb@dsp +\space \char \act@cd \space }\test@token } + +\def \a@c@pasuq {% verse division +\putwordb@x {\small $\!|\!$}\test@token } + +\def \bhs@para P#1\@ \@@ {% prepare paragraph mark +\sc@back \bhspara #1\@ \@@ } + +\def \bhs@pasuq #1\@ \@@ {% prepare verse division +\sc@back \pasuq #1\@ \@@ } + +\newcount \bhsmode \bhsmode 0 + +\def \bhs@query #1\@ \@@ {% new line, push back the rest +\ifnum \bhsmode = 1 \sc@back \\#1\@ \@@ \else % finish line +\ifnum \bhsmode = 2 \sc@back \|#1\@ \@@ \else % stretch line + \sc@back #1\@ \@@ % next word +\fi\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \set@bhs {% substitute the BHS scanner +\let \sc@beg \bhs@beg \let \sc@word \bhs@word +\let \sc@back \sc@@back \let \sc@endscan \sc@@endscan +\let \a@scan \a@@scan \setbhs@codes +\let \arab@codes \bhs@arab@codes +\let \unarab@codes \bhs@unarab@codes +\a@message {input encoding set to BHS conventions}} + +\xpa \def \xpa \sc@table \xpa {\sc@table % add the BHS encoding +bhs\set@bhs } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \bhs@arab@codes {% save and set special characters +\csname originalTeX\endcsname +\chardef \spc@de = \catcode`\ \catcode`\ = 10 +\chardef \dqc@de = \catcode`\" \catcode`\" = \@other +\chardef \lsc@de = \catcode`\< \catcode`\< = \@other +\chardef \hsc@de = \catcode`\# \catcode`\# = \@other +\chardef \amc@de = \catcode`\& \catcode`\& = \@other +\arab@charsubdefmax \charsubdefmax \charsubdefmax \m@ne } + +\def \bhs@unarab@codes {% reset catcodes +\catcode`\ = \spc@de \catcode`\< = \lsc@de \catcode`\" = \dqc@de +\catcode`\# = \hsc@de \catcode`\& = \amc@de +\charsubdefmax \arab@charsubdefmax } + +{\catcode`\# = \@other \gdef \a@hash {#}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@message {scanner for BHS encoding installed.} + +\catcode `\@ = \bhsatcode +\endinput +%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/Master/texmf-dist/tex/latex/arabtex/bhslabel.sty b/Master/texmf-dist/tex/latex/arabtex/bhslabel.sty new file mode 100644 index 00000000000..3ed9b1dee9c --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/bhslabel.sty @@ -0,0 +1,149 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%% bhslabel.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% bhslabel.sty +% called by bhs.sty +% generate markup from BHS label notation +% 01.12.1998 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@ident {bhslabel.sty} {3.00 BHS label markup} {01.12.1998} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\xpa \gdef \csname a@c@\string ~\endcsname #1 {% get BHS label +%\tracingmacros 1 +\def \bhs@@label {#1}\bhs@label #1\@ +\tracingmacros 0 +\bhs@out \test@token } + +\errorcontextlines 10 + +\def \is@digit #1{\is@in@list #10123456789>} + +\def \is@label #1{\is@in@list #1abcvwxyz>} + +\def \bhs@err {% illegal BHS label +\errmessage {illegal BHS label `\bhs@@label'}} + +\def \bhs@label #1{% start processing BHS label +\if\is@label #1\bhs@init {#1}\let \next \bhs@A +\else \let \next \bhs@err +\fi \next } + +{\catcode `\" 12 +\gdef \bhs@A #1{% get label value +\ifx #1\@ \bhs@store \let \next \relax \else +\ifx #1"\let \next \bhs@B \else +\if\is@label #1\bhs@store % null value + \bhs@init {#1}\let \next \bhs@A \else +\if\is@digit #1\def \bhs@value {#1}\let \next \bhs@D \else + \let \next \bhs@err +\fi\fi\fi\fi \next } + +\gdef \bhs@B #1"{% get label string value +\def \bhs@kind {S}\def \bhs@value {#1}\bhs@C } + +\gdef \bhs@C #1{% get next label after string +\ifx #1\@ \bhs@store \let \next \relax \else +\if\is@label #1\bhs@store + \bhs@init {#1}\let \next \bhs@A \else + \let \next \bhs@err +\fi\fi \next } + +\gdef \bhs@D #1{% get next digit +\def \bhs@kind {I}% +\ifx #1\@ \bhs@store \let \next \relax \else +\if\is@label #1\bhs@store + \bhs@init {#1}\let \next \bhs@A \else +\if\is@digit #1\edef \bhs@value {\bhs@value #1}% + \let \next \bhs@D \else + \let \next \bhs@err +\fi\fi\fi \next } +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newcount \bhs@cnt +\newif \ifbhs@outa \newif \ifbhs@outx +\newif \ifbhs@outy \newif \ifbhs@outz + +\def \bhs@init #1{% init label +\def \bhs@name {#1}\def \bhs@value {}\def \bhs@kind {N}} + +\def \bhs@store {% store label value and execute +\begingroup \edef \x {\endgroup \if N\bhs@kind \nxp \bhs@inc {\bhs@name }% +\else \nxp \bhs@set {\bhs@name }{\bhs@value }{\bhs@kind }\fi }\x } + +\def \bhs@set #1#2#3{% set label value +\csname bhs@#1set\endcsname {#2}{#3}} + +\def \bhs@inc #1{% increase label value +\if I\csname bhs@#1kind\endcsname \bhs@cnt \csname bhs@#1value\endcsname + \advance \bhs@cnt 1 \begingroup + \edef \x {\endgroup \nxp \bhs@set {#1}{\the\bhs@cnt }{I}}\x +\else \errmessage {BHS level `#1' has no numeric value}% + \bhs@set {#1}{1}{I}% +\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \bhs@aset #1#2{% set level a +\def \bhs@avalue {#1}\def \bhs@akind {#2}\bhs@outatrue +\bhs@xset {0}{I}\bhs@yset {0}{I}\bhs@zset {0}{I}} + +\def \bhs@bset #1#2{% set level b +\def \bhs@bvalue {#1}\def \bhs@bkind {#2}} + +\def \bhs@cset #1#2{% set level c +\def \bhs@cvalue {#1}\def \bhs@ckind {#2}} + +\def \bhs@zset #1#2{% set level z +\def \bhs@zvalue {#1}\bhs@outztrue \def \bhs@zkind {#2}} + +\def \bhs@yset #1#2{% set level y +\def \bhs@ykind {#2}\def \bhs@value {#1}% +\ifx \bhs@yvalue \bhs@value \else + \def \bhs@yvalue {#1}\bhs@outytrue \bhs@zreset + \if #2I\ifnum #1 = 0 + \bhs@outyfalse \bhs@outzfalse + \fi\fi +\fi } + +\def \bhs@xset #1#2{% set level x +\def \bhs@xkind {#2}\def \bhs@value {#1}% +\ifx \bhs@xvalue \bhs@value \else + \def \bhs@xvalue {#1}\bhs@outxtrue \bhs@yreset + \if #2I\ifnum #1 = 0 + \bhs@outxfalse \bhs@outyfalse \bhs@outzfalse + \fi\fi +\fi } + +\def \bhs@yreset {% reset level y +\def \bhs@yvalue {1}\def \bhs@ykind {I}\bhs@outytrue \bhs@zreset } + +\def \bhs@zreset {% reset level z +\def \bhs@zvalue {1}\def \bhs@zkind {I}\bhs@outztrue } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \bhs@yout {% verse +\putwordb@x {\tracingmacros 0 \rm $^{\bhs@yvalue }$\space }\a@spacetrue } + +\def \bhs@xout {% chapter +\putwordb@x {\tracingmacros 0 \bf \bhs@xvalue \space }} + +\def \bhs@aout {% heading +{\tracingmacros 0 \rm \hfill \bhs@@label }\bigskip } + +\def \bhs@out {% print new label +\ifbhs@outa \bhs@outafalse \bhs@aout \fi +\ifbhs@outx \bhs@outxfalse \bhs@xout \fi +\ifbhs@outy \bhs@outyfalse \bhs@yout \fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput +%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/Master/texmf-dist/tex/latex/arabtex/buck.sty b/Master/texmf-dist/tex/latex/arabtex/buck.sty new file mode 100644 index 00000000000..367dbcd2062 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/buck.sty @@ -0,0 +1,229 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%% buck.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% buck.sty +% Scanner for Tim Buckwalter's encoding +% to install it, include it as a LaTeX style option "buck" +% with Plain TeX, say "\input buck.sty" +% to activate it, say "\setcode {buck} +% 27.10.97 +% 04.02.98 +% 28.07.2003 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \buckatcode \undefined \else \expandafter \endinput +\fi % load only once + +\chardef \buckatcode = \catcode`\@ \catcode`\@ = 11 + +\a@ident {buck.sty} {0.95 Tim Buckwalter's input encoding } {28.07.2003} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\xpa\def \csname sc@\string }\endcsname {Qy} % hamza on yah + +\xpa\def \csname sc@\string {\endcsname {-""} % medial alif waSla + +\def \sc@def #1#2{\xpa\def\csname sc@\string #1\endcsname {#2}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% dynamic definitions for Arabic +{\catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\gdef \setbuck@codes {% activate and change some codes +\globaldefs=1 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def \sc@@ {@} \def \sc@c {@} \def \sc@e {@} +\def \sc@B {@} \def \sc@C {@} \def \sc@G {@} \def \sc@I {@} +\def \sc@J {@} \def \sc@L {@} \def \sc@M {@} \def \sc@O {@} +\def \sc@P {@} \def \sc@Q {@} \def \sc@R {@} \def \sc@U {@} +\def \sc@V {@} \def \sc@W {@} \def \sc@X {@} + +\sc@def ' {Q|} \sc@def | {QA} \sc@def > {Qa} \sc@def & {Qw} +\sc@def < {Qi} \sc@def ## {|} \def \sc@A {A} \def \sc@b {b} +\def \sc@p {T} \def \sc@t {t} \def \sc@v {C} \def \sc@j {G} +\def \sc@H {H} \def \sc@x {X} \def \sc@d {d} \sc@def * {F} +\def \sc@r {r} \def \sc@z {z} \def \sc@s {s} \sc@def $ {x} +\def \sc@S {S} \def \sc@D {D} \def \sc@T {V} \def \sc@Z {Z} +\def \sc@E {P} \def \sc@g {R} \sc@def _ {B} +\def \sc@f {f} \def \sc@q {q} \def \sc@k {k} \def \sc@l {l} +\def \sc@m {m} \def \sc@n {n} \def \sc@h {h} \def \sc@w {w} +\def \sc@Y {Y} \def \sc@y {y} \def \sc@F {"aN} \def \sc@N {"uN} +\def \sc@K {"iN} \def \sc@a {"a} \def \sc@u {"u} \def \sc@i {"i} +\sc@def ~ {\n@xp \a@Ze} \def \sc@o {""} \sc@def ` {"\n@xp \a@a} + +\a@digits = {0123456789} \a@paren = {()[]} +\a@first = {"`} +\globaldefs=0 } +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +}% end of dynamic definitions for Arabic +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\long \def \buck@special #1{% check for special cases +\if \is@in@set #1\a@first % normal case + \def \next {\test@word #1}\else +\if \relax \nxp #1% % command + \def \next {\test@command #1}\else + \def \next {\test@word #1}% % normal case +\fi\fi \next } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newif \ifk@sra +\def \lowkasra {\k@sratrue } \def \hikasra {\k@srafalse } + +\def \a@putkasra #1{% modification at kasra % m1 +\ifcase #1\put@kasra \or +\ifqur@n \put@kasra \else \put@fatha \fi \put@shadda \or +\put@ihamza \put@kasra \or \put@fatha \put@hamza \put@shadda \or +\put@madda \put@kasra \or \put@hamzalo \put@kasra \or +\fi } + +\def \a@putkasratan #1{% modification at kasratan % m1 +\ifcase #1\put@kasratan \or +\ifqur@n \put@kasratan \else \put@fathatan \fi \put@shadda \or +\put@ihamza \put@kasratan \or \put@fathatan \put@hamza \put@shadda \or +\put@madda \put@kasratan \or \put@hamzalo \put@kasratan \or +\fi } + +\def \put@ihamza {% hamza at depending on carrier +\ifh@mza \ifnum \act@cd = \a@alif@iso \put@hamzalo \else + \ifnum \act@cd = \a@alif@end \put@hamzalo \else + \ifnum \act@cd = \a@lam@alif@iso \put@hamzalo \else + \ifnum \act@cd = \a@lam@alif@end \put@hamzalo \else + \put@hamza + \fi\fi\fi\fi +\else \put@hamza \fi } + +\def \syl@hamzaverb #1{% verbatim hamza, #1 = carrier + \put@con #1\def \next {\syl@voctest }% +\ifx #1|\put@con Q\else +\ifx #1A\put@con a\add@madda \@sukfalse \else + \add@hamza +\ifx #1y\put@con Y% +\ifqur@n \add@hamzalow \fi \else +\ifx #1u\put@con w\else +\ifx #1i\put@con a\add@hamzalow \else +\fi\fi\fi\fi\fi \next } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \buck@cat {% change catcodes +\catcode `\# 11 +\catcode `\' 11 \catcode `\| 11 \catcode `\> 11 \catcode `\& 11 +\catcode `\< 11 \catcode `\} 11 \catcode `\* 11 \catcode `\$ 11 +\catcode `\_ 11 \catcode `\~ 11 \catcode `\` 11 \catcode `\{ 11 } + +\def \buck@recat {% change catcodes back +\catcode `\# 6 +\catcode `\' 12 \catcode `\| 12 \catcode `\> 12 \catcode `\& 4 +\catcode `\< 12 \catcode `\2 11 \catcode `\* 12 \catcode `\$ 3 +\catcode `\_ 8 \catcode `\~ 13 \catcode `\` 12 \catcode `\{ 1 } + +\def \buck@codes {% save and set special characters +\a@arabcodes \buck@cat } + +\def \unbuck@codes {% reset catcodes +\a@unarabcodes \buck@recat } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\xpa \def \csname a@c@end\string{arabtext\string}\endcsname {\end{arabtext} } + +{\catcode `\[ 1 \catcode `\] 2 \catcode `\{ 11 \catcode `\} 11 +\gdef \a@c@end {arabtext}[\end[arabtext]] +] + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \TB({\bgroup \def \a@c@end {\end }\buck@cat \T@B}% prepare reading + +\def \T@B #1){\protect \a@ins #1>\egroup }% now read the argument + +\def \<{\bgroup \def \a@c@end {\end }\buck@cat \T@@B}% prepare reading + +\def \T@@B #1\>{\protect \a@ins #1>\egroup }% now read the argument + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +{\catcode `\[ 1 \catcode `\{ 11 +\gdef \buck@beg #1[% start the TB scanner +\h@mzafalse \iz@fetfalse \novocalize % because of explicit quoting +\@ssimfalse + \def \next [\buck@word #1}% +\ifx #1\@ \def \next [\sc@endscan }\else % finished +\ifx #1{\def \next [\buck@lbrace }\else +\ifx #1"\def \next [\buck@lquote }\else +\fi\fi\fi \next } +} % catcodes 1 and 11 + +{\catcode `\^^M=13 \catcode `\~ 11 % +\gdef \buck@word #1#2{% transform input into internal notation + \def \next {\buck@word #2}% +\ifx #1\@ \def \next {\sc@endscan #2}\else % finished +\ifx #1-\def \next {\buck@minus #2}\else % +\ifx #1"\def \next {\buck@rquote #2}\else % +\if \nxp ^^M\nxp #1\def \next {\buck@par #1#2}\else % active character +\ifx #1#2\def \next {\buck@two #1}\else % +% \ifx #2~\def \next {\buck@word #1}\else % +% \fi % + \ifcat a\nxp #1\edef \sc@char {\csname sc@#1\endcsname }% + \else \def \sc@char {\nxp #1}% + \fi % + \sc@put % +\fi\fi\fi\fi\fi \next }% +} % catcodes 13 and 11 + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +{\catcode `\# 11 \catcode `\& 6 +\gdef \buck@two &1{% double character +\def \next {\buck@word -&1}\edef \sc@char {\csname sc@&1\endcsname}% +\ifx &1#\def \next {\buck@word &1}\fi +\sc@put \next }} + +\def \buck@minus {% hyphen between words +\def \sc@char {-}\sc@put \buck@beg } + +\def \buck@lquote {% left quote +\def \sc@char {`}\sc@put \buck@beg } + +\def \buck@rquote {% right quote +\def \sc@char {'}\sc@put \buck@word } + +\def \buck@lbrace {% initial left brace: alif wasla +\def \sc@char {""}\sc@put \buck@word } + +\def \buck@par #1\@ \@@ {% new line, push back the rest +\sc@back \\ #1\@ \@@ } + +\def \buck@endscan \@@ {\global\let \a@scan \a@@scan } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@buck {buck} \let \buck@setcode \setcode +\let \a@arabcodes \arab@codes \let \a@unarabcodes \unarab@codes + +\def \set@buck {% substitute new scanner +\let \sc@beg \buck@beg \let \sc@word \buck@word +\let \sc@back \sc@@back \let \sc@endscan \sc@@endscan +\let \a@scan \a@@scan \setbuck@codes +\let \arab@codes \buck@codes \let \unarab@codes \unbuck@codes +\let \test@special \buck@special +\message {input coding set to Tim Buckwalter's encoding conventions}} + +\def \setcode #1{\def \next {#1}% switch input coding +\ifx \next \a@buck \set@buck \else + \buck@setcode {#1} +\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\message {scanner for Tim Buckwalter's encoding installed.} + +\catcode `\@ = \buckatcode +\endinput +%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/Master/texmf-dist/tex/latex/arabtex/captions.def b/Master/texmf-dist/tex/latex/arabtex/captions.def new file mode 100644 index 00000000000..ea45d76c9a2 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/captions.def @@ -0,0 +1,76 @@ +% chapter = al-fa.slu +% chapter = al-bAbu +% section = al-fa.slu +% section = al-bandu +% section = al-qismu +% paragraph = al-fa.slu +% paragraph = al-bandu +% paragraph = al-mAddaTu +% overview = al-nna.zraTu +% abbreviations = al-mula_h_ha.su +% heading = al-`unwAnu +% heading = al-maqAdaTu +% tableofcontents = al-mu.htawayAtu +% tableofcontents = al-ma.dmUnu +% listoffigures = qA'imaTu al-.suwaru +% listoftables = qA'imaTu al-^gadAwilu +% listofpictures = qA'imaTu al-rusUmu +% index = al-fihrisu (al-fihristu) +% bibliography = al-marA^gi`u +% references = al-ma.sAdiru +% abstract = al-mula_h_ha.su +% abstract = al-^s^samlu +% appendix = al-mul.haqu +% attachments = al-murfaqAtu +% number = al-raqmu +% number = al-`adadu +% title = al-`unwAnu +% table = al-^gadwalu +% picture = al-.s.sUraTu +% picture = al-rrasmu +% page = al-.s.saf.haTu +% column = al-`amUdu +% introduction = al-tta.h.dIru +% introduction = al-muqaddamaTu +% introduction = al-ttaw.sIlu +% introduction = al-'id_hAlu +% list = al-qA'imaTu +% note = al-mal.hU.zaTu +% note = al-mulA.ha.zaTu +% entry = al-nnafdaTu + +% first page = a.s-.saf.haTu al-'Ul_A +% previous page = a.s-.saf.haTu qablu +% next page = a.s-.saf.haTu ba`du +% next page = a.s-.saf.haTu at-tAlI +% last page = a.s-.saf.haTu al-'A_hiraTu +% contents = mu_htaw_A +% part = al-^guz'u +% part = al-qismu +% see also = 'un.zur 'aydaN +% drawing = ar-rasmu + + +\def\captionsenglish{% +\def\prefacename{Preface}% +\def\refname{References}% +\def\abstractname{Abstract}% +\def\bibname{Bibliography}% +\def\chaptername{Chapter}% +\def\appendixname{Appendix}% +\def\contentsname{Contents}% +\def\listfigurename{List of Figures}% +\def\listtablename{List of Tables}% +\def\indexname{Index}% +\def\figurename{Figure}% +\def\tablename{Table}% +\def\partname{Part}% +\def\enclname{encl}% +\def\ccname{cc}% +\def\headtoname{To}% +\def\pagename{Page}% +\def\seename{see}% +\def\alsoname{see also}} + +\let\captionsUSenglish=\captionsenglish + diff --git a/Master/texmf-dist/tex/latex/arabtex/cp1256.sty b/Master/texmf-dist/tex/latex/arabtex/cp1256.sty new file mode 100644 index 00000000000..7e5a568735d --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/cp1256.sty @@ -0,0 +1,173 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%% cp1256.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% cp1256.sty +% Scanner for Windows CP 1256 +% to install it, include it as a LaTeX package or style option "cp1256" +% with Plain TeX, say "\input cp1256.sty" +% to activate it, say "\setcode{cp1256}" or "\setcode{arabwin}" +% 26.04.2003 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Formale Methoden der Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \awinatcode \undefined \else \expandafter \endinput +\fi % load only once + +\chardef \awinatcode = \catcode`\@ \catcode`\@ = 11 + +\a@ident {cp1256.sty} {3.11 CP 1256 Windows encoding} {26.04.2003} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \awin@catcodes {% assignments for MAC Hebrew +\countdef \is@m=2 \countdef \is@n=4 +\is@m = 128 \is@n = 64 +\loop \ifnum \catcode \is@m = 11 \else \catcode \is@m = 11 \fi +\global\lccode \is@m = \is@n +\ifnum 159 > \is@m \advance \is@m 1 \advance \is@n 1 \repeat +\is@m = 160 \is@n = 32 +\loop \ifnum \catcode \is@m = 11 \else \catcode \is@m = 11 \fi +\global\lccode \is@m = \is@n +\ifnum 255 > \is@m \advance \is@m 1 \advance \is@n 1 \repeat +\is@m=0 \is@n=0 \catcode `\^^a0 12 } + +{\awin@catcodes +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% dynamic definitions for Arabic +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\gdef \setawin@codes {% activate and change some codes +\globaldefs=1 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def \sc@^^80 {p} \def \sc@^^81 {@} \def \sc@^^82 {@} \def \sc@^^83 {@} +\def \sc@^^84 {@} \def \sc@^^85 {@} \def \sc@^^86 {@} \def \sc@^^87 {@} +\def \sc@^^88 {@} \def \sc@^^89 {@} +\def \sc@^^8a {\n@xp\a@t} \def \sc@^^8b {@} +\def \sc@^^8c {@} \def \sc@^^8d {J} +\def \sc@^^8e {j} \def \sc@^^8f {\n@xp\a@d} + +\def \sc@^^90 {g} \def \sc@^^91 {@} \def \sc@^^92 {@} \def \sc@^^93 {@} +\def \sc@^^94 {@} \def \sc@^^95 {@} \def \sc@^^96 {@} \def \sc@^^97 {@} +\def \sc@^^98 {\n@xp\a@k} \def \sc@^^99 {@} +\def \sc@^^9a {\n@xp\a@r} \def \sc@^^9b {@} +\def \sc@^^9c {@} \def \sc@^^9d {@} \def \sc@^^9e {@} +\def \sc@^^9f {\n@xp\a@n} + +\def \sc@^^a0 {@} \def \sc@^^a1 {,} \def \sc@^^a2 {@} \def \sc@^^a3 {@} +\def \sc@^^a4 {$} \def \sc@^^a5 {@} \def \sc@^^a6 {@} \def \sc@^^a7 {@} +\def \sc@^^a8 {@} \def \sc@^^a9 {@} \def \sc@^^aa {h} \def \sc@^^ab {@} +\def \sc@^^ac {@} \def \sc@^^ad {-} \def \sc@^^ae {@} \def \sc@^^af {@} + +\def \sc@^^b0 {@} \def \sc@^^b1 {@} \def \sc@^^b2 {@} \def \sc@^^b3 {@} +\def \sc@^^b4 {@} \def \sc@^^b5 {@} \def \sc@^^b6 {@} \def \sc@^^b7 {@} +\def \sc@^^b8 {@} \def \sc@^^b9 {@} \def \sc@^^ba {;} \def \sc@^^bb {@} +\def \sc@^^bc {@} \def \sc@^^bd {@} \def \sc@^^be {@} \def \sc@^^bf {?} + +\def \sc@^^c0 {\n@xp\a@H} +\def \sc@^^c1 {Q|} \def \sc@^^c2 {QA} \def \sc@^^c3 {Qa} +\def \sc@^^c4 {Qw} \def \sc@^^c5 {Qi} \def \sc@^^c6 {Qy} \def \sc@^^c7 {A} +\def \sc@^^c8 {b} \def \sc@^^c9 {T} \def \sc@^^ca {t} \def \sc@^^cb {C} +\def \sc@^^cc {G} \def \sc@^^cd {H} \def \sc@^^ce {X} \def \sc@^^cf {d} + +\def \sc@^^d0 {F} \def \sc@^^d1 {r} \def \sc@^^d2 {z} \def \sc@^^d3 {s} +\def \sc@^^d4 {x} \def \sc@^^d5 {S} \def \sc@^^d6 {D} \def \sc@^^d7 {@} +\def \sc@^^d8 {V} \def \sc@^^d9 {Z} \def \sc@^^da {P} \def \sc@^^db {R} +\def \sc@^^dc {B} \def \sc@^^dd {f} \def \sc@^^de {q} \def \sc@^^df {k} + +\def \sc@^^e0 {@} \def \sc@^^e1 {l} \def \sc@^^e2 {@} \def \sc@^^e3 {m} +\def \sc@^^e4 {n} \def \sc@^^e5 {h} +\def \sc@^^e6 {w} \def \sc@^^e7 {@} +\def \sc@^^e8 {@} \def \sc@^^e9 {@} \def \sc@^^ea {@} \def \sc@^^eb {@} +\def \sc@^^ec {Y} \def \sc@^^ed {y} \def \sc@^^ee {@} \def \sc@^^ef {@} + +\def \sc@^^f0 {"aN}\def \sc@^^f1 {"uN} \def \sc@^^f2 {"iN} \def \sc@^^f3 {"a} +\def \sc@^^f4 {@} \def \sc@^^f5 {"u} \def \sc@^^f6 {"i} \def \sc@^^f7 {@} +\def \sc@^^f8 {\n@xp\a@Ze} \def \sc@^^f9 {@} +\def \sc@^^fa {""} \def \sc@^^fb {@} +\def \sc@^^fc {@} \def \sc@^^fd {@} \def \sc@^^fe {@} \def \sc@^^ff {E} +\a@digits = {0123456789} +%\a@paren = {()[]^^a8^^a9^^e2^^e3} +\a@paren = {()[]} +\a@first = {"`^^e6} +\globaldefs=0 } +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +}% end of dynamic definitions for Arabic +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\gdef \awin@scan #1>{% standard 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 = {}\sc@beg #1\@ \@@ +\iftest@scan \tracingmacros = 0 % +\xpa \a@verb \xpa (\the\a@tokens )>\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\gdef \awin@beg #1{% start CP 1256 scanner +\h@mzafalse \iz@fetfalse \yahdots \novocalize % because of explicit quoting + \@ssimfalse +%\urd@true +\ifx #1^^c7\def \next {\awin@alif}\else +\def \next {\awin@word #1}\fi \next } + +{\catcode `\^^M=13 \endlinechar = -1 +\gdef \awin@word #1{% transform input into internal notation +\ifx #1\@ \def \next {\sc@endscan }\else % finished +\if \nxp ^^M\nxp #1\def \next {\awin@par #1}% active character +\else \def \next {\awin@w@rd #1}% +\fi\fi \next }% +} % catcode 13 + +\gdef \awin@w@rd #1#2{% special cases +\case #1\of +{ #2{\awin@word #1-#2} + -{\awin@minus #2} + "{\awin@dquote #2} + ^^a0{\sc@back #2} + ^^ad{\awin@minus #2} +\default {\awin@@word #1#2} +}\endcase } + +\gdef \awin@@word #1{% default branch +\ifcat a\nxp #1\edef \sc@char {\csname sc@#1\endcsname }% +\else \def \sc@char {\nxp #1}% +\fi \sc@put \awin@word } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\gdef \awin@alif {% alif at the beginning of a word +\def \sc@char {a}\sc@put \awin@word } + +\gdef \awin@dquote {% double quote +\def \sc@char {\a@dq}\sc@put \awin@word } + +\gdef \awin@minus {% hyphen between words +\def \sc@char {-}\sc@put \awin@beg } + +\gdef \awin@par #1\@ \@@ {% new line, push back the rest +\sc@back \\ #1\@ \@@ } + +\gdef \awin@endscan \@@ {\global\let \a@scan \awin@scan } +} % \awin@catcodes + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \set@awin {% select the CP 1256 scanner +\let \sc@beg \awin@beg \let \sc@word \awin@word +\let \sc@back \sc@@back \let \sc@endscan \awin@endscan +\global\let \a@scan \awin@scan \setawin@codes +\awin@catcodes \yahdots +\a@message {input encoding set to Windows CP 1256 conventions}} + +\xpa \def \xpa \sc@table \xpa {\sc@table % add the CP 1256 encoding +awin\set@awin cp1256\set@awin } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@message {scanner for Windows code page 1256 installed.} + +\catcode `\@ = \awinatcode +\endinput +%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/Master/texmf-dist/tex/latex/arabtex/etrans.sty b/Master/texmf-dist/tex/latex/arabtex/etrans.sty new file mode 100644 index 00000000000..315273b63ad --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/etrans.sty @@ -0,0 +1,9 @@ +% etrans.sty + +\endinput + +% this module is no more needed. +% its effect is now taken care of by "atrans.sty"; use \settrans{english} +% 04.11.1998 +% Klaus Lagally + diff --git a/Master/texmf-dist/tex/latex/arabtex/gedalin.sty b/Master/texmf-dist/tex/latex/arabtex/gedalin.sty new file mode 100644 index 00000000000..da9aa0ccb54 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/gedalin.sty @@ -0,0 +1,112 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%% gedalin.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% gedalin.sty +% Scanner for Michael Gedalin's special Hebrew encoding +% to activate it, say "\setcode {gedalin}" +% presupposes the packages "arabtex.sty" and "hebtex.sty" +% 10.09.2001 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \gedatcode \undefined \else \xpa \endinput \fi + +\chardef \gedatcode = \catcode`\@ \catcode`\@ = 11 + +\a@ident {gedalin.sty} +{3.10 scanner for Michael Gedalin's Hebrew encoding} {10.09.2001} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% dynamic definitions for Hebrew +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\gdef \setged@codes {\seta@codes % activate and change some codes +\globaldefs=1 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +\def \sc@a {\n@xp\a@S} \def \sc@b {n} \def \sc@c {b} +\def \sc@d {g} \def \sc@e {q} \def \sc@f {k} +\def \sc@g {P} \def \sc@h {y} \def \sc@i {\n@xp\a@N} +\def \sc@j {X} \def \sc@k {l} \def \sc@l {\n@xp\a@K} +\def \sc@m {S} \def \sc@n {m} \def \sc@o {\n@xp\a@M} +\def \sc@p {p} \def \sc@q {/} \def \sc@r {r} +\def \sc@s {d} \def \sc@t {Q} \def \sc@u {w} +\def \sc@v {h} \def \sc@w {,} \def \sc@x {s} +\def \sc@y {C} \def \sc@z {z} +% +\a@digits = {0123456789} \a@paren = {()[]} \a@first = {;,.} +%\iffalse +\tc@def \a@M {\act@cd \hc@mf } % mem sofit +\tc@def \a@N {\act@cd \hc@nf } % nun sofit +\tc@def \a@K {\act@cd \hc@kf } % kaf sofit +\tc@def \a@P {\act@cd \hc@ff } % peh sofit +\tc@def \a@Z {\act@cd \hc@sf } % tsadeh sofit +%\fi +\globaldefs=0 +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +}% end of dynamic definitions for Hebrew +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \ged@scan #1>{% modified scanner call: token sequence -> \a@tokens +\iftest@scan \ifshow \else \lowercase {\a@verb #1>}\fi +\tracingmacros = 1 \fi +\global\def \a@rest {}\global\a@tokens = {}% +\novocalize \sc@beg #1\@ \@@ +\iftest@scan \tracingmacros = 0 \xpa \a@verb \xpa (\the\a@tokens )>\fi } + +\def \ged@word #1#2{% transform input into internal notation +\@ssimfalse \def \next {\ged@word #2}% +\ifx #1\@ \let \next \relax \else +\ifcat \nxp #1\relax \def \next {\ged@cs #1#2}\else % control sequence + \ifx #1-\def \sc@char {B}\sc@put \else + \ifx #1/\def \sc@char {.}\sc@put \else + \ifx #1`\def \sc@char {;}\sc@put \else + \ifx #1w\def \sc@char {,}\sc@put \else + \ifx #1q\def \sc@char {/}\sc@put \else + \ifx #1|\def \sc@char {\nxp \a@U}\sc@put \else + \ifx #1;\def \sc@char {\nxp \a@P \nxp \a@U}\sc@put \else + \ifx #1,\def \sc@char {t\nxp \a@U}\sc@put \else + \ifx #1.\def \sc@char {\nxp \a@Z \nxp \a@U}\sc@put \else + \ifcat \noexpand #1-\def \sc@char {#1}\sc@put \else + \ifcat \noexpand #1a\edef \sc@char {\csname sc@#1\endcsname }\else + \def \sc@char {#1}% + \fi \sc@put +\fi\fi\fi\fi\fi\fi +\fi\fi\fi\fi\fi\fi \next } + +\def \g@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 {\ged@word #2}\else +\def \next {\sc@back #2}\fi \fi \next } + +\def \ged@cs #1#2{% control sequence within a word; push back? +\xpa \ifx #1\closegeresh \def \next {\g@d@cs {\nxp \lq }#2}\else +\xpa \ifx #1\closequote \def \next {\g@d@cs {`}#2}\else + \def \next {\sc@back #1#2}% +\fi\fi \next } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \ged@select {% select the new scanner +%\heb@catcodes % inside hebtex.sty; to make sure +\let \sc@beg \ged@word \let \sc@word \ged@word +\let \sc@back \sc@@back \let \sc@endscan \sc@@endscan +\setged@codes \global\let \a@scan \ged@scan +\let \h@put@end \h@put@mid +\a@message {input encoding set to Michael Gedalin's Hebrew encoding}} + +\xpa \def \xpa \sc@table \xpa {\sc@table % add the encoding +gedalin\ged@select } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@message {scanner for Michael Gedalin's Hebrew encoding installed.} +\setcode{gedalin} + +\catcode `\@ = \gedatcode +\endinput +%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/Master/texmf-dist/tex/latex/arabtex/hebchrs.sty b/Master/texmf-dist/tex/latex/arabtex/hebchrs.sty new file mode 100644 index 00000000000..bdae9c1de5b --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/hebchrs.sty @@ -0,0 +1,105 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% hebchrs.sty +% ArabTeX +% dynamic letter token definitions for Hebrew +% Version 26.04.2003 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Formale Methoden der Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@ident {hebchrs.sty} {3.11 Hebrew letter token definitions } {26.04.2003} + +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +\gdef \def@hebchars {% define character macros for Hebrew +\tc@clearall +\gdef \tc@@ {\act@cd \hc@@ } % illegal +\gdef \tc@a {\act@cd \hc@a } % aleph +\gdef \tc@b {\act@cd \hc@b } % beth +\gdef \tc@d {\act@cd \hc@d } % daleth +\gdef \tc@f {\act@cd \hc@f \@finaltrue } % pe +\gdef \tc@f {\act@cd \hc@f \@finaltrue \act@mod\r@phe } % pe +\gdef \tc@g {\act@cd \hc@j } % gimel +\gdef \tc@h {\act@cd \hc@h } % heh +\gdef \tc@i {\act@cd \hc@y } % chireq plene +\gdef \tc@k {\act@cd \hc@k \@finaltrue } % kaph +\gdef \tc@l {\act@cd \hc@l } % lamed +\gdef \tc@m {\act@cd \hc@m \@finaltrue } % mem +\gdef \tc@n {\act@cd \hc@n \@finaltrue } % nun +\gdef \tc@p {\act@cd \hc@f \@finaltrue } % pe +\gdef \tc@q {\act@cd \hc@q } % qoph +\gdef \tc@r {\act@cd \hc@r } % resh +\gdef \tc@s {\act@cd \hc@s } % samekh +\gdef \tc@t {\act@cd \hc@t } % taw +\gdef \tc@v {\act@cd \hc@b } % beth +\gdef \tc@v {\act@cd \hc@b \act@mod\r@phe } % beth +\gdef \tc@w {\act@cd \hc@w } % waw +\gdef \tc@x {\act@cd \hc@si \act@mod \shind@t } % shin with dot +\gdef \tc@y {\act@cd \hc@y } % yod +\gdef \tc@z {\act@cd \hc@z } % zayin + +\gdef \tc@A {\act@cd \hc@a } % aleph again +\gdef \tc@B {\act@cd \hc@B } % maqqeph +\gdef \tc@C {\act@cd \hc@tt } % thet +\gdef \tc@D {\act@cd \hc@d \@dageshtrue } % daleth dagesh +\gdef \tc@F {\act@cd \hc@d } % daleth +\gdef \tc@G {\act@cd \hc@j } % gimel +\gdef \tc@H {\act@cd \hc@h \@dageshtrue } % heh mappiq +\gdef \tc@K {\act@cd \hc@K } % paseq +\gdef \tc@M {\act@cd \hc@M } % phantom 1: box +\gdef \tc@N {\act@cd \hc@N } % phantom 2: space +\gdef \tc@O {\act@cd \hc@w \act@mod \rd@t } % cholem maleh +\gdef \tc@P {\act@cd \hc@P } % ayin +\gdef \tc@Q {\act@cd \hc@a } % aleph again +\gdef \tc@R {\act@cd \hc@j \@dageshtrue } % gimel dagesh +\gdef \tc@S {\act@cd \hc@ss \@finaltrue } % sade +\gdef \tc@T {\act@cd \hc@h \@dageshtrue } % he +\gdef \tc@U {\act@cd \hc@w \@dageshtrue } % shureq +\gdef \tc@V {\act@cd \hc@t \@dageshtrue } % taw dagesh +\gdef \tc@W {\act@cd \hc@N } % phantom 2 +\gdef \tc@X {\act@cd \hc@hh } % chet +\gdef \tc@Y {\act@cd \hc@y } % yod + +\tc@def \a@b {\act@cd \hc@b \@dageshtrue } % beth dagesh +\tc@def \a@f {\act@cd \hc@f \@finaltrue \@dageshtrue } % pe dagesh +\tc@def \a@i {\act@cd \hc@ey } % yod yod +\tc@def \a@k {\act@cd \hc@k \@finaltrue \@dageshtrue } % kaph dagesh +\tc@def \a@o {\act@cd \hc@oy } % waw yod +\tc@def \a@s {\act@cd \hc@si \act@mod \sind@t } % sin with dot +\tc@def \a@w {\act@cd \hc@v } % waw waw +\tc@def \a@B {\act@cd \hc@b \act@mod \r@phe } % veyz +\tc@def \a@F {\act@cd \hc@f \@finaltrue \act@mod\r@phe }% fey +\tc@def \a@H {\act@cd \hc@h } % silent he +\tc@def \a@K {\act@cd \hc@kf } % kaf sofit +\tc@def \a@M {\act@cd \hc@mf } % mem sofit +\tc@def \a@N {\act@cd \hc@nf } % nun sofit +\tc@def \a@P {\act@cd \hc@ff } % peh sofit +\tc@def \a@S {\act@cd \hc@si } % sin without dot +\tc@def \a@Z {\act@cd \hc@sf } % tsadeh sofit + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +}}% end of dynamic definitions for Hebrew + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \tc@def #1{% define letter description \tc@#1 +\xpa \gdef \csname tc@\string #1\endcsname } + +\def \a@letters {abcdefghijklmnopqrstuvwxyz} + +\def \tc@clear #1{% reset all letter descriptions, also for Hebrew! +\ifx #1\relax \relax \else \uppercase {\gdef \1{#1}}% +\xpa \gdef \csname tc@#1\endcsname {\relax}% +\xpa \gdef \csname tc@\1\endcsname {\relax}% +\xpa \gdef \csname tc@\xpa\string\csname a@#1\endcsname\endcsname {\relax}% +\xpa \gdef \csname tc@\xpa\string\csname a@\1\endcsname\endcsname {\relax}% +\xpa \tc@clear \fi } + +\def \tc@clearall {% reset all \tc@x definitions +\xpa \tc@clear \a@letters \relax } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/Master/texmf-dist/tex/latex/arabtex/hebsymb.sty b/Master/texmf-dist/tex/latex/arabtex/hebsymb.sty new file mode 100644 index 00000000000..5854d406941 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/hebsymb.sty @@ -0,0 +1,59 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% hebsymb.sty +% ArabTeX +% Hebrew character assignments +% in font "hclassic" +% 12.06.2000 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@ident {hebsymb.sty} {3.10 for oldcode font assignments} {12.06.2000} + +% will be modified in "hewrite.sty" for other font assignments + +\def \hc@@ {33} % illegal +\def \hc@B {45} % maqqeph +\def \hc@a {96} % aleph +\def \hc@b {97} % beth +\def \hc@j {98} % gimel +\def \hc@d {99} % daleth +\def \hc@h {100} % he +\def \hc@w {101} % waw +\def \hc@z {102} % zayin +\def \hc@hh {103} % chet +\def \hc@tt {104} % ttet +\def \hc@y {105} % yod +\def \hc@kf {106} % kaph, final +\def \hc@k {107} % kaph +\def \hc@l {108} % lamed +\def \hc@mf {109} % mem, final +\def \hc@m {110} % mem +\def \hc@nf {111} % nun, final +\def \hc@n {112} % nun +\def \hc@s {113} % samech +\def \hc@P {114} % ayin +\def \hc@ff {115} % pe, final +\def \hc@f {116} % pe, f +\def \hc@sf {117} % ssade, final +\def \hc@ss {118} % ssade +\def \hc@q {119} % qoph +\def \hc@r {120} % resh +\def \hc@si {121} % ssin +\def \hc@t {122} % taw +\def \hc@Pv {123} % vowel ayin +\def \hc@v {124} % vav +\def \hc@K {125} % paseq +\def \hc@M {126} % phantom 1 +\def \hc@N {127} % phantom 2 +\def \hc@ay {128} % ay +\def \hc@ey {129} % ey +\def \hc@oy {130} % oy + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + diff --git a/Master/texmf-dist/tex/latex/arabtex/hebtex.sty b/Master/texmf-dist/tex/latex/arabtex/hebtex.sty new file mode 100644 index 00000000000..8cd8a63feb8 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/hebtex.sty @@ -0,0 +1,87 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% hebtex.sty +% ArabTeX +% Modifications for Hebrew mode +% 12.06.2000 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \sethebrew \undefined \else \xpa \endinput \fi + +\ifx \ArabTeX \undefined +\ifx \NeedsTeXFormat \undefined \input arabtex.sty +\else \usepackage {arabtex}\fi \fi + +\let \h@wlog \wlog \def \wlog #1{\relax } + +\a@ident {hebtex.sty} {3.10 modifications for Hebrew mode} {12.06.2000} + +\newif \ifhedc@de + +\ifx \LaTeX \undefined \else + \let \h@document \document + \def \document {\h@document \sethebrew \hedc@detrue } +\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\let \hebtext \arabtext \let \endhebtext \endarabtext +\let \hebtex \arabtext \let \endhebtex \endarabtext % catch typo +\let \hebfalse \arabfalse \let \hebtrue \arabtrue + +\pdef \sethebrew {% switch to hebrew writing +\all@false \@ssimtrue \yahd@tstrue \heb@output +\def \a@defaultfont {\hc }\setarabfont \a@normalfont \hc } + +\let \setheb \sethebrew + +\def \set@hebfont {\setarabfont \heb@font } + +\def \heb@font {\protect \pheb } +\def \a@defaultfont {\protect \pheb } + +\def \sethebfont #1{\def \pheb {\hebfont }\font \hebfont =#1\relax} + +\all@wcmd \sethebrew \all@wcmd \setheb \all@wcmd \sethebfont \all@wif \heb + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \heb@output {\ifx \a@lang \a@hebr \else +\tr@ceoff % switch to Hebrew output conventions +\def@hebchars % define character macros for Hebrew +\def@hebvoc % define vowel parsing routines for Hebrew +\def@hebstrut % define strut for Hebrew +\global\let \a@write \heb@write \global\let \a@write@hook \relax +\tr@heb \tr@ceon \global\let \a@lang \a@hebr \fi } + +\def \a@hebr {HEBREW} +\let \tr@heb \relax % if hetrans.sty is not loaded + +\def \def@hebstrut {\def \arab@strut +%{\vrule height2.8ex depth0.7ex width0pt \relax }} +{\vrule height1.9ex depth0.7ex width0pt \relax }} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\UsePackage {hecmd} +\UsePackage {hescan} +\UsePackage {heparse} +\UsePackage {hewrite} +\UsePackage {hetrans} +\ifx \LaTeX \undefined \else \UsePackage {hefonts} +\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\UsePackage {hepatch} % must be at the end !! + +%\hc + +\let \wlog \h@wlog + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/Master/texmf-dist/tex/latex/arabtex/hecmd.sty b/Master/texmf-dist/tex/latex/arabtex/hecmd.sty new file mode 100644 index 00000000000..9a151495ff7 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/hecmd.sty @@ -0,0 +1,217 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% hecmd.sty +% ArabTeX +% special commands for Hebrew mode +% using ideas by Rama Porrat, Bernd Raichle and others +% 07.05.2000 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@ident {hecmd.sty} {3.05 additional commands for Hebrew} {07.05.2000} + +\let \RLtext \arabtext \let \endRLtext \endarabtext + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newcount \is@m \newcount \is@n \newcount \is@l + +\def \heb@catcodes {% make chars 128-154 and 224-250 into letters +\is@m = 96 % oldcode +\is@n = 128 % pccode +\is@l = 224 % newcode +\loop \lccode \is@n = \is@m \catcode \is@n = 11 + \lccode \is@l = \is@m \catcode \is@l = 11 +\ifnum 122 > \is@m + \advance \is@m 1 \advance \is@n 1 \advance \is@l 1 +\repeat } + +\def \heb@catcodes {% make chars 128-154 and 224-250 into letters +\is@m = 96 % oldcode +\is@n = 128 % pccode +\is@l = 224 % newcode +\loop \global\lccode \is@n = \is@m \catcode \is@n = 11 + \global\lccode \is@l = \is@m \catcode \is@l = 11 +\ifnum 122 > \is@m + \advance \is@m 1 \advance \is@n 1 \advance \is@l 1 +\repeat } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% activate most commands from hebrew.sty + +\begingroup +\heb@catcodes + +\allowarab \ \allowarab \ +\allowarab \ \allowarab \ +\allowarab \ \allowarab \ +\allowarab \ \allowarab \ +\allowarab \ \allowarab \ +\allowarab \ \allowarab \ +\allowarab \ \allowarab \ +\allowarab \ \allowarab \ +\allowarab \ \allowarab \ +\allowarab \ \allowarab \ +\allowarab \ \allowarab \ +\allowarab \ \allowarab \ +\allowarab \ \allowarab \ +\allowarab \ \allowarab \ +\allowarab \ \allowarab \ +\allowarab \ \allowarab \ +\allowarab \ \allowarab \ + +\gdef \ {\hadgesh} \gdef \ {\hadgesh} +\gdef \ {\makafgadol} \gdef \ {\makafgadol} +\gdef \ {\makafanak} \gdef \ {\makafanak} +\gdef \ {\geresh} \gdef \ {\geresh} +\gdef \ {\opengeresh} \gdef \ {\opengeresh} +\gdef \ {\closegeresh} \gdef \ {\closegeresh} +\gdef \ {\openquote} \gdef \ {\openquote} +\gdef \ {\closequote} \gdef \ {\closequote} +\gdef \ {\piska} \gdef \ {\piska} +\gdef \ {\piskapiska} \gdef \ {\piskapiska} +\gdef \ {\smallskip} \gdef \ {\smallskip } +\gdef \ {\medskip} \gdef \ {\medskip } +\gdef \ {\bigskip} \gdef \ {\bigskip } +\gdef \ {\rightline} \gdef \ {\rightline} +\gdef \ {\leftline} \gdef \ {\leftline} +\gdef \ {\centerline} \gdef \ {\centerline} +\gdef \ {\hebday} \gdef \ {\hebday} +\endgroup + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@hadgesh #1{% poor man's bold version +\setbox0 \hbox {#1}% +\kern-.025em\copy0\kern-\wd0 +\kern.05em\copy0\kern-\wd0 +\kern-.025em\raise.025em\copy0\kern-\wd0 +\raise-.025em\box0} + +\def \a@c@hadgesh #1{\putwordb@x {\a@hadgesh {\R{#1}}}\test@token } +\def \hadgesh #1{\a@hadgesh {\R {#1}}} + +\def \a@c@makafgadol {\putwordb@x {\bf --}\test@token } + +\def \a@c@makafanak {\putwordb@x {\bf ---}\test@token } + +\def \a@c@geresh {\a@spacefalse \putwordb@x {\bf `}\test@token } +\let \a@c@closegeresh \a@c@geresh +\def \geresh {`} \let \closegeresh \geresh + +\def \a@c@opengeresh {\putwordb@x {\bf '}\a@spacefalse \test@token } +\def \opengeresh {'} + +\def \a@c@closequote {\a@spacefalse \putwordb@x {\bf ``}\test@token } +\def \closequote {``} + +\def \a@c@openquote {\putwordb@x {\bf ''}\a@spacefalse \test@token } +\def \openquote {''} + +\def \a@c@undertext #1{\putwordb@x {$\underline {\R {#1}}$}\test@token } +\let \undertext \underline + +\def \a@c@hebday {\putwordb@x {\number\day }\a@spacetrue +\edef \themonth {\ifcase \month \or + \or \or \or \or \or \or + \or \or \or \or \or \fi }% +\putwordb@x {\xpa \RL \xpa {\themonth }}\a@spacetrue +\putwordb@x {\number\year }\test@token } + +\def \hebday {\RL{\hebday }} % this looks wrong, but works ! + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \a@c@Hebrewtoday {% internal calendar routine +\Hebrewsetreg +\tracingmacros 1 +\edef \theHebrewDay {\HebrewDayName {\Hebrewday }\space +\HebrewMonthName {\Hebrewmonth }{\Hebrewyear },\space +\a@HebrewYearName {\Hebrewyear }}% +\tracingmacros 0 +\putwordb@x {\xpa \R \xpa {\theHebrewDay }}\test@token } + +\def \a@HebrewYearName #1{% max 4 digits, fully expandable version +\ifnum #1>9999 \errmessage{HebrewYearName: illegal argument #1}\else +\ifnum #1>999 \xpa \a@HYName \number #1\else +\ifnum #1>99 \xpa \a@HYName \xpa 0\number #1\else +\ifnum #1>9 \xpa \a@HYName \xpa 0\xpa 0\number #1\else +\xpa \a@HYName \xpa 0\xpa 0\xpa 0\number #1\fi \fi \fi \fi } + +\def \a@HYName #1#2#3#4{% max 4 digits to Hebrew number +\ifnum #1= 5 % Change it in the next Hebrew Millennium.. + \ifnum #2#3#4> 0 \else \DigitInHebrew {#1}'\fi +\else \DigitInHebrew {#1}'\fi +\a@ShortHYName {#2#3#4}% +\ifnum #1< 1 \space )"(\fi +\ifnum #2#3#4= 0 \space )"(\fi } + +\def \a@SHYNumber #1{% fully expandable version +\ifnum #1>999 \errmessage{ShortHYName: illegal argument #1}\else +\ifnum #1>99 \xpa \a@SHYName \number #1\else +\ifnum #1>9 \xpa \a@SHYName \xpa 0\number #1\else +\xpa \a@SHYName \xpa 0\xpa 0\number #1\fi \fi \fi } + +\def \a@SHYName #1#2#3{% max 3 digits, fully expandable +\ifcase #1\or \or \or \or \or + \or \or \or \or \fi +\ifnum #2#3 = 16 \else +\ifnum #2#3 = 15 \else + \ifnum #2 = 0 \else \TensInHebrew{#2}\fi + \ifnum #3 = 0 \else \DigitInHebrew{#3}\fi +\fi\fi } + +\def \a@ShortHYName #1{% format Hebrew number < 1000 +\xpa \xpa \xpa \a@FormatNumber \a@EvalToCS {\a@SHYNumber {#1}}\@ } + +\def \a@EvalToCS #1{% fully expand the parameter to a \cs name string +\xpa \string \csname #1\endcsname } + +\def \a@FormatNumber #1\@ {\xpa \a@Format #1\@ } + +\def \a@Format #1#2\@ {\a@Formati #2\@ } + +\def \a@Formati #1#2\@ {% first digit +#1\ifx \relax #2\relax '\else \ReturnFi +\a@Formatii #2\@ \fi } + +\def \a@Formatii #1#2\@ {% following digits +\ifx \relax #2\relax ''#1\else #1\ReturnFi +\a@Formatii #2\@ \fi } + +\def \ReturnFi #1\fi {\fi #1}% FALSE branch + +\def \ReturnElseFi #1\else #2\fi {\fi #1}% TRUE branch + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\iffalse +% from heb_pc.mac + +%\def\ifundefined#1{\expandafter\ifx\csname#1\endcsname\relax} + +\everydisplay{\aftergroup\beginR } + +\def\piska#1{\item{#1}\hangindent=-\hangindent} + +\def\piskapiska#1{\itemitem{#1}\hangindent=-\hangindent} + +\def\leftquotation{\L{''}} +\def\rightquotation{\L{``}} +\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + ! " $ % & . ( ) = ? ; +^ 1 2 3 4 5 6 7{ 8[ 9] 0} \ , + Q@ W E R T Z U I O P * + / ' +~ + A S D F G H J K L , + # + > Y X C V B N M : _ + <| - +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + diff --git a/Master/texmf-dist/tex/latex/arabtex/hefonts.sty b/Master/texmf-dist/tex/latex/arabtex/hefonts.sty new file mode 100644 index 00000000000..1c8cee2fab5 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/hefonts.sty @@ -0,0 +1,56 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% hefonts.sty +% ArabTeX +% load Hebrew fonts in LaTeX mode +% 02.07.1997 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally and Bernd Raichle +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% load this file only, if \pheb not defined +% select the Hebrew font by \pheb (\protected ) +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\expandafter \ifx \csname pheb\endcsname \relax \else + \expandafter \endinput +\fi + +\a@ident {hefonts.sty} {3.06 standard Hebrew fonts} {02.07.1997} + +\chardef \fntatcode = \catcode`\@ \catcode`\@ = 11 +\chardef \fntlscode = \catcode`\< \catcode`\< = 12 + +\ifx \LaTeX \undefined \else + +% If we are using the NFSS, Version 2, \DeclareFontShape +% is defined. +% +% (The \expandafter\ifx\csname...\endcsname\relax is necessary, +% because the NFSS2 styleoptions use LaTeX's internal \@ifundefined +% command.) +% +\xpa \ifx \csname DeclareFontShape\endcsname\relax + +% Now it's possible that NFSS, Version 1, is used. +% If \selectfont is defined, NFSS is active, otherwise +% we assume LaTeX's `lfonts.tex'. +% + \xpa \ifx \csname selectfont\endcsname\relax + + % OLD FONT SELECTION + \UsePackage {hefonts0} + \else % NEW FONT SELECTION -- Version 1 + \UsePackage {hefonts1} + \fi +\else + % NEW FONT SELECTION -- Version 2 + \UsePackage {hefonts2} +\fi\fi + +\catcode`\@ = \fntatcode \catcode`\< = \fntlscode + +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/tex/latex/arabtex/hefonts0.sty b/Master/texmf-dist/tex/latex/arabtex/hefonts0.sty new file mode 100644 index 00000000000..07db73ad95b --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/hefonts0.sty @@ -0,0 +1,42 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% hefonts0.sty +% ArabTeX +% load Hebrew fonts for old LaTeX +% 03.04.1997 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally and Bernd Raichle +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@ident {hefonts0.sty} {3.05 define Hebrew fonts for old LaTeX} {03.04.1997} + +% OLD FONT SELECTION +\message {using lfonts.tex} + +% load all necessary fonts + +\newfont {\tenheb }{hclassic} +\newfont {\elvnheb}{hclassic scaled 1095} +\newfont {\twlvheb}{hclassic \@magscale1} +\newfont {\frtnheb}{hclassic \@magscale2} +\newfont {\svtnheb}{hclassic \@magscale3} +\newfont {\twtyheb}{hclassic \@magscale4} +\newfont {\twfvheb}{hclassic \@magscale5} + +% add the \pheb command to the size changing hooks + +\@addfontinfo \@vpt {\def\pheb {\tenheb}} +\@addfontinfo \@viipt {\def\pheb {\tenheb}} +\@addfontinfo \@viiipt {\def\pheb {\tenheb}} +\@addfontinfo \@ixpt {\def\pheb {\tenheb}} +\@addfontinfo \@xpt {\def\pheb {\tenheb}} +\@addfontinfo \@xipt {\def\pheb {\elvnheb}} +\@addfontinfo \@xiipt {\def\pheb {\twlvheb}} +\@addfontinfo \@xivpt {\def\pheb {\frtnheb}} +\@addfontinfo \@xviipt {\def\pheb {\svtnheb}} +\@addfontinfo \@xxpt {\def\pheb {\twtyheb}} +\@addfontinfo \@xxvpt {\def\pheb {\twfvheb}} + +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/tex/latex/arabtex/hefonts1.sty b/Master/texmf-dist/tex/latex/arabtex/hefonts1.sty new file mode 100644 index 00000000000..cb868f7066e --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/hefonts1.sty @@ -0,0 +1,44 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% hefonts1.sty +% ArabTeX +% load Hebrew fonts for NFSS1 +% 24.05.1996 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally and Bernd Raichle +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@ident {hefonts1.sty} {3.04 define Hebrew fonts for NFSS1} {24.05.1996} + +% NEW FONT SELECTION -- Version 1 +\message {using NFSS1} + +% define \pheb to use the `heb' family, `m'edium series und +% `n'ormal shape. +% +\def\pheb{\family{heb}\series{m}\shape{n}\selectfont} + +% setup the font definition table +% (`1' at the beginning of a fontname: size not available, print +% warning to inform the user) +% +\new@fontshape{heb}{m}{n}{% + <5>1hclassic% + <6>1hclassic% + <7>1hclassic% + <8>1hclassic% + <9>1hclassic% + <10>hclassic% + <11>hclassic at10.95pt% + <12>hclassic at12.0pt% + <14>hclassic at14.4pt% + <17>hclassic at15.77441pt% + <20>hclassic at17.28pt% + <25>hclassic at20.736pt}{} +\extra@def{heb}{}{} + +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + diff --git a/Master/texmf-dist/tex/latex/arabtex/hefonts2.sty b/Master/texmf-dist/tex/latex/arabtex/hefonts2.sty new file mode 100644 index 00000000000..fe0ff7df212 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/hefonts2.sty @@ -0,0 +1,72 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% hefonts2.sty +% ArabTeX +% load Hebrew fonts for NFSS2 +% 27.04.2003 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally and Bernd Raichle +% Institut fuer Formale Methoden der Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@ident {hefonts2.sty} {3.11 define Hebrew fonts for NFSS2} {27.04.2003} + +% NEW FONT SELECTION -- Version 2 +%\a@message {using NFSS2} + +\def \fdef #1#2#3#4{% define NFSS2 font command +\pdef #1{\def \pheb {\fontencoding {U}\fontfamily {#2}% +\fontseries {#3}\fontshape {#4}\selectfont }% +\ifx \a@normalfont \a@default \gdef \a@normalfont {#1}\fi +%\setarabfont \pheb \set@arabfont }% +\setarabfont \pheb }% +\all@wcmd #1} + +\def \hdef #1{\fdef #1{heb}}% define Hebrew font + +% commands for selecting the default Hebrew fonts: + +\hdef \sethebrm {m}{n} +\hdef \sethebbf {bx}{n} + +%\let \hc \sethebrm \all@wcmd \hc +%\let \hp \sethebbf \all@wcmd \hp + +\hdef \hc {m}{n} +\hdef \hp {bx}{n} + +% commands for selecting the standard Hebrew fonts from CTAN: + +\hdef \Jm {m}{Jm} +\hdef \jm {m}{jm} +\hdef \ds {m}{ds} +\hdef \oj {m}{oj} +\hdef \ta {m}{ta} + +% commands for selecting the Shalom family of Hebrew fonts from CTAN: + +\hdef \shlmold {m}{so} +\hdef \shlmscr {m}{sr} +\hdef \shlmstk {m}{sk} + +% commands for selecting the Frank Ruehl family of Hebrew fonts from CTAN: + +\hdef \fr {m}{fr} +\hdef \frbx {bx}{fr} +\hdef \frsl {sl}{fr} + +% commands for selecting the Carmel family of Hebrew fonts from CTAN: + +\hdef \crml {m}{crml} +\hdef \crmlsl {sl}{crml} + +% All other definitions are done in file `Uheb.fd', which is +% loaded on demand. + +%\def \a@defaultfont {\hc } +\hc + +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + diff --git a/Master/texmf-dist/tex/latex/arabtex/heparse.sty b/Master/texmf-dist/tex/latex/arabtex/heparse.sty new file mode 100644 index 00000000000..dc128188ece --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/heparse.sty @@ -0,0 +1,291 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% heparse.sty +% ArabTeX +% Modifications for Hebrew mode +% 27.04.2003 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Formale Methoden der Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@ident {heparse.sty} {3.11 Hebrew parser routines} {27.04.2003} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% dynamic definitions for Hebrew +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\gdef \def@hebvoc {% define vowel parsing routines for Hebrew +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%% short vowels + +\def \sv@a {\sv@patach } % a: patach +\def \sv@e {\sv@segol } % e: segol +\def \sv@i {\sv@chireq } % i: chireq breve +\def \sv@o {\sv@qamesqatuf } % o: qames-chatuph +\def \sv@u {\sv@qibbus } % u: qibbus + +%%%%%%%%%%%%%%%%%%%%%%%%%% long vowels + +\def \sv@A {\sv@qames } % A: qames +\def \sv@E {\sv@serelongum } % E: sere yod +\def \sv@I {\sv@chireqlongum } % I: chireq yod +\def \sv@O {\sv@cholemlongum } % O: cholem waw +\def \sv@U {\sv@shureq } % U: shureq +\def \sv@Y {\sv@qameslongum } % _A: qames aleph + +%%%%%%%%%%%%%%%%%%%%%%%%%% long vowels, defective + +\sv@def \a@a {\sv@qames } % _a: qames aleph ? +\sv@def \a@e {\sv@shewa } % .i: shewa +\sv@def \a@i {\sv@chireq } % _i: chireq yod ? +\sv@def \a@o {\sv@cholem } % _o: cholem breve +\sv@def \a@u {\sv@shureq } % _u: shureq ? + +%%%%%%%%%%%%%%%%%%%%%%%%%% special vowels + +\sv@def \a@A {\sv@chatef@patach } % .a: +\sv@def \a@E {\sv@sere } % _e: sere breve +\sv@def \a@I {\sv@chatef@segol } % .e: +\sv@def \a@O {\sv@chatef@qames } % .o: +\sv@def \a@U {\put@syl \syl@con } % .u: no vowel mark + +%%%%%%%%%%%%%%%%%%%%%%%%%% extra marks + +\sv@def \a@Za {\sv@sindot } % sin dot +\sv@def \a@Ze {\sv@shindot } % shin dot +\sv@def \a@Zi {\sv@rdot } % center dot +\sv@def \a@Zo {\sv@raphe } % raphe +\sv@def \a@Zu {\sv@dagesh } % dagesh + +\sv@def \a@ZA {\sv@ay } % Yiddish ay +\sv@def \a@ZE {\sv@ey } % Yiddish ey +\sv@def \a@ZI {\syl@voctest } % free +\sv@def \a@ZO {\sv@oy } % Yiddish oy +\sv@def \a@ZU {\syl@voctest } % free + +%%%%%%%%%%%%%%%%%%%%%%%%%% hamza handling + +\def \syl@hamza {% non-initial hamza, context #1' +\put@con a\syl@voctest } + +\let \syl@hamzabeg \syl@hamza + +\def \syl@test@voc {% vowel or shewa ? +\h@test@voc } + +\def \check@high ##1{\relax } +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +}% end of dynamic definitions for Hebrew +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% static definitions for Hebrew +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newif \ifp@tach \newif \ifch@lem + +\def \h@test@voc #1{% vowel or shewa ? +\ifch@lem \ch@lemfalse \add@rdot \fi % rdot +\if\is@vowel #1\def \next {\syl@voc #1}\else % test for vowel +\ifx #1|\add@madda \def \next {\syl@shewa }% % meteg +\else \def \next {\syl@shewa #1}% non-vowel follows +\fi\fi \next } + +\def \syl@shewa #1{% put shewa if appropriate +\ifp@tach \add@patachf \p@tachfalse \else +\xpa\ifx \the\last@con B\else +\ifx #1<\add@@shewa \else +\ifcat \nxp #1\nxp <\add@@shewa \else + \add@sukun % shewa +\fi\fi\fi\fi \put@syl \syl@con #1} + +\def \add@@shewa {% put shewa on final kaf +\xpa\case \the\last@con \of +{ k R {\add@shewa }} +\endcase } + +\def \syl@meteg #1#2{% test for meteg and patach furtivum +\ifx #2|\add@madda \def \next {#1}\else +\ifx #2\a@A\p@tachtrue \def \next {#1}\else + \def \next {#1#2}% +\fi\fi \put@syl \next } + +\gdef \test@cont #1{% vowel contact? put dummy if not cholem male +\ifx #1O\def \next {\syl@con #1}\else +\ifx #1U\def \next {\syl@con #1}\else +\if\is@vowel #1\def \next {\syl@con N#1}\else +\def \next {\syl@con #1}\fi\fi\fi \next } + +\def \test@patf #1{% vowel contact? put dummy, test for guttural: 05.10.01 +\ifx #1O\def \next {\test@p@tf #1}\else +\ifx #1U\def \next {\test@p@tf #1}\else +\if\is@vowel #1\def \next {\syl@con N#1}\else +\def \next {\test@p@tf #1}\fi\fi\fi \next } + +\def \test@p@tf #1#2#3{% guttural at end: prepare patach furtivum +\ifx #1h\ifx #2\a@Zu \p@tachtrue + \fi\fi +\ifx #2a\ifx #3<\if\is@in@list #1PX>\p@tachtrue + \fi\fi\fi +\syl@con #1#2#3} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \sv@patach {% a: put patach, test meteg +\ifp@tach \add@patachf \p@tachfalse \else \add@fatha +\fi \syl@meteg \test@cont } + +\def \sv@segol {% e: put segol, test meteg +\add@zwarakay \syl@meteg \test@cont } + +\def \sv@qamesqatuf {% o: put qames qatuf, test meteg +\add@ammad \syl@meteg \test@cont } + +\def \sv@qibbus {% u: put qibbus, test meteg +\add@damma \syl@meteg \test@cont } + +%%%%%%%%%%%%%%%% + +\def \sv@qames {% long a: put qames, test meteg +\add@fathaspec \syl@meteg \test@cont } + +\def \sv@qamesaleph {% long a: put qames, test meteg +\add@fathaspec \syl@meteg \sv@qames@aleph } + +\def \sv@qames@aleph {% long a: put aleph +\put@con a\put@syl \test@cont } + +%%%%%%%%%%%%%%%% + +\def \sv@sere {% long e: put sere breve, test meteg +\add@kasraspec \syl@meteg \sv@s@re } + +\def \sv@s@re #1{% test for ey = E +\ifx #1y\def \next {\sv@sere@longum }% +\else \def \next {\test@patf #1}% +\fi \next } + +\def \sv@serelongum {% long e: put sere, test meteg +\add@kasraspec \syl@meteg \sv@sere@longum } + +\def \sv@sere@longum {% long e: put yod ? +\test@yod } + +\def \test@yod #1{% vowel or consonant +\if\is@vowel #1\def \next {\syl@con y#1}\else +\put@con y\put@syl \def \next {\test@patf #1}% +\fi \next } + +%%%%%%%%%%%%%%%% + +\def \sv@chireq {% i: put chireq, test meteg +\add@kasra \syl@meteg \sv@ch@req } + +\def \sv@ch@req #1{% test for iy = I +\ifx #1y\def \next {\sv@chireq@longum }% +\else \def \next {\test@cont #1}% +\fi \next } + +\def \sv@chireqlongum {% long i: put chireq, test meteg +\add@kasra \syl@meteg \sv@chireq@longum } + +\def \sv@chireq@longum {% long i: put yod ? +\test@yod } + +%%%%%%%%%%%%%%%% + +\def \sv@shureq {% long u: test meteg +\syl@meteg \sv@sh@req } + +\def \sv@sh@req {% long u: put waw with shureq +\put@con w\add@shadda \put@syl \test@patf } + +%%%%%%%%%%%%%%%% + +\def \sv@cholem #1{% short o: test meteg +\ifx #1|\add@madda \def \next {\sv@ch@lem }% +\else \def \next {\sv@ch@lem #1}% +\fi \next } + +\def \sv@ch@lem #1{% short o: put cholem breve +\xpa\ifx \the\last@con \a@s % omit cholem on sin +\else \case #1\of +{ a A Q w{\ch@lemtrue } % shift cholem + \default {\add@cholem } % deposit cholem +} \endcase +\fi \put@syl \sv@ch@lemwaw #1} + +\def \sv@ch@lemwaw #1{% test for ow = O +\ifx #1w\def \next {\sv@cholem@longum }% +\else \def \next {\test@cont #1}% +\fi \next } + +\def \sv@cholemlongum {% long o: test meteg +\syl@meteg \sv@cholem@longum } + +\def \sv@cholem@longum {% long o: put waw with cholem +\put@con w\add@rdot \ch@lemfalse \put@syl \test@patf } + +%%%%%%%%%%%%%%%% + +\def \sv@chatef@patach {% put chatef patach, test meteg +\add@fathatan \syl@meteg \test@cont } + +\def \sv@chatef@segol {% put chatef segol, test meteg +\add@kasratan \syl@meteg \test@cont } + +\def \sv@chatef@qames {% put chatef qames, test meteg +\add@dammatan \syl@meteg \test@cont } + +%%%%%%%%%%%%%%%% + +\def \sv@shewa {% put shewa unconditionally +\add@shewa \put@syl \syl@con } + +\def \sv@sindot {% sin dot +\voc@suk \advance \last@mod 10 \syl@voctest } + +\def \sv@shindot {% shin dot +\voc@suk \advance \last@mod 20 \syl@voctest } + +\def \sv@rdot {% center dot +\voc@suk \advance \last@mod 30 \syl@voctest } + +\def \sv@raphe {% raphe +\voc@suk \advance \last@mod 40 \syl@voctest } + +\def \sv@dagesh {% dagesh, ww -> U, shureq? +\add@shadda +\xpa\ifx \the\last@con w\put@syl \def \next {\test@patf }% +%\else \def \next {\syl@test@voc }% +%\else \def \next {\syl@voctest }% +\else \voc@suk \def \next {\syl@voctest }% +\fi \next } + +\def \sv@dagesh {% dagesh, ww -> U, shureq? +\add@shadda \voc@suk \syl@voctest } + +%%%%%%%%%%%%%%%% + +\def \sv@ay {% Yiddish ay +\put@syl \put@con \a@i \v@ctrue \add@fatha \put@syl \test@patf } + +\def \sv@ey {% Yiddish ey +\put@syl \put@con \a@i \put@syl \test@patf } + +\def \sv@oy {% Yiddish oy +\put@syl \put@con \a@o \put@syl \test@patf } + +%%%%%%%%%%%%%%%% + +\def \add@rdot {\advance \last@mod \c@hamza } + +\def \add@cholem {\ifv@c \last@voc \c@wasla \fi } + +\def \add@patachf {\ifv@c \last@voc 13 \fi } + +\def \add@shewa {% put shewa unconditionally +\ifv@c \last@voc \c@sukun \fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput diff --git a/Master/texmf-dist/tex/latex/arabtex/hepatch.sty b/Master/texmf-dist/tex/latex/arabtex/hepatch.sty new file mode 100644 index 00000000000..cd85a8d4236 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/hepatch.sty @@ -0,0 +1,37 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% hepatch.sty +% ArabTeX, Hebrew mode +% last minute corrections +% see \hversion, \hdatum and \hlevel at the end of the file +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% this is just another *.sty file +% you do not have to do any manual patching +% just put this file onto the TEXINPUT path +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\catcode`\@ = 11 + +\newtoks \hversion \newtoks \hdatum \hversion = {3.10} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% presently no patches + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\hdatum = {17.09.2001} \def \hlevel {-} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@ident {hepatch.sty} + {\the\hversion \hlevel \space patches for Hebrew} {\the\hdatum} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\catcode`\@ = \patchatcode +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + diff --git a/Master/texmf-dist/tex/latex/arabtex/hescan.sty b/Master/texmf-dist/tex/latex/arabtex/hescan.sty new file mode 100644 index 00000000000..5c5e1dcb5b9 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/hescan.sty @@ -0,0 +1,216 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%% hescan.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% hescan.sty +% Scanner for ISO 8859-8 Code, loaded by hebtex.sty +% experimental scanner for Hebrew files +% to activate it, say "\setcode {hed}" or "\setcode {HED}" or +% "\setcode {pccode}" or "\setcode {newcode}" or "\setcode {iso8859-8}" +% for Hebrew Windows encoding CP1255 say "\setcode{cp1255}" +% 07.03.2002 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \hedatcode \undefined \else \xpa \endinput \fi + +\chardef \hedatcode = \catcode`\@ \catcode`\@ = 11 + +\a@ident {hescan.sty} +{3.10a scanner for HED and ISO 8859-8 encoding} {07.03.2002} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% dynamic definitions for Hebrew +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\gdef \sethed@codes {\seta@codes % activate and change some codes +\globaldefs=1 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def \sc@a {b} \def \sc@b {g} \def \sc@c {d} \def \sc@d {h} +%\def \sc@a {v} \def \sc@b {g} \def \sc@c {d} \def \sc@d {h} +\def \sc@e {w} \def \sc@f {z} \def \sc@g {X} \def \sc@h {C} +\def \sc@i {y} \def \sc@j {k} \def \sc@k {k-} \def \sc@l {l} +\def \sc@m {m} \def \sc@n {m-} \def \sc@o {n} \def \sc@p {n-} +%\def \sc@q {s} \def \sc@r {P} \def \sc@s {f} \def \sc@t {f-} +\def \sc@q {s} \def \sc@r {P} \def \sc@s {p} \def \sc@t {p-} +\def \sc@u {S} \def \sc@v {S-} \def \sc@w {q} \def \sc@x {r} +\def \sc@y {\n@xp \a@S } \def \sc@z {t} +% +\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 \hed@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 } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \hed@word #1#2{% transform input into internal notation + \def \next {\hed@word #2}% +\ifx #1\@ \let \next \relax \else +\ifcat \nxp #1\relax \def \next {\hed@cs #1#2}\else % control sequence + \ifx #1-\def \sc@char {B}\else + \ifx #1`\def \sc@char {Q}\else + \ifcat \noexpand #1a\edef \sc@char + {\csname sc@#1\endcsname }% + \else \def \sc@char {#1}% + \fi\fi\fi \sc@put +\fi\fi \next } + +\def \h@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 {\hed@word #2}\else +\def \next {\sc@back #2}\fi \fi \next } + +\def \hed@cs #1#2{% control sequence within a word; push back? +\xpa \ifx #1\closegeresh \def \next {\h@d@cs {\nxp \lq }#2}\else +\xpa \ifx #1\closequote \def \next {\h@d@cs {`}#2}\else + \def \next {\sc@back #1#2}% +\fi\fi \next } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \hed@select {% select the new scanner +\heb@catcodes % inside hebtex.sty; to make sure +\let \sc@beg \hed@word \let \sc@word \hed@word +\let \sc@back \sc@@back \let \sc@endscan \sc@@endscan +\sethed@codes \global\let \a@scan \hed@scan +\a@message {input encoding set to ISO 8859-8 and other Hebrew conventions}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \hwin@catcodes {% assignments for CP 1255 +\countdef \is@m=2 \is@m = 192 \is@n = 64 +\loop \catcode \is@m = 11 \lccode \is@m = \is@n +\ifnum 255 > \is@m \advance \is@m 1 \advance \is@n 1 \repeat +\is@m=0 \is@n=0 \catcode `\^^a0 12 } + +{\hwin@catcodes + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% dynamic definitions for Hebrew +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\gdef \sethwin@codes {% activate and change some codes +\globaldefs=1 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def \sc@^^c0 {"\n@xp\a@e} \def \sc@^^c1 {"\n@xp\a@I} +\def \sc@^^c2 {"\n@xp\a@A} \def \sc@^^c3 {"\n@xp\a@O} +\def \sc@^^c4 {"i} \def \sc@^^c5 {"\n@xp\a@E} +\def \sc@^^c6 {"e} \def \sc@^^c7 {"a} +\def \sc@^^c8 {"A} \def \sc@^^c9 {"\n@xp\a@o} +\def \sc@^^ca {L} \def \sc@^^cb {"u} +\def \sc@^^cc {"\n@xp\a@Zu} \def \sc@^^cd {|} +\def \sc@^^ce {B} \def \sc@^^cf {"\n@xp\a@Zo} + +\def \sc@^^d0 {K} \def \sc@^^d1 {"\n@xp\a@Ze} +\def \sc@^^d2 {"\n@xp\a@Za} \def \sc@^^d3 {:} +\def \sc@^^d4 {w-w} \def \sc@^^d5 {wy} +\def \sc@^^d6 {y-y} \def \sc@^^d7 {@} +\def \sc@^^d8 {@} \def \sc@^^d9 {@} \def \sc@^^da {@} \def \sc@^^db {@} +\def \sc@^^dc {@} \def \sc@^^dd {@} \def \sc@^^de {@} \def \sc@^^df {@} + +\def \sc@M {M} %\def \sc@N {N} +\def \sc@^^e0 {Q} \def \sc@^^e1 {b} \def \sc@^^e2 {g} \def \sc@^^e3 {d} +\def \sc@^^e4 {h} \def \sc@^^e5 {w} \def \sc@^^e6 {z} \def \sc@^^e7 {X} +\def \sc@^^e8 {C} \def \sc@^^e9 {y} \def \sc@^^ea {k} \def \sc@^^eb {k} +\def \sc@^^ec {l} \def \sc@^^ed {m} \def \sc@^^ee {m} \def \sc@^^ef {n} + +\def \sc@^^f0 {n} \def \sc@^^f1 {s} \def \sc@^^f2 {P} \def \sc@^^f3 {p} +\def \sc@^^f4 {p} \def \sc@^^f5 {S} \def \sc@^^f6 {S} \def \sc@^^f7 {q} +\def \sc@^^f8 {r} \def\sc@^^f9{\n@xp\a@S} \def\sc@^^fa {t} \def \sc@^^fb {@} +\def \sc@^^fc {@} \def \sc@^^fd {@} \def \sc@^^fe {@} \def \sc@^^ff {@} +\a@digits = {0123456789} +\a@paren = {()[]} +\a@first = {"`^^e6} +\globaldefs=0 } +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +}% end of dynamic definitions for Hebrew, CP1255, ISO8859-8, newcode +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\gdef \hwin@scan #1>{% standard 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 = {}\sc@beg #1\@ \@@ +\iftest@scan \tracingmacros = 0 % +\xpa \a@verb \xpa (\the\a@tokens )>\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\gdef \hwin@beg {% start CP 1255 scanner +\h@mzafalse \iz@fetfalse \@ssimfalse \novocalize % because of explicit quoting +\hwin@word } + +{\catcode `\^^M=13 \endlinechar = -1 +\gdef \hwin@word #1{% transform input into internal notation +\ifx #1\@ \def \next {\sc@endscan }\else % finished +\if \nxp ^^M\nxp #1\def \next {\hwin@par #1}% active character +\else \def \next {\hwin@w@rd #1}% +\fi\fi \next }% +} % catcode 13 + +\gdef \hwin@w@rd #1#2{% special cases +\case #1\of +{ #2{\hwin@word #1-#2} + -{\hwin@minus #2} + ^^a0{\sc@back #2} + ^^ad{\hwin@minus #2} +\default {\hwin@@word #1#2} +}\endcase } + +\gdef \hwin@@word #1#2{% default branch +\ifcat a\nxp #1\edef \sc@char {\csname sc@#1\endcsname }% +\else \def \sc@char {\nxp #1}% +\fi \sc@put +\def \next {\hwin@word #2}% +\next } + +\gdef \hwin@@word #1{% default branch +\ifcat a\nxp #1\edef \sc@char {\csname sc@#1\endcsname }% +\else \def \sc@char {\nxp #1}% +\fi \sc@put \hwin@word } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\gdef \hwin@minus {% hyphen between words +\def \sc@char {-}\sc@put \hwin@beg } + +\gdef \hwin@par #1\@ \@@ {% new line, push back the rest +\sc@back \\ #1\@ \@@ } + +\gdef \hwin@endscan \@@ {\global\let \a@scan \hwin@scan } +} % \hwin@catcodes + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \set@hwin {% select the CP 1255 scanner +\let \sc@beg \hwin@beg \let \sc@word \hwin@word +\let \sc@back \sc@@back \let \sc@endscan \hwin@endscan +\global\let \a@scan \hwin@scan \sethwin@codes +\hwin@catcodes +\a@message {input encoding set to Windows CP 1255 conventions}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\xpa \def \xpa \sc@table \xpa {\sc@table % add the Hebrew encodings +hed\hed@select newcode\hed@select pccode\hed@select +iso8859-8\hed@select hwin\set@hwin cp1255\set@hwin } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@message {scanner for ISO 8859-8, CP1255, and other Hebrew codes installed.} + +\catcode `\@ = \hedatcode +\endinput +%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/Master/texmf-dist/tex/latex/arabtex/hetrans.sty b/Master/texmf-dist/tex/latex/arabtex/hetrans.sty new file mode 100644 index 00000000000..d06436e1608 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/hetrans.sty @@ -0,0 +1,87 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% hetrans.sty +% ArabTeX +% Modifications for Hebrew mode +% needs atrans.sty version 3.09 or later +% 17.07.1999 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \transatcode \undefined \UsePackage {atrans} +\fi + +\catcode`\@ = 11 % presupposes atrans.sty loaded + +\a@ident {hetrans.sty} {3.09 Hebrew transcription module} {17.07.1999} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +\catcode `\~=10 +\gdef \tr@heb {% my transliteration for Hebrew +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\tr@zdmg % start with default and modify +\gdef \tr@@e ##1{% test for ey -> `e + \ifx ##1y\def \next {\`e\tr@aword }\else + \def \next {\setc@p e\tr@aword ##1}\fi \next} +\gdef \tr@B {-} \gdef \tr@C {\d{t}} \gdef \tr@D {d} +\gdef \tr@R {g} \gdef \tr@U {\=u\-} \gdef \tr@V {t} +\gdef \tr@X {\d{h}} +\tr@def \a@b {b} \tr@def \a@e {\rsh@ft{07}{$^i$}\-} +\tr@def \a@f {p} \tr@def \a@j {\rsh@ft{07}{$^i$}\-} +\tr@def \a@k {k} \tr@def \a@o {\=o\-} +\tr@def \a@A {\rsh@ft{07}{$^a$}\-} \tr@def \a@E {\=e\-} +\tr@def \a@H {h} \tr@def \a@I {\rsh@ft{07}{$^e$}\-} +\tr@def \a@O {\rsh@ft{07}{$^o$}\-} \tr@def \a@U {} +\gdef \tr@aword {\@vocalfalse \tr@@aword }} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\gdef \tr@zaw {% ZAW transliteration for Hebrew +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\tr@heb % start with default and modify +\gdef \tr@@e ##1{% test for ey -> `\ae + \ifx ##1y\def \next {\`{\ae}\tr@aword }\else + \def \next {\ae\tr@aword ##1}\fi \next} +\gdef \tr@@E ##1{% test for Ee -> ey + \ifx ##1e\def \next {\setc@p e\tr@aword y}\else + \def \next {\^e\tr@aword ##1}\fi \next} +\gdef \tr@o {\aa } \gdef \tr@I {\^{\i}\-} +\gdef \tr@O {\^o\-} \gdef \tr@U {\^u\-} +\tr@def \a@e {\rsh@ft{07}{$^e$}\-} \tr@def \a@i {i\-} +\tr@def \a@j {\rsh@ft{07}{$^e$}\-} \tr@def \a@o {\=o\-} +\tr@def \a@E {e\-} +\tr@def \a@I {\rsh@ft{07}{$^{\hbox{\scriptsize \ae}}$}\-} +\tr@def \a@O {\rsh@ft{07}{$^{\mathaccent 23a}$}\-} +\ifx \tr@code \tr@oldcode \else \a@message {ZAW~transliteration}\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\gdef \tr@gesen {% transliteration for Hebrew after Gesenius +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\tr@heb % start with default and modify +\gdef \tr@@e ##1{% test for ey -> `e + \ifx ##1y\def \next {\`e\tr@aword }\else + \def \next {\u{e}\tr@aword ##1}\fi \next} +\gdef \tr@f {ph} \gdef \tr@C {th} +\gdef \tr@H {h} \gdef \tr@R {kh} +\tr@def \a@e {\rsh@ft{07}{$^e$}\-} +\tr@def \a@j {\rsh@ft{07}{$^e$}\-} +\ifx \tr@code \tr@oldcode \else \a@message {Gesenius'~transliteration}\fi } +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\xpa \def \xpa \tr@table \xpa {\tr@table % add the Hebrew encodings +gesenius\tr@gesen zaw\tr@zaw heb\tr@stdheb } + +\def \tr@stdheb {\tr@heb +\ifx \tr@code \tr@oldcode \else +\a@message {ArabTeX default transliteration}\fi } + +\settrans {heb}% default + +\catcode`\@ = \transatcode +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput + + diff --git a/Master/texmf-dist/tex/latex/arabtex/hewrite.sty b/Master/texmf-dist/tex/latex/arabtex/hewrite.sty new file mode 100644 index 00000000000..968c1ffbf40 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/hewrite.sty @@ -0,0 +1,589 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% hewrite.sty +% ArabTeX +% Modifications for Hebrew mode +% 21.05.2003 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Formale Methoden der Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@ident {hewrite.sty} {3.11 for all supported Hebrew fonts} {21.05.2003} + +\UsePackage {hebsymb} % Hebrew font character definitions +\UsePackage {hebchrs} % Hebrew letter token definitions + +\chardef \sind@t 1 \chardef \shind@t 2 \chardef \rd@t 3 +\chardef \r@phe 4 \chardef \illch@r 33 + +\newcount \heb@dsp \newcount \heb@cd +\newcount \heb@voc \newcount \h@modii \newcount \h@modi + +\newif \if@dagesh \newif \if@final \newif \if@meteg +%\newif \ifhv@wel % is obsolete, remove! +\newif \ifsp@c + +\newdimen \h@ht \newdimen \h@p + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \heb@write #1>{% Hebrew output routine +\iftest@write \tracingmacros = 1 +\iftest@parse \else \a@verb (#1)>\fi\fi +\a@write@hook +\ifa@@write \heb@testfont \heb@beg #1>0+0*>\fi +\iftest@write \tracingmacros = 0 +\fi } + +\def \heb@testfont {% diagnose font, look for vowels and ayin +\edef \next {\the\font }% +\ifx \next \h@font \else +\iftest@font \a@message {Hebrew font \next selected.}\fi +\global\let \h@font \next \h@testfont \fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \isch@r #1{00% code position in font not empty? +\setbox0 \hbox {\tracinglostchars 0 \char #1}% +\ifdim \wd0 = \z@ \xpa \setiffalse \fi } + +\def \h@testfont {% diagnose font, look for vowels and ayin +\if\isch@r {"80}\global\heb@dsp "20\else +\if\isch@r {"E0}\global\heb@dsp "80\else +\if\isch@r {"60}\global\heb@dsp 0\else + \global\heb@dsp 0\errmessage {no usable Hebrew font found}% +\fi\fi\fi +\gdef \v@adj {0}\global\h@ht \ht0 \global\h@p .1\h@ht \relax +\xdef \a@slant {\xpa\getfactor \the\fontdimen1\font }% +\heb@cd \heb@dsp \advance \heb@cd 114 \xdef \hc@Pv {\the\heb@cd }% +\if\isch@r {"10}\set@shalom\else +\if\isch@r {1}\set@hclassic\else + \set@hebstd +\fi\fi } + +\def \set@hclassic {% and dclassic, hcaption, dcaption +\global\let \h@kern \relax \global\sp@cfalse +\gdef \v@adj {0}\gdef \hc@Pv {123}% +\if\isch@r {"30}\global\sp@ctrue +\gdef \v@adj {-.2}\gdef \hc@Pv {114}% +\fi \set@hcls } + +\def \set@shalom {% shlm_old, shlm_stk, shlm_scr +\gdef \h@kern {\kern.05em }\global\sp@cfalse +\set@shlm } + +\def \set@hebstd {% jerusalem, oldjaffa, telaviv, deadsea, +% fr, frbx, frsl, crml, crmlsl +\global\let \h@kern \relax \global\sp@ctrue +\set@hstd } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \heb@beg #1#2*#3{% start output +% c m * c +\h@test@chr #1\heb@end #1#2*#3} + +\def \heb@end #1#2*#3{% final character +% c m * c +\ifx #1>\let \next \relax +\else \def \next {\heb@mid #3}% + \ifx #1-\else + \ifcat \nxp #1-\h@put@spec #1#2*#3<% + \else \h@put@end #1#2*#3<% + \fi\fi + \h@test@chr #3% +\fi \next } + +\def \heb@mid #1#2*#3{% non-final character +% c m * c +\ifx #1>\let \next \relax +\else \def \next {\heb@mid #3}% + \ifcat \nxp #1-\h@put@spec #1#2*#3<% + \else \h@put@mid #1#2*#3<% + \fi + \h@test@chr #3% +\fi \next } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \h@put@end {% final position +\if@final \advance \act@cd -1 \fi \h@put@mid } + +\gdef \h@put@mid #1#2+#3*#4<{% deposit character +% c m1 + m2 * c < +% \def \next {\heb@mid #4}% +\ifnum \act@cd = \hc@@ \relax \h@put@ill \else % illegal character +\case #1\of +{ B{\put@maqqef \def \next {\heb@end #4}} + K{\put@box {$|$}} + M{\put@box {$\Box$}} + WN{\put@phantom } + y{\h@ylig #4<} + w{\h@wlig #4<} +\default {\h@putchar } +}\endcase +\fi +\heb@accent #2+#3*\h@kern +\ifnum \act@cd = \hc@l \relax \smash {\unhbox \ab@x }% +\else \unhbox \ab@x +\fi } + +\def \h@wlig #1<{% waw ligatures +\ifx #1w% +\fi +\h@putchar } + +\def \h@ylig #1<{% yod ligatures +\ifx #1w% +\fi +\h@putchar } + +\def \h@put@ill {\put@box {$\bullet$}} + +\def \put@phantom {% small space +\heb@cd \hc@y \advance \heb@cd \heb@dsp +\put@box {\hphantom{\char \the\heb@cd }}} + +{\catcode`\^ 12 \catcode `\_ 12 \catcode `\& 12 +\catcode `\A 12 \catcode `\B 12 \catcode `\C 12 +\catcode `\D 12 \catcode `\E 12 \catcode `\F 12 +\catcode `\G 12 \catcode `\H 12 \catcode `\I 12 +\catcode `\J 12 \catcode `\K 12 \catcode `\L 12 +\catcode `\M 12 \catcode `\N 12 \catcode `\O 12 +\catcode `\P 12 +% +\gdef \h@put@spec #1#2*#3<{% special character +% c m * c < +\case #1\of +{ -|{} +% !,.{#1} + :{#1\,} + \lq {\rm \bf `} + `{\rm \bf ``} +% A{{\tt "}\def \next {\heb@end #3}} % " + A{{\tt "}} % " + B{{\rm \bf ,}} % , + C{{\tt -}} % - + D{{\tt \char`\|}} % | +% E{{\tt \char'015}\def \next {\heb@end #3}} % ' + E{{\tt \char'015}} % ' + F{{\tt \char`\\}} % \ + G{{\tt \char`\}}} % { + H{{\tt \char`\{}} % } + I{{\bf $\cdots$}} % ... + J{{\bf $\div$}} % -:- + K{{\tt \char`\>}} % < + L{{\tt \char`\<}} % > + M{{\rm \bf --}} % -- + N{{\rm \bf ---}} % --- + O{{\rm \bf `}} % ` +% P{{\rm \bf '}\def \next {\heb@end #3}} % ' + P{{\rm \bf '}} % ' +\default {{\ifsp@c \else \rm \bf \fi + \ifx #1][\else \ifx #1[]\else + #1\fi\fi}} +}\endcase +\ifx #1A\else \ifx #1E\else \ifx #1'\else +\def \next {\heb@end #3}\fi\fi\fi } +}% \catcodes 12 + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \h@test@chr #1{% get character attributes +\@dageshfalse \@finalfalse \act@mod 0 \act@cd \hc@@ +\def \hc@sk {#1}% +\csname tc@\string #1\endcsname } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \heb@accent #1+#2*{% put modifier onto contents of "\ab@x" +% m1 + m2 * +\red@mod = 0#1 \relax \advance \red@mod 100 \relax +\xpa \heb@split \the\red@mod *\h@putaccent #2*} + +\def \h@putmod #1{% deposit modifier +\ifcase #1\relax +\or \h@sindot \or \h@shindot \or \h@rdot \or \h@raphe \fi } + +\def \heb@split 1#1#2*{% separate modifier 1 +% 1 m11 m12 * +\h@putmod #1\@metegfalse \red@mod = #2\relax +\ifnum \red@mod > 3 \advance \red@mod -4 \@metegtrue \fi +\ifnum \red@mod > 1 \advance \red@mod -2 \h@cholem \fi +\ifnum \red@mod > 0 \advance \red@mod -1 \@dageshtrue \fi } + +\def \h@putaccent #1*{% deposit vowels +\h@putmod \act@mod +\ifcase 0#1\relax +\put@dummy \or \put@shwa \or \put@patach \or \put@chireq \or +\put@qibbus \or \put@chpatach \or \put@chsegol \or \put@chqames \or +\put@segol \or \put@cholem \or \put@qames \or \put@sere \or +\put@qameschat \or \put@patachf \fi +\if@dagesh \put@dagesh \fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \h@@putchar {% choose character glyph +\ifnum \act@cd = \hc@v \relax \h@putlig \hc@w \hc@w \else +\ifnum \act@cd = \hc@oy \relax \h@putlig \hc@y \hc@w \else +\ifnum \act@cd = \hc@ey \relax \h@putlig \hc@y \hc@y \else + \h@put@char \act@cd +\fi\fi\fi }% + +\def \h@putlig #1#2{% Hebrew ligature +\h@put@char #1\setbox4 \box \ab@x +\h@put@char #2\setbox6 \box \ab@x +\put@box {\unhcopy4 \unhcopy6 }}% + +\def \h@put@char #1{% choose character glyph +\heb@cd #1\advance \heb@cd \heb@dsp \put@b@x {\the\heb@cd }}% + +\def \h@@putdot #1{% put a dot above a character +\dimen@ 1.25\h@ht \dimen2 \a@slant\dimen@ \advance\dimen2 #1\a@wd +\global\setbox\ab@x \hbox +{\rlap{\kern\dimen2 \raise\dimen@\hbox{\the@dot }}\unhcopy\ab@x}}% + +\def \h@@raphe {% no dagesh +\setbox0 \hbox {\the@raphe }\dimen@ 1.25\h@ht +\dimen2 .5\a@wd \advance\dimen2 -.5\wd0 \advance\dimen2 \a@slant\dimen@ +\global\setbox\ab@x \hbox +{\rlap{\kern\dimen2 \raise\dimen@\box0 }\unhcopy\ab@x }}% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% dynamic definitions for vowel positioning +% CAUTION: these routines are called in HMODE +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\gdef \set@hcls{% routines for the HCLASSIC font family +\globaldefs = 1\relax +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +\let \h@putchar \h@@putchar +% +\def \put@maqqef {% deposit maqqef +\put@b@x {\the\act@cd }}% +% +\def \h@vowel {% check for meteg +\if@meteg \xpa \h@meteg \else \xpa \h@putvowel \fi }% +% +\def \h@meteg ##1{% put vowel and meteg +\h@putvowel {\char 8 ##1}}% +% +\def \the@dot {\char 0}% +% +\def \the@raphe {\vrule width.8\a@wd height.4pt depth0pt }% +% +\def \put@dummy {\h@vowel {}}% % dummy for meteg, silluq +\def \put@patach {\h@vowel {\char 1 }}% % patach +\def \put@qames {\h@vowel {\char 2 }}% % qames +\def \put@segol {\h@vowel {\char 3 }}% % segol +\def \put@qibbus {\h@vowel {\char 4 }}% % qibbus +\def \put@chireq {\h@vowel {\char 5 }}% % chireq +\def \put@qameschat {\h@vowel {\char 6 }}% % qames chatuph +\def \put@shwa {\h@vowel {\char 7 }}% % shwa +\def \put@sere {\h@vowel {\char 9 }}% % sere +\def \put@chpatach {\h@vowel {\char 1 \char 7 }}% % chateph patach +\def \put@chsegol {\h@vowel {\char 3 \char 7 }}% % chateph segol +\def \put@chqames {\h@vowel {\char 6 \char 7 }}% % chateph qames +\def \put@cholem {\h@vowel {}\h@ldot }% % cholem breve, meteg? +\def \put@patachf {\h@vowel {\hphantom + {\char 1 }\char 1 }}% % patach furtivum +% +\def \put@dagesh {\def \vadj {.48}\def \hadj {0}% default +\ifnum \act@cd = \hc@j \def \hadj {-.2}\fi % gimel +\ifnum \act@cd = \hc@w \def \hadj {-.3}\def \vadj {.55}\fi % waw +\ifnum \act@cd = \hc@z \def \hadj {-.4}\fi % zayin +\ifnum \act@cd = \hc@tt \def \hadj {.1}\fi % tet +\ifnum \act@cd = \hc@y \def \hadj {-.45}\def \vadj {.55}\fi % yod +\ifnum \act@cd = \hc@l \def \hadj {-.1}\def \vadj {.3}\fi % lamed +\ifnum \act@cd = \hc@n \def \hadj {-.2}\fi % nun +\ifnum \act@cd = \hc@nf \def \hadj {-.2}\fi % nun sofit +\ifnum \act@cd = \hc@f \def \hadj {.15}\fi % pe +\ifnum \act@cd = \hc@ff \def \hadj {.15}\fi % pe sofit +\ifnum \act@cd = \hc@ss \def \hadj {.1}\fi % sade +\ifnum \act@cd = \hc@sf \def \hadj {.1}\fi % sade sofit +\ifnum \act@cd = \hc@si \def \hadj {.07}\fi % shin +\ifnum \act@cd = \hc@M \def \vadj {.7}\fi % box +\dimen@ \vadj\a@ht \dimen2 \a@slant\dimen@ +\advance\dimen2 \hadj\a@wd \advance\dimen2 .5\a@wd +\global\setbox\ab@x \hbox +%{\rlap{\kern\dimen2 \raise\dimen@\hbox{\char 0 }}\unhcopy\ab@x}}% +{\rlap{\kern\dimen2 \raise\dimen@\hbox{\the@dot }}\unhcopy\ab@x}}% +% +\let \h@put@dot \h@@putdot +% +\let \h@raphe \h@@raphe +% +\def \h@shindot {\h@put@dot {.8}}% % right dot for shin +% +\def \h@sindot {\h@put@dot {.2}}% % left dot for sin +% +\def \h@rdot {\h@put@dot {.5}}% % right dot for waw, cholem breve +% +\def \h@ldot {% left dot for cholem breve +\ifnum \act@cd = \hc@l \relax \h@put@dot {-.1}% lamed +\else \h@put@dot {.1}\fi }% +% +\def \h@cholem {% depends on carrier +\ifnum \act@cd = \hc@w \h@rdot \else \h@shindot \fi }% +% +\def \h@putvowel ##1{% vowel mark +\ifx ##1\relax \relax \else \def \hadj {0}\def \vadj {0}% +\ifnum \act@cd = \hc@P \let\vadj \v@adj \put@b@x{\hc@Pv }\else % vowel-ayin +\ifnum \act@cd = \hc@kf \def \hadj {-.1}\def \vadj {.85}\else % final kaph +\ifnum \act@cd = \hc@r \def \hadj {.35}\else % resh +\ifnum \act@cd = \hc@d \def \hadj {.2}\else % daleth +\ifnum \act@cd = \hc@q \def \hadj {.1}\else % qoph +\ifnum \act@cd = \hc@w \def \hadj {.15}\else % waw +\ifnum \act@cd = \hc@si \def \hadj {-.1}\else % sin +\fi\fi\fi\fi\fi\fi\fi +\setbox0 \hbox to \a@wd {\hss ##1\hss}\dimen@ \vadj\a@ht +\dimen2 \a@slant\dimen@ \advance\dimen2 \hadj\a@wd +\global\setbox\ab@x \hbox +{\rlap {\kern\dimen2 \raise\dimen@\box0 }\unhcopy\ab@x }\fi }% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\globaldefs = 0 }% end font HCLASSIC +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +\global\let \@set@hcls \set@hcls + +\gdef \set@hcls{% routines for the HCLASSIC font family +%\globaldefs = 1\relax +\a@message {patch HCLASSIC}% +\@set@hcls +\globaldefs = 1\relax +\def \the@dot {\vrule width\h@p height0pt depth\h@p }% +\def \the@mdot {\vrule width\h@p height-\h@p depth2\h@p }% +\def \the@ldot {\vrule width\h@p height-2\h@p depth3\h@p }% +\def \the@shwa {\the@dot \kern-\h@p \the@ldot }% +\def \the@sere {\the@dot \kern\h@p \the@dot }% +\def \the@segol {\the@dot \the@ldot \the@dot }% +\def \the@qibbus {\the@dot \the@mdot \the@ldot }% +\def \the@meteg {\vrule width\h@p height0pt depth3\h@p }% +\def \the@meteg {\vrule width\h@p height-.2\h@p depth3\h@p }% +\def \the@patach {\vrule width3\h@p height0pt depth\h@p }% +\def \the@qames {\the@patach \kern-2\h@p \the@meteg \kern\h@p }% +\def \put@dummy {\h@vowel {}}% +\def \put@patach {\h@vowel {\the@patach }}% +\def \put@qames {\h@vowel {\the@qames }}% +\def \put@segol {\h@vowel {\the@segol }}% +\def \put@qibbus {\h@vowel {\the@qibbus }}% +\def \put@chireq {\h@vowel {\the@dot }}% +\def \put@qameschat {\h@vowel {\the@qames }}% +\def \put@shwa {\h@vowel {\the@shwa }}% +\def \put@sere {\h@vowel {\the@sere }}% +\def \put@chpatach {\h@vowel {\the@patach \kern\h@p \the@shwa }}% +\def \put@chsegol {\h@vowel {\the@segol \kern\h@p \the@shwa }}% +\def \put@chqames {\h@vowel {\the@qames \kern\h@p \the@shwa }}% +\def \put@cholem {\h@vowel {}\h@ldot }% +\def \put@patachf {\h@vowel {\kern4\h@p \the@patach }}% +% +\def \h@vowel {% check for meteg +\if@meteg \xpa \h@meteg \else \xpa \h@putvowel \fi }% +% +\def \h@meteg ##1{% put vowel and meteg +\h@putvowel {\the@meteg \kern\h@p ##1}}% +% +\def \h@vowel ##1{% check for meteg +\if@meteg \xpa \h@meteg \else \xpa \h@putvowel \fi {\raise -.2ex\hbox{##1}}}% +% +\def \h@vowel ##1{% check for meteg +\if@meteg \h@meteg {##1}\else \h@putvowel {\raise -.2ex\hbox{##1}}\fi }% +% +\def \h@vowel ##1{% check for meteg +\if@meteg +\h@putvowel {\raise -.2ex\hbox{\the@meteg \kern\h@p ##1}}\else +\h@putvowel {\raise -.2ex\hbox{##1}}\fi }% +% +\globaldefs = 0 }% end standard fonts + +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\gdef \set@shlm{% routines for the SHALOM fonts +\globaldefs = 1\relax +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +\def \h@putchar {% choose character glyph +\ifnum \act@cd = \hc@v \put@b@x {18}\else +\ifnum \act@cd = \hc@oy \put@b@x {19}\else +\ifnum \act@cd = \hc@ey \put@b@x {21}\else + \h@put@char \act@cd +\fi\fi\fi }% +% +\def \put@maqqef {% deposit maqqef +\put@box {\char 25}}% +% +\def \isn@rrow {% narrow character (class 2) ? +\xpa \is@in@list \hc@sk gdinrwyGDNORUWY>}% +% +\def \h@vowel ##1{% check class +\heb@voc = ##1\relax +\if\isn@rrow \advance\heb@voc 17 +\put@box {\unhcopy\ab@x \llap{\char\heb@voc \kern -.075em }}% +\else \xpa\h@v@wel \xpa{\the\heb@voc }\fi }% +% +\def \h@v@wel ##1{% add vowel char right +\put@box {\unhcopy\ab@x \char ##1}}% +% +\def \put@dummy {\relax }% % dummy for meteg, silluq (?) +\def \put@segol {\h@vowel {50}}% % segol +\def \put@qibbus {\h@vowel {52}}% % qibbus +\def \put@qameschat {\h@vowel {54}}% % qames chatuph +\def \put@sere {\h@vowel {49}}% % sere +\def \put@chpatach {\h@vowel {56}}% % chateph patach +\def \put@chsegol {\h@vowel {55}}% % chateph segol +\def \put@chqames {\h@vowel {57}}% % chateph qames +\def \put@patachf {\h@vowel {70}}% % patach furtivum +% +\def \put@shwa {% shwa on final kaf ? +\ifnum\act@cd = \hc@kf \h@v@wel {85}\else \h@vowel {51}\fi }% +% +\def \put@qames {% qames on alef or final kaf ? +\ifnum\act@cd = \hc@a \put@b@x {17}\else +\ifnum\act@cd = \hc@kf \h@v@wel {86}\else \h@vowel {54}\fi\fi }% +% +\def \put@patach {% patach on alef or 2 yod ? +\ifnum\act@cd = \hc@ey \put@b@x {22}\else +\ifnum\act@cd = \hc@a \put@b@x {16}\else \h@vowel {53}\fi\fi }% +% +\def \put@chireq {% chireq on yod ? +\ifnum\act@cd = \hc@y \put@b@x {20}\else \h@vowel {48}\fi }% +% +\def \put@cholem {% cholem breve, meteg? +\ifnum\act@cd = \hc@l \put@box {\char 61 \unhcopy\ab@x }\else +\put@box {\rlap {\kern .1em \char 61 }\unhcopy\ab@x }\fi }% +% +\def \h@cholem {% depends on carrier +\ifnum \act@cd = \hc@w \put@b@x {62}\else \h@shindot \fi }% +% +\def \h@shindot {% right dot for sin +\ifnum \act@cd = \hc@si \put@b@x {23}\else +\put@box {\unhcopy\ab@x \llap {\char 61 \kern .1em}}\fi }% +% +\def \h@sindot {% left dot for sin +\ifnum \act@cd = \hc@si \put@b@x {24}\fi }% +% +\def \h@rdot {\h@v@wel {61}}% right dot for waw, cholem breve +% +\def \h@raphe {\h@v@wel {26}}% soft consonant +% +\def \put@dagesh {% test for yod and class2 +\ifnum\act@cd = \hc@y \h@v@wel {89}\else +\ifnum\act@cd = \hc@w \put@b@x {60}\else +\if\isn@rrow \put@box {\unhcopy\ab@x \llap {\char 88 \kern .05em}}% +\else \h@v@wel {87}\fi\fi\fi }% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\globaldefs = 0 }% end font SHALOM +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\gdef \set@hstd{% routines for the standard fonts +\globaldefs = 1\relax +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +\let \h@putchar \h@@putchar +% +\def \put@maqqef {% deposit maqqef +\put@box {\kern.05em\raise .6ex \hbox {\char \act@cd }\kern.05em}}% +% +\let \h@raphe \h@@raphe +% +\let \h@put@dot \h@@putdot +% +\def \h@shindot {\h@put@dot {.8}}% % right dot for shin +% +\def \h@sindot {\h@put@dot {.2}}% % left dot for sin +% +\def \h@rdot {\h@put@dot {.5}}% % right dot for waw, cholem breve +% +\def \h@ldot {% left dot for cholem breve +%\ifnum \act@cd = \hc@l \relax \h@put@dot {-.1}% lamed +\ifnum \act@cd = \hc@l \relax \h@put@dot {-.2}% lamed +\else \h@put@dot {.1}\fi }% +% +\def \h@cholem {% depends on carrier +\ifnum \act@cd = \hc@w \h@rdot \else \h@shindot \fi }% +% +\def \the@raphe {\vrule width8\h@p height\h@p depth0pt }% +\def \the@dot {\vrule width\h@p height0pt depth\h@p }% +\def \the@mdot {\vrule width\h@p height-\h@p depth2\h@p }% +\def \the@ldot {\vrule width\h@p height-2\h@p depth3\h@p }% +\def \the@shwa {\the@dot \kern-\h@p \the@ldot }% +\def \the@sere {\the@dot \kern\h@p \the@dot }% +\def \the@segol {\the@dot \the@ldot \the@dot }% +\def \the@qibbus {\the@dot \the@mdot \the@ldot }% +\def \the@meteg {\vrule width\h@p height0pt depth3\h@p }% +\def \the@patach {\vrule width3\h@p height0pt depth\h@p }% +\def \the@qames {\the@patach \kern-2\h@p \the@meteg \kern\h@p }% +% +\def \put@dummy {\relax}% +\def \put@dummy {\h@vowel {}}% +\def \put@patach {\h@vowel {\the@patach }}% +\def \put@qames {\h@vowel {\the@qames }}% +\def \put@segol {\h@vowel {\the@segol }}% +\def \put@qibbus {\h@vowel {\the@qibbus }}% +\def \put@chireq {\h@vowel {\the@dot }}% +\def \put@qameschat {\h@vowel {\the@qames }}% +\def \put@shwa {\h@vowel {\the@shwa }}% +\def \put@sere {\h@vowel {\the@sere }}% +\def \put@chpatach {\h@vowel {\the@patach \kern\h@p \the@shwa }}% +\def \put@chsegol {\h@vowel {\the@segol \kern\h@p \the@shwa }}% +\def \put@chqames {\h@vowel {\the@qames \kern\h@p \the@shwa }}% +\def \put@cholem {\h@vowel {}\h@ldot }% +\def \put@patachf {\h@vowel {\kern4\h@p \the@patach }}% +% +\def \put@dagesh {\def \vadj {.48}\def \hadj {0}% default +\ifnum \act@cd = \hc@j \def \hadj {-.2}\fi % gimel +\ifnum \act@cd = \hc@w \def \hadj {-.3}\def \vadj {.55}\fi % waw +\ifnum \act@cd = \hc@z \def \hadj {-.4}\fi % zayin +\ifnum \act@cd = \hc@tt \def \hadj {.1}\fi % tet +\ifnum \act@cd = \hc@y \def \hadj {-.45}\def \vadj {.55}\fi % yod +\ifnum \act@cd = \hc@l \def \hadj {-.1}\def \vadj {.3}\fi % lamed +\ifnum \act@cd = \hc@n \def \hadj {-.2}\fi % nun +\ifnum \act@cd = \hc@nf \def \hadj {-.2}\fi % nun sofit +\ifnum \act@cd = \hc@f \def \hadj {.05}\fi % pe +\ifnum \act@cd = \hc@ff \def \hadj {.15}\fi % pe sofit +\ifnum \act@cd = \hc@ss \def \hadj {.1}\fi % sade +\ifnum \act@cd = \hc@sf \def \hadj {.1}\fi % sade sofit +\ifnum \act@cd = \hc@si \def \hadj {.18}\fi % shin +\ifnum \act@cd = \hc@M \def \vadj {.7}\fi % box +\dimen@ \vadj\a@ht \dimen2 \a@slant\dimen@ \advance \dimen2 -\h@p +\advance\dimen2 \hadj\a@wd \advance\dimen2 .5\a@wd +\global\setbox\ab@x \hbox +{\rlap{\kern\dimen2 \raise\dimen@\hbox{\the@dot }}\unhcopy\ab@x}}% +% +\def \h@putvowel ##1{% vowel mark +\ifx ##1\relax \relax \else \def \hadj {0}\def \vadj {0}% +\ifnum \act@cd = \hc@P \let\vadj \v@adj \put@b@x{\hc@Pv }\else % vowel-ayin +\ifnum \act@cd = \hc@kf \def \hadj {-.1}\def \vadj {.85}\else % final kaph +\ifnum \act@cd = \hc@r \def \hadj {.35}\else % resh +\ifnum \act@cd = \hc@d \def \hadj {.2}\else % daleth +\ifnum \act@cd = \hc@q \def \hadj {.1}\else % qoph +\ifnum \act@cd = \hc@y \def \hadj {.1}\else % yod +\ifnum \act@cd = \hc@w \def \hadj {.15}\else % waw +\ifnum \act@cd = \hc@si \def \hadj {-.1}\else % sin +\fi\fi\fi\fi\fi\fi\fi\fi +\setbox0 \hbox to \a@wd {\hss ##1\hss}\dimen@ \vadj\a@ht +\advance \dimen@ -2\h@p +\dimen2 \a@slant\dimen@ \advance\dimen2 \hadj\a@wd +\global\setbox\ab@x \hbox +{\rlap {\kern\dimen2 \raise\dimen@\box0 }\unhcopy\ab@x }\fi }% +% +\def \h@vowel {% check for meteg +\if@meteg \xpa \h@meteg \else \xpa \h@putvowel \fi }% +% +\def \h@meteg ##1{% put vowel and meteg +\h@putvowel {\the@meteg \kern\h@p ##1}}% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\globaldefs = 0 }% end standard fonts +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%}% end of dynamic definitions +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/Master/texmf-dist/tex/latex/arabtex/hmac.sty b/Master/texmf-dist/tex/latex/arabtex/hmac.sty new file mode 100644 index 00000000000..7e282347bf1 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/hmac.sty @@ -0,0 +1,156 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% hmac.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% hmac.sty +% Scanner for MAC Hebrew +% to install it, include it as a LaTeX package or style option "hmac" +% with Plain TeX, say "\input hmac.sty" +% to activate it, say "\setcode{hmac}" +% 07.03.2002 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \hmacatcode \undefined \else \expandafter \endinput +\fi % load only once + +\chardef \hmacatcode = \catcode`\@ \catcode`\@ = 11 + +\a@ident {hmac.sty} {3.10a MAC Hebrew encoding} {07.03.2002} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \hmac@catcodes {% assignments for MAC Hebrew +\countdef \is@m=2 \is@m = 160 +\countdef \is@n=4 \is@n = 32 +\loop \ifnum \catcode \is@m = 11 \else \catcode \is@m = 11 \fi +\global\lccode \is@m = \is@n +\ifnum 255 > \is@m \advance \is@m 1 \advance \is@n 1 \repeat +\is@m=0 \is@n=0 +\catcode `\^^81 11 +\catcode `\^^a0 12 } + +{\hmac@catcodes +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% dynamic definitions for Hebrew +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\gdef \sethmac@codes {% activate and change some codes +\globaldefs=1 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def \sc@^^81 {yy"A} +\def \sc@^^a0 {@} \def \sc@^^a1 {!} +\def \sc@^^a2 {\a@dq} \def \sc@^^a3 {\a@hsh} +\def \sc@^^a4 {\a@dlr} \def \sc@^^a5 {\a@pct} +\def \sc@^^a6 {\a@dlr} \def \sc@^^a7 {\a@qt} +\def \sc@^^a8 {(} \def \sc@^^a9 {)} \def \sc@^^aa {*} \def \sc@^^ab {+} +\def \sc@^^ac {,} \def \sc@^^ad {\h@phen} +\def \sc@^^ae {.} \def \sc@^^af {/} + +\def \sc@^^b0 {0} \def \sc@^^b1 {1} \def \sc@^^b2 {2} \def \sc@^^b3 {3} +\def \sc@^^b4 {4} \def \sc@^^b5 {5} \def \sc@^^b6 {6} \def \sc@^^b7 {7} +\def \sc@^^b8 {8} \def \sc@^^b9 {9} \def \sc@^^ba {:} \def \sc@^^bb {;} +\def \sc@^^bc {\a@rab} \def \sc@^^bd {=} +\def \sc@^^be {\a@lab} \def \sc@^^bf {?} + +\def \sc@^^c0 {l"\n@xp\a@o} \def \sc@^^c1 {,,} +\def \sc@^^c2 {@} \def \sc@^^c3 {@} +\def \sc@^^c4 {@} \def \sc@^^c5 {@} +\def \sc@^^c6 {"\n@xp\a@Zu} \def \sc@^^c7 {w"\n@xp\a@o} +\def \sc@^^c8 {w"\n@xp\a@Zu} \def \sc@^^c9 {\a@ell} +\def \sc@^^ca {N} \def \sc@^^cb {"A} +\def \sc@^^cc {"a} \def \sc@^^cd {"\n@xp\a@E} +\def \sc@^^ce {"e} \def \sc@^^cf {"i} + +\def \sc@^^d0 {\a@end} \def \sc@^^d1 {\a@emd} +\def \sc@^^d2 {\a@lq\a@lq} \def \sc@^^d3 {\a@rq\a@rq} +\def \sc@^^d4 {\a@lq} \def \sc@^^d5 {\a@rq} +\def \sc@^^d6 {\n@xp\a@S"\n@xp\a@Ze} \def \sc@^^d7 {\n@xp\a@S"\n@xp\a@Za} +\def \sc@^^d8 {"\n@xp\a@Zo} \def \sc@^^d9 {"\n@xp\a@e} +\def \sc@^^da {"\n@xp\a@A} \def \sc@^^db {"\n@xp\a@I} +\def \sc@^^dc {"u} \def \sc@^^dd {"\n@xp\a@o} +\def \sc@^^de {"o} \def \sc@^^df {"\n@xp\a@O} + +\def \sc@^^e0 {Q} \def \sc@^^e1 {b} \def \sc@^^e2 {g} \def \sc@^^e3 {d} +\def \sc@^^e4 {h} \def \sc@^^e5 {w} \def \sc@^^e6 {z} \def \sc@^^e7 {X} +\def \sc@^^e8 {C} \def \sc@^^e9 {y} \def \sc@^^ea {k} \def \sc@^^eb {k} +\def \sc@^^ec {l} \def \sc@^^ed {m} \def \sc@^^ee {m} \def \sc@^^ef {n} + +\def \sc@^^f0 {n} \def \sc@^^f1 {s} \def \sc@^^f2 {P} \def \sc@^^f3 {p} +\def \sc@^^f4 {p} \def \sc@^^f5 {S} \def \sc@^^f6 {S} \def \sc@^^f7 {q} +\def \sc@^^f8 {r} \def\sc@^^f9{\n@xp\a@S} +\def \sc@^^fa {t} \def \sc@^^fb {\a@rbc} +\def \sc@^^fc {]} \def \sc@^^fd {\a@lbc} +\def \sc@^^fe {[} \def \sc@^^ff {\a@bar} + +\a@digits = {0123456789} \a@paren = {()[]} \a@first = {"`^^e6} +\globaldefs=0 } +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +}% end of dynamic definitions for MAC Hebrew +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\gdef \hmac@scan #1>{% standard 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 = {}\sc@beg #1\@ \@@ +\iftest@scan \tracingmacros = 0 % +\xpa \a@verb \xpa (\the\a@tokens )>\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\gdef \hmac@beg {% start MAC Hebrew scanner +\h@mzafalse \iz@fetfalse \@ssimfalse \novocalize % because of explicit quoting +\hmac@word } + +{\catcode `\^^M=13 \endlinechar = -1 +\gdef \hmac@word #1{% transform input into internal notation +\ifx #1\@ \def \next {\sc@endscan }\else % finished +\if \nxp ^^M\nxp #1\def \next {\hmac@par #1}% active character +\else \def \next {\hmac@w@rd #1}% +\fi\fi \next }% +} % catcode 13 + +\gdef \hmac@w@rd #1#2{% special cases +\case #1\of +{ #2{\hmac@word #1-#2} + -{\hmac@minus #2} + ^^a0{\sc@back #2} +% ^^ad{\hmac@minus #2} +\default {\hmac@@word #1#2} +}\endcase } + +\gdef \hmac@@word #1{% default branch +\ifcat a\nxp #1\edef \sc@char {\csname sc@#1\endcsname }% +\else \def \sc@char {\nxp #1}% +\fi \sc@put \hmac@word } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\gdef \hmac@minus {% hyphen between words +\def \sc@char {-}\sc@put \hmac@beg } + +\gdef \hmac@par #1\@ \@@ {% new line, push back the rest +\sc@back \\ #1\@ \@@ } + +\gdef \hmac@endscan \@@ {\global\let \a@scan \hmac@scan } +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +} % \hmac@catcodes + +\def \set@hmac {% select the MAC Hebrew scanner +\let \sc@beg \hmac@beg \let \sc@word \hmac@word +\let \sc@back \sc@@back \let \sc@endscan \hmac@endscan +\global\let \a@scan \hmac@scan \sethmac@codes +\hmac@catcodes +\a@message {input encoding set to MAC Hebrew and ISO 8859-8 conventions}} + +\xpa \def \xpa \sc@table \xpa {\sc@table % add the MAC Hebrew encoding +hmac\set@hmac iso8859-8\set@hmac iso88598\set@hmac } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@message {scanner for MAC Hebrew code installed.} + +\catcode `\@ = \hmacatcode +\endinput +%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/Master/texmf-dist/tex/latex/arabtex/isiri.sty b/Master/texmf-dist/tex/latex/arabtex/isiri.sty new file mode 100644 index 00000000000..a14c672ff67 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/isiri.sty @@ -0,0 +1,225 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%% isiri.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% isiri.sty +% Scanner for ISIRI 3342 Code +% to install it, include it as a LaTeX package or style option "isiri" +% with Plain TeX, say "\input isiri.sty" +% to activate it, say "\setcode {isiri3342}" or "\setcode {isiri}" +% 26.04.2003 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Formale Methoden der Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \isiriatcode \undefined \else \expandafter \endinput +\fi % load only once + +\chardef \isiriatcode = \catcode`\@ \catcode`\@ = 11 + +\a@ident {isiri.sty} {3.11 ISIRI 3342 input encoding } {26.04.2003} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \isiri@catcodes {% assignments for ISIRI 3342 +\countdef \is@m=2 \countdef \is@n=4 +\is@m = 160 \is@n = 32 +\loop \ifnum \catcode \is@m = 11 \else \catcode \is@m = 11 \fi +\global\lccode \is@m = \is@n +\ifnum 255 > \is@m \advance \is@m 1 \advance \is@n 1 \repeat +\is@m=0 \is@n=0 \catcode `\^ 7 \catcode `\^^a0 12 } + +{\isiri@catcodes +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% dynamic definitions for Arabic +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\gdef \setisi@codes {% activate and change some codes +\globaldefs=1 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def \sc@^^a0 {@} \def \sc@^^a1 {||} \def \sc@^^a2 {-} \def \sc@^^a3 {!} +\def \sc@^^a4 {\a@dlr} \def \sc@^^a5 {\a@pct} +\def \sc@^^a6 {\a@amp} \def \sc@^^a7 {\a@qt} +\def \sc@^^a8 {(} \def \sc@^^a9 {)} \def \sc@^^aa {*} \def \sc@^^ab {+} +\def \sc@^^ac {,} \def \sc@^^ad {-} \def \sc@^^ae {.} \def \sc@^^af {/} + +\def \sc@^^b0 {0} \def \sc@^^b1 {1} \def \sc@^^b2 {2} \def \sc@^^b3 {3} +\def \sc@^^b4 {4} \def \sc@^^b5 {5} \def \sc@^^b6 {6} \def \sc@^^b7 {7} +\def \sc@^^b8 {8} \def \sc@^^b9 {9} \def \sc@^^ba {:} \def \sc@^^bb {;} +\def \sc@^^bc {\a@lab} \def \sc@^^bd {=} +\def \sc@^^be {\a@rab} \def \sc@^^bf {?} + +\def \sc@^^c0 {QA} \def \sc@^^c1 {A} \def \sc@^^c2 {Q|} \def \sc@^^c3 {b} +\def \sc@^^c4 {p} \def \sc@^^c5 {t} \def \sc@^^c6 {C} \def \sc@^^c7 {G} +\def \sc@^^c8 {J} \def \sc@^^c9 {H} \def \sc@^^ca {X} \def \sc@^^cb {d} +\def \sc@^^cc {F} \def \sc@^^cd {r} \def \sc@^^ce {z} \def \sc@^^cf {j} + +\def \sc@^^d0 {s} \def \sc@^^d1 {x} \def \sc@^^d2 {S} \def \sc@^^d3 {D} +\def \sc@^^d4 {V} \def \sc@^^d5 {Z} \def \sc@^^d6 {P} \def \sc@^^d7 {R} +\def \sc@^^d8 {f} \def \sc@^^d9 {q} \def \sc@^^da {\n@xp \a@k} +\def \sc@^^db {g} +\def \sc@^^dc {l} \def \sc@^^dd {m} \def \sc@^^de {n} \def \sc@^^df {w} + +\def \sc@^^e0 {h} \def \sc@^^e1 {Y} \def \sc@^^e2 {[} \def \sc@^^e3 {]} +\def \sc@^^e4 {\a@lbc} \def \sc@^^e5 {\a@rbc} +\def \sc@^^e6 {'} \def \sc@^^e7 {`} +\def \sc@^^e8 {*} \def \sc@^^e9 {B} +\def \sc@^^ea {\a@bar} \def \sc@^^eb {\a@bsl} +\def \sc@^^ec {@} \def \sc@^^ed {@} \def \sc@^^ee {@} \def \sc@^^ef {@} + +\def \sc@^^f0 {"a} \def \sc@^^f1 {"i} \def \sc@^^f2 {"u} \def \sc@^^f3 {"aN} +\def \sc@^^f4 {"iN}\def \sc@^^f5 {"uN} \def \sc@^^f6 {@} \def \sc@^^f7 {""} +\def \sc@^^f8 {Qa} \def \sc@^^f9 {Qw} \def \sc@^^fa {Qi} \def \sc@^^fb {QY} +\def \sc@^^fc {T} \def \sc@^^fd {k} \def \sc@^^fe {y} \def \sc@^^ff {E} +\a@digits = {0123456789^^b0^^b1^^b2^^b3^^b4^^b5^^b6^^b7^^b8^^b9} +\a@paren = {()[]^^a8^^a9^^e2^^e3} +\a@first = {"`^^e6} +\globaldefs=0 } +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +}% end of dynamic definitions for Arabic +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\gdef \isi@scan #1>{% standard 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 = {}\sc@beg #1\@ \@@ +\iftest@scan \tracingmacros = 0 % +\xpa \a@verb \xpa (\the\a@tokens )>\fi } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +{\catcode `\^ 7 +\gdef \isi@beg #1#2{% start ISIRI 3342 scanner +\h@mzafalse \iz@fetfalse \yahdots \novocalize % because of explicit quoting + \@ssimfalse +\case #1\of +{ \@{\sc@endscan #2} % finished + ^^c1{\isi@alif@beg #2} + ^^e6{\isi@lquote #2} +\default {\isi@word #1#2} +}\endcase } + +{\catcode `\^^M=13 \endlinechar = -1 +\gdef \isi@word #1#2{% transform input into internal notation +\ifx #1\@ \def \next {\sc@endscan #2}\else % finished +\if \nxp ^^M\nxp #1\def \next {\isi@par #1#2}% active character +\else \def \next {\isi@w@rd #1#2}% +\fi\fi \next }% +} % catcode 13 + +\gdef \isi@w@rd #1#2{% special cases +\case #1\of +{ #2{\isi@word #1-#2} + -{\isi@minus #2} + ^^a0{\sc@back #2} + ^^ad{\isi@minus #2} + ^^c1{\isi@alif #2} + ^^c2{\isi@hamza #2} + ^^df{\isi@waw #2} + ^^e0{\isi@hah #2} + ^^e1{\isi@Yah #2} + ^^e7{\isi@rquote #2} + ^^fe{\isi@yah #2} +\default {\isi@@word #1#2} +}\endcase } + +\gdef \isi@@word #1#2{% default branch +\ifcat a\nxp #1\edef \sc@char {\csname sc@#1\endcsname }% +\else \def \sc@char {\nxp #1}% +\fi \sc@put +\ifx #2^^f6\def \next {\isi@word #1}% shadda +\else \def \next {\isi@word #2}% +\fi \next } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\gdef \isi@alif@beg #1{% alif +\ifx #1^^a2\def \next {\isi@alif@P }\else +\def \next {\isi@word #1}\def \sc@char {a}\sc@put +\fi \next } + +\gdef \isi@alif #1{% alif +\ifx #1^^a2\def \next {\isi@alif@P }\else +\def \next {\isi@word #1}\def \sc@char {A}\sc@put +\fi \next } + +\gdef \isi@alif@P #1{% alif PCN hamza ? +\ifx #1^^c2\def \sc@char {Qa}\def \next {\isi@word }\else +\def \sc@char {A-}\def \next {\isi@word #1}% +\fi \sc@put \next } + +\gdef \isi@waw #1{% waw +\ifx #1^^a2\def \next {\isi@waw@P }\else +\def \next {\isi@word #1}\def \sc@char {w}\sc@put +\fi \next } + +\gdef \isi@waw@P #1{% waw PCN hamza ? +\ifx #1^^c2\def \sc@char {Qw}\def \next {\isi@word }\else +\def \sc@char {w-}\def \next {\isi@word #1}% +\fi \sc@put \next } + +\gdef \isi@yah #1{% yah +\ifx #1^^a2\def \next {\isi@yah@P }\else +\def \next {\isi@word #1}\def \sc@char {y}\sc@put +\fi \next } + +\gdef \isi@Yah #1{% Yah +\ifx #1^^a2\def \next {\isi@yah@P }\else +\def \next {\isi@word #1}\def \sc@char {Y}\sc@put +\fi \next } + +\gdef \isi@yah@P #1{% yah PCN hamza ? +\ifx #1^^c2\def \sc@char {QY}\def \next {\isi@word }\else +\def \sc@char {y-}\def \next {\isi@word #1}% +\fi \sc@put \next } + +\gdef \isi@hah #1{% hah +\ifx #1^^a2\def \next {\isi@hah@P }\else +\def \next {\isi@word #1}\def \sc@char {h}\sc@put +\fi \next } + +\gdef \isi@hah@P #1{% hah PCN hamza ? +\ifx #1^^c2\def \sc@char {Qh}\def \next {\isi@word }\else +\def \sc@char {h-}\def \next {\isi@word #1}% +\fi \sc@put \next } + +\gdef \isi@hamza #1{% hamza +\ifx #1^^a2\def \sc@char {QY}\def \next {\isi@word }% +\else \def \sc@char {Q|}\def \next {\isi@word #1}% +\fi \sc@put \next } + +\gdef \isi@minus {% hyphen between words +\def \sc@char {-}\sc@put \isi@beg } + +\gdef \isi@lquote {% left quote +\def \sc@char {`}\sc@put \isi@beg } + +\gdef \isi@rquote {% right quote +\def \sc@char {'}\sc@put \isi@word } + +\gdef \isi@par #1\@ \@@ {% new line, push back the rest +\sc@back \\ #1\@ \@@ } + +\gdef \isi@endscan \@@ {\global\let \a@scan \isi@scan } +}% catcode ^ + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +} % \isiri@catcodes + +\def \set@isiri {% select the ISIRI 3342 scanner +\let \sc@beg \isi@beg \let \sc@word \isi@word +\let \sc@back \sc@@back \let \sc@endscan \isi@endscan +\global\let \a@scan \isi@scan \setisi@codes +\isiri@catcodes \yahdots +\a@message {input encoding set to ISIRI 3342 conventions}} + +\xpa \def \xpa \sc@table \xpa {\sc@table % add the ASMO449 encoding +isiri\set@isiri isiri3342\set@isiri } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@message {scanner for code ISIRI 3342 installed.} + +\catcode `\@ = \isiriatcode +\endinput +%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/Master/texmf-dist/tex/latex/arabtex/iso88596.sty b/Master/texmf-dist/tex/latex/arabtex/iso88596.sty new file mode 100644 index 00000000000..39f15f722d7 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/iso88596.sty @@ -0,0 +1,23 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%% iso88596.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% iso88596.sty +% Scanner for ISO 8859-6 Code +% reuses the MacOS Arabic scanner +% to install it, include it as a LaTeX package or style option "iso88596" +% with Plain TeX, say "\input iso88596.sty" +% to activate it, say "\setcode {iso8859-6}" or "\setcode{iso88596}" +% 07.05.2000 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\chardef \isocatcode = \catcode`\@ \catcode`\@ = 11 +\a@ident {iso88596.sty} {3.10 ISO 8859-6 encoding} {07.05.2000} + +\UsePackage {amac} % reuse MacOS Arabic scanner +\a@message {scanner for ISO 88596-9 code installed.} + +\catcode `\@ = \isocatcode +\endinput +%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/tex/latex/arabtex/manifest.txt b/Master/texmf-dist/tex/latex/arabtex/manifest.txt new file mode 100644 index 00000000000..586b2916558 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/manifest.txt @@ -0,0 +1,90 @@ + + Datentrger, Laufwerk G, hat den Namen ARAB. + Datentrgernummer ist 6698:C015 + Verzeichnis von G:\arabtex.cur\tex\latex\arabtex + +23.10.03 20.41 0 . +23.10.03 20.41 0 .. +22.08.03 10.56 9728 0 abidir.sty +26.04.03 20.16 2304 0 abjad.sty +28.05.03 20.53 16786 0 aboxes.sty + 1.11.98 16.52 928 0 acjk.sty +20.08.03 13.33 11818 0 acmd.sty +27.04.03 19.30 3490 0 aconfig.sty +20.08.03 13.37 7133 0 aedpatch.sty + 1.11.98 17.03 1722 0 afonts.sty + 1.11.98 17.03 2348 0 afonts0.sty + 1.11.98 17.04 1851 0 afonts1.sty +19.10.99 15.19 1964 0 afonts2.sty +12.05.03 14.38 3487 0 afoot.sty + 4.05.03 0.51 5841 0 alatex.sty +27.05.03 20.44 21207 0 aligs.sty + 4.05.03 0.56 6845 0 alists.sty + 4.05.03 0.56 3592 0 altxext.sty +26.04.03 20.09 7246 0 amac.sty + 4.06.00 3.29 6072 0 aoutput.sty +26.05.03 19.07 36270 0 aparse.sty +23.10.03 18.15 18262 0 apatch.sty + 1.11.98 17.03 1165 0 arababel.sty + 9.05.97 14.05 802 0 arabart.cls +21.05.03 17.41 4081 0 arabaux.sty +19.02.02 20.35 794 0 arabbook.cls + 1.11.98 17.00 3041 0 arabchrs.sty +21.08.03 14.40 3557 0 arabext.sty + 4.05.03 0.58 33077 0 arabrep.cls + 4.06.00 16.38 9136 0 arabskel.sty + 1.11.98 18.42 8917 0 arabsymb.sty +22.08.03 11.23 24732 0 arabtex.sty +26.04.03 15.24 4667 0 arabtex.tex +17.07.99 21.23 6772 0 arabtoks.sty + 1.11.98 18.42 3214 0 arabwin.sty +22.08.03 10.54 15805 0 ascan.sty + 4.05.03 0.56 13520 0 asect.sty + 9.05.97 14.07 1222 0 asize10.clo + 9.05.97 14.07 1222 0 asize11.clo + 9.05.97 14.07 1222 0 asize12.clo +26.04.03 20.17 4460 0 asmo449.sty + 4.05.03 0.56 4676 0 atabg.sty +14.06.03 13.25 19349 0 atrans.sty + 5.06.03 13.35 12656 0 awrite.sty + 8.05.00 0.49 7441 0 bhs.sty + 1.12.98 12.56 4631 0 bhslabel.sty +29.07.03 17.49 8522 0 buck.sty +21.11.95 12.47 1984 0 captions.def +26.04.03 20.41 7146 0 cp1256.sty + 4.11.98 14.25 172 0 etrans.sty +10.09.01 2.04 4480 0 gedalin.sty +26.04.03 20.17 5316 0 hebchrs.sty +12.06.00 18.41 1715 0 hebsymb.sty +27.04.03 16.50 2747 0 hebtex.sty + 8.09.03 17.20 4249 0 hebtex.tex + 7.05.00 13.40 7789 0 hecmd.sty + 1.11.98 18.23 1723 0 hefonts.sty + 1.11.98 18.23 1499 0 hefonts0.sty + 1.11.98 18.23 1256 0 hefonts1.sty +27.04.03 19.09 1901 0 hefonts2.sty +27.04.03 13.55 8814 0 heparse.sty + 5.10.01 23.32 1289 0 hepatch.sty + 7.03.02 17.31 8827 0 hescan.sty + 8.05.00 1.00 3494 0 hetrans.sty +14.09.03 12.28 22763 0 hewrite.sty +13.03.02 17.09 6606 0 hmac.sty +26.04.03 20.08 8381 0 isiri.sty + 8.05.00 0.40 919 0 iso88596.sty +24.10.03 13.34 0 0 manifest.txt + 4.11.98 14.25 165 0 nashbf.sty + 1.11.98 18.44 1531 0 raw.sty +16.02.03 19.33 1636 0 sotoku.sty + 1.11.98 18.45 4200 0 twoblks.sty +13.06.00 18.05 3678 0 uheb.fd +23.05.99 12.38 1495 0 Unash.fd +13.06.00 14.44 1351 0 utf8.sty +26.04.03 20.04 11213 0 utfcode.sty +22.04.00 13.14 2113 0 Uxnsh.fd + 1.11.98 18.45 2652 0 verses.sty +14.09.01 15.13 7481 0 witbhs.sty +28.05.03 14.10 7481 0 xarbskel.sty + 1.11.98 16.55 9655 0 xarbsymb.sty +14.06.00 21.07 6446 0 yiddish.sty + 83 Datei(en) 531742 Byte belegt + 97113088 Byte frei diff --git a/Master/texmf-dist/tex/latex/arabtex/nashbf.sty b/Master/texmf-dist/tex/latex/arabtex/nashbf.sty new file mode 100644 index 00000000000..25126d83281 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/nashbf.sty @@ -0,0 +1,9 @@ +% nashbf.sty + +\endinput + +% this module is no more needed. +% its effect is now taken care of by "arabtex.sty"; use \setnashbf +% 04.11.1998 +% Klaus Lagally + diff --git a/Master/texmf-dist/tex/latex/arabtex/raw.sty b/Master/texmf-dist/tex/latex/arabtex/raw.sty new file mode 100644 index 00000000000..01740d91303 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/raw.sty @@ -0,0 +1,42 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%% raw.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% raw.sty +% package for activating most special characters for OCR work +% and switching off most special processing +% the characters " < > cannot presently be handled correctly +% activate special processing by \setraw +% revert to the normal mode by \unsetraw +% 04.03.1996 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \rawatcode \undefined \else \expandafter \endinput +\fi % load only once + +\chardef \rawatcode = \catcode`\@ \catcode`\@ = 11 + +\a@ident {raw.sty} {0.91 special characters} {04.03.1996} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \setraw {% activate special characters +\a@paren = {} \a@digits = {} \a@first = {.'`~,|:} +\catcode `\^ 12 \catcode `\_ 12 +\catcode `\$ 12 \catcode `\# 12 \catcode `\& 12 +\catcode `\% 12 \catcode `\- 11 \catcode `\= 11 } + +\def \unsetraw {% undo changes +\a@digits = {0123456789} \a@paren = {()[]} +\a@first = {.^_-'`~,|"=:} % default, scanner dependent +\catcode `\^ 7 \catcode `\_ 8 +\catcode `\$ 3 \catcode `\# 6 \catcode `\& 4 +\catcode `\% 14 \catcode `\- 12 \catcode `\= 12 } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\catcode `\@ = \rawatcode +\endinput +%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + \ No newline at end of file diff --git a/Master/texmf-dist/tex/latex/arabtex/sotoku.sty b/Master/texmf-dist/tex/latex/arabtex/sotoku.sty new file mode 100644 index 00000000000..c54b51a8533 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/sotoku.sty @@ -0,0 +1,47 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% sotoku.sty +% additional transcription module for ArabTeX +% special transcription +% 16.02.2003 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Additional Transcription Modes: +% transcribe `ayn by the Arabic letter +% activate by: \settrans{sotoku} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\catcode`\@ = 11 +\a@ident{sotoku.sty}{1.00 generate special transliteration }{16.02.2003} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +\catcode `\~=10 +\gdef \tr@sotoku {% define Sotoku transliteration +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\tr@zdmg % standard routine +% transliterate 'ayin' as Arabic letter: +\gdef \tr@P {{\scriptsize\transfalse\arabtrue\showfalse\<`>}\@vocalfalse} +% transliterate 'hamza' as Arabic letter: +\gdef \tr@Q {{\transfalse\arabtrue\showfalse\<-'>}\@vocalfalse} +% comment out if not required! +\a@message {Sotoku~special~transliteration.}}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@extend \tr@table {sotoku\tr@sotoku }% install + +\settrans{sotoku}% activate +% switch to standard version by \settrans{standard} + +\catcode`\@ = \transatcode + +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + diff --git a/Master/texmf-dist/tex/latex/arabtex/twoblks.sty b/Master/texmf-dist/tex/latex/arabtex/twoblks.sty new file mode 100644 index 00000000000..f9bcabc63c0 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/twoblks.sty @@ -0,0 +1,105 @@ +% twoblocks.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% defines the command \twoblocks {#1}{#2} +% to position two text blocks side by side +% separated by \colsep horizontal space +% 17.11.1993 +% 06.06.1994 % do not read the arguments prematurely: catcodes ! +% no warranty whatever +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \twblatcode \undefined \else \expandafter \endinput +\fi % load only once + +\chardef \twblatcode = \catcode`\@ \catcode`\@ = 11 + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newbox \boxa \newbox \boxb \newbox \boxc \newbox \boxd +\newdimen \htmin \newdimen \hta \newdimen \htb +\newdimen \pagerest \newdimen \splitheight \newdimen \totalheight +\newdimen \colwidth \newdimen \colsep + +\colsep 0.4in % adjust to your preference + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \unpackbox #1{% unwrap minipage to get a \vbox only + \setbox0 \vbox {\unvbox #1\global \setbox1 \lastbox } % get line + \setbox0 \hbox {\unhbox1 \unskip \unskip \unpenalty % get inner box + \global \setbox #1 \lastbox }} % and forget the rest + +\def \a@minipagerestore {% modify tabbing and list spacing + \vskip 0pt plus 12pt \emergencystretch 3cm \hbadness 5000 } + +\def \depositboxes {% fill page, recursive + \nointerlineskip \null \allowbreak % update page builder parameters + \pagerest \pagegoal \advance \pagerest -\pagetotal + \advance \pagerest -\maxdepth + \advance \pagerest -\baselineskip % just to make sure + \getheights % max total height of \boxa and \boxb +\ifdim \totalheight > \pagerest % no more space, split? + \splitheight \totalheight + \advance \splitheight -2\baselineskip % try to avoid widows + \ifdim \splitheight > \pagerest \splitheight \pagerest + \fi + \htmin 2\baselineskip + \ifdim \splitheight > \htmin % try to avoid clubs + \splitboxes \splitheight % to \boxc and \boxd, and output + \else \vfill \eject % new page + \fi + \depositboxes % try again +\else \combineboxes % output \boxa and \boxb +\fi } + +\def \adjustbox #1{% set depth to total height, height zero, full width + \ifvoid#1 \setbox#1 \null \fi \wd#1 \colwidth + \dimen0 \ht#1 \advance \dimen0 \dp#1 \ht#1 \z@ \dp#1 \dimen0 } + +\def \getheights {% \ht plus \dp of boxes \boxa and \boxb + \hta \ht \boxa \advance \hta \dp \boxa + \htb \ht \boxb \advance \htb \dp \boxb + \ifdim \htb > \hta \totalheight \htb \else \totalheight \hta \fi } + +\def \splitboxes #1{% split off #1 from \boxa and \boxb + \splitmaxdepth \z@ \splittopskip \topskip + \ifdim #1 > \hta \setbox \boxc \box \boxa + \else \setbox \boxc \vsplit \boxa to #1 \fi + \ifdim #1 > \htb \setbox \boxd \box \boxb + \else \setbox \boxd \vsplit \boxb to #1 \fi + \outputboxes \boxc \boxd \vfill \eject } + +\def \outputboxes #1#2{% hanging from top of \hbox + \adjustbox #1 \adjustbox #2 % height zero, all depth + \nointerlineskip + \hbox to \textwidth {\noindent \box #1\hfill \box #2}\allowbreak } + +\def \combineboxes {% output \boxa and \boxb + \outputboxes \boxa \boxb } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \twoblocks {% two aligned paragraphs + \bgroup \colwidth \textwidth \advance \colwidth -\colsep + \divide \colwidth 2 \let \@minipagerestore \a@minipagerestore + \setbox \boxa \vbox \bgroup \minipage[t]\colwidth + \bgroup \aftergroup \tw@blocks \ignorespaces \let \next } + +\def \tw@blocks {% after first block + \endminipage \egroup \unpackbox \boxa % unwrap minipage + \setbox \boxb \vbox \bgroup \minipage[t]\colwidth + \bgroup \aftergroup \tw@bl@cks \ignorespaces \let \next } + +\def \tw@bl@cks {% after second block + \endminipage \egroup \unpackbox \boxb % unwrap minipage + \depositboxes \egroup } % split if necessary + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\catcode `\@ = \twblatcode + +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ No newline at end of file diff --git a/Master/texmf-dist/tex/latex/arabtex/uheb.fd b/Master/texmf-dist/tex/latex/arabtex/uheb.fd new file mode 100644 index 00000000000..59f70597ec1 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/uheb.fd @@ -0,0 +1,122 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Uheb.fd +% ArabTeX +% Hebrew font descriptions for LaTeX2e +% 13.06.2000 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Bernd Raichle and Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% This file contains the font description of the Hebrew fonts +% fontencoding: U +% fontfamily: heb +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% make sure, that it is used with NFSS2 only +% +\ifx\DeclareFontShape\undefined + \message{Something is wrong -- % + this file can only be used with NFSS2!!!} +\expandafter\endinput\fi + +\ProvidesFile{uheb.fd }[ 2000/06/13 v3.10 ArabTeX Hebrew font definitions] + +\DeclareFontFamily{U}{heb}{}% + +\DeclareFontShape{U}{heb}{m}{n}{% + <-8> fixed * [102.4] hclassic + <8-10> s * [12.8] hclassic + <10><10.95><12><14.4><17.28><20.74><24.88> s * [12.8] hclassic +}% +{\fontdimen5\font =.8\fontdimen2\font % ex + \fontdimen6\font = 3\fontdimen5\font } % em + +\DeclareFontShape{U}{heb}{bx}{n}{% + <-8> fixed * [102.4] hcaption + <8-10> s * [12.8] hcaption + <10><10.95><12><14.4><17.28><20.74><24.88> s * [12.8] hcaption +}% +{\fontdimen5\font =.8\fontdimen2\font % ex + \fontdimen6\font = 3\fontdimen5\font % em + \fontdimen1\font =.2pt } % slant + +\DeclareFontShape{U}{heb}{m}{Jm}{% + <-10> fixed * Jerusalem + <10><10.95><12><14.4><17.28><20.74><24.88> s * Jerusalem +}{} + +\DeclareFontShape{U}{heb}{m}{jm}{% + <-10> fixed * jerusale + <10><10.95><12><14.4><17.28><20.74><24.88> s * jerusale +}{} + +\DeclareFontShape{U}{heb}{m}{ds}{% + <-10> fixed * deadsea + <10><10.95><12><14.4><17.28><20.74><24.88> s * deadsea +}{} + +\DeclareFontShape{U}{heb}{m}{ta}{% + <-10> fixed * telaviv + <10><10.95><12><14.4><17.28><20.74><24.88> s * telaviv +}{} + +\DeclareFontShape{U}{heb}{m}{oj}{% + <-10> fixed * oldjaffa + <10><10.95><12><14.4><17.28><20.74><24.88> s * oldjaffa +}{} + +\DeclareFontShape{U}{heb}{m}{so}{% + <-10> fixed * shlm_old + <10><10.95><12><14.4><17.28><20.74><24.88> s * shlm_old +}% +{\fontdimen5\font =\fontdimen2\font } % ex + +\DeclareFontShape{U}{heb}{m}{sr}{% + <-10> fixed * shlm_scr + <10><10.95><12><14.4><17.28><20.74><24.88> s * shlm_scr +}% +{\fontdimen5\font =\fontdimen2\font } % ex + +\DeclareFontShape{U}{heb}{m}{sk}{% + <-10> fixed * shlm_stk + <10><10.95><12><14.4><17.28><20.74><24.88> s * shlm_stk +}% +{\fontdimen5\font =\fontdimen2\font } % ex + +\DeclareFontShape{U}{heb}{m}{fr}{% + <-10> fixed * fr + <10><10.95><12><14.4><17.28><20.74><24.88> s * fr +}{} + +\DeclareFontShape{U}{heb}{bx}{fr}{% +% <-10> fixed * [12.8] frbx + <-10> fixed * frbx +% <10><10.95><12><14.4><17.28><20.74><24.88> s * [12.8] frbx + <10><10.95><12><14.4><17.28><20.74><24.88> s * frbx +}{} + +\DeclareFontShape{U}{heb}{sl}{fr}{% +% <-10> fixed * [12.8] frsl + <-10> fixed * frsl +% <10><10.95><12><14.4><17.28><20.74><24.88> s * [12.8] frsl + <10><10.95><12><14.4><17.28><20.74><24.88> s * frsl +}% +{\fontdimen1\font =.2pt } % slant + +\DeclareFontShape{U}{heb}{m}{crml}{% + <-10> fixed * crml10 + <10><10.95><12><14.4><17.28><20.74><24.88> s * crml10 +}% +{\fontdimen5\font =\fontdimen2\font } % ex + +\DeclareFontShape{U}{heb}{sl}{crml}{% + <-10> fixed * crmlsl10 + <10><10.95><12><14.4><17.28><20.74><24.88> s * crmlsl10 +}% +{\fontdimen5\font =\fontdimen2\font } % ex + +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/tex/latex/arabtex/utf8.sty b/Master/texmf-dist/tex/latex/arabtex/utf8.sty new file mode 100644 index 00000000000..604cda0bbfa --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/utf8.sty @@ -0,0 +1,42 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%% utf8.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% utf8.sty +% Scanner for UTF-8 Code +% to install it, include it as a LaTeX package or style option "utf8" +% with Plain TeX, say "\input utf8.sty" +% to activate it, say "\setcode {utf8}" +% 13.06.2000 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \utfatcode \undefined \else \expandafter \endinput +\fi % load only once + +\chardef \utfatcode = \catcode`\@ \catcode`\@ = 11 + +\UsePackage {utfcode} + +\a@ident {utf8.sty} {3.10 UTF-8 input encoding } {13.06.2000} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\gdef \set@utfc {% select the UTF-8 scanner +\global\let \a@scan \utfc@scan +\global\def \sc@beg {\utf@beg }% +\global\def \sc@word {\utf@word }% +\global\a@digits = {0123456789}% +\global\a@first = {}% +\catcode ` 11 +\a@message {input encoding set to UTF-8 conventions}} + +\xpa \def \xpa \sc@table \xpa {\sc@table % add the UTF-8 encoding +utf-8\set@utfc utf8\set@utfc } + +\a@message {scanner for code UTF-8 installed.} + +\catcode `\@ = \utfatcode +\endinput +%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/Master/texmf-dist/tex/latex/arabtex/utfcode.sty b/Master/texmf-dist/tex/latex/arabtex/utfcode.sty new file mode 100644 index 00000000000..6221f039818 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/utfcode.sty @@ -0,0 +1,279 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%% utfcode.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% utfcode.sty +% scanner module for the Arabic and Hebrew segments of UTF-8 +% loaded and called by utf8.sty +% 07.03.2002 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\catcode`\@ = 11 + +\a@ident {utfcode.sty} {3.10a Arabic+Hebrew segment of UTF-8} {07.03.2002} + +\newcount \u@lb \newcount \u@lq + +\newif \ifa@quote + +\def \utfc@scan #1>{% modified scanner call: token sequence -> \a@tokens +\iftest@scan \tracingmacros = 1 \fi +\global\def \a@rest {}\global\a@tokens = {}\def \sc@char {}% +\utf@beg #1\@ \@ \@ \@@ % transform +\iftest@scan \tracingmacros = 0 \xpa \a@verb \xpa (\the\a@tokens )>\fi } + +\def \utf@beg #1#2{% start UTF-8 scanner +\h@mzafalse \iz@fetfalse \novocalize % because of explicit quoting + \@ssimfalse + \def \next {\utf@word #1#2}% +\ifnum `#1="D8 \ifnum `#2="27 \def \next {\utf@alif }\fi \else +%\ifx #1"\def \next {\utf@lquote #2}\else +\ifx #1/\global \a@tokens ={#1}\def \next {\utf@word #2}\else % x> +%\fi +\fi\fi \next } + +{\catcode `\^ 7 \catcode `\^^M=13 +\gdef \utf@word #1#2{% transform input into internal notation +\ifx #1\@ \def \next {\utf@end #2}\else % finished +\ifx #1-\def \next {\utf@minus #2}\else % +%ifx #1"\def \next {\utf@rquote #2}\else % +\ifx #1/\def \next {\sc@back #1#2}\else % +%\if \nxp ^^M\nxp #1\def \next {\utf@par #2}\else % active character +\ifnum `#1="D6 \def \next {\utf@dvi #2}\else % +\ifnum `#1="D7 \def \next {\utf@dvii #2}\else % +\ifnum `#1="D8 \def \next {\utf@dviii #2}\else % +\ifnum `#1="D9 \def \next {\utf@dix #2}\else % +\ifnum `#1="DA \def \next {\utf@da #2}\else % +\ifnum `#1="DB \def \next {\utf@db #2}\else % + \def \next {\utf@asci #1#2}% +\fi\fi\fi\fi\fi\fi % +%\fi\fi +\fi\fi\fi \next }% +% +\gdef \utf@word #1{% transform input into internal notation +\ifx #1\@ \def \next {\utf@end }\else % finished +\ifx #1-\def \next {\utf@minus }\else % +\ifx #1/\def \next {\sc@back #1}\else % +\ifnum `#1="D6 \def \next {\utf@dvi }\else % +\ifnum `#1="D7 \def \next {\utf@dvii }\else % +\ifnum `#1="D8 \def \next {\utf@dviii }\else % +\ifnum `#1="D9 \def \next {\utf@dix }\else % +\ifnum `#1="DA \def \next {\utf@da }\else % +\ifnum `#1="DB \def \next {\utf@db }\else % + \def \next {\utf@asci #1}% +\fi\fi\fi\fi\fi\fi % +\fi\fi\fi \next }% +} % catcode 13 + +\def \utf@end #1\@@ {\relax } + +\def \utf@next {% save and deposit character +\sc@put \utf@word } + +\def \utf@asci #1{% deposit ASCII item +\def \sc@char {#1}\utf@next } + +{\catcode `\% 12 \gdef \a@pc {%}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \utf@dvi #1{% segment D6 + \u@lb `#1\relax \advance \u@lb -128 + \u@lq \u@lb \divide \u@lq 8 + \edef \sc@char {}% +\ifcase \u@lq \or \or \or \or \or +\or \advance \u@lb -48 \edef \sc@char + {\ifcase \u@lb + "\n@xp\a@e\or "\n@xp\a@I\or "\n@xp\a@A\or "\n@xp\a@O\or + "i\or "\n@xp\a@E\or "e\or "a\or + \fi }% +\or \advance \u@lb -56 \edef \sc@char + {\ifcase \u@lb + "A\or "\n@xp\a@o\or L\or "u\or + "\n@xp\a@Zu\or |\or B\or "\n@xp\a@Zo\or + \fi }% +\fi \utf@next } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \utf@dvii #1{% segment D7 + \u@lb `#1\relax \advance \u@lb -128 + \u@lq \u@lb \divide \u@lq 8 +\ifcase \u@lq \edef \sc@char + {\ifcase \u@lb + K\or "\n@xp\a@Ze\or "\n@xp\a@Za\or :\or "\n@xp\a@Zi\or \or \or \or + \fi }% +\or \advance \u@lb -8 \edef \sc@char {}% +\or \advance \u@lb -16 \edef \sc@char + {\ifcase \u@lb + Q\or b\or g\or d\or h\or w\or z\or X\or + \fi }% +\or \advance \u@lb -24 \edef \sc@char + {\ifcase \u@lb + C\or y\or k\or k\or l\or m\or m\or n\or + \fi }% +\or \advance \u@lb -32 \edef \sc@char + {\ifcase \u@lb + n\or s\or P\or p\or p\or S\or S\or q\or + \fi }% +\or \advance \u@lb -40 \edef \sc@char + {\ifcase \u@lb + r\or \n@xp\a@S \or t\or \or \or \or \or \or + \fi }% +\or \advance \u@lb -48 \edef \sc@char + {\ifcase \u@lb + w\n@xp\a@U w\or wy\or y\n@xp\a@U y\or '\or + ''\or \or \or \or + \fi }% +\or \advance \u@lb -56 \edef \sc@char + {\ifcase \u@lb + \or \or \or \or \or \or \or "|\or + \fi }% +\fi \utf@next } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \utf@dviii #1{% segment D8 + \u@lb `#1\relax \advance \u@lb -"80 + \u@lq \u@lb \divide \u@lq 8 +\ifcase \u@lq \edef \sc@char {}% +\or \advance \u@lb -8 \edef \sc@char {\ifcase \u@lb + \or \or \or \or ,\or \or \or \or \fi }% +\or \advance \u@lb -"10 \edef \sc@char {}% +\or \advance \u@lb -"18 \edef \sc@char {\ifcase \u@lb + \or \or \or ;\or \or \or \or ?\or \fi }% +\or \advance \u@lb -"20 \edef \sc@char {\ifcase \u@lb + \or Q|\or QA\or Qa\or Qw\or Qi\or Qy\or A\or \fi }% +\or \advance \u@lb -"28 \edef \sc@char {\ifcase \u@lb + b\or T\or t\or C\or G\or H\or X\or d\or \fi }% +\or \advance \u@lb -"30 \edef \sc@char {\ifcase \u@lb + F\or r\or z\or s\or x\or S\or D\or V\or \fi }% +\or \advance \u@lb -"38 \edef \sc@char {\ifcase \u@lb + Z\or P\or R\or \or \or \or \or \or \fi }% +\fi \utf@next } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \utf@dix #1{% segment D9 + \u@lb `#1\relax \advance \u@lb -"80 + \u@lq \u@lb \divide \u@lq 8 +\ifcase \u@lq \edef \sc@char {\ifcase \u@lb + B\or f\or q\or k\or l\or m\or n\or h\or \fi }% +\or \advance \u@lb -8 \edef \sc@char {\ifcase \u@lb + w\or Y\or y\or "aN\or "uN\or "iN\or "a\or "u\or \fi }% +\or \advance \u@lb -"10 \edef \sc@char {\ifcase \u@lb + "i\or "\n@xp\a@Ze\or ""\or "\n@xp\a@ZE\or + "\n@xp\a@Za\or "\n@xp\a@Zu\or \or \or \fi }% +\or \advance \u@lb -"18 \edef \sc@char {}% +\or \advance \u@lb -"20 \edef \sc@char {\ifcase \u@lb + 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or \fi }% +\or \advance \u@lb -"28 \edef \sc@char {\ifcase \u@lb + 8\or 9\or \a@pc\or \f@sila\or + \f@sila\or *\or \or \or \fi }% +\or \advance \u@lb -"30 \edef \sc@char {\ifcase \u@lb + "\n@xp\a@a\or "\or "\n@xp\a@ZA\or "\n@xp\a@ZU\or +% N"\n@xp\a@Za\or Qa\or Qw\or Qw"u\or \fi }% +N"\n@xp\a@Za\or N"\n@xp\a@Za A\or N"\n@xp\a@Za w\or N"\n@xp\a@Za w"u\or \fi }% +\or \advance \u@lb -"38 \edef \sc@char {\ifcase \u@lb +% Qy\or \n@xp\a@t\or \n@xp\a@T\or \n@xp\a@ab\or + N"\n@xp\a@Za Y\or \n@xp\a@t\or \n@xp\a@T\or \n@xp\a@ab\or + \n@xp\a@v\or \n@xp\a@at\or p\or \n@xp\a@ac\or \fi }% +\fi \utf@next } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \utf@da #1{% segment DA + \u@lb `#1\relax \advance \u@lb -"80 + \u@lq \u@lb \divide \u@lq 8 +\ifcase \u@lq \edef \sc@char {\ifcase \u@lb + \n@xp\a@ap\or c\or \n@xp\a@G\or \n@xp\a@ag\or + \n@xp\a@ah\or \n@xp\a@c\or J\or \n@xp\a@aj\or \fi }% +\or \advance \u@lb -8 \edef \sc@char {\ifcase \u@lb + \n@xp\a@d\or \n@xp\a@aA\or \n@xp\a@D\or \n@xp\a@aB\or + \n@xp\a@ad\or \n@xp\a@af\or \n@xp\a@aC\or \n@xp\a@ae\or \fi }% +\or \advance \u@lb -"10 \edef \sc@char {\ifcase \u@lb + \n@xp\a@aD\or \n@xp\a@r\or \n@xp\a@aF\or \n@xp\a@q\or + \n@xp\a@aG\or \n@xp\a@R\or \n@xp\a@z\or \n@xp\a@aH\or \fi }% +\or \advance \u@lb -"18 \edef \sc@char {\ifcase \u@lb + j\or \n@xp\a@ar\or \n@xp\a@s\or \n@xp\a@aJ\or + \n@xp\a@aK\or \n@xp\a@aL\or \n@xp\a@aM\or \n@xp\a@aO\or \fi }% +\or \advance \u@lb -"20 \edef \sc@char {\ifcase \u@lb + \n@xp\a@p\or \n@xp\a@f\or \n@xp\a@F\or \n@xp\a@aP\or + v\or \n@xp\a@V\or \n@xp\a@aq\or \n@xp\a@aQ\or \fi }% +\or \advance \u@lb -"28 \edef \sc@char {\ifcase \u@lb + \n@xp\a@aR\or \n@xp\a@k\or \n@xp\a@ax\or \n@xp\a@g\or + \n@xp\a@L\or K\or \n@xp\a@aS\or g\or \fi }% +\or \advance \u@lb -"30 \edef \sc@char {\ifcase \u@lb + \n@xp\a@J\or \n@xp\a@al\or \n@xp\a@aT\or \n@xp\a@ak\or + \n@xp\a@M\or \n@xp\a@l\or \n@xp\a@aW\or \n@xp\a@aX\or \fi }% +\or \advance \u@lb -"38 \edef \sc@char {\ifcase \u@lb + \n@xp\a@aY\or \n@xp\a@aZ\or \n@xp\a@n\or \n@xp\a@an\or + \n@xp\a@m\or \n@xp\a@am\or h-\or \n@xp\a@aE\or \fi }% +\fi \utf@next } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \utf@db #1{% segment DB + \u@lb `#1\relax \advance \u@lb -"80 + \u@lq \u@lb \divide \u@lq 8 +\ifcase \u@lq \edef \sc@char {\ifcase \u@lb + Qh\or \n@xp\a@h\or \n@xp\a@B\or \n@xp\a@j\or + \n@xp\a@aU\or \n@xp\a@aV\or \n@xp\a@W\or \n@xp\a@w\or \fi }% +\or \advance \u@lb -8 \edef \sc@char {\ifcase \u@lb + \n@xp\a@aw\or \n@xp\a@au\or \n@xp\a@av\or \n@xp\a@X\or + Y\or L\or \n@xp\a@az\or \n@xp\a@x\or \fi }% +\or \advance \u@lb -"10 \edef \sc@char {\ifcase \u@lb + \n@xp\a@Y\or \n@xp\a@y\or E\or \n@xp\a@ay\or + B\or \n@xp\a@H\or \or \or \fi }% +\or \advance \u@lb -"18 \edef \sc@char {}% +\or \advance \u@lb -"20 \edef \sc@char {}% +\or \advance \u@lb -"28 \edef \sc@char {}% +\or \advance \u@lb -"30 \edef \sc@char {\ifcase \u@lb + 0\or 1\or 2\or 3\or + 4\or 5\or 6\or 7\or \fi }% +\or \advance \u@lb -"38 \edef \sc@char {\ifcase \u@lb + 8\or 9\or \n@xp\a@aI\or \n@xp\a@aN\or + \n@xp\a@P\or \n@xp\a@ai"\n@xp\a@Zi\or + \n@xp\a@ao"\n@xp\a@Zi\or \or \fi }% +\fi \utf@next } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \utf@alif {% alif at the beginning of a word +\def \sc@char {a}\sc@put \utf@word } + +\def \utf@minus {% hyphen between words +\def \sc@char {-}\sc@put \utf@beg } +%\def \sc@char {B}\sc@put \utf@beg } + +\def \utf@lquote {% left quote +\ifa@quote \def \sc@char {'}\global\a@quotefalse +\else \def \sc@char {`}\global\a@quotetrue +\fi \sc@put \utf@beg } + +\def \utf@rquote {% right quote +\global\a@quotefalse \def \sc@char {'}\sc@put \utf@word } + +\def \utf@par #1\@ \@@ {% new line, push back the rest +\sc@back \\#1\@ \@@ } + +\def \utf@b@cs #1#2{% test word end +\def \sc@char {#1}\sc@put +%\ifx #2\@ \def \next {\sc@endscan #2}\else +\ifx #2\@ \def \next {\utf@end #2}\else +\ifcat -\nxp #2 \def \next {\utf@word #2}\else +\def \next {\sc@back #2}\fi \fi \next } + +\def \utf@cs #1#2{% control sequence within a word; push back? +\xpa \ifx #1\closegeresh \def \next {\utf@b@cs {\nxp \lq }#2}\else +\xpa \ifx #1\closequote \def \next {\utf@b@cs {`}#2}\else + \def \next {\sc@back #1#2}% +\fi\fi \next } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\catcode `\@ = \utfatcode + +\endinput +%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/tex/latex/arabtex/verses.sty b/Master/texmf-dist/tex/latex/arabtex/verses.sty new file mode 100644 index 00000000000..629257bce6f --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/verses.sty @@ -0,0 +1,76 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%% verses.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% verses.sty +% utility for ArabTeX +% macros for typesetting Arabic verses in two columns +% usage: load as a package or after loading ArabTeX +% provides: +% \def \setversedim #1#2{% set length of half-verse, separation +% \def \halfverses #1#2{% first half-verse, second half-verse +% \def \connverses #1#2#3{% first half-verse, connection, second half-verse +% use within an Arabic environment +% 28.03.1998 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \verseatcode \undefined \else \expandafter \endinput +\fi % load only once + +\chardef \verseatcode = \catcode`\@ \catcode`\@ = 11 + +\a@ident {verses.sty} {3.00 verses in two columns} {28.03.1998} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newdimen \a@hvlen +\newdimen \a@hvsep +\newdimen \a@hvind + +% define some verse dimensions, verses will be centered +\def \setversedim #1#2{% set length of half-verse, separation +\a@hvlen #1\relax \a@hvsep #2\relax +\a@hvind \hsize \advance \a@hvind -\a@hvsep +\divide \a@hvind 2 \advance \a@hvind -\a@hvlen } + +% macro for a verse with a connection +\def \connverses #1#2#3{% first half-verse, connection, second half-verse +\noindent \hspace \a@hvind +\spreadbox \a@hvlen {#1}% first block +\spreadbox \a@hvsep {#2}% separator +\spreadbox \a@hvlen {#3}% second block +\par } + +% macro for two half verses +\def \halfverses #1#2{% normal case +\connverses {#1}{\hfill}{#2}} + +% make macros known to ArabTeX +\allowarab \halfverses +\allowarab \connverses +\all@wtw@ \setversedim +\all@w@ne \setspace + +% define formatting of poetry, defaults +% do this within a group! + +%\setversedim {2.0in}{0.3in} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% the following are patches for ArabTeX 3.06, otherwise harmless + +\def \a@spreadbox #1{% {width}{text} get the text +\ifarab \putwordb@x {\spreadtrue \setspace {.3em plus .3fil}% +\a@sequence {#1}\setbox0 \lastbox \hbox to \a@bwidth {\unhbox0 }}% +\fi \a@spacefalse \a@showinput {#1}\test@token } + +\def \a@fntext {% common part for footnote text +\footnotesize \hsize \columnwidth \@parboxrestore \clubpenalty 5000 +\@makefntext {\rule {\z@ }{\footnotesep }}\futurelet \next \fo@t } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\catcode `\@ = \verseatcode +\endinput +%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/Master/texmf-dist/tex/latex/arabtex/witbhs.sty b/Master/texmf-dist/tex/latex/arabtex/witbhs.sty new file mode 100644 index 00000000000..9807b255658 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/witbhs.sty @@ -0,0 +1,209 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%% witbhs.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% witbhs.sty +% Scanner for a variant of the encoding used in the machine-readable +% Biblia Hebraica Stuttgartensia +% to install it, include it as a LaTeX package or style option "witbhs" +% with Plain TeX, say "\input witbhs.sty" +% to activate it, say "\setcode {witbhs} +% 14.09.2001 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% about the encoding contact: arian@th.vu.nl +% Dr Arian J.C.Verheij +% NWO / VU, Dpt. Biblical Studies & CS +% De Boelelaan 1105, kr. 14A-38 +% NL 1081 HV Amsterdam +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \bhsatcode \undefined \else \expandafter \endinput +\fi % load only once + +\chardef \bhsatcode = \catcode`\@ \catcode`\@ = 11 + +\a@ident {witbhs.sty} {3.10 read WITBHS Hebrew encoding} {14.09.2001} + +\UsePackage {bhslabel} % process BHS labels + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% dynamic definitions for WITBHS Hebrew coding +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +\catcode `\"=12 \catcode `\>=11 \catcode `\&=12 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\gdef \setwitbhs@codes {% activate and change some codes +\globaldefs=1 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def \sc@A {a} \def \sc@B {b} \def \sc@C {x} \def \sc@D {d} +\def \sc@E {e} \def\sc@F{\n@xp\a@s} \def\sc@G{g} \def \sc@H {h} +\def \sc@I {i} \def \sc@J {y} \def \sc@K {k} \def \sc@L {l} +\def \sc@M {m} \def \sc@N {n} \def\sc@O{\n@xp\a@o}\def \sc@P {p} +\def \sc@Q {q} \def \sc@R {r} \def \sc@S {s} \def \sc@T {t} +\def \sc@U {u} \def \sc@V {C} \def \sc@W {w} \def \sc@X {X} +\def \sc@Y {S} \def \sc@Z {z} \def \sc@@ {A} +\a@digits = {0123456789} \a@paren = {[]} +\a@first = {>+<##&$":.,*0123456789} +\globaldefs=0 } +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +}% end of dynamic definitions for WITBHS +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +{\arab@codes \catcode `\> 11 + +\gdef \witbhs@beg #1#2{% start WITBHS scanner +\@ssimfalse \def \next {\witbhs@word #1#2}% +\ifx #1\@\def \next {\sc@endscan #2}\else % finished +\ifx #2\@\def \next {\witbhs@testpara #1#2}\else +\ifx #2?\def \next {\witbhs@testpara #1#2}\else +\fi\fi\fi \next } + +\gdef \witbhs@word #1#2{% transform input into internal notation +\case #1\of +{ \@{\sc@endscan #2} + ]{\witbhs@word } + /{\witbhs@word #2} + 0{\witbhs@zero #2} + 7{\witbhs@seven #2} + 12345689{\witbhs@word } + ?{\witbhs@query #2} + :{\witbhs@colon #2} +% O{\witbhs@O #2} + W{\witbhs@W #2} + *{\witbhs@star #2} +% #2{\witbhs@word #1|#2} +\default {\witbhs@rest #1#2} +}\endcase } + +\gdef \witbhs@rest #1#2{% transform input into internal notation + \def \next {\sc@put \witbhs@word #2}% +\case #1\of +{ .{\def \sc@char {\nxp \a@Zu }} + |{\def \sc@char {\nxp \a@U }} + '{\def \sc@char {'}} + >{\def \sc@char {Q}} + +{\def \sc@char {N}} % phantom carrier + ${\def \sc@char {M}} % phantom carrier + ={\def \sc@char {-}} % medial form at end + <{\def \sc@char {P}} + &{\def \sc@char {\nxp \a@s }} + ;{\def \sc@char {\nxp \a@E }} + -{\def \sc@char {B}} +\default {\ifcat \nxp #1\relax \def \next {\sc@back #1{#2}}\else + \if \nxp #1\a@hash \def \sc@char {\nxp \a@S }\else + \ifcat \nxp #1a\edef \sc@char {\csname sc@#1\endcsname }% + \fi\fi\fi } +}\endcase \next } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\gdef \witbhs@star {% qere / qetiv +\def \sc@char {*}\sc@put \witbhs@word } + +\gdef \witbhs@colon #1{% shwa or chatef +\def \next {\witbhs@word }% +\ifx #1A\def \sc@char {\nxp \a@A }\else +\ifx #1@\def \sc@char {\nxp \a@O }\else +\ifx #1E\def \sc@char {\nxp \a@I }\else +\def \sc@char {\nxp \a@e }\def \next {\witbhs@word #1}% +\fi\fi\fi \sc@put \next } + +\iffalse +\gdef \witbhs@O {% cholem or cholem waw +\def \sc@char {\nxp \a@o }\sc@put \witbhs@word } +\fi + +\gdef \witbhs@W #1{% waw or shureq +\def \sc@char {w}\def \next {\witbhs@word #1}% +\ifx #1.\def \sc@char {U}\def \next {\witbhs@word }% +\fi \sc@put \next } + +\gdef \witbhs@seven #1{% meteg +\def \next {\witbhs@word }% +\ifx #15\def \sc@char {|}\sc@put \else +\if\is@in@set #1\a@digits \else \def \next {\witbhs@word #1}% +\fi\fi \next } + +\gdef \witbhs@zero #1{% sop pasuq and pasuq +\def \next {\witbhs@word }% +\ifx #10\def \sc@char {:}\sc@put \else +%\ifx #15\def \sc@char {K}\sc@put \else +\ifx #15\def \next {\witbhs@pasuq }\else +\if\is@in@set #1\a@digits \else \def \next {\witbhs@word #1}% +\fi\fi\fi \next } + +}% \arab@codes + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \witbhs@testpara #1#2{% single initial P ? +\ifx #1P\def \next {\witbhs@para #1#2}% +\else \def \next {\witbhs@word #1#2}% +\fi \next } + +\def \a@c@witbhspara {% small paragraph mark +\putwordb@x {\small \heb@font \heb@testfont +\act@cd '164 \advance \act@cd \heb@dsp +\space \char \act@cd \space }\test@token } + +\def \a@c@pasuq {% verse division +\putwordb@x {\small $\!|\!$}\test@token } + +\def \witbhs@para P#1\@ \@@ {% prepare paragraph mark +\sc@back \witbhspara #1\@ \@@ } + +\def \witbhs@pasuq #1\@ \@@ {% prepare verse division +\sc@back \pasuq #1\@ \@@ } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \witbhs@query #1\@ \@@ {% new line, push back the rest +\ifnum \bhsmode = 1 \sc@back \\#1\@ \@@ \else % finish line +\ifnum \bhsmode = 2 \sc@back \|#1\@ \@@ \else % stretch line + \sc@back #1\@ \@@ % start next word +\fi\fi } + +\newcount \bhsmode \bhsmode 0 + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \set@witbhs {% substitute the BHS scanner +\let \sc@beg \witbhs@beg \let \sc@word \witbhs@word +\let \sc@back \sc@@back \let \sc@endscan \sc@@endscan +\let \a@scan \a@@scan \setwitbhs@codes +\let \arab@codes \wit@arab@codes +\let \unarab@codes \wit@unarab@codes +\a@message {input encoding set to WITBHS conventions}} + +\xpa \def \xpa \sc@table \xpa {\sc@table % add the BHS encoding +witbhs\set@witbhs } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \wit@arab@codes {% save and set special characters +\csname originalTeX\endcsname +\chardef \spc@de = \catcode`\ \catcode`\ = 10 +\chardef \dqc@de = \catcode`\" \catcode`\" = \@other +\chardef \lsc@de = \catcode`\< \catcode`\< = \@other +\chardef \gtc@de = \catcode`\> \catcode`\> = 11 +\chardef \atc@de = \catcode`\@ \catcode`\@ = 11 +\chardef \hsc@de = \catcode`\# \catcode`\# = \@other +\chardef \amc@de = \catcode`\& \catcode`\& = \@other +\arab@charsubdefmax \charsubdefmax \charsubdefmax \m@ne } + +\def \wit@unarab@codes {% reset catcodes +\catcode`\ = \spc@de \catcode`\< = \lsc@de \catcode`\" = \dqc@de +\catcode`\# = \hsc@de \catcode`\> = \gtc@de \catcode`\@ = \atc@de +\catcode`\& = \amc@de +\charsubdefmax \arab@charsubdefmax } + +{\catcode`\# = \@other \gdef \a@hash {#}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@message {scanner for WITBHS encoding installed.} + +\catcode `\@ = \bhsatcode +\endinput +%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/Master/texmf-dist/tex/latex/arabtex/xarbskel.sty b/Master/texmf-dist/tex/latex/arabtex/xarbskel.sty new file mode 100644 index 00000000000..26a7ca535a7 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/xarbskel.sty @@ -0,0 +1,126 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% xarbskel.sty +% ArabTeX +% character skeleton definitions for font xnsh14 +% called in HMODE +% extends arabskel.sty +% Version 17.07.1999 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\chardef \sklatcode = \catcode`\@ \catcode`\@ = 11 +\a@ident {xarbskel.sty}{3.09 character skeleton definitions }{17.07.1999} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% dynamic definitions for Arabic +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +\gdef \setx@skels {% define \ArabTeX character skeletons for font xnsh +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% pattern: class, code, connect, {iso, fin, med, ini} +\gdef \sk@@ {10 ,\a@block ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % illegal +\gdef \sk@def {10 ,\a@block ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % default + +% basic letters +\gdef \sk@a {10 ,\a@alif ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % alif +\gdef \sk@ain { 4 ,\a@ain ,1 ,{{4,0}{4,1}{0,0}{0,0}}} % `ain +\gdef \sk@b { 1 ,\a@bah ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % bah, no dot +\gdef \sk@b@p { 9 ,\a@bah@p ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % bah, loop +\gdef \sk@d {10 ,\a@dal ,0 ,{{0,0}{0,0}{0,2}{0,0}}} % dal +\gdef \sk@d@p {10 ,\a@dal@p ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % dal, loop +\gdef \sk@f@s { 6 ,\a@fah@s ,1 ,{{0,5}{0,5}{0,0}{0,0}}} % fah, no dot +\gdef \sk@g { 5 ,\a@gaf ,1 ,{{0,2}{0,4}{0,0}{0,0}}} % gaf +\gdef \sk@g@p { 5 ,\a@gaf@p ,1 ,{{0,2}{0,4}{0,0}{0,0}}} % gaf, loop +\gdef \sk@g@s { 5 ,\a@gaf@s ,1 ,{{0,2}{0,3}{0,0}{0,0}}} % gaf, bar +\gdef \sk@g@ps{ 5,\a@gaf@p@s,1 ,{{0,2}{0,3}{0,0}{0,0}}} % gaf, loop, bar +\gdef \sk@h {10 ,\a@hah ,1 ,{{0,0}{0,-1}{0,0}{0,0}}} % hah +\gdef \sk@h@m {10 ,\a@hah ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % hah marbouta +\gdef \sk@h@s {10 ,\a@h@s ,1 ,{{1,0}{0,0}{0,0}{0,0}}} % urdu hah +\gdef \sk@h@u {10,\a@hah@urd,1 ,{{1,0}{0,0}{0,0}{0,0}}} % urdu hah +\gdef \sk@hh { 3 ,\a@hhah ,1 ,{{4,0}{4,0}{0,0}{0,2}}} % hhah +\gdef \sk@k { 5 ,\a@kaf ,1 ,{{0,2}{0,3}{0,0}{0,-1}}} % kaf +\gdef \sk@k { 5 ,\a@kaf ,1 ,{{6,-1}{6,-1}{6,-2}{6,-3}}} % kaf +\gdef \sk@k@p { 5 ,\a@kaf@p ,1 ,{{0,2}{0,2}{0,0}{0,-1}}} % kaf, loop +\gdef \sk@k@s { 5 ,\a@kaf@s ,1 ,{{0,2}{0,3}{0,0}{0,-1}}} % kaf, no mark +\gdef \sk@k@s { 5 ,\a@kaf@s ,1 ,{{0,2}{0,3}{6,-3}{6,-2}}} % kaf, no mark +\gdef \sk@k@w { 5 ,\a@kaf@w ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % wide kaf +\gdef \sk@kh { 3 ,\a@khah ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % khah +\gdef \sk@l { 0 ,\a@lam ,1 ,{{0,3}{0,2}{0,0}{0,0}}} % lam +\gdef \sk@l@w { 0 ,\a@lam@l ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % lower lam +\gdef \sk@m {10 ,\a@mim ,1 ,{{0,1}{0,0}{0,0}{0,0}}} % mim +\gdef \sk@n { 1 ,\a@nun ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % nun, no dot +\gdef \sk@n@p { 9 ,\a@nun@p ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % nun, loop +\gdef \sk@q { 6 ,\a@qaf ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % qaf +\gdef \sk@q@s { 6 ,\a@qaf@s ,1 ,{{0,2}{0,2}{0,0}{0,0}}} % qaf without dots +\gdef \sk@r { 8 ,\a@rah ,0 ,{{0,2}{0,1}{0,0}{0,0}}} % rah +\gdef \sk@r@p { 8 ,\a@rah@p ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % rah, loop +\gdef \sk@r@s { 8 ,\a@rah@s ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % rah, two dots +\gdef \sk@s { 2 ,\a@sin ,1 ,{{0,6}{0,4}{0,1}{0,3}}} % sin +\gdef \sk@ss { 2 ,\a@sad ,1 ,{{0,4}{0,4}{0,1}{0,2}}} % ssad +\gdef \sk@tt { 7 ,\a@ttah ,1 ,{{0,2}{0,2}{0,1}{0,1}}} % ttah +\gdef \sk@w {10 ,\a@waw ,0 ,{{0,1}{0,1}{0,0}{0,0}}} % waw +\gdef \sk@w@r {10 ,\a@waw@r ,0 ,{{0,1}{0,1}{0,0}{0,0}}} % waw with ring +\gdef \sk@w@b {10 ,\a@waw@b ,0 ,{{0,1}{0,1}{0,0}{0,0}}} % waw with bar +\gdef \sk@y { 1 ,\a@yah ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % yah +\gdef \sk@y@h { 1 ,\a@yah@h ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % yah, stroke +\gdef \sk@y@p { 1 ,\a@yah@p ,1 ,{{0,1}{0,2}{0,0}{0,0}}} % yah bari +\gdef \sk@y@ps{ 9,\a@yah@p@s,1 ,{{0,1}{0,2}{0,0}{0,0}}} % yah bari with loop + +% special forms +\gdef \sk@sn@s { 2 ,\a@sin@spec ,1 ,{{0,6}{0,4}{0,-2}{0,-1}}} % sin short +\gdef \sk@sd@s { 2 ,\a@sad@spec ,1 ,{{0,4}{0,4}{0,-3}{0,-2}}} % ssad short +\gdef \sk@j@cl { 3 ,\a@gim@close ,1 ,{{0,0}{0,0}{0,0}{0,1}}} % gim closed +\gdef \sk@k@sh { 5 ,\a@kaf@spec ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % kaf, short +\gdef \sk@k@sh { 5 ,\a@kaf@spec ,1 ,{{6,0}{6,0}{6,0}{6,-3}}} % kaf, short +\gdef \sk@k@sp { 5 ,\a@kaf@p@spec ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % gaf1 short +\gdef \sk@g@sh { 5 ,\a@gaf@spec ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % gaf- short +\gdef \sk@g@sp { 5 ,\a@gaf@p@spec ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % gaf2 short +\gdef \sk@y@s { 1 ,\a@yah@spec ,1 ,{{0,0}{0,2}{0,0}{0,0}}} % yah lig +\gdef \sk@y@h@s { 1 ,\a@yah@h@spec ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % yah' lig +\gdef \sk@hh@s { 3 ,\a@hhah@spec ,1 ,{{4,0}{4,6}{0,1}{0,0}}} % hhah short +\gdef \sk@kh@s { 3 ,\a@khah@spec ,1 ,{{0,0}{0,0}{0,1}{0,0}}} % khah short +\gdef \sk@l@a {10 ,\a@lam@alif ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % lam-alif +\gdef \sk@m@si {10 ,\a@mim@sind ,1 ,{{0,2}{0,0}{0,0}{0,0}}} % Sindhi mim + +% specials +\gdef \sk@B {10 ,\a@tatwil,1 ,{{0,0}{0,0}{0,0}{0,0}}} % tatwil +\gdef \sk@Q {10 ,\a@hamzc ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % hamza char +\gdef \sk@W {10 ,\a@break ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % small space 34 +\gdef \sk@spc {10 ,\a@smspc ,1 ,{{0,0}{0,0}{2,0}{2,0}}} % small space 36 +\gdef \sk@skip{10 ,\a@skip ,1 ,{{0,0}{0,0}{2,0}{2,0}}} % small space 37 + +% ligatures +\gdef \sk@b@sp { 1 ,\a@bah@spec ,1 ,{{0,0}{0,0}{0,0}{0,1}}} % r-b-? +\gdef \sk@b@g { 1 ,\a@bah@spec@gim ,1 ,{{0,0}{0,0}{0,2}{0,4}}} % j-b-? +\gdef \sk@b@h { 1 ,\a@bah@high ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % s-b-? +\gdef \sk@b@y { 1 ,\a@bah@spec@yah ,1 ,{{0,0}{0,0}{0,-1}{0,0}}} % y-b-? +\gdef \sk@b@e@m { 1 ,\a@bah@end@mim ,1 ,{{0,0}{0,0}{0,1}{0,0}}} % m-b-? +\gdef \sk@b@m@m { 1 ,\a@bah@mid@mim ,1 ,{{0,0}{0,0}{2,2}{2,2}}} % m-b-? +\gdef \sk@b@e@h { 1 ,\a@bah@end@hah ,1 ,{{0,0}{0,0}{2,2}{0,0}}} % h-b-? +\gdef \sk@h@s@l {10 ,\a@hah@spec@lam ,1 ,{{1,0}{0,0}{1,-3}{0,0}}} % E-h-? +\gdef \sk@l@h { 0 ,\a@lam@spec@hah ,1 ,{{0,0}{0,0}{0,0}{0,-3}}} % m-l-| +\gdef \sk@l@g { 0 ,\a@lam@gim ,1 ,{{0,0}{0,0}{0,0}{0,4}}} % j-l-| +\gdef \sk@l@g@s { 0 ,\a@lam@gim ,1 ,{{0,0}{0,0}{0,0}{0,1}}} % j-l-| +\gdef \sk@l@y { 0 ,\a@lam@spec@yah ,1 ,{{0,0}{0,0}{0,1}{0,0}}} % j-l-? +\gdef \sk@l@m { 0 ,\a@lam@spec@mim ,1 ,{{0,0}{0,0}{0,0}{0,-2}}} % m-l-| +\gdef \sk@l@lng { 0 ,\a@lam@long ,1 ,{{0,0}{0,0}{0,0}{0,1}}} % y-l-| +\gdef \sk@m@s {10 ,\a@mim@spec ,1 ,{{0,0}{0,-1}{0,2}{0,2}}} % ?-m-l +\gdef \sk@m@s@h {10 ,\a@mim@spec@high,1 ,{{0,0}{0,0}{0,0}{0,0}}} % j-m-| +\gdef \sk@m@s@l {10 ,\a@mim@spec@long,1 ,{{0,0}{0,0}{0,-1}{0,0}}} % ?-m-l +\gdef \sk@m@s@m {10 ,\a@mim@spec@mim ,1 ,{{0,0}{0,0}{0,5}{0,0}}} % m-m-| +\gdef \sk@m@l@g {10 ,\a@mim@lam@gim ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % j-m-l +\gdef \sk@l@spc {10 ,\a@smspc ,1 ,{{0,0}{0,0}{0,0}{0,-4}}} % small space + +\global\let \sk@free \sk@W % phantom for outtable + +\global\let \sk@b@s \sk@b +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +}}% end of dynamic definitions for Arabic +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\catcode`\@ = \sklatcode +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/tex/latex/arabtex/xarbsymb.sty b/Master/texmf-dist/tex/latex/arabtex/xarbsymb.sty new file mode 100644 index 00000000000..d86d136b048 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/xarbsymb.sty @@ -0,0 +1,213 @@ +%%%%%%%%%%%%%%%%%%%% xarbsymb.sty %%%%%%%%%%%%%%%%%%%% +% 15.7.1998 16:19:14 +% code assignments for arabic font in ArabTeX +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +% 15.07.98 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\a@ident {xarbsymb.sty} {3.07 symbolic output encoding } {15.07.1998} + +\chardef \a@nashcode = '1 % file has been read + +%%%%%%%%%%%%%%%%%% connection forms %%%%%%%%%%%%%%%%%% + +\chardef \a@f@iso = '0 % isolated +\chardef \a@f@end = '1 % final +\chardef \a@f@mid = '2 % medial +\chardef \a@f@beg = '3 % initial + +%%%%%%%%%%%%%%%%%% diacritical marks %%%%%%%%%%%%%%%%% + +\chardef \a@ttah@dia = '010 % for urdu +\chardef \a@one@dot@up = '011 % +\chardef \a@two@dots@down = '012 % +\chardef \a@fatha = '013 % +\chardef \a@kasra = '013 % +\chardef \a@damma = '014 % +\chardef \a@hamza = '015 % +\chardef \a@madda = '016 % +\chardef \a@shadda = '017 % +\chardef \a@two@dots@up = '020 % +\chardef \a@three@dots@up = '021 % +\chardef \a@three@dots@down = '022 % +\chardef \a@fathatan = '023 % +\chardef \a@kasratan = '023 % +\chardef \a@dammatan = '024 % +\chardef \a@sukun = '025 % +\chardef \a@wasla = '026 % +\chardef \a@quran@alif = '027 % +\chardef \a@bow@dia = '030 % for kurdish +\chardef \a@e@dia = '040 % for pashto +\chardef \a@zwarakay = '040 % for pashto +\chardef \a@one@dot@down = '056 % period +\chardef \a@hamz@s = '143 % for kashmiri 0674 +\chardef \a@bars = '144 % for 06fd, 06fe +\chardef \a@roof = '145 % for 06c9 +\chardef \a@h@dia = '146 % for urdu +\chardef \a@ammad = '146 % for pashto + +\chardef \a@f@iv = '122 % farsi 4 +\chardef \a@f@v = '123 % farsi 5 +\chardef \a@f@vi = '124 % farsi 6 + +%%%%%%%%%%%%%%%%%% letters %%%%%%%%%%%%%%%%%%%%%%%%%% + +\chardef \a@alif = '100 % 100,101 +\chardef \a@alif@iso = \a@alif % 100 +\chardef \a@alif@end = '101 % 101 + +\chardef \a@lam@alif = '102 % 102,103 +\chardef \a@lam@alif@iso = \a@lam@alif % 102 +\chardef \a@lam@alif@end = '103 % 103 + +\chardef \a@bah@s = '110 % 110-113 bah without dots +\chardef \a@bah = \a@bah@s % 110 +\chardef \a@bah@p = '114 % 114-117 bah with loop + +\chardef \a@rah = '120 % 120,121 +%% zay 122 122,123 +%% zhah 124 124,125 +\chardef \a@rah@p = '126 % 126,127 rah with loop + +\chardef \a@hamza@iso = '132 % 132 +\chardef \a@hamzc = \a@hamza@iso % 132 + +\chardef \a@dal = '130 % 130,131 +\chardef \a@dal@p = '136 % 136,137 dal with loop + +\chardef \a@gim@close = '144 % 147 closed gim +%% gim 140 140-143 +\chardef \a@hhah = '150 % 150-153 +\chardef \a@rah@s = '156 % 156,157 rah with two dots +\chardef \a@khah = '160 % 160-163 +%% tsah 170 170-173 +\chardef \a@rah@k = '166 % 166,167 kurdish rah + +\chardef \a@sin = '200 % 200-203 +\chardef \a@sin@spec = '202 % 204,205 short form +%% shin_spec 204 206,207 short form +\chardef \a@qaf@s = '206 % 206,207 qaf without dots +%% shin 210 210-213 +%% sin_p 214 214,215 sin with two dots + +\chardef \a@sad = '220 % 220-223 +\chardef \a@sad@spec = '222 % 224,225 short form +%% dad_spec 224 226,227 short form +%% dad 230 230-233 + +\chardef \a@gaf@p@spec = '224 % 226,227 short form of gaf with loop +\chardef \a@gaf@p@s = '230 % 230-233 gaf with loop +\chardef \a@kaf@w = '234 % 234-237 wide kaf + +\chardef \a@ttah = '240 % 240-243 + +%% zzah 244 244-247 +\chardef \a@waw@r = '244 % 244,245 waw with ring +\chardef \a@waw@b = '246 % 246,247 waw with bar + +\chardef \a@ain = '250 % 250-253 +\chardef \a@fah@s = '254 % 254-257 fah family + +\chardef \a@kaf@p@s = '260 % 260-263 kaf with loop +\chardef \a@gaf@p = \a@kaf@p@s % 260 +\chardef \a@kaf@p = '264 % 264,265 kaf with loop and mark +\chardef \a@kaf@p@spec = '264 % 266,267 short form of kaf with loop +\chardef \a@kaf@s = '270 % 270-273 kaf family +\chardef \a@kaf = '274 % 274,275 +\chardef \a@kaf@spec = '274 % 276,277 short form +\chardef \a@gaf@s = '300 % 300-303 gaf family +\chardef \a@gaf = '304 % 304,305 +\chardef \a@gaf@spec = '304 % 306,307 short form + +\chardef \a@lam = '310 % 310-313 +\chardef \a@mim = '320 % 320-323 +\chardef \a@mim@sind = '335 % 335 Sindhi final mim 06fe + +\chardef \a@nun = '340 % 340,341 +\chardef \a@nun@p = '342 % 342,343 nun with loop + +\chardef \a@hah = '350 % 350-354 +\chardef \a@hah@urd = '353 % 353,354 two-eyed hah, + % see hah and hah_spec_lam +\chardef \a@hah@spec@lam = '352 % 354 medial hah after initial lam +\chardef \a@hah@spec = '354 % 355-357 final short hah; +\chardef \a@h@s = \a@hah@spec % 354 + % also medial hah after sin + +\chardef \a@waw = '360 % 360,361 +%% fah 362 362,363 +\chardef \a@qaf = '364 % 364,365 +%% vah 366 366,367 + +\chardef \a@yah = '370 % 370,371 +\chardef \a@yah@spec = '371 % 372 ligature for final yah +\chardef \a@yah@h = '373 % 373,374 yah with hook +\chardef \a@yah@h@spec = '374 % 375 ligature for yah with hook +\chardef \a@yah@p = '376 % 376,377 long yah +\chardef \a@yah@p@s = '366 % 366,367 long yah with loop + +%%%%%%%%%%%%%%%%%% special characters %%%%%%%%%%%%%%%%%%% + +\chardef \a@block = '000 % 000-003 +\chardef \a@tatwil = '004 % 004-007 + +\chardef \a@rquotes = '042 % 042 +\chardef \a@period = '056 % 056 +\chardef \a@lquotes = '134 % 134 + +\chardef \a@space@spec = '044 % 046,047 carrier for dots +\chardef \a@smspc = \a@space@spec % 044 +\chardef \a@skip = '045 % 047 small space, initial (!) +\chardef \a@no@break = '046 % 046 no space, breaks ligatures +\chardef \a@break = '047 % 047 small space, medial + +%%%%%%%%%%%%%%%%%% ligatures %%%%%%%%%%%%%%%%%%%%%%%%%% + +\chardef \a@bah@spec@gim = '027 % 031 medial bah before gim +\chardef \a@bah@beg@gim = '030 % 032 initial (!) bah before gim +\chardef \a@g@to@mb = '031 % 033 medial bah to gim +\chardef \a@bah@high = '032 % 034,035 before sin, sad +\chardef \a@bah@spec = '034 % 036,037 bah before final rah, nun +\chardef \a@lam@spec@low = '072 % 074 medial lam for 'allah' +\chardef \a@lam@l = \a@lam@spec@low % 072 +\chardef \a@alif@spec@mim = '075 % 076 final alif after mim +\chardef \a@bah@end@hah = '102 % 104,105 bah before final hah +\chardef \a@bah@spec@yah = '104 % 106,107 bah before gim, with tie; + % also bah before yah +%% gim_spec 143 144,145 from above +\chardef \a@hhah@spec = '153 % 154,155 from above +\chardef \a@khah@spec = '163 % 164,165 from above +%% tsah_spec 173 174,175 from above +\chardef \a@lam@gim = '311 % 314 lam on gim +\chardef \a@lam@on@gim = '312 % 314 initial (!) lam before gim +\chardef \a@lam@long = '312 % 315 initial lam before yah +\chardef \a@lam@spec@yah = '314 % 316 before final yah ? +\chardef \a@lam@spec@mim = '314 % 317 initial lam before medial mim +\chardef \a@mim@spec@high = '322 % 324 from above +\chardef \a@mim@spec = '324 % 325-327 final; medial after lam; + % also before gim +\chardef \a@mim@spec@mim = '325 % 330 initial mim before mim +\chardef \a@mim@lam@gim = '327 % 331 medial mim between lam and gim +\chardef \a@lam@spec@hah = '330 % 333 initial lam before medial hah +\chardef \a@mim@spec@long = '332 % 334 medial mim after lam, vocalized +\chardef \a@mm@to@b = '333 % 335 bah to medial mim +\chardef \a@bah@mid@mim = '334 % 336,337 bah before medial mim +\chardef \a@mim@spec@alif = '342 % 344 medial mim before alif +\chardef \a@er@to@s = '343 % 345 sin to final rah +\chardef \a@bah@end@mim = '344 % 346 medial bah before final mim +\chardef \a@bah@beg@mim = '345 % 347 initial (!) bah before final mim + +%%%%%%%%%%%%%%%%%% ties %%%%%%%%%%%%%%%%%%%%%%%%%% + +\chardef \a@g@to@s = \a@bah@spec@gim % sin to gim +\chardef \a@em@to@s = \a@bah@end@mim % sin to final mim +\chardef \a@mh@to@s = \a@bah@end@hah % sin to medial hah or final mim +\chardef \a@g@to@bb = \a@bah@beg@gim % initial bah to gim +\chardef \a@em@to@bb = \a@bah@beg@mim % initial bah to final mim + +%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%% + +\endinput 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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + -- cgit v1.2.3