diff options
author | Marius <mariausol@gmail.com> | 2011-01-31 00:28:38 +0200 |
---|---|---|
committer | Marius <mariausol@gmail.com> | 2011-01-31 00:28:38 +0200 |
commit | a894f2e8c02c29b8ddeec3094acc1859ab34f864 (patch) | |
tree | 9469b3f59ac3b5a394712f4bbfcdb648bda35f4a /tex/context/base/m-arabtex.tex | |
parent | 89fb25d071d8742dfade2dc98a4f81e718030798 (diff) | |
download | context-a894f2e8c02c29b8ddeec3094acc1859ab34f864.tar.gz |
beta 2011.01.24 10:00
Diffstat (limited to 'tex/context/base/m-arabtex.tex')
-rw-r--r-- | tex/context/base/m-arabtex.tex | 450 |
1 files changed, 0 insertions, 450 deletions
diff --git a/tex/context/base/m-arabtex.tex b/tex/context/base/m-arabtex.tex deleted file mode 100644 index 61e56e93a..000000000 --- a/tex/context/base/m-arabtex.tex +++ /dev/null @@ -1,450 +0,0 @@ -%D \module -%D [ file=m-arabtex, % was font-arb, -%D version=2003.02.22, % 1999.11.06, -%D title=\CONTEXT\ Modules, -%D subtitle=Arabic, -%D author=Hans Hagen, -%D date=\currentdate, -%D copyright={PRAGMA / Hans Hagen \& Ton Otten}] -%C -%C This module is part of the \CONTEXT\ macro||package and is -%C therefore copyrighted by \PRAGMA. See mreadme.pdf for -%C details. - -% I still need to hook in some features into the setup -% macro. I also have to (re)define farsi etc. in ways -% similar to arab, so that we have dedicated environments. -% -% keywords needed: vocalize transscribe -% -% \startarabic[option=vocalize] % or vocalize=yes -% ...... -% \stoparabic - -\writestatus{loading}{ConTeXt Font Macros / ArabTeX support} - -%D At the \NTG\ 10\high{th} anniversary meeting Klaus Lagally -%D introduced the audience to arabic typesetting, and after -%D that I knew that some day I really had to look into his -%D generic package. And then, sort of simultaniously Maarten -%D Wisse and Imran Ahsan Nyazee asked me if \CONTEXT\ could -%D support \ARABTEX, a package that provides right to left -%D typesetting of (several variants of) arab and hebrew. -%D Having implemented support for chinese a few weeks before, -%D I could not resist to build in support for arab and hebrew -%D too. Writing support for languages that don't give me any -%D cue on how to pronounce their script, is kind of special. - -%D This is a beta version, since I still have to take care of some -%D macros that conflict with existing stuff. - -\unprotect - -\definesystemvariable{ARABTEX} - -\def\setupARABTEX - {\getparameters[\??ARABTEX]} - -\setupARABTEX - [\s!rscale=1.2, - \c!before=, - \c!after=, - \c!inner=\setarab, - \c!style=\setarabicfont\fontstylesuffix] - -%D A few (maybe too) simple hooks into the font mechanism. The -%D hook into the language module is not yet done. - -% \unexpanded\def\setarabicfont#1% rscale -% {\scratchdimen\@@ARABTEXrscale\bodyfontsize -% \font\arbfont\truefontname{Arabic#1} at \currentfontscale\scratchdimen -% \setx@skels -% \newfonttrue -% \arbfont} -% -% more modern -% -% \unexpanded\def\setarabicfont#1% rscale -% {\definefont[arbfont][Arabic#1 sa \@@ARABTEXrscale]% -% \setx@skels -% \newfonttrue -% \arbfont} -% -% more efficient - -\unexpanded\def\setarabicfont#1% - {\setx@skels - \newfonttrue - \definedfont[Arabic#1 sa \ARABTEXparameter\s!rscale]} - -%D Just to be compatible with Arab\TEX\ we define: - -\unexpanded\def\nash {\setarabicfont\s!Regular} -\unexpanded\def\nashbf {\setarabicfont\s!Bold } -\unexpanded\def\pnash {\setarabicfont\s!Regular} -\unexpanded\def\pnashbf{\setarabicfont\s!Bold } -\unexpanded\def\xnash {\setarabicfont\s!Regular} -\unexpanded\def\xnashbf{\setarabicfont\s!Bold } - -%D The display arabic environment (will be an installable -%D object) uses a few conditionals. Let's do it the -%D \CONTEXT\ way and define an anvironment that we later can -%D adapt. - -\newif\if@ignore -\newif\if@endpe - -\def\setupARABTEXalternative[#1]% - {\dodoubleempty\getparameters[\??ARABTEX#1]} - -\def\defineARABTEXalternative - {\dodoubleempty\dodefineARABTEXalternative} - -\def\dodefineARABTEXalternative[#1][#2]% - {\iffirstargument % \startarab is defined but used already - \getparameters - [\??ARABTEX#1] - [\c!before=\@@ARABTEXbefore, - \c!after=\@@ARABTEXafter, - \c!inner=\@@ARABTEXinner, - \c!style=\@@ARABTEXstyle, - \s!rscale=\@@ARABTEXrscale, - #2]% - \setvalue {\e!start#1}{\displayARABTEXalternative{#1}}% - \unexpanded\setvalue{#1}{\inlineARABTEXalternative {#1}}% - \unexpanded\def\RL{\getvalue{#1}}% - \unexpanded\def\LR{\a@LR}% - \let\R=\RL - \let\L=\LR - \expandafter\all@wcmd\csname\e!stop#1\endcsname - \else - \defineARABTEXalternative[arabic]% - \fi} - -\def\initializeARABTEXinternals - {\ARABTEXparameter\c!inner - \the\everyARABTEXpreset} - -\newtoks \everyARABTEXpreset - -\let\currentARABTEXalternative\empty - -\def\ARABTEXparameter#1% - {\csname\??ARABTEX\currentARABTEXalternative#1\endcsname} - -\def\inlineARABTEXalternative#1#2% - {\bgroup - \edef\currentARABTEXalternative{#1}% - \initializeARABTEXinternals - \a@RL{#2}% - \egroup} - -\def\displayARABTEXalternative#1% - {\dodoubleempty\dostartARABTEXalternative[#1]} - -\def\dostartARABTEXalternative[#1][#2]% - {\begingroup - \edef\currentARABTEXalternative{#1}% - \getparameters[\??ARABTEX\currentARABTEXalternative][#2]% - \ifnum1<0\ARABTEXparameter\c!n\relax - \startcolumns - \else - \ARABTEXparameter\c!before - \fi - \initializeARABTEXinternals - \initializeARABTEXend - \arabtext - \initializeARABTEXalternative} - -\def\initializeARABTEXalternative - {\ARABTEXparameter\c!style} - -\def\initializeARABTEXend% \CONTEXT\ does use \end quite differently - {\long\def\end##1% - {\endarabtext - \ifnum1<0\ARABTEXparameter\c!n\relax - \stopcolumns - \else - \ARABTEXparameter\c!after - \fi - \endgroup}% - \let\a@l@end\end - \letvalue{\e!stop\currentARABTEXalternative}=\end - \long\def\end##1% - {\endarabtext - \endgroup - \if@ignore\global\@ignorefalse\expandafter\ignorespaces\fi}} - -%D Arabic verbatim. - -\def\typearab{\a@@verb} - -%D Some \LATEX\ macros. - -\def \makeatletter{\unprotect} -\def \makeatother {\protect} -\def \typeout {\writestatus{arabtex}} - -%D We have to save some macros. - -\let\ARABTEXversion=\empty - -\def\startloadingARABTEX% ugly hacks - {\catcode`!=12 - \catcode`?=12 - \pushmacro\output \let \output \scratchtoks - \pushmacro\LaTeX \let \LaTeX \undefined - \pushmacro\CJK \let \CJK \undefined -% \pushmacro\peek@token \let \peek@token \undefined -% \pushmacro\edmacloaded \let \edmacloaded \undefined - \pushmacro\year \let \year \normalyear - \pushmacro\month \let \month \normalmonth - \pushmacro\day \let \day \normalday - \pushmacro\input \def \input ##1 {\normalinput ##1 } - \pushmacro\linewidth - \pushmacro\datum \def\datum {\toks0} - \pushmacro\version \def\version {\toks2} - \pushmacro\theversion \let\theversion \ARABTEXversion - \pushmacro\emphasize - \pushmacro\cap} - -\def\stoploadingARABTEX - {\catcode`!=11 - \catcode`?=11 - \popmacro\cap - \popmacro\emphasize - \popmacro\theversion - \popmacro\version - \popmacro\datum - \popmacro\linewidth - \popmacro\input - \popmacro\day - \popmacro\month - \popmacro\year -% \popmacro\edmacloaded -% \popmacro\peek@token - \popmacro\CJK - \popmacro\LaTeX - \popmacro\output} - -%D We save some macros: - -\startloadingARABTEX - -%D When loading \ARABTEX\ we have to set back the~! and~?. - -\input arabtex.sty - -%D Since \ARABTEX\ has its own \type {\cap}, we save the -%D new meaning. We also redefine some \PLAIN\ macros, which -%D happen to have a different meaning in \LATEX. - -\let\ARABTEXversion\theversion -\let\ARABTEXcap \cap - -\appendtoks - \let\cap\ARABTEXcap -\to \everyARABTEXpreset - -\def\ARABTEXsh@ft#1% - {\dimen@.00#1ex - \multiply\dimen@\slantperpoint - \kern-.0156\dimen@} - -\appendtoks - \let\sh@ft\ARABTEXsh@ft -\to \everyARABTEXpreset - -\def\ARABTEXd#1% - {{\o@lign{\relax#1\crcr\hidewidth\sh@ft{10}% - .\hidewidth}}} - -\def\ARABTEXb#1% - {{\o@lign{\relax#1\crcr\hidewidth\sh@ft{29}% - \vbox to.2ex{\hbox{\char22}\vss}\hidewidth}}} - -\appendtoks - \let\b\ARABTEXb - \let\d\ARABTEXd -\to \everyARABTEXpreset - -\def \ARABTEXbreakA {\hfill\break} -\def \ARABTEXbreakB {\break} -\edef\ARABTEXbar {\string|} -\def \ARABTEXcomma {\relax\ifmmode\mskip\thinmuskip\else\thinspace\fi} - -\appendtoks - \let\\=\ARABTEXbreakA - \let\|=\ARABTEXbreakB - \let |=\ARABTEXbar - \let\,=\ARABTEXcomma -\to \everyARABTEXpreset - -\let\ARABTEXprotect\relax - -\appendtoks - \let\protect\ARABTEXprotect -\to \everyARABTEXpreset - -%D Now we can pop the saved macros. - -\stoploadingARABTEX - -%D Ah, we have to get rid of some \type {\protect} stuff but -%D to permit testing we add it in the \CONTEXT\ way. - -% \bgroup -% \catcode`\<=\@other -% \unexpanded\gdef\a@ins -% {\ifmmode -% \expandafter<% -% \else -% \dontleavehmode \bgroup -% \arab@codes \set@arabfont \@waslafalse \@wasfalse -% \expandafter\arab@insert -% \fi} -% \unexpanded\gdef\<{\a@ins} -% \catcode`\<=\active -% \global\let<=\a@ins -% \egroup -% -% cleaner: - -\defineactivecharacter < {\a@ins} \unexpanded\gdef\<{\a@ins}% - -\def\normal@a@ins - {\dontleavehmode % context prefers this instead of \leavevmode - \bgroup - \arab@codes - \set@arabfont - \@waslafalse - \@wasfalse - \arab@insert} - -\unexpanded\gdef\a@ins - {\mathortext<\normal@a@ins} - -%D We also need to register a few macros: - -\all@wcmd\initializeARABTEXalternative % no argument, internal command -\all@wcmd\tx % no argument, small font -\all@wcmd\txx % no argument, smaller font - -%D We also hook it into the presetter. - -\appendtoks - \let\normaltx \tx \def\tx {\normaltx \setarabicfont\fontstylesuffix}% - \let\normaltxx\txx\def\txx{\normaltxx\setarabicfont\fontstylesuffix}% -\to \everyARABTEXpreset - -%D The main definitions are: - -\definefontsynonym [ArabicRegular] [xnsh14] -\definefontsynonym [ArabicBold] [xnsh14bf] - -\defineARABTEXalternative - [arabic] - [\c!inner=\setarab, - \c!style=\setarabicfont\fontstylesuffix] - -\defineARABTEXalternative - [farsi] - [\c!inner=\setfarsi, - \c!style=\setarabicfont\fontstylesuffix] - -\defineARABTEXalternative - [urdu] - [\c!inner=\seturdu, - \c!style=\setarabicfont\fontstylesuffix] - -\defineARABTEXalternative - [maghribi] - [\c!inner=\setmaghribi, - \c!style=\setarabicfont\fontstylesuffix] - -%D Apart from such definitions, one can adapt the settings -%D using \type {\setupARABTEXalternative}. -%D -%D A few years ago at the Holland Festivities, I attended {\em -%D The Cave}, one of the most impressive combinations of music -%D and video I know. This composition of Steve Reich (music) -%D and .. (video) concentrates on the common grounds of arabs -%D and jews: their ancestor Abram. Listening to the \CDROM's -%D of {\em The Cave}, provided me the right ambiance for -%D filling in the details of this module. In {\em The Cave}, -%D interviews, music, and |<|believe it or not|>| rhythmic -%D typography are the cornerstones. Remembering those big -%D screens, it strikes me that like music, \TEX\ too is a -%D perfect instrument to cross cultural and linguistic -%D borders. So, let's load Hebrew support as well: - -\unexpanded\def\sethebrewfont#1% - {\setx@skels - \newfonttrue - \definedfont[Hebrew#1 sa \ARABTEXparameter\s!rscale]} - -% \let \setheb \sethebrew - -\unexpanded\def\pheb {\sethebrewfont\s!Regular} -\unexpanded\def\phebbf{\sethebrewfont\s!Bold} - -% \startloadingARABTEX - -% \ReadFile{hebtex.sty} -% \ReadFile{apatch.sty} -% \ReadFile{hepatch.sty} - -% \stoploadingARABTEX - -\definefontsynonym [HebrewRegular] [hclassic] -\definefontsynonym [HebrewBold] [hcaption] - -\defineARABTEXalternative - [hebrew] - [\c!inner=\sethebrew, - \c!style=\sethebrewfont\fontstylesuffix] - -%D Now we're done: - -\protect \endinput - -% everyoutput : \charsubdefmax \arab@charsubdefmax - -% \defineconversion [abjad] [\abj@d] -% -% voetnoten verbatim lijsten indexen tabellen uitlijnen -% -% \v!hoofdstuk=al-fa.slu -% \v!inhoud=al-mu.htawayAtu -% \v!figuren=qA'imaTu al-.suwaru -% \v!tabellen=qA'imaTu al-^gadAwilu -% \v!grafieken=qA'imaTu al-rusUmu -% \v!index=al-fihrisu -% \v!bijlage=al-mul.haqu - -% \usemodule[arabtex] -% -% \usetypescript[postscript] \switchtotypeface[postscript] -% -% \setarab \novocalize -% -% \starttext -% -% \placecontent -% -% \section{\<mu.hammad>} % short arabic use \< .. > -% \section{\<mu.hammad>} % short arabic use \< .. > -% -% \startarabic -% mu.hammad 'i_d q"aAm zay"d" + i_d yaqUm zyd + A_d zyd q"aAm -% -% mu.hammad 'i_d q"aAm zay"d" + i_d yaqUm zyd + A_d zyd q"aAm -% \stoparabic -% -% \section{\<al-maq.sad>} -% -% \startarabic -% mu.hammad 'i_d q"aAm zay"d" + i_d yaqUm zyd + A_d zyd q"aAm -% \stoparabic -% -% \stoptext |