summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fonts/enc/dvips/context/texnansi-osfsc.enc264
-rw-r--r--scripts/context/ruby/texsync.rb4
-rw-r--r--tex/context/base/cont-new.tex35
-rw-r--r--tex/context/base/context.tex2
-rw-r--r--tex/context/base/core-lst.tex5
-rw-r--r--tex/context/base/core-new.tex15
-rw-r--r--tex/context/base/core-ntb.tex3
-rw-r--r--tex/context/base/font-arb.tex317
-rw-r--r--tex/context/base/font-heb.tex66
-rw-r--r--tex/context/base/m-arabtex.tex457
-rw-r--r--tex/context/base/page-flt.tex4
-rw-r--r--tex/context/base/page-set.tex5
-rw-r--r--tex/context/base/spec-dpm.tex2
-rw-r--r--tex/context/base/spec-dpx.tex2
-rw-r--r--tex/context/base/spec-dvi.tex2
-rw-r--r--tex/context/base/spec-fdf.tex4
-rw-r--r--tex/context/base/spec-ini.tex12
-rw-r--r--tex/context/base/spec-tpd.tex2
-rw-r--r--tex/context/base/spec-xtx.tex11
-rw-r--r--tex/context/base/supp-fun.tex3
-rw-r--r--tex/context/base/xtag-ini.tex38
-rw-r--r--tex/context/base/xtag-utf.tex2
-rw-r--r--tex/context/interface/keys-cz.xml2
-rw-r--r--tex/context/interface/keys-de.xml2
-rw-r--r--tex/context/interface/keys-en.xml2
-rw-r--r--tex/context/interface/keys-it.xml2
-rw-r--r--tex/context/interface/keys-nl.xml2
-rw-r--r--tex/context/interface/keys-ro.xml2
-rw-r--r--web2c/context.cnf2
29 files changed, 833 insertions, 436 deletions
diff --git a/fonts/enc/dvips/context/texnansi-osfsc.enc b/fonts/enc/dvips/context/texnansi-osfsc.enc
new file mode 100644
index 000000000..7a12a83fb
--- /dev/null
+++ b/fonts/enc/dvips/context/texnansi-osfsc.enc
@@ -0,0 +1,264 @@
+% Old Style with Small Caps by thomas.schmitz@uni-bonn.de
+%
+% generate metrics using:
+%
+% texfont --encoding=texnansi --variant=osfsc --[other options]
+
+/TeXnANSIOSFSCEncoding [
+/.notdef % 0
+/Euro % 1 /Uni20AC
+/.notdef % 2
+/.notdef % 3
+/fraction % 4
+/dotaccent % 5
+/hungarumlaut % 6
+/ogonek % 7
+/fl % 8
+/.notdef % 9 /fraction not used (see 4), backward compatability only
+/cwm % 10 not used, except boundary char internally maybe
+/ff % 11
+/fi % 12
+/.notdef % 13 /fl not used (see 8), backward compatability only
+/ffi % 14
+/ffl % 15
+/dotlessi % 16
+/dotlessj % 17
+/grave % 18
+/acute % 19
+/caron % 20
+/breve % 21
+/macron % 22
+/ring % 23
+/cedilla % 24
+/germandbls % 25
+/AEsmall % 26
+/OEsmall % 27
+/Oslashsmall % 28
+/AE % 29
+/OE % 30
+/Oslash % 31
+/space % 32 /suppress in TeX text
+/exclam % 33
+/quotedbl % 34 /quotedblright in TeX text
+/numbersign % 35
+/dollar % 36
+/percent % 37
+/ampersand % 38
+/quoteright % 39 /quotesingle in ANSI
+/parenleft % 40
+/parenright % 41
+/asterisk % 42
+/plus % 43
+/comma % 44
+/hyphen % 45
+/period % 46
+/slash % 47
+/zerooldstyle % 48
+/oneoldstyle % 49
+/twooldstyle % 50
+/threeoldstyle % 51
+/fouroldstyle % 52
+/fiveoldstyle % 53
+/sixoldstyle % 54
+/sevenoldstyle % 55
+/eightoldstyle % 56
+/nineoldstyle % 57
+/colon % 58
+/semicolon % 59
+/less % 60 /exclamdown in TeX text
+/equal % 61
+/greater % 62 /questiondown in TeX text
+/question % 63
+/at % 64
+/A % 65
+/B % 66
+/C % 67
+/D % 68
+/E % 69
+/F % 70
+/G % 71
+/H % 72
+/I % 73
+/J % 74
+/K % 75
+/L % 76
+/M % 77
+/N % 78
+/O % 79
+/P % 80
+/Q % 81
+/R % 82
+/S % 83
+/T % 84
+/U % 85
+/V % 86
+/W % 87
+/X % 88
+/Y % 89
+/Z % 90
+/bracketleft % 91
+/backslash % 92 /quotedblleft in TeX text
+/bracketright % 93
+/circumflex % 94 /asciicircum in ASCII
+/underscore % 95 /dotaccent in TeX text
+/quoteleft % 96 /grave accent in ANSI
+/Asmall % 97
+/Bsmall % 98
+/Csmall % 99
+/Dsmall % 100
+/Esmall % 101
+/Fsmall % 102
+/Gsmall % 103
+/Hsmall % 104
+/Ismall % 105
+/Jsmall % 106
+/Ksmall % 107
+/Lsmall % 108
+/Msmall % 109
+/Nsmall % 110
+/Osmall % 111
+/Psmall % 112
+/Qsmall % 113
+/Rsmall % 114
+/Ssmall % 115
+/Tsmall % 116
+/Usmall % 117
+/Vsmall % 118
+/Wsmall % 119
+/Xsmall % 120
+/Ysmall % 121
+/Zsmall % 122
+/braceleft % 123 /endash in TeX text
+/bar % 124 /emdash in TeX test
+/braceright % 125 /hungarumlaut in TeX text
+/tilde % 126 /asciitilde in ASCII
+/dieresis % 127 not used (see 168), use higher up instead
+/Lslash % 128 this position is unfortunate, but now too late to fix
+/quotesingle % 129
+/quotesinglbase % 130
+/florin % 131
+/quotedblbase % 132
+/ellipsis % 133
+/dagger % 134
+/daggerdbl % 135
+/circumflex % 136
+/perthousand % 137
+/Scaron % 138
+/guilsinglleft % 139
+/OE % 140
+/Zcaron % 141
+/asciicircum % 142
+/minus % 143
+/lslash % 144
+/quoteleft % 145
+/quoteright % 146
+/quotedblleft % 147
+/quotedblright % 148
+/bullet % 149
+/endash % 150
+/emdash % 151
+/tilde % 152
+/trademark % 153
+/scaron % 154
+/guilsinglright % 155
+/oe % 156
+/zcaron % 157
+/asciitilde % 158
+/Ydieresis % 159
+/nbspace % 160 /space (no break space)
+/exclamdown % 161
+/cent % 162
+/sterling % 163
+/currency % 164
+/yen % 165
+/brokenbar % 166
+/section % 167
+/dieresis % 168
+/copyright % 169
+/ordfeminine % 170
+/guillemotleft % 171
+/logicalnot % 172
+/sfthyphen % 173 /hyphen (hanging hyphen)
+/registered % 174
+/macron % 175
+/degree % 176
+/plusminus % 177
+/twosuperior % 178
+/threesuperior % 179
+/acute % 180
+/mu % 181
+/paragraph % 182
+/periodcentered % 183
+/cedilla % 184
+/onesuperior % 185
+/ordmasculine % 186
+/guillemotright % 187
+/onequarter % 188
+/onehalf % 189
+/threequarters % 190
+/questiondown % 191
+/Agrave % 192
+/Aacute % 193
+/Acircumflex % 194
+/Atilde % 195
+/Adieresis % 196
+/Aring % 197
+/AE % 198
+/Ccedilla % 199
+/Egrave % 200
+/Eacute % 201
+/Ecircumflex % 202
+/Edieresis % 203
+/Igrave % 204
+/Iacute % 205
+/Icircumflex % 206
+/Idieresis % 207
+/Eth % 208
+/Ntilde % 209
+/Ograve % 210
+/Oacute % 211
+/Ocircumflex % 212
+/Otilde % 213
+/Odieresis % 214
+/multiply % 215 OE in T1
+/Oslash % 216
+/Ugrave % 217
+/Uacute % 218
+/Ucircumflex % 219
+/Udieresis % 220
+/Yacute % 221
+/Thorn % 222
+/germandbls % 223
+/Agravesmall % 224
+/Aacutesmall % 225
+/Acircumflexsmall % 226
+/Atildesmall % 227
+/Adieresissmall % 228
+/Aringsmall % 229
+/AEsmall % 230
+/Ccedillasmall % 231
+/Egravesmall % 232
+/Eacutesmall % 233
+/Ecircumflexsmall % 234
+/Edieresissmall % 235
+/Igravesmall % 236
+/Iacutesmall % 237
+/Icircumflexsmall % 238
+/Idieresissmall % 239
+/eth % 240
+/Ntildesmall % 241
+/Ogravesmall % 242
+/Oacutesmall % 243
+/Ocircumflexsmall % 244
+/Otildesmall % 245
+/Odieresissmall % 246
+/divide % 247 oe in T1
+/Oslashsmall % 248
+/Ugravesmall % 249
+/Uacutesmall % 250
+/Ucircumflexsmall % 251
+/Udieresissmall % 252
+/Yacutesmall % 253
+/Thornsmall % 254
+/Ydieresissmall % 255 germandbls in T1
+] def
diff --git a/scripts/context/ruby/texsync.rb b/scripts/context/ruby/texsync.rb
index 457e13c05..37faf2b30 100644
--- a/scripts/context/ruby/texsync.rb
+++ b/scripts/context/ruby/texsync.rb
@@ -70,7 +70,7 @@ class Commands
if option('make') then
report("generating tex and metapost formats")
report
- formats.delete_if do |f|
+ @@formats.delete_if do |f|
begin
`kpsewhich cont-#{f}`.chomp.empty?
rescue
@@ -197,4 +197,4 @@ commandline.registeraction('version')
commandline.expand
-Commands.new(commandline,logger,banner).send(commandline.action || 'help') \ No newline at end of file
+Commands.new(commandline,logger,banner).send(commandline.action || 'help')
diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex
index a020fa9e4..9a8665eb9 100644
--- a/tex/context/base/cont-new.tex
+++ b/tex/context/base/cont-new.tex
@@ -24,6 +24,41 @@
\ifx\normalcompound\undefined \let\normalcompound=| \fi
+% to do:
+%
+% \def\defineshapesynonym
+% {\dodoubleargument\dodefineshapesynonym}
+%
+% \def\dodefineshapesynonym[#1][#2]%
+% {\setvalue{shsy:#1}{#2}}
+%
+% \def\shapesynonym#1%
+% {\ifcsname shsy:#1\endcsname
+% \expandafter\shapesynonym\csname shsy:#1\endcsname\else#1%
+% \fi}
+%
+% \beginTEX
+%
+% \def\shapesynonym#1%
+% {\expandafter\ifx\csname shsy:#1\endcsname\relax
+% #1\else\expandafter\shapesynonym\csname shsy:#1\endcsname
+% \fi}
+%
+% \endTEX
+%
+%\defineshapesynonym[eacute] [e]
+%\defineshapesynonym[egrave] [e]
+%\defineshapesynonym[eumlaut [e]
+%\defineshapesynonym[eogonek][e]
+%
+% more reduction
+%
+%\defineshapesynonym[e][o]
+%\defineshapesynonym[w][v]
+%\defineshapesynonym[m][n]
+%
+% \shapesynonym{eacute}
+
\def\OTRSETnobalance
{\iflastcolumnfootnotes % testen ! optie
% inhibit flush of floats !
diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex
index bce747676..e60b14383 100644
--- a/tex/context/base/context.tex
+++ b/tex/context/base/context.tex
@@ -31,7 +31,7 @@
%D 2004.8.30 the low level interface is english. Watch out and adapt
%D your styles an modules.
-\def\contextversion{2005.02.23}
+\def\contextversion{2005.03.01}
%D Welcome to the main module. When this module is ran through
%D \type{initex} or \type {tex -i} or \type {whatevertex} using
diff --git a/tex/context/base/core-lst.tex b/tex/context/base/core-lst.tex
index a9472295c..aa1dbea1a 100644
--- a/tex/context/base/core-lst.tex
+++ b/tex/context/base/core-lst.tex
@@ -556,9 +556,8 @@
{\hbox{##2}}}%
\doif{\listparameter\c!interaction}\v!text % not supported ! ! ! ! ! ! text == all
{\setlistparameter\currentlist\c!interaction\v!all}%
-% \makelistelement\v!all
-% {\hbox to \hsize
- \dontleavehmode % new, else no margin
+ % \dontleavehmode % new, else no margin, but wrong, better (else \indent as well):
+ \noindent
\makelistelement\v!all
{\setlocalhsize \hsize\localhsize \hbox to \hsize
{\forgetall
diff --git a/tex/context/base/core-new.tex b/tex/context/base/core-new.tex
index 339cfde40..7227bd789 100644
--- a/tex/context/base/core-new.tex
+++ b/tex/context/base/core-new.tex
@@ -520,6 +520,21 @@
\def\env {\getvariable \s!environment}
\def\envvar {\getvariabledefault\s!environment}
+%D \macros
+%D {jobsuffix}
+%D
+%D By default, \TEX\ produces \DVI\ files which can be
+%D converted to other filetypes. Sometimes it is handy to
+%D know what the target file will be. In other driver
+%D modules we wil set \type {\jobsuffix} to \type {pdf}.
+
+\def\jobsuffix{dvi}
+
+\def\setjobsuffix#1%
+ {\resetsystemmode\jobsuffix
+ \edef\jobsuffix{#1}%
+ \setsystemmode\jobsuffix}
+
\bgroup
\gdef\cleanedupcolon{:} \catcode`:=\@@active
diff --git a/tex/context/base/core-ntb.tex b/tex/context/base/core-ntb.tex
index ce3244ed0..0e1d90e04 100644
--- a/tex/context/base/core-ntb.tex
+++ b/tex/context/base/core-ntb.tex
@@ -102,9 +102,6 @@
\def\settblhei#1#2{\setxvalue{\@@tblprefix#1:h}{#2}} % global !
\def\settblaut#1#2{\setxvalue{\@@tblprefix#1:a}{#2}} % global !
-%\def\gettblwid#1{\ifundefined{\@@tblprefix#1:w}\!!zeropoint\else\getvalue{\@@tblprefix#1:w}\fi}
-%\def\gettblhei#1{\ifundefined{\@@tblprefix#1:h}\!!zeropoint\else\getvalue{\@@tblprefix#1:h}\fi}
-
\def\gettblwid#1{\executeifdefined{\@@tblprefix#1:w}\zeropoint}
\def\gettblhei#1{\executeifdefined{\@@tblprefix#1:h}\zeropoint}
\def\gettblaut#1{\csname\@@tblprefix#1:a\endcsname}
diff --git a/tex/context/base/font-arb.tex b/tex/context/base/font-arb.tex
index 60afc43b5..3ec0395f3 100644
--- a/tex/context/base/font-arb.tex
+++ b/tex/context/base/font-arb.tex
@@ -1,318 +1,5 @@
-%D \module
-%D [ file=font-arb,
-%D version=1999.11.06,
-%D title=\CONTEXT\ Font Macros,
-%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.
+\unprotected \writestatus\m!systems{load ARABTEX as a module instead}
-% NOT YET ADAPTED TO THE NEW FONT MACROS
-
-% 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}
-
-%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=1.2\bodyfontsize
- \font\arbfont=\truefontname{Arabic#1} at \currentfontscale\scratchdimen
- \setx@skels
- \newfonttrue
- \arbfont}
-
-%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=,\c!after=,\c!inner=\setarab,
- \c!style=\setarabicfont{Arabic\fontstylesuffix}, % evt ArabicRegular
- #2]%
- \expandafter\all@wcmd\csname\e!stop#1\endcsname
- \setvalue{\e!start#1}%
- {\dodoubleempty\dostartARABTEXalternative[#1]}%
- \unexpanded\setvalue{#1}##1%
- {{\initializeARABTEXinternals{#1}\a@RL{##1}}}%
- \unexpanded\def\RL{\getvalue{#1}}%
- \unexpanded\def\LR{\a@LR}%
- \let\R=\RL
- \let\L=\LR
- \else
- \defineARABTEXalternative[arabic]%
- \fi}
-
-\def\initializeARABTEXinternals#1%
- {\getvalue{\??ARABTEX#1\c!inner}%
- \let \\=\ARABTEXbreakA
- \let \|=\ARABTEXbreakB
- \let \cap=\ARABTEXcap
- \let \sh@ft=\ARABTEXsh@ft
- \let \b=\ARABTEXb
- \let \d=\ARABTEXd
- \let |=\ARABTEXbar
- \let \,=\ARABTEXcomma
- \let\protect=\ARABTEXprotect
- \let\normaltx \tx \def\tx {\normaltx \setarabicfont\fontstylesuffix}%
- \let\normaltxx\txx\def\txx{\normaltxx\setarabicfont\fontstylesuffix}}
-
-\def\dostartARABTEXalternative[#1][#2]%
- {\begingroup
- \getparameters[\??ARABTEX#1][#2]%
- \ifnum1<0\getvalue{\??ARABTEX#1\c!n}\relax
- \startcolumns
- \else
- \getvalue{\??ARABTEX#1\c!before}%
- \fi
- \initializeARABTEXinternals{#1}%
- \initializeARABTEXend{#1}%
- \arabtext
- \initializeARABTEXalternative{#1}}
-
-\def\initializeARABTEXalternative#1%
- {\getvalue{\??ARABTEX#1\c!style}}
-
-\def\initializeARABTEXend#1% \CONTEXT\ does use \end quite differently
- {\long\def\end##1%
- {\endarabtext
- \ifnum1<0\getvalue{\??ARABTEX#1\c!n}\relax
- \stopcolumns
- \else
- \getvalue{\??ARABTEX#1\c!after}%
- \fi
- \endgroup}%
- \let\a@l@end\end
- \letvalue{\e!stop#1}=\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\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\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
-
-\def\ARABTEXsh@ft#1%
- {\dimen@.00#1ex
- \multiply\dimen@\fontdimen1\font
- \kern-.0156\dimen@}
-
-\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}}}
-
-%D A few internals:
-
-\def \ARABTEXcomma {\relax\ifmmode\mskip\thinmuskip\else\thinspace\fi}
-\def \ARABTEXbreakA {\hfill\break}
-\def \ARABTEXbreakB {\break}
-\edef\ARABTEXbar {\string|}
-\let \ARABTEXprotect \relax
-
-%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
- \leavevmode \bgroup
- \arab@codes \set@arabfont \@waslafalse \@wasfalse
- \expandafter\arab@insert
- \fi}
-\unexpanded\gdef\<{\a@ins}
-\catcode`\<=\active
-\global\let<=\a@ins
-\egroup
-
-%D We also need to register a few macros:
-
-\all@w@ne\initializeARABTEXalternative % one argument, internal command
-\all@wcmd\tx % no argument, small font
-\all@wcmd\txx % no argument, smaller font
-
-%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:
-
-\protect
-
-%D those macros,
+\usemodule[arabtex]
\endinput
-
-%D and use them!
-
-% \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
diff --git a/tex/context/base/font-heb.tex b/tex/context/base/font-heb.tex
index 1a77d23ea..3ec0395f3 100644
--- a/tex/context/base/font-heb.tex
+++ b/tex/context/base/font-heb.tex
@@ -1,65 +1,5 @@
-%D \module
-%D [ file=font-heb,
-%D version=1999.11.06,
-%D title=\CONTEXT\ Font Macros,
-%D subtitle=Hebrew,
-%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.
+\unprotected \writestatus\m!systems{load ARABTEX as a module instead}
-\input font-arb.tex
+\usemodule[arabtex]
-\writestatus{loading}{Context Font Macros / Hebrew (ArabTeX) support}
-
-% NOT YET ADAPTED TO THE NEW FONT MACROS
-
-%D This module is build on top of \ARABTEX\ and arabic
-%D support. I dedicate this module to my father Hein Hagen,
-%D who did not live long enough to become a user. His huge
-%D library contains math, science, history, english literature,
-%D philisophy and theology books, but his most favoured ones
-%D were those traditional hebrew printings. I must admit
-%D that some of those make clear that traditonal typesetting
-%D can still beat \TEX. Those nested multicolumn documents with
-%D complicated can give even the experienced macro writer a
-%D rather persistent headache.
-
-\unprotect
-
-%D A few fonts.
-
-\unexpanded\def\sethebrewfont#1% strange font dimensions / scale
- {\scratchdimen=10\bodyfontsize
- \font\hebfont=\truefontname{Hebrew#1} at \currentfontscale\scratchdimen
- \fontdimen5\hebfont=.8\fontdimen2\hebfont
- \fontdimen6\hebfont=3\fontdimen5\hebfont
- \hebfont}
-
-\let \setheb \sethebrew
-
-\unexpanded\def\pheb {\sethebrewfont\s!Regular}
-\unexpanded\def\phebbf{\sethebrewfont\s!Bold}
-
-\startloadingARABTEX
-
-\input hebtex.sty
-\input apatch.sty
-\input hepatch.sty
-
-\stoploadingARABTEX
-
-%D The main definition is:
-
-\definefontsynonym [HebrewRegular] [hclassic]
-\definefontsynonym [HebrewBold] [hcaption]
-
-\defineARABTEXalternative
- [hebrew]
- [\c!inner=\sethebrew,
- \c!style=\sethebrewfont{\fontstylesuffix}]
-
-\protect \endinput
+\endinput
diff --git a/tex/context/base/m-arabtex.tex b/tex/context/base/m-arabtex.tex
new file mode 100644
index 000000000..36cdc197c
--- /dev/null
+++ b/tex/context/base/m-arabtex.tex
@@ -0,0 +1,457 @@
+%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@\fontdimen1\font
+ \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% strange font dimensions / scale
+% {\scratchdimen=10\bodyfontsize
+% \font\hebfont=\truefontname{Hebrew#1} at \currentfontscale\scratchdimen
+% \fontdimen5\hebfont=.8\fontdimen2\hebfont
+% \fontdimen6\hebfont=3\fontdimen5\hebfont
+% \hebfont}
+
+\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
diff --git a/tex/context/base/page-flt.tex b/tex/context/base/page-flt.tex
index a02e755eb..35872eceb 100644
--- a/tex/context/base/page-flt.tex
+++ b/tex/context/base/page-flt.tex
@@ -1824,8 +1824,8 @@
\newevery\everytopofpage\relax
-\appendtoks\the\everytopofpage \to\everystarttext
-\appendtoks\global\everytopofpage{}\to\everystoptext
+\appendtoks \the\everytopofpage \to\everystarttext
+\appendtoks\global\everytopofpage\emptytoks\to\everystoptext
% \startpostponing [pagenumber] [+pageoffset]
%
diff --git a/tex/context/base/page-set.tex b/tex/context/base/page-set.tex
index 78c2dd6b2..3dfae1f67 100644
--- a/tex/context/base/page-set.tex
+++ b/tex/context/base/page-set.tex
@@ -842,7 +842,7 @@
\doOTRSETsetgridcells
{\copy\placeholderboxf}
\mofcolumns\columnfirstcell\plusone\noflines
- {\registeredtextarea1\columnfirstcell\scratchbox}% == \hbox
+ {\registeredtextarea1\columnfirstcell\scratchbox}% == \hbox / tricky htcorr == \columnfirstcell
\global\columnlastcell\columnfirstcell
\global\advance\columnlastcell \noflines
\global\lastcolumnlastcell\columnlastcell
@@ -1008,8 +1008,7 @@
\OTRSETcheckcolumnspace\mofcolumns\columnlastcell{#1}%
\fi
\ifenoughcolumncells
- \OTRSETsetgridcells\mofcolumns\columnlastcell\columnhcells\columnvcells
- {\copy#1}
+ \OTRSETsetgridcells\mofcolumns\columnlastcell\columnhcells\columnvcells{\copy#1}%
\OTRSETfillgapsbetweencells\mofcolumns\savedcolumnlastcell % -)
\OTRSETsetvsize
\else
diff --git a/tex/context/base/spec-dpm.tex b/tex/context/base/spec-dpm.tex
index f306c4a5c..65714d74c 100644
--- a/tex/context/base/spec-dpm.tex
+++ b/tex/context/base/spec-dpm.tex
@@ -26,7 +26,7 @@
%D Because no intermediate output format is used, we set the
%D jobsuffix to \PDF.
-\def\jobsuffix{pdf}
+\setjobsuffix{pdf}
%D Literal \PDF\ inclusion is implemented as:
diff --git a/tex/context/base/spec-dpx.tex b/tex/context/base/spec-dpx.tex
index 66884014f..d172489cc 100644
--- a/tex/context/base/spec-dpx.tex
+++ b/tex/context/base/spec-dpx.tex
@@ -35,7 +35,7 @@
%D Because no intermediate output format is used, we set the
%D jobsuffix to \PDF.
-\def\jobsuffix{pdf}
+\setjobsuffix{pdf}
%D DVIPDFMx supports the special command \type{pdf: literal ...}
%D since the version \type{dvipdfmx-20021028}.
diff --git a/tex/context/base/spec-dvi.tex b/tex/context/base/spec-dvi.tex
index daf860cbe..5da86743c 100644
--- a/tex/context/base/spec-dvi.tex
+++ b/tex/context/base/spec-dvi.tex
@@ -115,7 +115,7 @@
\definespecial\dosetpositionpapersize#1#2%
{\xdef\flushDVIpositionpapersize%
{\special{pos:papersize #1 #2}%
- \noexpand\installprogram{dvipos --outfile=\jobname.tuo}%
+ \noexpand\installprogram{dvipos \jobname}%
\global\noexpand\let\noexpand\flushDVIpositionpapersize\relax}}
\prependtoksonce \flushDVIpositionpapersize \to \everyshipout
diff --git a/tex/context/base/spec-fdf.tex b/tex/context/base/spec-fdf.tex
index 77660598c..f5bee9dbb 100644
--- a/tex/context/base/spec-fdf.tex
+++ b/tex/context/base/spec-fdf.tex
@@ -2931,6 +2931,10 @@
{\PDFcode{q \ifdim#1\points=\zeropoint\@@PDFzeroscale\else#1\fi\space 0 0
\ifdim#2\points=\zeropoint\@@PDFzeroscale\else#2\fi\space 0 0 cm}}
+% \def\doPDFstartscaling#1#2% the test is needed because acrobat is bugged!
+% {\PDFcode{q\ifdim#1\points=\zeropoint\else\ifdim#2\points=\zeropoint\else
+% \space#1\space 0 0 #2\space 0 0 cm\fi\fi}}
+
\def\doPDFstopscaling
{\PDFcode{Q}}
diff --git a/tex/context/base/spec-ini.tex b/tex/context/base/spec-ini.tex
index 958f1dbe7..c53fbbd5c 100644
--- a/tex/context/base/spec-ini.tex
+++ b/tex/context/base/spec-ini.tex
@@ -173,18 +173,8 @@
\newevery \everyresetspecials \relax
-%D \macros
-%D {jobsuffix}
-%D
-%D By default, \TEX\ produces \DVI\ files which can be
-%D converted to other filetypes. Sometimes it is handy to
-%D know what the target file will be. In other driver
-%D modules we wil set \type {\jobsuffix} to \type {pdf}.
-
-\def\jobsuffix{dvi}
-
\appendtoksonce
- \def\jobsuffix{dvi}%
+ \ifx\setjobsuffix\undefined\else\setjobsuffix{dvi}\fi
\to \everyresetspecials
%D A rather fundamental difference between special and direct
diff --git a/tex/context/base/spec-tpd.tex b/tex/context/base/spec-tpd.tex
index 479ba7e49..1cb264174 100644
--- a/tex/context/base/spec-tpd.tex
+++ b/tex/context/base/spec-tpd.tex
@@ -164,7 +164,7 @@
%D For some internal testing we need to know the output
%D suffix.
-\def\jobsuffix{pdf}
+\setjobsuffix{pdf}
%D We don't use specials here, which means that we must flush
%D settings before the page is shipped out.
diff --git a/tex/context/base/spec-xtx.tex b/tex/context/base/spec-xtx.tex
index 576560203..ea355abd7 100644
--- a/tex/context/base/spec-xtx.tex
+++ b/tex/context/base/spec-xtx.tex
@@ -8,7 +8,7 @@
%D output format, but by default, it's tranparently
%D converted to \PDF\ by \XETEX.
-\def\jobsuffix{pdf}
+\setjobsuffix{pdf}
%D Rotation looks fine.
@@ -58,6 +58,15 @@
%\installspecial [\dostarttransparency] [or] [2]
%\installspecial [\dostoptransparency] [or] [0]
+%D \macros
+%D {doloadmapfile,doloadmapline,doresetmapfilelist}
+%D
+%D \XETEX\ 0.91 allows map file additions, via a special.
+
+\definespecial\doresetmapfilelist{\special{x:fontmapfile original-empty.map}}
+\definespecial\doloadmapfile #1#2{\special{x:fontmapfile #1#2}}
+\definespecial\doloadmapline #1#2{\special{x:fontmapline #1#2}}
+
%D \XETEX\ supports \type{\doPDFdestination} and
%D \type{\doPDFbookmark} inherited straight from \DVIPDFMX.
diff --git a/tex/context/base/supp-fun.tex b/tex/context/base/supp-fun.tex
index 444e39fc7..8d46a49f2 100644
--- a/tex/context/base/supp-fun.tex
+++ b/tex/context/base/supp-fun.tex
@@ -118,8 +118,7 @@
\let\DroppedIndent\!!zeropoint \def\DroppedLines{0}
-\def\DroppedString%
- {ABCDEFGHIJKLMNOPQRSTUVWXYZ}
+\def\DroppedString{ABCDEFGHIJKLMNOPQRSTUVWXYZ}
\let\globaldropcaps\global % will be an option, but on by default
diff --git a/tex/context/base/xtag-ini.tex b/tex/context/base/xtag-ini.tex
index edd79873c..06e236f46 100644
--- a/tex/context/base/xtag-ini.tex
+++ b/tex/context/base/xtag-ini.tex
@@ -228,7 +228,8 @@
%D a way around this, but for convenience \TEXEXEC\ will take
%D care of processing raw \XML\ files in a transparant way.
-\chardef\XMLtokensreduction\zerocount
+\chardef\XMLtokensreduction\zerocount % cmr as default
+\chardef\XMLtokensreduction\plustwo % lmr as default
% \def\alwaysreduceXMLtokens {\XMLtokensreduction\plusone}
% \def\permanentreduceXMLtokens{\XMLtokensreduction\plustwo}
@@ -271,19 +272,18 @@
* there; this is needed because reading from file goes wrong
* (eating up argument)
-.unexpanded.gdef.enableXML*
- B.catcode`.!=.@@other*
- .catcode`.?=.@@other*
- .catcode`.:=.@@other* active in french
- .catcode`.;=.@@other* active in french
- .catcode`.&=.@@active .let&=.doXMLentity*
- .catcode`.<=.@@active .unexpanded.def<B.doXMLelementE*
+.unexpanded.gdef.enableXML
+ B.catcode`.!=.@@other
+ .catcode`.?=.@@other
+ .catcode`.:=.@@other * active in french
+ .catcode`.;=.@@other * active in french
+ .catcode`.&=.@@active .let&=.doXMLentity
+ .catcode`.<=.@@active .unexpanded.def<B.doXMLelementE
.catcode`.>=.@@other
.catcode`."=.@@other
.catcode`./=.@@other
.catcode`.'=.@@other
.catcode`.~=.@@other
-* .catcode`.#=.@@active .def#B&hash;E*
.catcode`.#=.@@other
.ifcase.XMLtokensreduction
.entitleXMLescapetokens
@@ -296,7 +296,7 @@
.the.everyenableXML
E
-.gdef.activateXMLescapetokens*
+.gdef.activateXMLescapetokens
B.catcode`.$=.@@active
.catcode`.%=.@@active
.catcode`.\=.@@active
@@ -307,8 +307,8 @@
.catcode`.|=.@@active
E
-.gdef.entitleXMLescapetokens*
- B.activateXMLescapetokens*
+.gdef.entitleXMLescapetokens
+ B.activateXMLescapetokens
.def#B&tex-hash;E*
.def$B&tex-dollar;E*
.def%B&tex-percent;E*
@@ -320,8 +320,8 @@
.def|B&tex-bar;E*
E
-.gdef.reduceXMLescapetokens*
- B.activateXMLescapetokens*
+.gdef.reduceXMLescapetokens
+ B.activateXMLescapetokens
.def#B.string#E*
.def$B.string$E*
.def%B.string%E*
@@ -333,8 +333,8 @@
.def|B.string|E*
E
-.gdef.ignoreXMLescapetokens*
- B.catcode`.$=.@@other * or letter ?
+.gdef.ignoreXMLescapetokens
+ B.catcode`.$=.@@other
.catcode`.%=.@@other
.catcode`.\=.@@other
.catcode`.^=.@@other
@@ -347,14 +347,14 @@
* The following macro can be invokes when reading from
* an auxiliary file.
-.unexpanded.gdef.enableXMLelements*
+.unexpanded.gdef.enableXMLelements
B.catcode60=.@@active * .catcode`.<=.@@active
.catcode62=.@@other * .catcode`.>=.@@other
.unexpanded.def<B.doXMLelementE*
.processingXMLtrue
E
-.unexpanded.gdef.disableXMLelements*
+.unexpanded.gdef.disableXMLelements
B.catcode60=.@@active * .catcode`.<=.@@active
.catcode62=.@@other * .catcode`.>=.@@other
.let<.relax * new
@@ -1479,7 +1479,7 @@
% \fi\fi
% \dodoparseXMLarguments}
%
-% we squeeze out one more assignment
+% we can get rid of one more assignment
\long\def\doparseXMLarguments#1% space goes ok
{\if#1>%
diff --git a/tex/context/base/xtag-utf.tex b/tex/context/base/xtag-utf.tex
index 0e25bafae..b978c3339 100644
--- a/tex/context/base/xtag-utf.tex
+++ b/tex/context/base/xtag-utf.tex
@@ -16,6 +16,6 @@
%D This filter is kind of obsolete, since \UTF\ is not
%D limited to \XML. So, here we only enable \UTF\ support.
-\enableregime[utf]
+\chardef\XMLtokensreduction\plustwo \enableregime[utf]
\endinput
diff --git a/tex/context/interface/keys-cz.xml b/tex/context/interface/keys-cz.xml
index c060a3b36..6e10850df 100644
--- a/tex/context/interface/keys-cz.xml
+++ b/tex/context/interface/keys-cz.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2005.02.23">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2005.03.01">
<cd:variables>
<cd:variable name="one" value="jedna"/>
diff --git a/tex/context/interface/keys-de.xml b/tex/context/interface/keys-de.xml
index 336e75170..9d159ae35 100644
--- a/tex/context/interface/keys-de.xml
+++ b/tex/context/interface/keys-de.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2005.02.23">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2005.03.01">
<cd:variables>
<cd:variable name="one" value="eins"/>
diff --git a/tex/context/interface/keys-en.xml b/tex/context/interface/keys-en.xml
index 6c7ef2235..4666fc200 100644
--- a/tex/context/interface/keys-en.xml
+++ b/tex/context/interface/keys-en.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2005.02.23">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2005.03.01">
<cd:variables>
<cd:variable name="one" value="one"/>
diff --git a/tex/context/interface/keys-it.xml b/tex/context/interface/keys-it.xml
index a1e4f51aa..543659141 100644
--- a/tex/context/interface/keys-it.xml
+++ b/tex/context/interface/keys-it.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2005.02.23">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2005.03.01">
<cd:variables>
<cd:variable name="one" value="uno"/>
diff --git a/tex/context/interface/keys-nl.xml b/tex/context/interface/keys-nl.xml
index f0b2d0acf..a6376207f 100644
--- a/tex/context/interface/keys-nl.xml
+++ b/tex/context/interface/keys-nl.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2005.02.23">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2005.03.01">
<cd:variables>
<cd:variable name="one" value="een"/>
diff --git a/tex/context/interface/keys-ro.xml b/tex/context/interface/keys-ro.xml
index c88a91cea..d9f920dd0 100644
--- a/tex/context/interface/keys-ro.xml
+++ b/tex/context/interface/keys-ro.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2005.02.23">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2005.03.01">
<cd:variables>
<cd:variable name="one" value="unu"/>
diff --git a/web2c/context.cnf b/web2c/context.cnf
index 0a957eea6..c72e1e8a9 100644
--- a/web2c/context.cnf
+++ b/web2c/context.cnf
@@ -35,6 +35,8 @@ MPPOOL = .;$TEXFORMATS
WEB2C = $TEXMF/web2c
+TEXFORMATS.xetex = .;$TEXMF/web2c/{xetex,}//
+
% fonts, for the moment we also support the old enc/map locations
OSFONTDIR =