summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--context/data/context.properties15
-rw-r--r--context/data/scite-ctx.properties111
-rw-r--r--scripts/context/perl/texexec.pl111
-rw-r--r--scripts/context/ruby/base/kpse.rb2
-rw-r--r--scripts/context/ruby/base/pdf.rb2
-rw-r--r--scripts/context/ruby/ctxtools.rb1
-rw-r--r--scripts/context/ruby/newtexexec.rb2
-rw-r--r--scripts/context/ruby/texmfstart.rb4
-rw-r--r--tex/context/base/context.tex2
-rw-r--r--tex/context/base/core-con.tex36
-rw-r--r--tex/context/base/core-job.tex8
-rw-r--r--tex/context/base/core-pos.tex2
-rw-r--r--tex/context/base/core-spa.tex29
-rw-r--r--tex/context/base/enco-pfr.tex22
-rw-r--r--tex/context/base/lang-chi.tex38
-rw-r--r--tex/context/base/lang-sla.tex48
-rw-r--r--tex/context/base/meta-ini.tex19
-rw-r--r--tex/context/base/mult-con.tex5
-rw-r--r--tex/context/base/page-mar.tex2
-rw-r--r--tex/context/base/pdfr-ec.tex145
-rw-r--r--tex/context/base/type-pre.tex14
-rw-r--r--tex/context/base/unic-ini.tex86
-rw-r--r--tex/context/base/xtag-ext.tex48
-rw-r--r--tex/context/base/xtag-ini.tex3
-rw-r--r--tex/context/interface/cont-cz.xml3
-rw-r--r--tex/context/interface/cont-de.xml3
-rw-r--r--tex/context/interface/cont-en.xml3
-rw-r--r--tex/context/interface/cont-it.xml3
-rw-r--r--tex/context/interface/cont-nl.xml3
-rw-r--r--tex/context/interface/cont-ro.xml3
-rw-r--r--tex/context/interface/keys-cz.xml3
-rw-r--r--tex/context/interface/keys-de.xml3
-rw-r--r--tex/context/interface/keys-en.xml3
-rw-r--r--tex/context/interface/keys-it.xml3
-rw-r--r--tex/context/interface/keys-nl.xml3
-rw-r--r--tex/context/interface/keys-ro.xml3
-rw-r--r--web2c/context.cnf11
37 files changed, 687 insertions, 115 deletions
diff --git a/context/data/context.properties b/context/data/context.properties
index d0cf29fe9..fed77a2cd 100644
--- a/context/data/context.properties
+++ b/context/data/context.properties
@@ -103,6 +103,10 @@ context.distribution.writable=1
command.save.before=1
+# extensions
+
+import scite-ctx
+
# hard coded compile / build / go
command.compile.$(file.patterns.context)=$(name.context.concheck) $(FileNameExt)
@@ -295,10 +299,18 @@ Alt+F12|IDM_STOPEXECUTE|\
# Editor: fonts (16.5/11.5)
-use.monospaced=1
font.monospace=font:LMTypewriter10,size:16.5
font.errorfont=font:LMTypewriter10,size:11.5
+font.base=$(font.monospace)
+#~ font.small=$(font.monospace)
+font.comment=$(font.monospace)
+font.text=$(font.monospace)
+font.text.comment=$(font.monospace)
+font.embedded.base=$(font.monospace)
+font.embedded.comment=$(font.monospace)
+font.vbs=$(font.monospace)
+
# Editor: colors
color.back.linepanel=back:#A7A7A7
@@ -326,6 +338,7 @@ tabbar.multiline=1
# Editor: handy anyway
+line.margin.visible=1
line.numbers=5
title.full.path=1
strip.trailing.spaces=1
diff --git a/context/data/scite-ctx.properties b/context/data/scite-ctx.properties
new file mode 100644
index 000000000..bf5625b98
--- /dev/null
+++ b/context/data/scite-ctx.properties
@@ -0,0 +1,111 @@
+# author
+#
+# Hans Hagen - PRAGMA ADE - www.pragma-ade.com
+#
+# environment variable
+#
+# CTXSPELLPATH=t:/spell
+#
+# auto language detection
+#
+# % version =1.0 language=uk
+# <?xml version='1.0' language='uk' ?>
+
+ext.lua.auto.reload=1
+ext.lua.startup.script=$(SciteDefaultHome)/scite-ctx.lua
+
+#~ extension.$(file.patterns.context)=scite-ctx.lua
+#~ extension.$(file.patterns.example)=scite-ctx.lua
+
+#~ ext.lua.reset=1
+#~ ext.lua.auto.reload=1
+#~ ext.lua.startup.script=t:/lua/scite-ctx.lua
+
+ctx.menulist.default=\
+ wrap=wrap_text|\
+ unwrap=unwrap_text|\
+ sort=sort_text|\
+ check=check_text|\
+ reset=reset_text
+
+ctx.menulist.context=\
+ wrap=wrap_text|\
+ unwrap=unwrap_text|\
+ sort=sort_text|\
+ document=document_text|\
+ quote=quote_text|\
+ compound=compound_text|\
+ check=check_text|\
+ reset=reset_text
+
+ctx.menulist.example=\
+ wrap=wrap_text|\
+ unwrap=unwrap_text|\
+ sort=sort_text|\
+ document=document_text|\
+ quote=quote_text|\
+ compound=compound_text|\
+ check=check_text|\
+ reset=reset_text
+
+ctx.wraptext.length=65
+
+ctx.spellcheck.language=auto
+ctx.spellcheck.wordsize=3
+ctx.spellcheck.wordpath=ENV(CTXSPELLPATH)
+
+ctx.spellcheck.wordfile.all=spell-uk.txt,spell-nl.txt
+
+ctx.spellcheck.wordfile.uk=spell-uk.txt
+ctx.spellcheck.wordfile.nl=spell-nl.txt
+ctx.spellcheck.wordsize.uk=3
+ctx.spellcheck.wordsize.nl=3
+
+ctx.helpinfo=\
+ Shift + F11 pop up menu with ctx options|\
+ |\
+ Ctrl + L check spelling|\
+ Ctrl + M wrap text (auto indent)|\
+ Ctrl + R reset spelling results
+
+command.name.21.$(file.patterns.context)=CTX Action List
+command.subsystem.21.$(file.patterns.context)=3
+command.21.$(file.patterns.context)=show_menu $(ctx.menulist.context)
+command.groupundo.21.$(file.patterns.context)=yes
+command.save.before.21.$(file.patterns.context)=2
+command.shortcut.21.$(file.patterns.context)=Shift+F11
+
+command.name.21.$(file.patterns.example)=CTX Action List
+command.subsystem.21.$(file.patterns.example)=3
+command.21.$(file.patterns.example)=show_menu $(ctx.menulist.example)
+command.groupundo.21.$(file.patterns.example)=yes
+command.save.before.21.$(file.patterns.example)=2
+command.shortcut.21.$(file.patterns.example)=Shift+F11
+
+#~ command.name.21.*=CTX Action List
+#~ command.subsystem.21.*=3
+#~ command.21.*=show_menu $(ctx.menulist.default)
+#~ command.groupundo.21.*=yes
+#~ command.save.before.21.*=2
+#~ command.shortcut.21.*=Shift+F11
+
+command.name.22.*=CTX Check Text
+command.subsystem.22.*=3
+command.22.*=check_text
+command.groupundo.22.*=yes
+command.save.before.22.*=2
+command.shortcut.22.*=Ctrl+L
+
+command.name.23.*=CTX Wrap Text
+command.subsystem.23.*=3
+command.23.*=wrap_text
+command.groupundo.23.*=yes
+command.save.before.23.*=2
+command.shortcut.23.*=Ctrl+M
+
+command.name.24.*=CTX Reset Text
+command.subsystem.24.*=3
+command.24.*=reset_text
+command.groupundo.24.*=yes
+command.save.before.24.*=2
+command.shortcut.24.*=Ctrl+R
diff --git a/scripts/context/perl/texexec.pl b/scripts/context/perl/texexec.pl
index 9a8f2bff0..6335e6900 100644
--- a/scripts/context/perl/texexec.pl
+++ b/scripts/context/perl/texexec.pl
@@ -51,6 +51,7 @@ use Class::Struct; # needed for help subsystem
use FindBin;
use File::Compare;
use File::Temp;
+use Digest::MD5;
#~ use IO::Handle; autoflush STDOUT 1;
@@ -428,7 +429,7 @@ if ( ( $LogFile ne '' ) && ( $LogFile =~ /\w+\.log$/io ) ) {
*STDERR = *LOGFILE;
}
-my $Program = " TeXExec 5.4.2 - ConTeXt / PRAGMA ADE 1997-2005";
+my $Program = " TeXExec 5.4.3 - ConTeXt / PRAGMA ADE 1997-2005";
print "\n$Program\n\n";
@@ -1641,42 +1642,69 @@ sub CopyFile { # agressive copy, works for open files like in gs
close(OUT);
}
+#~ sub CheckMPChanges {
+ #~ my $JobName = shift;
+ #~ my $checksum = 0;
+ #~ my $MPJobName = MPJobName( $JobName, "mpgraph" );
+ #~ if ( open( MP, $MPJobName ) ) {
+ #~ while (<MP>) {
+ #~ unless (/random/oi) {
+ #~ $checksum += do { unpack( "%32C*", <MP> ) % 65535 }
+ #~ }
+ #~ }
+ #~ close(MP);
+ #~ }
+ #~ $MPJobName = MPJobName( $JobName, "mprun" );
+ #~ if ( open( MP, $MPJobName ) ) {
+ #~ while (<MP>) {
+ #~ unless (/random/oi) {
+ #~ $checksum += do { unpack( "%32C*", <MP> ) % 65535 }
+ #~ }
+ #~ }
+ #~ close(MP);
+ #~ }
+ #~ print " mpgraph/mprun : $checksum\n";
+ #~ return $checksum;
+#~ }
+
sub CheckMPChanges {
- my $JobName = shift;
- my $checksum = 0;
+ my $JobName = shift; my $str = '' ;
my $MPJobName = MPJobName( $JobName, "mpgraph" );
if ( open( MP, $MPJobName ) ) {
- while (<MP>) {
- unless (/random/oi) {
- $checksum += do { unpack( "%32C*", <MP> ) % 65535 }
- }
- }
- close(MP);
+ $str .= do { local $/ ; <MP> ; } ;
+ close(MP) ;
}
$MPJobName = MPJobName( $JobName, "mprun" );
if ( open( MP, $MPJobName ) ) {
- while (<MP>) {
- unless (/random/oi) {
- $checksum += do { unpack( "%32C*", <MP> ) % 65535 }
- }
- }
- close(MP);
+ $str .= do { local $/ ; <MP> ; } ;
+ close(MP) ;
}
- return $checksum;
+ $str =~ s/^.*?random.*?$//oim ;
+ return Digest::MD5::md5_hex($str) ;
}
+#~ sub CheckTubChanges {
+ #~ my $JobName = shift;
+ #~ my $checksum = 0;
+ #~ if ( open( TUB, "$JobName.tub" ) ) {
+ #~ while (<TUB>) {
+ #~ $checksum += do { unpack( "%32C*", <TUB> ) % 65535 }
+ #~ }
+ #~ close(TUB);
+ #~ }
+ #~ return $checksum;
+#~ }
+
sub CheckTubChanges {
- my $JobName = shift;
- my $checksum = 0;
+ my $JobName = shift; my $str = '' ;
if ( open( TUB, "$JobName.tub" ) ) {
- while (<TUB>) {
- $checksum += do { unpack( "%32C*", <TUB> ) % 65535 }
- }
+ $str = do { local $/ ; <TUB> ; } ;
close(TUB);
}
- return $checksum;
+ return Digest::MD5::md5_hex($str);
}
+
my $DummyFile = 0;
sub isXMLfile {
@@ -1839,8 +1867,8 @@ sub RunConTeXtFile {
MakeOptionFile( 0, 0, $JobName, $OriSuffix, 2 );
}
print " TeX run : $TeXRuns\n\n";
- my ( $mpchecksumbefore, $mpchecksumafter ) = ( 0, 0 );
- my ( $tubchecksumbefore, $tubchecksumafter ) = ( 0, 0 );
+ my ( $mpchecksumbefore, $mpchecksumafter ) = ( '', '' );
+ my ( $tubchecksumbefore, $tubchecksumafter ) = ( '', '' );
if ($AutoMPRun) { $mpchecksumbefore = CheckMPChanges($JobName) }
$tubchecksumbefore = CheckTubChanges($JobName) ;
$Problems = RunTeX( $JobName, $JobSuffix );
@@ -1855,11 +1883,11 @@ sub RunConTeXtFile {
if ($AutoMPRun) {
$StopRunning =
( $StopRunning
- && ( $mpchecksumafter == $mpchecksumbefore ) );
+ && ( $mpchecksumafter eq $mpchecksumbefore ) );
}
$StopRunning =
( $StopRunning
- && ( $tubchecksumafter == $tubchecksumbefore ) );
+ && ( $tubchecksumafter eq $tubchecksumbefore ) );
}
}
if ( ( $NOfRuns == 1 ) && $ForceTeXutil ) {
@@ -2669,7 +2697,30 @@ sub RunMP { ###########
}
}
-my $mpochecksum = 0;
+my $mpochecksum = '';
+
+#~ sub checkMPgraphics { # also see makempy
+ #~ my $MpName = shift;
+ #~ if ( $MakeMpy ne '' ) { $MpName .= " --$MakeMpy " } # extra switches
+ #~ if ($MpyForce) { $MpName .= " --force " } # dirty
+ #~ else {
+ #~ return 0 unless -s "$MpName.mpo" > 32;
+ #~ return 0 unless ( open( MPO, "$MpName.mpo" ) );
+ #~ $mpochecksum = do { local $/; unpack( "%32C*", <MPO> ) % 65535 };
+ #~ close(MPO);
+ #~ if ( open( MPY, "$MpName.mpy" ) ) {
+ #~ my $str = <MPY>;
+ #~ chomp $str;
+ #~ close(MPY);
+ #~ if ( $str =~ /^\%\s*mpochecksum\s*\:\s*(\d+)/o ) {
+ #~ return 0 if ( ( $mpochecksum eq $1 ) && ( $mpochecksum ne 0 ) );
+ #~ }
+ #~ }
+ #~ }
+ #~ RunPerlScript( "makempy", "$MpName" );
+ #~ print " second MP run needed : text graphics found\n";
+ #~ return 1;
+#~ }
sub checkMPgraphics { # also see makempy
my $MpName = shift;
@@ -2678,14 +2729,14 @@ sub checkMPgraphics { # also see makempy
else {
return 0 unless -s "$MpName.mpo" > 32;
return 0 unless ( open( MPO, "$MpName.mpo" ) );
- $mpochecksum = do { local $/; unpack( "%32C*", <MPO> ) % 65535 };
+ $mpochecksum = do { local $/; Digest::MD5::md5_hex(<MPO>) ; };
close(MPO);
if ( open( MPY, "$MpName.mpy" ) ) {
my $str = <MPY>;
chomp $str;
close(MPY);
- if ( $str =~ /^\%\s*mpochecksum\s*\:\s*(\d+)/o ) {
- return 0 if ( ( $mpochecksum eq $1 ) && ( $mpochecksum ne 0 ) );
+ if ( $str =~ /^\%\s*mpochecksum\s*\:\s*([a-fA-F0-9]+)/o ) {
+ return 0 if ( ( $mpochecksum eq $1 ) && ( $mpochecksum ne '' ) );
}
}
}
diff --git a/scripts/context/ruby/base/kpse.rb b/scripts/context/ruby/base/kpse.rb
index bfd2baa30..3c3cc21df 100644
--- a/scripts/context/ruby/base/kpse.rb
+++ b/scripts/context/ruby/base/kpse.rb
@@ -198,6 +198,8 @@ module Kpse
end
end
end
+ # needed !
+ begin File.makedirs(formatpath) ; rescue ; end ;
# fall back to current path
formatpath = '.' if formatpath.empty? || ! FileTest.writable?(formatpath)
# append engine but prevent duplicates
diff --git a/scripts/context/ruby/base/pdf.rb b/scripts/context/ruby/base/pdf.rb
index 49d177b5d..d8cbf9e05 100644
--- a/scripts/context/ruby/base/pdf.rb
+++ b/scripts/context/ruby/base/pdf.rb
@@ -45,8 +45,6 @@ module PDFview
end
-puts ('' || false)
-
# PDFview.open("t:/document/show-exa.pdf")
# PDFview.open("t:/document/show-gra.pdf")
# PDFview.close("t:/document/show-exa.pdf")
diff --git a/scripts/context/ruby/ctxtools.rb b/scripts/context/ruby/ctxtools.rb
index d55f27065..10cff23cf 100644
--- a/scripts/context/ruby/ctxtools.rb
+++ b/scripts/context/ruby/ctxtools.rb
@@ -17,7 +17,6 @@
#
# todo: move kpse call to kpse class/module
-
banner = ['CtxTools', 'version 1.2.2', '2004/2005', 'PRAGMA ADE/POD']
unless defined? ownpath
diff --git a/scripts/context/ruby/newtexexec.rb b/scripts/context/ruby/newtexexec.rb
index 9d9c880bd..9f0084efe 100644
--- a/scripts/context/ruby/newtexexec.rb
+++ b/scripts/context/ruby/newtexexec.rb
@@ -16,7 +16,7 @@ require 'base/texutil'
require 'ftools' # needed ?
require 'base/kpse' # needed ?
-require 'base/pdf' # needed ?
+# require 'base/pdf' # needed ?
require 'base/state' # needed ?
require 'base/file' # needed ?
diff --git a/scripts/context/ruby/texmfstart.rb b/scripts/context/ruby/texmfstart.rb
index fabcee2f9..083e7532b 100644
--- a/scripts/context/ruby/texmfstart.rb
+++ b/scripts/context/ruby/texmfstart.rb
@@ -57,6 +57,7 @@ $predefined = Hash.new
$suffixinputs['pl'] = 'PERLINPUTS'
$suffixinputs['rb'] = 'RUBYINPUTS'
$suffixinputs['py'] = 'PYTHONINPUTS'
+$suffixinputs['lua'] = 'LUAINPUTS'
$suffixinputs['jar'] = 'JAVAINPUTS'
$suffixinputs['pdf'] = 'PDFINPUTS'
@@ -80,7 +81,7 @@ if ENV['TEXMFSTART_MODE'] = 'experimental' then
$predefined['pstopdf'] = 'newpstopdf.rb'
end
-$scriptlist = 'rb|pl|py|jar'
+$scriptlist = 'rb|pl|py|lua|jar'
$documentlist = 'pdf|ps|eps|htm|html'
$editor = ENV['EDITOR'] || ENV['editor'] || 'scite'
@@ -91,6 +92,7 @@ $applications['unknown'] = ''
$applications['perl'] = $applications['pl'] = 'perl'
$applications['ruby'] = $applications['rb'] = 'ruby'
$applications['python'] = $applications['py'] = 'python'
+$applications['lua'] = $applications['lua'] = 'lua'
$applications['java'] = $applications['jar'] = 'java'
if $mswindows then
diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex
index 7e88bb7cc..355bc7e47 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.07.21}
+\def\contextversion{2005.07.27}
%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-con.tex b/tex/context/base/core-con.tex
index 364ed89f0..a6d66641c 100644
--- a/tex/context/base/core-con.tex
+++ b/tex/context/base/core-con.tex
@@ -138,24 +138,24 @@
\beginTEX
-\def\doconvertcharacters#1#2%
- {\ifnum#2>26
+\def\dodoconvertcharacters#1#2#3%
+ {\ifnum#3>#1
\bgroup
- \!!counta#2\relax
+ \!!counta#3\relax
\ifnum\!!counta>\zerocount
\advance\!!counta \minusone
\!!countb\!!counta
- \divide\!!counta 26
+ \divide\!!counta #1%
\!!countc\!!counta
- \multiply\!!countc 26
+ \multiply\!!countc #1%
\advance\!!countb -\!!countc
- \doconvertcharacters#1{\!!counta}%
+ \doconvertcharacters#3{\!!counta}%
\advance\!!countb \plusone
- #1{\the\!!countb}%
+ #3{\the\!!countb}%
\fi
\egroup
\else
- #1{#2}% pure expansion, used in references
+ #2{#3}% pure expansion, used in references
\fi}
\endTEX
@@ -164,18 +164,20 @@
\beginETEX \numexpr
-\def\doconvertcharacters#1#2%
- {\ifcase#2\else
- \ifnum#2>26
- \expandafter\doconvertcharacters\expandafter#1\expandafter{\the\numexpr(#2+12)/26-1\relax}%
- \expandafter#1\expandafter{\the\numexpr#2-((#2+12)/26-)*26\relax}%
+\def\dodoconvertcharacters#1#2#3%
+ {\ifcase#3\else
+ \ifnum#3>#1
+ \expandafter\doconvertcharacters\expandafter#2\expandafter{\the\numexpr(#3+12)/#1-1\relax}%
+ \expandafter#2\expandafter{\the\numexpr#3-((#3+12)/#1-1)*#1\relax}%
\else
- \expandafter#1\expandafter{\number#2}%
+ \expandafter#2\expandafter{\number#3}%
\fi
\fi}
\endETEX
+\def\doconvertcharacters{\dodoconvertcharacters{26}}
+
\def\characters{\doconvertcharacters\character}
\def\Characters{\doconvertcharacters\Character}
@@ -184,8 +186,8 @@
%D
%D Why should we only honour the romans, and not the greek?
-\def\greeknumerals#1% watch the \normalxi
- {\mathematics
+\def\greeknumerals#1%
+ {% no longer needed: \mathematics
{\ifcase#1\unknowncharacter\or
\alpha \or \beta \or \gamma \or \delta \or
\varepsilon \or \zeta \or \eta \or \theta \or
@@ -198,7 +200,7 @@
\fi}}
\def\Greeknumerals#1%
- {\mathematics
+ {% no longer needed: \mathematics
{\ifcase#1\unknowncharacter \or
\Alpha \or \Beta \or \Gamma \or \Delta \or
\Epsilon \or \Zeta \or \Eta \or \Theta \or
diff --git a/tex/context/base/core-job.tex b/tex/context/base/core-job.tex
index 10c601786..b7e203240 100644
--- a/tex/context/base/core-job.tex
+++ b/tex/context/base/core-job.tex
@@ -249,12 +249,12 @@
%\the\everybye %
%\the\everygoodbye % == \end (new)
%\expandafter\normalend %
- \expandafter\end
+ \expandafter\finalend
\fi}
-\let\normalend=\end
+\let\normalend\end
-\def\end
+\def\finalend
{\ifnum\textlevel>\zerocount \else
\the\everybye
\the\everygoodbye
@@ -263,6 +263,8 @@
\expandafter\normalend
\fi}
+\let\end\finalend
+
\def\emergencyend
{\writestatus\m!systems{invalid \@EA\string\csname\e!start\v!text\endcsname...\@EA\string\csname\e!stop\v!text\endcsname\space structure}%
\stoptext}
diff --git a/tex/context/base/core-pos.tex b/tex/context/base/core-pos.tex
index 2b1bbb8e5..429aefeec 100644
--- a/tex/context/base/core-pos.tex
+++ b/tex/context/base/core-pos.tex
@@ -2364,7 +2364,7 @@
% \vadjust{\box#1}%
% \egroup}
-\def\dopositionmarginbox#1%
+\def\dopositionmarginbox#1% how about page boundaries !
{\bgroup
\ifrepositionmarginbox
\doglobal\increment\currentmarginpos
diff --git a/tex/context/base/core-spa.tex b/tex/context/base/core-spa.tex
index e52735f80..c96405246 100644
--- a/tex/context/base/core-spa.tex
+++ b/tex/context/base/core-spa.tex
@@ -992,8 +992,8 @@
\ifblankflexible \else
\bigskipamount1\bigskipamount
\fi
- \medskipamount \bigskipamount \divide\medskipamount 2
- \smallskipamount\bigskipamount \divide\smallskipamount 4 }%
+ \medskipamount \bigskipamount \divide\medskipamount \plustwo
+ \smallskipamount\bigskipamount \divide\smallskipamount\plusfour}%
\def\complexsetupblank[#1]% more \let's
{\ifgridsnapping
@@ -1183,7 +1183,8 @@
% \noindent\hskip\parindent
% \fi \fi}
-\let\currentindentation\empty % amount
+\let\currentindentation\empty % amount/keyword
+% \let\normalindentation \empty % used for reinstating normal indentation
\let\currentindenting \empty % method
\newdimen\ctxparindent
@@ -1215,6 +1216,14 @@
\convertcommand\!!stringa\to\!!stringa
\executeifdefined{\??in:\!!stringa}{\edef\currentindentation{#1}\simplesetupindenting}}
+\def\docomplexsetupindenting#1%
+ {\edef\!!stringa{#1}% catch #1=\somedimen
+ \convertcommand\!!stringa\to\!!stringa
+ \executeifdefined{\??in:\!!stringa}
+ {\edef\currentindentation{#1}%
+ \let\normalindentation\currentindentation
+ \simplesetupindenting}}
+
\def\simplesetupindenting % empty case
{\assigndimension\currentindentation\ctxparindent{1em}{1.5em}{2em}}
@@ -1240,6 +1249,11 @@
\defineindentingmethod [\v!odd] {\chardef\indentingtoggle\plusone}
\defineindentingmethod [\v!even] {\chardef\indentingtoggle\plustwo}
+\defineindentingmethod [\v!normal] {\ifx\normalindentation\empty\else
+ \let\currentindentation\normalindentation
+ \simplesetupindenting
+ \fi}
+
\def\noindenting{\indenting[\v!no, \v!next ]} % was \nietinspringen
\def\doindenting{\indenting[\v!yes,\v!first]} % was \welinspringen
@@ -1410,9 +1424,10 @@
\def\packed
{\nointerlineskip}
-\def\godown[#1]% nog eens mooier, relateren aan blanko
- {\nointerlineskip
- \vskip#1 }
+\def\godown[#1]%
+ {\relax
+ \ifhmode\endgraf\fi
+ \ifvmode\nointerlineskip\vskip#1\relax}
%D A couple of plain macros:
@@ -4339,7 +4354,7 @@
\!!minus#3\fontdimen4\font}
\def\fixedspaceamount#1%
- {#1\fontdimen2\font}
+ {#1\fontdimen2\font}
\setupwhitespace
[\v!none]
diff --git a/tex/context/base/enco-pfr.tex b/tex/context/base/enco-pfr.tex
index ee9857a0e..9e1e853b5 100644
--- a/tex/context/base/enco-pfr.tex
+++ b/tex/context/base/enco-pfr.tex
@@ -124,7 +124,7 @@
{\donefalse % we use boolean due to \par
\doifundefined{\pdffontresource}% should be \long
{\doif{#1}{\currentencoding}{\donetrue}}%
- \ifdone
+ \ifdone % pdftex !
\immediate\pdfobj stream {#2}%
\setxvalue{\pdffontresource}{\the\pdflastobj}%
\fi}
@@ -189,7 +189,7 @@
\dodoincludepdffontresource
\fi}
-\def\dodoincludepdffontresource%
+\def\dodoincludepdffontresource
{\ifx\currentencoding\empty \else \ifx\currentencoding\s!default \else
\@EA\ifx\csname\pdffontfileresource\endcsname\relax\else
\edef\xpdffontfileresource{\csname\pdffontfileresource\endcsname}%
@@ -209,13 +209,21 @@
\endTEX
-
%D For the moment, we keep this definition here, if only
%D because \type {\usepdffontencoding} is not defined in the
-%D core. In the end, this will go to enco-il2.
+%D core. In the end, this will go to \type {enco-*.tex}.
+%D
+%D Test:
+%D
+%D \starttyping
+%D \useencoding[pfr] \usetypescript[palatino][ec] \setupbodyfont[palatino]
+%D
+%D \starttext
+%D fi ff ffi
+%D \stoptext
+%D \stoptyping
-\startencoding [il2]
- \usepdffontresource il2
-\stopencoding
+\startencoding [il2] \usepdffontresource il2 \stopencoding
+\startencoding [ec] \usepdffontresource ec \stopencoding
\protect \endinput
diff --git a/tex/context/base/lang-chi.tex b/tex/context/base/lang-chi.tex
index b0ac6b1d5..b6c3ba20a 100644
--- a/tex/context/base/lang-chi.tex
+++ b/tex/context/base/lang-chi.tex
@@ -34,26 +34,26 @@
\c!date={\v!month,\ ,\v!day,{,\ },\v!year},
\c!state=\v!stop]
-\setupheadtext [\s!cn] [\v!content={\cnencoding\cnencodedcontents}]
-\setupheadtext [\s!cn] [\v!tables={\cnencoding\cnencodedtables}]
-\setupheadtext [\s!cn] [\v!figures={\cnencoding\cnencodedfigures}]
-\setupheadtext [\s!cn] [\v!graphics=Graphics]
-\setupheadtext [\s!cn] [\v!intermezzi=Intermezzos]
-\setupheadtext [\s!cn] [\v!index={\cnencoding\cnencodedindex}]
+\setupheadtext [\s!cn] [\v!content={\cnencoding\cnencodedcontents}]
+\setupheadtext [\s!cn] [\v!tables={\cnencoding\cnencodedtables}]
+\setupheadtext [\s!cn] [\v!figures={\cnencoding\cnencodedfigures}]
+\setupheadtext [\s!cn] [\v!graphics=Graphics]
+\setupheadtext [\s!cn] [\v!intermezzi=Intermezzos]
+\setupheadtext [\s!cn] [\v!index={\cnencoding\cnencodedindex}]
\setupheadtext [\s!cn] [\v!abbreviations={\cnencoding\cnencodedabbreviations}]
-\setupheadtext [\s!cn] [\v!logos={\cnencoding\cnencodedlogos}]
-\setupheadtext [\s!cn] [\v!units={\cnencoding\cnencodedunits}]
-
-\setuplabeltext [\s!cn] [\v!table={\cnencoding\cnencodedtable}]
-\setuplabeltext [\s!cn] [\v!figure={\cnencoding\cnencodedfigure}]
-\setuplabeltext [\s!cn] [\v!intermezzo=Intermezzo ]
-\setuplabeltext [\s!cn] [\v!graphic=Illustration ]
-\setuplabeltext [\s!cn] [\v!appendix=]
-\setuplabeltext [\s!cn] [\v!part={\cnencoding\cnencodedintro,\cnencoding\cnencodedpart}]
-\setuplabeltext [\s!cn] [\v!chapter={\cnencoding\cnencodedintro,\cnencoding\cnencodedchapter}]
-\setuplabeltext [\s!cn] [\v!section={\cnencoding\cnencodedintro,\cnencoding\cnencodedsection}]
-\setuplabeltext [\s!cn] [\v!line=line ]
-\setuplabeltext [\s!cn] [\v!lines=lines ]
+\setupheadtext [\s!cn] [\v!logos={\cnencoding\cnencodedlogos}]
+\setupheadtext [\s!cn] [\v!units={\cnencoding\cnencodedunits}]
+
+\setuplabeltext [\s!cn] [\v!table={\cnencoding\cnencodedtable}]
+\setuplabeltext [\s!cn] [\v!figure={\cnencoding\cnencodedfigure}]
+\setuplabeltext [\s!cn] [\v!intermezzo=Intermezzo ]
+\setuplabeltext [\s!cn] [\v!graphic=Illustration ]
+\setuplabeltext [\s!cn] [\v!appendix=]
+\setuplabeltext [\s!cn] [\v!part={\cnencoding\cnencodedintro,\cnencoding\cnencodedpart}]
+\setuplabeltext [\s!cn] [\v!chapter={\cnencoding\cnencodedintro,\cnencoding\cnencodedchapter}]
+\setuplabeltext [\s!cn] [\v!section={\cnencoding\cnencodedintro,\cnencoding\cnencodedsection}]
+\setuplabeltext [\s!cn] [\v!line=line ]
+\setuplabeltext [\s!cn] [\v!lines=lines ]
\setuplabeltext [\s!cn] [\v!subsection=]
\setuplabeltext [\s!cn] [\v!subsubsection=]
diff --git a/tex/context/base/lang-sla.tex b/tex/context/base/lang-sla.tex
index 4d310e8ee..96d537909 100644
--- a/tex/context/base/lang-sla.tex
+++ b/tex/context/base/lang-sla.tex
@@ -445,4 +445,52 @@
%D \ShowAllLanguageValues [\s!hr] [croatian] {Croatian} {heartthrob}
%D \ShowAllLanguageValues [\s!sl] [slovenian] {Slovenian} {mountains}
+%D A present from Brooks Moses and Hans hagen for Mojca Miklavec:
+
+\def\doconvertsloveniancharacters{\dodoconvertcharacters{25}}
+
+\def\sloveniancharacters{\doconvertsloveniancharacters\sloveniancharacter}
+\def\slovenianCharacters{\doconvertsloveniancharacters\slovenianCharacter}
+
+%D Define general-purpose macros for Slovenian character enumerations:
+
+\defineconversion [sloveniancharacter] [\sloveniancharacter]
+\defineconversion [slovenianCharacter] [\slovenianCharacter]
+
+\defineconversion [sloveniancharacters] [\sloveniancharacters]
+\defineconversion [slovenianCharacters] [\slovenianCharacters]
+
+%D Define these as the general character enumeration when
+%D language is Slovenian. If you feel uncomfortable with this,
+%D mail Mojca, since she promised to to take the heat.
+
+\defineconversion [sl] [character] [\sloveniancharacter]
+\defineconversion [sl] [Character] [\slovenianCharacter]
+
+\defineconversion [sl] [characters] [\sloveniancharacters]
+\defineconversion [sl] [Characters] [\slovenianCharacters]
+
+\defineconversion [sl] [a] [\sloveniancharacters]
+\defineconversion [sl] [A] [\slovenianCharacters]
+\defineconversion [sl] [AK] [\smallcapped\sloveniancharacters]
+\defineconversion [sl] [KA] [\smallcapped\sloveniancharacters]
+
+%D This may move to \type {core-con.tex}.
+
+\def\sloveniancharacter#1%
+ {\ifcase#1\unknowncharacter
+ \or a\or b\or c\or \ccaron\or d\or e\or f\or g\or h\or i\or j\or k\or l\or m%
+ \or n\or o\or p\or r\or s\or \scaron\or t\or u\or v\or z\or \zcaron
+ \else
+ \unknowncharacter
+ \fi}
+
+\def\slovenianCharacter#1%
+ {\ifcase#1\unknowncharacter
+ \or A\or B\or C\or \Ccaron\or D\or E\or F\or G\or H\or I\or J\or K\or L\or M%
+ \or N\or O\or P\or R\or S\or \Scaron\or T\or U\or V\or Z\or \Zcaron
+ \else
+ \unknowncharacter
+ \fi}
+
\protect \endinput
diff --git a/tex/context/base/meta-ini.tex b/tex/context/base/meta-ini.tex
index 058fa0bc8..d628e5e6c 100644
--- a/tex/context/base/meta-ini.tex
+++ b/tex/context/base/meta-ini.tex
@@ -572,6 +572,25 @@
%D
%D The \type {\resetMPenvironment} is a quick way to erase
%D the token list.
+%D
+%D You should be aware of independencies. For instance, if you use a font
+%D in a graphic that is not used in the main document, you need to load the
+%D typescript at the outer level (either directly or by using the global
+%D option).
+%D
+%D \starttyping
+%D \usetypescript[palatino][texnansi]
+%D
+%D \startMPenvironment
+%D \usetypescript[palatino][texnansi]
+%D \enableregime[utf]
+%D \setupbodyfont[palatino]
+%D \stopMPenvironment
+%D
+%D \startMPpage
+%D draw btex aap‒noot coördinatie – één etex ;
+%D \stopMPpage
+%D \stoptyping
%D We don't want spurious files, do we?
diff --git a/tex/context/base/mult-con.tex b/tex/context/base/mult-con.tex
index 8d308def6..201dd1082 100644
--- a/tex/context/base/mult-con.tex
+++ b/tex/context/base/mult-con.tex
@@ -2344,6 +2344,10 @@ process: proces process
knockout knockout
knockout knockout % new
+ xml: xml xml
+ xml xml
+ xml xml
+
\stopvariables
\startconstants dutch english
@@ -2361,7 +2365,6 @@ process: proces process
overprint overprint
overprint overprint % new
-
\stopconstants
% so far
diff --git a/tex/context/base/page-mar.tex b/tex/context/base/page-mar.tex
index 376a190ec..6cec52d04 100644
--- a/tex/context/base/page-mar.tex
+++ b/tex/context/base/page-mar.tex
@@ -231,7 +231,7 @@
\hsize\getvalue{\??im#1\c!width}\relax
\doifnumberelse\margincontenttag
{\ifcase\margincontenttag\relax
- \let\margincontenttag#1% first one is setups id as well
+ \edef\margincontenttag{#1}% first one is setups id as well
\fi}
\donothing
\doifnumberelse\margincontenttag
diff --git a/tex/context/base/pdfr-ec.tex b/tex/context/base/pdfr-ec.tex
new file mode 100644
index 000000000..b6604984c
--- /dev/null
+++ b/tex/context/base/pdfr-ec.tex
@@ -0,0 +1,145 @@
+%D \module
+%D [ file=pdfr-ec,
+%D version=2005.07.27,
+%D title=\CONTEXT\ PDF Font Resources,
+%D subtitle=EC encoding,
+%D author={Vladimir Volovich / Taco Hoekwater},
+%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.
+
+%D This vector is derived (but reformatted a bit) from
+%D the one in \LaTeX's CMap package
+
+\startpdffontresource[ec]
+/CIDInit /ProcSet findresource begin
+12 dict begin
+ begincmap
+ /CIDSystemInfo
+ << /Registry (TeX)
+ /Ordering (T1)
+ /Supplement 0
+ >> def
+ /CMapName /TeX-T1-0 def
+ /CMapType 2 def
+ 1 begincodespacerange
+ <00> <FF>
+ endcodespacerange
+ 10 beginbfrange
+ <0E> <0F> <2039>
+ <10> <12> <201C>
+ <15> <16> <2013>
+ <21> <26> <0021>
+ <28> <5F> <0028>
+ <61> <7E> <0061>
+ <C0> <D6> <00C0>
+ <D8> <DE> <00D8>
+ <E0> <F6> <00E0>
+ <F8> <FE> <00F8>
+ endbfrange
+ 95 beginbfchar
+ <00> <0060>
+ <01> <00B4>
+ <02> <02C6>
+ <03> <02DC>
+ <04> <00A8>
+ <05> <02DD>
+ <06> <02DA>
+ <07> <02C7>
+ <08> <02D8>
+ <09> <00AF>
+ <0A> <02D9>
+ <0B> <00B8>
+ <0C> <02DB>
+ <0D> <201A>
+ <13> <00AB>
+ <14> <00BB>
+ <17> <200C>
+ <19> <0131>
+ <1B> <00660066>
+ <1C> <00660069>
+ <1D> <0066006C>
+ <1E> <006600660069>
+ <1F> <00660066006C>
+ <20> <2423>
+ <27> <2019>
+ <60> <2018>
+ <7F> <002D>
+ <80> <0102>
+ <81> <0104>
+ <82> <0106>
+ <83> <010C>
+ <84> <010E>
+ <85> <011A>
+ <86> <0118>
+ <87> <011E>
+ <88> <0139>
+ <89> <013D>
+ <8A> <0141>
+ <8B> <0143>
+ <8C> <0147>
+ <8D> <014A>
+ <8E> <0150>
+ <8F> <0154>
+ <90> <0158>
+ <91> <015A>
+ <92> <0160>
+ <93> <015E>
+ <94> <0164>
+ <95> <021A>
+ <96> <0170>
+ <97> <016E>
+ <98> <0178>
+ <99> <0179>
+ <9A> <017D>
+ <9B> <017B>
+ <9C> <0132>
+ <9D> <0130>
+ <9E> <0111>
+ <9F> <00A7>
+ <A0> <0103>
+ <A1> <0105>
+ <A2> <0107>
+ <A3> <010D>
+ <A4> <010F>
+ <A5> <011B>
+ <A6> <0119>
+ <A7> <011F>
+ <A8> <013A>
+ <A9> <013E>
+ <AA> <0142>
+ <AB> <0144>
+ <AC> <0148>
+ <AD> <014B>
+ <AE> <0151>
+ <AF> <0155>
+ <B0> <0159>
+ <B1> <015B>
+ <B2> <0161>
+ <B3> <015F>
+ <B4> <0165>
+ <B5> <021B>
+ <B6> <0171>
+ <B7> <016F>
+ <B8> <00FF>
+ <B9> <017A>
+ <BA> <017E>
+ <BB> <017C>
+ <BC> <0133>
+ <BD> <00A1>
+ <BE> <00BF>
+ <BF> <00A3>
+ <D7> <0152>
+ <DF> <00530053>
+ <F7> <0153>
+ <FF> <00DF>
+ endbfchar
+ endcmap
+CMapName currentdict /CMap defineresource pop end
+end
+\stoppdffontresource
+
+\endinput
diff --git a/tex/context/base/type-pre.tex b/tex/context/base/type-pre.tex
index ebf2426ed..05742dd22 100644
--- a/tex/context/base/type-pre.tex
+++ b/tex/context/base/type-pre.tex
@@ -281,4 +281,16 @@
\stoptypescriptcollection
-\endinput
+%D Special scripts:
+
+\unprotect
+
+\starttypescriptcollection[special scripts]
+
+ \starttypescript[chi] \readfile{\f!fontprefix chi}\donothing\donothing \stoptypescript
+ \starttypescript[arb] \readfile{\f!fontprefix arb}\donothing\donothing \stoptypescript
+ \starttypescript[heb] \readfile{\f!fontprefix heb}\donothing\donothing \stoptypescript
+
+\stoptypescriptcollection
+
+\protect \endinput
diff --git a/tex/context/base/unic-ini.tex b/tex/context/base/unic-ini.tex
index fb5ef3e66..b3ba4ec53 100644
--- a/tex/context/base/unic-ini.tex
+++ b/tex/context/base/unic-ini.tex
@@ -95,17 +95,16 @@
%D which saves tokens and is faster. In this case we gain
%D some 10\% time.
-\chardef \utf@a=64
-\mathchardef \utf@b=4096
+\chardef \utf@a= 64
+\mathchardef \utf@b= 4096
\newcount\utf@c\utf@c=262144
-
-\chardef \utf@d=192
-\chardef \utf@e=224
-\chardef \utf@f=240
-
-\chardef \utf@g=128
-\mathchardef \utf@h=256
-\chardef \utf@i=127
+\chardef \utf@d= 192
+\chardef \utf@e= 224
+\chardef \utf@f= 240
+\chardef \utf@g= 128
+\mathchardef \utf@h= 256
+\chardef \utf@i= 127
+\mathchardef \utf@j= 2048
%D The definitions now become:
%D
@@ -586,6 +585,73 @@
\@EA\utfunifontcommand
\fi}
+%D We can convert from a number to some UTF code with the folowing
+%D conversion macro.
+
+% The first, na\"ive version:
+%
+% \def\numbertoutf#1%
+% {\ifnum#1<128
+% \rawcharacter{#1}%
+% \else\ifnum#1<2048
+% \rawcharacter{\the\numexpr192+#1/64\relax}%
+% \rawcharacter{\the\numexpr128+#1-(#1/64)*64\relax}%
+% \else % 3 bytes
+% \rawcharacter{\the\numexpr224+#1/4096\relax}%
+% \rawcharacter{\the\numexpr128+(#1-(#1/4096)*4096)/128\relax}%
+% \rawcharacter{\the\numexpr128+(#1-(#1/4096)*4096)+(#1-(#1/4096)*4096)/128\relax}%
+% \fi\fi}
+
+% We have to compensate for etex's rounding (thanks to Taco and
+% Nanning) for pointing/sorting this out:
+
+% \def\numbertoutf#1%
+% {\ifnum#1<128
+% \rawcharacter{#1}%
+% \else\ifnum#1<2048
+% \rawcharacter{\the\numexpr192+(#1-32)/64\relax}%
+% \rawcharacter{\the\numexpr128+(#1-((#1-32)/64)*64)\relax}%
+% \else
+% \rawcharacter{\the\numexpr224+(#1-2048)/4096\relax}%
+% \rawcharacter{\the\numexpr128+(#1-(((#1-2048)/4096)*4096)-32)/64\relax}%
+% \rawcharacter{\the\numexpr128+(#1-(((#1-2048)/4096)*4096)-((#1-(((#1-2048)/4096)*4096)-32)/64)*64)\relax}%
+% \fi\fi}
+
+\beginETEX \numexpr
+
+\chardef \utf@a= 64
+\mathchardef \utf@b= 4096
+\newcount\utf@c\utf@c=262144
+\chardef \utf@d= 192
+\chardef \utf@e= 224
+\chardef \utf@f= 240
+\chardef \utf@g= 128
+\mathchardef \utf@h= 256
+\chardef \utf@i= 127
+\mathchardef \utf@j= 2048
+\chardef \utf@k= 32
+
+\def\numbertoutf#1%
+ {\ifnum#1<\utf@g
+ \rawcharacter{#1}%
+ \else\ifnum#1<\utf@j
+ \rawcharacter{\the\numexpr\utf@d+(#1-\utf@k)/\utf@a\relax}%
+ \rawcharacter{\the\numexpr\utf@g+(#1-((#1-\utf@k)/\utf@a)*\utf@a)\relax}%
+ \else
+ \rawcharacter{\the\numexpr\utf@e+(#1-\utf@j)/\utf@b\relax}%
+ \rawcharacter{\the\numexpr\utf@g+(#1-(((#1-\utf@j)/\utf@b)*\utf@b)-\utf@k)/\utf@a\relax}%
+ \rawcharacter{\the\numexpr\utf@g+(#1-(((#1-\utf@j)/\utf@b)*\utf@b)-((#1-(((#1-\utf@j)/\utf@b)*\utf@b)-\utf@k)/\utf@a)*\utf@a)\relax}%
+ \fi\fi}
+
+\endETEX
+
+\beginTEX
+
+\def\numbertoutf#1%
+ {[\number#1]}
+
+\endTEX
+
%D Goodies:
\fetchruntimecommand \showunicodevector {\f!unicprefix\s!run}
diff --git a/tex/context/base/xtag-ext.tex b/tex/context/base/xtag-ext.tex
index 6d882a67b..aa522cc8c 100644
--- a/tex/context/base/xtag-ext.tex
+++ b/tex/context/base/xtag-ext.tex
@@ -280,4 +280,52 @@
\def\writtenXMLelementcs#1#2{\ifx#2\empty\else<#1>#2</#1>\fi}
\def\writtenXMLemptycs #1#2{\ifx#2\empty<#1/>\else<#1>#2</#1>\fi}
+%D This one can be used to get sound tuo files.
+%D
+%D \starttyping
+%D \setuphead[chapter][expansion=xml]
+%D % \setuplist[chapter][textcommand=\enableXML]
+%D
+%D \enableregime[utf] \autoXMLentitiestrue
+%D \stoptyping
+%D
+%D with:
+%D
+%D \starttyping
+%D <chapter>test &#xEB; test &ediaeresis; test <e>ediaeresis</e></chapter>
+%D \stoptyping
+%D
+%D This gives:
+%D
+%D \starttyping
+%D test Äk <b>test</b> <e>ediaeresis</e> test <e>ediaeresis</e>
+%D \stoptyping
+
+\def\XMLprocessingparameter#1%
+ {\csname\??xp#1\endcsname}
+
+\appendtoks
+ \defineXMLargument[\XMLprocessingparameter\c!escape]\getXMlentity
+\to \aftersetupXMLprocessing
+
+\setupXMLprocessing
+ [\c!escape=e]
+
+\bgroup \catcode`\<=\active
+
+\long\gdef\expandxmlargument#1\to
+ {\begingroup
+ \let\uppercase\firstofoneargument
+ \def\getXMLhexcharacter##1{\numbertoutf{"##1}}%
+ \def\getXMLdeccharacter##1{\numbertoutf{##1}}%
+ \def\getXMLentity##1{<e>##1</e>}%
+ \def<{\noexpand<}%
+ \xdef\@@globalexpanded{#1}%
+ \endgroup
+ \convertcommand\@@globalexpanded\to}
+
+\egroup
+
+\installexpander \v!xml {\expandxmlargument}
+
\protect \endinput
diff --git a/tex/context/base/xtag-ini.tex b/tex/context/base/xtag-ini.tex
index 0cc050e01..67a73bb3b 100644
--- a/tex/context/base/xtag-ini.tex
+++ b/tex/context/base/xtag-ini.tex
@@ -128,6 +128,9 @@
\def\dosetupXMLprocessing[#1]%
{\getparameters[\??xp][#1]\the\aftersetupXMLprocessing}
+\def\XMLprocessingparameter#1%
+ {\csname\??xp#1\endcsname}
+
\protect
%D Formally an \XML\ file starts with an unique sequence
diff --git a/tex/context/interface/cont-cz.xml b/tex/context/interface/cont-cz.xml
index f9f8686b2..04ab11452 100644
--- a/tex/context/interface/cont-cz.xml
+++ b/tex/context/interface/cont-cz.xml
@@ -5758,6 +5758,9 @@
<cd:constant type="velke"/>
<cd:constant type="dalsi"/>
<cd:constant type="prvni"/>
+ <cd:constant type="normalni"/>
+ <cd:constant type="liche"/>
+ <cd:constant type="sude"/>
<cd:constant type="cd:dimension"/>
</cd:keywords>
</cd:arguments>
diff --git a/tex/context/interface/cont-de.xml b/tex/context/interface/cont-de.xml
index dc5ed372e..97cb29779 100644
--- a/tex/context/interface/cont-de.xml
+++ b/tex/context/interface/cont-de.xml
@@ -5758,6 +5758,9 @@
<cd:constant type="gross"/>
<cd:constant type="folgende"/>
<cd:constant type="erste"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="ungerade"/>
+ <cd:constant type="gerade"/>
<cd:constant type="cd:dimension"/>
</cd:keywords>
</cd:arguments>
diff --git a/tex/context/interface/cont-en.xml b/tex/context/interface/cont-en.xml
index ae91da1fb..2c16257e4 100644
--- a/tex/context/interface/cont-en.xml
+++ b/tex/context/interface/cont-en.xml
@@ -5758,6 +5758,9 @@
<cd:constant type="big"/>
<cd:constant type="next"/>
<cd:constant type="first"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="odd"/>
+ <cd:constant type="even"/>
<cd:constant type="cd:dimension"/>
</cd:keywords>
</cd:arguments>
diff --git a/tex/context/interface/cont-it.xml b/tex/context/interface/cont-it.xml
index 36d0297d8..2f9183b5a 100644
--- a/tex/context/interface/cont-it.xml
+++ b/tex/context/interface/cont-it.xml
@@ -5758,6 +5758,9 @@
<cd:constant type="grande"/>
<cd:constant type="successivo"/>
<cd:constant type="primo"/>
+ <cd:constant type="normale"/>
+ <cd:constant type="dispari"/>
+ <cd:constant type="pari"/>
<cd:constant type="cd:dimension"/>
</cd:keywords>
</cd:arguments>
diff --git a/tex/context/interface/cont-nl.xml b/tex/context/interface/cont-nl.xml
index 4bd03dcb0..9b54e77cf 100644
--- a/tex/context/interface/cont-nl.xml
+++ b/tex/context/interface/cont-nl.xml
@@ -5758,6 +5758,9 @@
<cd:constant type="groot"/>
<cd:constant type="volgende"/>
<cd:constant type="eerste"/>
+ <cd:constant type="normaal"/>
+ <cd:constant type="oneven"/>
+ <cd:constant type="even"/>
<cd:constant type="cd:dimension"/>
</cd:keywords>
</cd:arguments>
diff --git a/tex/context/interface/cont-ro.xml b/tex/context/interface/cont-ro.xml
index 432d039eb..007f88b50 100644
--- a/tex/context/interface/cont-ro.xml
+++ b/tex/context/interface/cont-ro.xml
@@ -5758,6 +5758,9 @@
<cd:constant type="mare"/>
<cd:constant type="urmatorul"/>
<cd:constant type="primul"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="impar"/>
+ <cd:constant type="par"/>
<cd:constant type="cd:dimension"/>
</cd:keywords>
</cd:arguments>
diff --git a/tex/context/interface/keys-cz.xml b/tex/context/interface/keys-cz.xml
index 9ac91fa5b..c5a57b820 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.07.21">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2005.07.27">
<cd:variables>
<cd:variable name="one" value="jedna"/>
@@ -755,6 +755,7 @@
<cd:variable name="nothyphenated" value="nothyphenated"/>
<cd:variable name="overprint" value="overprint"/>
<cd:variable name="knockout" value="knockout"/>
+ <cd:variable name="xml" value="xml"/>
</cd:variables>
<cd:constants>
diff --git a/tex/context/interface/keys-de.xml b/tex/context/interface/keys-de.xml
index eea7038f7..ad86466dc 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.07.21">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2005.07.27">
<cd:variables>
<cd:variable name="one" value="eins"/>
@@ -755,6 +755,7 @@
<cd:variable name="nothyphenated" value="nothyphenated"/>
<cd:variable name="overprint" value="overprint"/>
<cd:variable name="knockout" value="knockout"/>
+ <cd:variable name="xml" value="xml"/>
</cd:variables>
<cd:constants>
diff --git a/tex/context/interface/keys-en.xml b/tex/context/interface/keys-en.xml
index 8b0969c70..5f8a2554d 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.07.21">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2005.07.27">
<cd:variables>
<cd:variable name="one" value="one"/>
@@ -755,6 +755,7 @@
<cd:variable name="nothyphenated" value="nothyphenated"/>
<cd:variable name="overprint" value="overprint"/>
<cd:variable name="knockout" value="knockout"/>
+ <cd:variable name="xml" value="xml"/>
</cd:variables>
<cd:constants>
diff --git a/tex/context/interface/keys-it.xml b/tex/context/interface/keys-it.xml
index 0ca1e49ce..3998abce9 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.07.21">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2005.07.27">
<cd:variables>
<cd:variable name="one" value="uno"/>
@@ -755,6 +755,7 @@
<cd:variable name="nothyphenated" value="nonsillabato"/>
<cd:variable name="overprint" value="overprint"/>
<cd:variable name="knockout" value="knockout"/>
+ <cd:variable name="xml" value="xml"/>
</cd:variables>
<cd:constants>
diff --git a/tex/context/interface/keys-nl.xml b/tex/context/interface/keys-nl.xml
index aaaacee8c..8132906fe 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.07.21">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2005.07.27">
<cd:variables>
<cd:variable name="one" value="een"/>
@@ -755,6 +755,7 @@
<cd:variable name="nothyphenated" value="nietafgebroken"/>
<cd:variable name="overprint" value="overprint"/>
<cd:variable name="knockout" value="knockout"/>
+ <cd:variable name="xml" value="xml"/>
</cd:variables>
<cd:constants>
diff --git a/tex/context/interface/keys-ro.xml b/tex/context/interface/keys-ro.xml
index 323146bef..f8f2a5ca4 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.07.21">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2005.07.27">
<cd:variables>
<cd:variable name="one" value="unu"/>
@@ -755,6 +755,7 @@
<cd:variable name="nothyphenated" value="nedespsilabe"/>
<cd:variable name="overprint" value="overprint"/>
<cd:variable name="knockout" value="knockout"/>
+ <cd:variable name="xml" value="xml"/>
</cd:variables>
<cd:constants>
diff --git a/web2c/context.cnf b/web2c/context.cnf
index d0635ed5c..20cf2d4af 100644
--- a/web2c/context.cnf
+++ b/web2c/context.cnf
@@ -112,6 +112,7 @@ CTXDEVJVPATH=rubish
PERLINPUTS = .;$CTXDEVPLPATH//;$TEXMF/scripts/context/perl//;$TEXMF/{context/perl,context/perltk,perl,perltk}//
PYTHONINPUTS = .;$CTXDEVPYPATH//;$TEXMF/scripts/context/python//;$TEXMF/{context/python,python}//
RUBYINPUTS = .;$CTXDEVRBPATH//;$TEXMF/scripts/context/ruby//;$TEXMF/{context/ruby,ruby}//
+LUAINPUTS = .;$CTXDEVJVPATH//;$TEXMF/scripts/context/lua//;$TEXMF/{context/lua,lua}//
JAVAINPUTS = .;$CTXDEVJVPATH//;$TEXMF/scripts/context/java//;$TEXMF/{context/java,java}//
TEXMFSCRIPTS = .;$CTXDEVRBPATH//;$CTXDEVPLPATH//;$TEXMF/scripts/context//;$TEXMF/scripts//
@@ -147,19 +148,19 @@ extra_mem_bot.context = 2000000
extra_mem_top.context = 4000000
font_max.context = 2000
font_mem_size.context = 1000000
-hash_extra.context = 65000
-main_memory.context = 1500000
-max_strings.context = 200000
+hash_extra.context = 75000
+main_memory.context = 2000000
+max_strings.context = 250000
nest_size.context = 500
obj_tab_size.context = 300000 % 8388607
pdf_mem_size.context = 500000 % 524288
dest_names_size.context = 300000 % 131072
param_size.context = 10000
pool_free.context = 47500
-pool_size.context = 1500000
+pool_size.context = 2000000
save_size.context = 50000
stack_size.context = 10000
-string_vacancies.context = 90000
+string_vacancies.context = 125000
trie_size.context = 250000
hyph_size.context = 1000