summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2007-03-19 11:20:00 +0100
committerHans Hagen <pragma@wxs.nl>2007-03-19 11:20:00 +0100
commit8a354e9fa5309910252aee3e7c5fdb4303deae45 (patch)
tree0bbe6c416aa606420e73c3b0cae3870d6ba94e50
parent29f7819d5e497bf8181e7cee80f8ef56995db3f4 (diff)
downloadcontext-8a354e9fa5309910252aee3e7c5fdb4303deae45.tar.gz
stable 2007.03.19 11:20
-rw-r--r--fonts/tfm/public/marvosym/fmvr8x.tfmbin0 -> 1756 bytes
-rw-r--r--scripts/context/ruby/base/ctx.rb31
-rw-r--r--scripts/context/ruby/base/exa.rb6
-rw-r--r--scripts/context/ruby/base/merge.rb4
-rw-r--r--scripts/context/ruby/base/mp.rb2
-rw-r--r--scripts/context/ruby/base/tex.rb74
-rw-r--r--scripts/context/ruby/ctxtools.rb2
-rw-r--r--scripts/context/ruby/graphics/gs.rb4
-rw-r--r--scripts/context/ruby/pdftools.rb10
-rw-r--r--scripts/context/ruby/texexec.rb2
-rw-r--r--scripts/context/ruby/texmfstart.rb94
-rw-r--r--scripts/context/ruby/textools.rb2
-rw-r--r--scripts/context/ruby/www/exa.rb22
-rw-r--r--scripts/context/ruby/xmltools.rb14
-rw-r--r--tex/context/base/core-fig.tex7
-rw-r--r--tex/context/base/core-mat.tex7
-rw-r--r--tex/context/base/core-not.tex5
-rw-r--r--tex/context/base/core-reg.tex28
-rw-r--r--tex/context/base/core-sec.tex84
-rw-r--r--tex/context/base/core-spa.tex28
-rw-r--r--tex/context/base/core-var.tex25
-rw-r--r--tex/context/base/font-ini.mkii9
-rw-r--r--tex/context/base/font-ini.tex76
-rw-r--r--tex/context/base/math-tex.tex12
-rw-r--r--tex/context/base/meta-ini.tex2
-rw-r--r--tex/context/base/mult-con.tex8
-rw-r--r--tex/context/base/mult-sys.tex4
-rw-r--r--tex/context/base/page-one.tex7
-rw-r--r--tex/context/base/rlxcache.rlx71
-rw-r--r--tex/context/base/supp-pat.tex2
-rw-r--r--tex/context/base/syst-prm.tex2
-rw-r--r--tex/context/base/type-syn.tex192
-rw-r--r--tex/context/base/unic-003.tex10
-rw-r--r--tex/context/base/x-res-08.tex4
-rw-r--r--tex/context/interface/cont-cz.xml1
-rw-r--r--tex/context/interface/cont-de.xml1
-rw-r--r--tex/context/interface/cont-en.xml1
-rw-r--r--tex/context/interface/cont-fr.xml1
-rw-r--r--tex/context/interface/cont-it.xml1
-rw-r--r--tex/context/interface/cont-nl.xml1
-rw-r--r--tex/context/interface/cont-ro.xml1
-rw-r--r--tex/context/interface/keys-cz.xml4
-rw-r--r--tex/context/interface/keys-de.xml4
-rw-r--r--tex/context/interface/keys-en.xml4
-rw-r--r--tex/context/interface/keys-fr.xml4
-rw-r--r--tex/context/interface/keys-it.xml4
-rw-r--r--tex/context/interface/keys-nl.xml4
-rw-r--r--tex/context/interface/keys-ro.xml4
48 files changed, 613 insertions, 272 deletions
diff --git a/fonts/tfm/public/marvosym/fmvr8x.tfm b/fonts/tfm/public/marvosym/fmvr8x.tfm
new file mode 100644
index 000000000..ce8172f1c
--- /dev/null
+++ b/fonts/tfm/public/marvosym/fmvr8x.tfm
Binary files differ
diff --git a/scripts/context/ruby/base/ctx.rb b/scripts/context/ruby/base/ctx.rb
index d09be55d4..2da60d0c7 100644
--- a/scripts/context/ruby/base/ctx.rb
+++ b/scripts/context/ruby/base/ctx.rb
@@ -45,6 +45,11 @@ class CtxRunner
@flags = Array.new
@modes = Array.new
@local = false
+ @paths = Array.new
+ end
+
+ def register_path(str)
+ @paths << str
end
def manipulate(ctxname=nil,defaultname=nil)
@@ -61,6 +66,10 @@ class CtxRunner
return
end
+ if @ctxname !~ /\.[a-z]+$/ then
+ @ctxname += ".ctx"
+ end
+
# name can be kpse:res-make.ctx
if not FileTest.file?(@ctxname) then
fullname, done = '', false
@@ -84,6 +93,12 @@ class CtxRunner
end
break if done
end
+ if ! done then
+ fullname = Kpse.found(@ctxname)
+ if FileTest.file?(fullname) then
+ @ctxname, done = fullname, true
+ end
+ end
end
if ! done && defaultname && FileTest.file?(defaultname) then
report("using default ctxfile #{defaultname}")
@@ -211,12 +226,25 @@ class CtxRunner
end
pattern = justtext(pattern)
oldfiles = Dir.glob(pattern)
+ pluspath = false
if oldfiles.length == 0 then
report("no files match #{pattern}")
+ if @paths.length > 0 then
+ @paths.each do |p|
+ oldfiles = Dir.glob("#{p}/#{pattern}")
+ if oldfiles.length > 0 then
+ pluspath = true
+ break
+ end
+ end
+ if oldfiles.length == 0 then
+ report("no files match #{pattern} on path")
+ end
+ end
end
oldfiles.each do |oldfile|
newfile = "#{oldfile}.#{suffix}"
- newfile = File.basename(newfile) if @local
+ newfile = File.basename(newfile) if @local # or pluspath
if File.expand_path(oldfile) != File.expand_path(newfile) && File.needsupdate(oldfile,newfile) then
report("#{oldfile} needs preprocessing")
begin
@@ -413,6 +441,7 @@ class CtxRunner
when 'suffix' then if str =~ /^.*\.(.*?)$/o then $1 else '' end
when 'nosuffix' then if str =~ /^(.*)\..*?$/o then $1 else str end
when 'nopath' then if str =~ /^.*[\\\/](.*?)$/o then $1 else str end
+ when 'base' then if str =~ /^.*[\\\/](.*?)$/o then $1 else str end
when 'full' then str
when 'complete' then str
when 'expand' then File.expand_path(str).gsub(/\\/,"/")
diff --git a/scripts/context/ruby/base/exa.rb b/scripts/context/ruby/base/exa.rb
index fdc5b5093..5a094351e 100644
--- a/scripts/context/ruby/base/exa.rb
+++ b/scripts/context/ruby/base/exa.rb
@@ -45,7 +45,7 @@ module ExaEncrypt
"#{pre}#{password}#{post}"
end
else
- data.gsub!(/<exa:password([^>]*?)>(.*?)<\/exa:password>/mois) do
+ data.gsub!(/<exa:password([^>]*?)>(.*?)<\/exa:password>/moi) do
attributes, password = $1, $2
unless password =~ /^([0-9A-F][0-9A-F])+$/ then
done = true
@@ -238,11 +238,11 @@ module ExaModes
binln, einln = "<inlinetexmath>" , "</inlinetexmath>"
egraf = "<p/>"
end
- str.gsub!(/\n\s*\n+/mois, "\\ENDGRAF ")
+ str.gsub!(/\n\s*\n+/moi, "\\ENDGRAF ")
str.gsub!(/(\[\[)\s*(.*?)\s*(\]\])/mos) do
$1 + docalculatortexmath($2) + $3
end
- str.gsub!(/(\\ENDGRAF)+\s*(\[\[)\s*(.*?)\s*(\]\])/mois) do
+ str.gsub!(/(\\ENDGRAF)+\s*(\[\[)\s*(.*?)\s*(\]\])/moi) do
$1 + bdisp + $3 + edisp
end
str.gsub!(/(\[\[)\s*(.*?)\s*(\]\])/o) do
diff --git a/scripts/context/ruby/base/merge.rb b/scripts/context/ruby/base/merge.rb
index c6ea6c09e..ad4b9c9e6 100644
--- a/scripts/context/ruby/base/merge.rb
+++ b/scripts/context/ruby/base/merge.rb
@@ -65,7 +65,7 @@ module SelfMerge
end
inserts << "#{@@kpsemergestop}\n\n"
# no gsub! else we end up in SelfMerge
- rbfile.sub!(/#{@@kpsemergestart}\s*#{@@kpsemergestop}/mois) do
+ rbfile.sub!(/#{@@kpsemergestart}\s*#{@@kpsemergestop}/moi) do
inserts
end
rbfile.gsub!(/^(.*)(require [\"\'].*?#{@@modroot}.*)$/) do
@@ -99,7 +99,7 @@ module SelfMerge
begin
if rbfile = IO.read(@@filename) then
begin
- rbfile.sub!(/#{@@kpsemergestart}(.*)#{@@kpsemergestop}\s*/mois) do
+ rbfile.sub!(/#{@@kpsemergestart}(.*)#{@@kpsemergestop}\s*/moi) do
"#{@@kpsemergestart}\n\n#{@@kpsemergestop}\n\n"
end
rbfile.gsub!(/^(.*#{@@kpsemergedone}.*)$/) do
diff --git a/scripts/context/ruby/base/mp.rb b/scripts/context/ruby/base/mp.rb
index 5dd2948cf..d168bde1d 100644
--- a/scripts/context/ruby/base/mp.rb
+++ b/scripts/context/ruby/base/mp.rb
@@ -144,7 +144,7 @@ EOT
result.gsub!(/(.{80,})(\-\-\-|\-\-|\.\.\.|\.\.)/) do
"#{$1}#{$2}\n"
end
- result.gsub!(/\n[\s\n]+/mois) do
+ result.gsub!(/\n[\s\n]+/moi) do
"\n"
end
result.gsub!(/btex\((\d+)\)/) do
diff --git a/scripts/context/ruby/base/tex.rb b/scripts/context/ruby/base/tex.rb
index 5898d7aa5..bb961111c 100644
--- a/scripts/context/ruby/base/tex.rb
+++ b/scripts/context/ruby/base/tex.rb
@@ -783,12 +783,12 @@ class TEX
result = runtexexec([tempfilename], flags, 1)
if FileTest.file?("#{@@temprunfile}.log") then
logdata = IO.read("#{@@temprunfile}.log")
- if logdata =~ /^\s*This is (.*?)[\s\,]+(.*?)$/mois then
+ if logdata =~ /^\s*This is (.*?)[\s\,]+(.*?)$/moi then
if validtexengine($1.downcase) then
results.push("#{$1} #{$2.gsub(/\(format.*$/,'')}".strip)
end
end
- if logdata =~ /^\s*(ConTeXt)\s+(.*int:\s+[a-z]+.*?)\s*$/mois then
+ if logdata =~ /^\s*(ConTeXt)\s+(.*int:\s+[a-z]+.*?)\s*$/moi then
results.push("#{$1} #{$2}".gsub(/\s+/,' ').strip)
end
else
@@ -1184,7 +1184,7 @@ class TEX
begin
data = IO.read(File.suffixed(filename,'log'))
basename = filename.sub(/\.mp$/, '')
- if data =~ /output files* written\:\s*(.*)$/mois then
+ if data =~ /output files* written\:\s*(.*)$/moi then
files, number, range, list = $1.split(/\s+/), 0, false, []
files.each do |fname|
if fname =~ /^.*\.(\d+)$/ then
@@ -1270,7 +1270,7 @@ class TEX
File.open("texexec.tex",'w') do |f|
f << "\\setupoutput[pdftex]\n"
f << "\\setupcolors[state=start]\n"
- data.sub!(/^%mpenvironment\:\s*(.*?)$/mois) do
+ data.sub!(/^%mpenvironment\:\s*(.*?)$/moi) do
f << $1
"\n"
end
@@ -1488,7 +1488,14 @@ class TEX
[getvariable('runpath'),getvariable('path')].each do |pat|
unless pat.empty? then
if ENV.key?(res) then
- ENV[res] = if ENV[res].empty? then pat else pat + ":" + ENV[res] end
+ # ENV[res] = if ENV[res].empty? then pat else pat + ":" + ENV[res] end
+if ENV[res].empty? then
+ ENV[res] = pat
+elsif ENV[res] == pat || ENV[res] =~ /^#{pat}\:/ || ENV[res] =~ /\:#{pat}\:/ then
+ # skip
+else
+ ENV[res] = pat + ":" + ENV[res]
+end
else
ENV[res] = pat
end
@@ -1731,14 +1738,9 @@ class TEX
takeprecautions
report("using search method '#{Kpse.searchmethod}'") if getvariable('verbose')
+
rawname = getvariable('filename')
jobname = getvariable('filename')
- suffix = getvariable('suffix')
- result = getvariable('result')
- forcexml = getvariable('forcexml')
- runonce = getvariable('once')
- finalrun = getvariable('final') || (getvariable('arrange') && ! getvariable('noarrange'))
- globalfile = getvariable('globalfile')
if getvariable('autopath') then
jobname = File.basename(jobname)
@@ -1751,18 +1753,11 @@ class TEX
jobname = File.unixfied(jobname)
inppath = File.unixfied(inppath)
- result = File.unixfied(result)
orisuffix = jobsuffix # still needed ?
- setvariable('nomprun',true) if orisuffix == 'mpx' # else cylic run
-
- PDFview.setmethod('xpdf') if getvariable('xpdf')
-
- PDFview.closeall if getvariable('autopdf')
-
if jobsuffix =~ /^(htm|html|xhtml|xml|fo|fox|rlg|exa)$/io then
- forcexml = true
+ setvariable('forcexml',true)
end
dummyfile = false
@@ -1779,7 +1774,6 @@ class TEX
# we can have funny names, like 2005.10.10 (given without suffix)
rawname = jobname + '.' + jobsuffix
-
rawpath = File.dirname(rawname)
rawbase = File.basename(rawname)
@@ -1789,16 +1783,22 @@ class TEX
end
end
- if dummyfile || forcexml then
- jobsuffix = makestubfile(rawname,rawbase,forcexml)
- checkxmlfile(rawname)
- end
+ forcexml = getvariable('forcexml')
+ # if dummyfile || forcexml then # after ctx?
+ # jobsuffix = makestubfile(rawname,rawbase,forcexml)
+ # checkxmlfile(rawname)
+ # end
# preprocess files
unless getvariable('noctx') then
ctx = CtxRunner.new(rawname,@logger)
+ if pth = getvariable('path') then
+ pth.split(',').each do |p|
+ ctx.register_path(p)
+ end
+ end
if getvariable('ctxfile').empty? then
if rawname == rawbase then
ctx.manipulate(File.suffixed(rawname,'ctx'),'jobname.ctx')
@@ -1829,7 +1829,7 @@ class TEX
# merge environment and module specs
envs << getvariable('environments') unless getvariable('environments').empty?
- mods << getvariable('modules') unless getvariable('modules') .empty?
+ mods << getvariable('usemodules') unless getvariable('usemodules') .empty?
mdes << getvariable('modes') unless getvariable('modes') .empty?
envs = envs.uniq.join(',')
@@ -1843,12 +1843,30 @@ class TEX
report("using modes #{mdes}") if mdes.length > 0
setvariable('environments', envs)
- setvariable('modules', mods)
+ setvariable('usemodules', mods)
setvariable('modes', mdes)
end
# end of preprocessing and merging
+ setvariable('nomprun',true) if orisuffix == 'mpx' # else cylic run
+ PDFview.setmethod('xpdf') if getvariable('xpdf')
+ PDFview.closeall if getvariable('autopdf')
+
+ runonce = getvariable('once')
+ finalrun = getvariable('final') || (getvariable('arrange') && ! getvariable('noarrange'))
+ suffix = getvariable('suffix')
+ result = getvariable('result')
+ globalfile = getvariable('globalfile')
+ forcexml = getvariable('forcexml') # can be set in ctx file
+
+ if dummyfile || forcexml then # after ctx?
+ jobsuffix = makestubfile(rawname,rawbase,forcexml)
+ checkxmlfile(rawname)
+ end
+
+ result = File.unixfied(result)
+
if globalfile || FileTest.file?(rawname) then
if not dummyfile and not globalfile then
@@ -1960,7 +1978,7 @@ class TEX
# next line is empty
ok = 2
when 2 then
- if line =~ /^\%\s+\>\s+(.*?)\s+(\d+)/mois then
+ if line =~ /^\%\s+\>\s+(.*?)\s+(\d+)/moi then
filename, n = $1, $2
done = File.delete(filename) rescue false
if done && getvariable('verbose') then
@@ -1970,7 +1988,7 @@ class TEX
break
end
else
- if line =~ /^\%\s+temporary files\:\s+(\d+)/mois then
+ if line =~ /^\%\s+temporary files\:\s+(\d+)/moi then
if $1.to_i == 0 then
break
else
diff --git a/scripts/context/ruby/ctxtools.rb b/scripts/context/ruby/ctxtools.rb
index d8d38e84b..a70501cd5 100644
--- a/scripts/context/ruby/ctxtools.rb
+++ b/scripts/context/ruby/ctxtools.rb
@@ -908,7 +908,7 @@ class Language
@data += data.gsub(/\%.*$/, '').gsub(/\\message\{.*?\}/, '')
data.gsub!(/(\\patterns|\\hyphenation)\s*\{.*/mo) do '' end
@read += "\n% preamble of file #{fname}\n\n#{data}\n"
- @data.gsub!(/^[\s\n]+$/mois, '')
+ @data.gsub!(/^[\s\n]+$/moi, '')
report("file #{fname} is loaded")
found = true
break # next fileset
diff --git a/scripts/context/ruby/graphics/gs.rb b/scripts/context/ruby/graphics/gs.rb
index 51175efa3..a73400ba2 100644
--- a/scripts/context/ruby/graphics/gs.rb
+++ b/scripts/context/ruby/graphics/gs.rb
@@ -452,10 +452,10 @@ class GhostScript
debug('bbox spec', bbox)
- if bbox =~ /(Exact|HiRes)BoundingBox:#{@@bboxspec}/mois then
+ if bbox =~ /(Exact|HiRes)BoundingBox:#{@@bboxspec}/moi then
debug("high res bbox #{$2} #{$3} #{$4} #{$5}")
setdimensions($2,$3,$4,$5)
- elsif bbox =~ /BoundingBox:#{@@bboxspec}/mois
+ elsif bbox =~ /BoundingBox:#{@@bboxspec}/moi
debug("low res bbox #{$1} #{$2} #{$3} #{$4}")
setdimensions($1,$2,$3,$4)
end
diff --git a/scripts/context/ruby/pdftools.rb b/scripts/context/ruby/pdftools.rb
index 25e7250b6..23edfeca2 100644
--- a/scripts/context/ruby/pdftools.rb
+++ b/scripts/context/ruby/pdftools.rb
@@ -397,20 +397,20 @@ class SpotColorImage
if data =~ /(\d+)\s+0\s+obj\s+\[\/Separation\s+\/#{@colorname}/mos then
@command.report("replacing separation color")
object = $1
- data.gsub!(/(\/Type\s+\/XObject.*?)(\/ColorSpace\s*(\/DeviceGray|\/DeviceCMYK|\/DeviceRGB|\d+\s+\d+\s+R))/mois) do
+ data.gsub!(/(\/Type\s+\/XObject.*?)(\/ColorSpace\s*(\/DeviceGray|\/DeviceCMYK|\/DeviceRGB|\d+\s+\d+\s+R))/moi) do
$1 + "/ColorSpace #{object} 0 R".ljust($2.length)
end
elsif data =~ /(\d+)\s+0\s+obj\s+\[\/Indexed\s*\[/mos then
@command.report("replacing indexed color")
# todo: more precise check on color
object = $1
- data.gsub!(/(\/Type\s+\/XObject.*?)(\/ColorSpace\s*(\/DeviceGray|\/DeviceCMYK|\/DeviceRGB|\d+\s+\d+\s+R))/mois) do
+ data.gsub!(/(\/Type\s+\/XObject.*?)(\/ColorSpace\s*(\/DeviceGray|\/DeviceCMYK|\/DeviceRGB|\d+\s+\d+\s+R))/moi) do
$1 + "/ColorSpace #{object} 0 R".ljust($2.length)
end
elsif data =~ /(\d+)\s+0\s+obj\s+\[\/Separation/mos then
@command.report("replacing separation color")
object = $1
- data.gsub!(/(\/Type\s+\/XObject.*?)(\/ColorSpace\s*(\/DeviceGray|\/DeviceCMYK|\/DeviceRGB|\d+\s+\d+\s+R))/mois) do
+ data.gsub!(/(\/Type\s+\/XObject.*?)(\/ColorSpace\s*(\/DeviceGray|\/DeviceCMYK|\/DeviceRGB|\d+\s+\d+\s+R))/moi) do
$1 + "/ColorSpace #{object} 0 R".ljust($2.length)
end
end
@@ -663,7 +663,7 @@ class Commands
pairs = Hash.new
data.each do |d|
- if (d =~ /^\s*(.*?)\s*\:\s*(.*?)\s*$/mois) then
+ if (d =~ /^\s*(.*?)\s*\:\s*(.*?)\s*$/moi) then
key, val = $1, $2
pairs[key.downcase.sub(/ /,'')] = val
end
@@ -780,7 +780,7 @@ class Commands
end
threshold = @commandline.option('threshold').to_i rescue 0
filenames.each do |filename|
- if `pdfinfo #{filename}`.chomp =~ /^pages\s*\:\s*(\d+)/mois then
+ if `pdfinfo #{filename}`.chomp =~ /^pages\s*\:\s*(\d+)/moi then
p = $1
m = p.to_i rescue 0
if threshold == 0 or m > threshold then
diff --git a/scripts/context/ruby/texexec.rb b/scripts/context/ruby/texexec.rb
index f37cfd8c2..9b79369d8 100644
--- a/scripts/context/ruby/texexec.rb
+++ b/scripts/context/ruby/texexec.rb
@@ -242,7 +242,7 @@ class Commands
mod << "\\stoptext\n"
mod.close
job.setvariable('interface','english') # redundant
- job.setvariable('simplerun',true)
+ # job.setvariable('simplerun',true)
# job.setvariable('nooptionfile',true)
job.setvariable('files',[job.tempfilename])
result = File.unsuffixed(File.basename(ffname))
diff --git a/scripts/context/ruby/texmfstart.rb b/scripts/context/ruby/texmfstart.rb
index 17d4b5042..f60011d1d 100644
--- a/scripts/context/ruby/texmfstart.rb
+++ b/scripts/context/ruby/texmfstart.rb
@@ -1349,7 +1349,7 @@ module SelfMerge
end
inserts << "#{@@kpsemergestop}\n\n"
# no gsub! else we end up in SelfMerge
- rbfile.sub!(/#{@@kpsemergestart}\s*#{@@kpsemergestop}/mois) do
+ rbfile.sub!(/#{@@kpsemergestart}\s*#{@@kpsemergestop}/moi) do
inserts
end
rbfile.gsub!(/^(.*)(require [\"\'].*?#{@@modroot}.*)$/) do
@@ -1383,7 +1383,7 @@ module SelfMerge
begin
if rbfile = IO.read(@@filename) then
begin
- rbfile.sub!(/#{@@kpsemergestart}(.*)#{@@kpsemergestop}\s*/mois) do
+ rbfile.sub!(/#{@@kpsemergestart}(.*)#{@@kpsemergestop}\s*/moi) do
"#{@@kpsemergestart}\n\n#{@@kpsemergestop}\n\n"
end
rbfile.gsub!(/^(.*#{@@kpsemergedone}.*)$/) do
@@ -1445,6 +1445,7 @@ $stderr.sync = true
$applications = Hash.new
$suffixinputs = Hash.new
$predefined = Hash.new
+$runners = Hash.new
$suffixinputs['pl'] = 'PERLINPUTS'
$suffixinputs['rb'] = 'RUBYINPUTS'
@@ -1517,10 +1518,10 @@ $kpse = nil
def set_applications(page=1)
$applications['unknown'] = ''
- $applications['perl'] = $applications['pl'] = 'perl'
$applications['ruby'] = $applications['rb'] = 'ruby'
+ $applications['lua'] = $applications['lua'] = 'lua'
+ $applications['perl'] = $applications['pl'] = 'perl'
$applications['python'] = $applications['py'] = 'python'
- $applications['lua'] = $applications['lua'] = 'luatex --luaonly'
$applications['java'] = $applications['jar'] = 'java'
if $mswindows then
@@ -1536,6 +1537,8 @@ def set_applications(page=1)
$applications['htm'] = $applications['html']
$applications['eps'] = $applications['ps']
+ $runners['lua'] = "luatex --luaonly"
+
end
set_applications()
@@ -1675,6 +1678,33 @@ class File
end
+# def hashed (arr=[])
+ # arg = if arr.class == String then arr.split(' ') else arr.dup end
+ # hsh = Hash.new
+ # if arg.length > 0
+ # hsh['arguments'] = ''
+ # done = false
+ # arg.each do |s|
+ # if done then
+ # if s =~ / / then
+ # hsh['arguments'] += " \"#{s}\"" # maybe split on =
+ # else
+ # hsh['arguments'] += " #{s}"
+ # end
+ # else
+ # kvl = s.split('=')
+ # if kvl[0].sub!(/^\-+/,'') then
+ # hsh[kvl[0]] = if kvl.length > 1 then kvl[1] else true end
+ # else
+ # hsh['file'] = s
+ # done = true
+ # end
+ # end
+ # end
+ # end
+ # return hsh
+# end
+
def hashed (arr=[])
arg = if arr.class == String then arr.split(' ') else arr.dup end
hsh = Hash.new
@@ -1683,7 +1713,18 @@ def hashed (arr=[])
done = false
arg.each do |s|
if done then
- hsh['arguments'] += ' ' + s
+ if s =~ /\s/ then
+ kvl = s.split('=')
+ if kvl[1] and kvl[1] !~ /^[\"\']/ then
+ hsh['arguments'] += ' ' + kvl[0] + "=" + '"' + kvl[1] + '"'
+ elsif s =~ /\s/ then
+ hsh['arguments'] += ' "' + s + '"'
+ else
+ hsh['arguments'] += ' ' + s
+ end
+ else
+ hsh['arguments'] += ' ' + s
+ end
else
kvl = s.split('=')
if kvl[0].sub!(/^\-+/,'') then
@@ -1698,6 +1739,7 @@ def hashed (arr=[])
return hsh
end
+
def launch(filename)
if $browser && $mswindows then
filename = filename.gsub(/\.[\/\\]/) do
@@ -1717,15 +1759,25 @@ end
# rel|relative
# loc|locate|kpse|path|file
+def quoted(str)
+ if str =~ /^\"/ then
+ return str
+ elsif str =~ / / then
+ return "\"#{str}\""
+ else
+ return str
+ end
+end
+
def expanded(arg) # no "other text files", too restricted
arg.gsub(/(env|environment)\:([a-zA-Z\-\_\.0-9]+)/o) do
method, original, resolved = $1, $2, ''
if resolved = ENV[original] then
report("environment variable #{original} expands to #{resolved}") unless $report
- resolved
+ quoted(resolved)
else
report("environment variable #{original} cannot be resolved") unless $report
- original
+ quoted(original)
end
end . gsub(/(rel|relative)\:([a-zA-Z\-\_\.0-9]+)/o) do
method, original, resolved = $1, $2, ''
@@ -1736,9 +1788,9 @@ def expanded(arg) # no "other text files", too restricted
end
end
if resolved.empty? then
- original
+ quoted(original)
else
- resolved
+ quoted(resolved)
end
end . gsub(/(kpse|loc|locate|file|path)\:([a-zA-Z\-\_\.0-9]+)/o) do
method, original, resolved = $1, $2, ''
@@ -1753,7 +1805,7 @@ def expanded(arg) # no "other text files", too restricted
if ENV["_CTX_K_V_#{original}_"] then
resolved = ENV["_CTX_K_V_#{original}_"]
report("environment provides #{original} as #{resolved}") unless $report
- resolved
+ quoted(resolved)
else
check_kpse
pstrings.each do |pstr|
@@ -1789,12 +1841,12 @@ def expanded(arg) # no "other text files", too restricted
original = File.dirname(original) if method =~ /path/
report("#{original} is not resolved") unless $report
ENV["_CTX_K_V_#{original}_"] = original if $crossover
- original
+ quoted(original)
else
resolved = File.dirname(resolved) if method =~ /path/
report("#{original} is resolved to #{resolved}") unless $report
ENV["_CTX_K_V_#{original}_"] = resolved if $crossover
- resolved
+ quoted(resolved)
end
end
end
@@ -1839,6 +1891,11 @@ def runcommand(command)
end
end
+def join_command(args)
+ args[0] = $runners[args[0]] || args[0]
+ [args].join(' ')
+end
+
def runoneof(application,fullname,browserpermitted)
if browserpermitted && launch(fullname) then
return true
@@ -1851,26 +1908,26 @@ def runoneof(application,fullname,browserpermitted)
return true
elsif applications.class == Array then
if $report then
- output([fullname,expanded($arguments)].join(' '))
+ output(join_command([fullname,expanded($arguments)]))
return true
else
applications.each do |a|
- return true if runcommand([a,fullname,expanded($arguments)].join(' '))
+ return true if runcommand(join_command([a,fullname,expanded($arguments)]))
end
end
elsif applications.empty? then
if $report then
- output([fullname,expanded($arguments)].join(' '))
+ output(join_command([fullname,expanded($arguments)]))
return true
else
- return runcommand([fullname,expanded($arguments)].join(' '))
+ return runcommand(join_command([fullname,expanded($arguments)]))
end
else
if $report then
- output([applications,fullname,expanded($arguments)].join(' '))
+ output(join_command([applications,fullname,expanded($arguments)]))
return true
else
- return runcommand([applications,fullname,expanded($arguments)].join(' '))
+ return runcommand(join_command([applications,fullname,expanded($arguments)]))
end
end
return false
@@ -2414,7 +2471,6 @@ end
def execute(arguments)
arguments = arguments.split(/\s+/) if arguments.class == String
-
$directives = hashed(arguments)
$help = $directives['help'] || false
diff --git a/scripts/context/ruby/textools.rb b/scripts/context/ruby/textools.rb
index 56b018e2a..442dc1924 100644
--- a/scripts/context/ruby/textools.rb
+++ b/scripts/context/ruby/textools.rb
@@ -713,7 +713,7 @@ class Commands
f << "\n"
f << "/#{encoding.gsub(/[^a-zA-Z]/,'')}encoding [\n"
256.times do |i|
- f << " /#{chars[i] || '.notdef'}\n"
+ f << " /#{chars[i] || '.notdef'} % #{i}\n"
end
f << "] def\n"
f.close
diff --git a/scripts/context/ruby/www/exa.rb b/scripts/context/ruby/www/exa.rb
index 5e9b3fd82..997eab67d 100644
--- a/scripts/context/ruby/www/exa.rb
+++ b/scripts/context/ruby/www/exa.rb
@@ -156,32 +156,32 @@ class WWW
req << "</exa:request>\n"
else
# better use rexml but slower
- if req =~ /<exa:request[^>]*>.*?\s*<exa:threshold>\s*(.*?)\s*<\/exa:threshold>\s*.*?<\/exa:request>/mois then
+ if req =~ /<exa:request[^>]*>.*?\s*<exa:threshold>\s*(.*?)\s*<\/exa:threshold>\s*.*?<\/exa:request>/moi then
threshold = $1
unless threshold.empty? then
@interface.set('process:threshold', threshold)
@session.set('threshold', threshold)
end
end
- req.sub!(/(<exa:request[^>]*>.*?)\s*<exa:option>\s*\-\-action\=(.*?)\s*<\/exa:option>\s*(.*?<\/exa:request>)/mois) do
+ req.sub!(/(<exa:request[^>]*>.*?)\s*<exa:option>\s*\-\-action\=(.*?)\s*<\/exa:option>\s*(.*?<\/exa:request>)/moi) do
pre, act, pos = $1, $2, $3
action = act.sub(/\.exa$/,'') if action.empty?
str = "#{pre}<exa:action>#{action}</exa:action>#{pos}"
- str.sub(/\s*<exa:command>.*?<\/exa:command>\s*/mois ,'')
+ str.sub(/\s*<exa:command>.*?<\/exa:command>\s*/moi ,'')
end
- req.sub!(/(<exa:request[^>]*>.*?)<exa:action>\s*(.*?)\s*<\/exa:action>(.*?<\/exa:request>)/mois) do
+ req.sub!(/(<exa:request[^>]*>.*?)<exa:action>\s*(.*?)\s*<\/exa:action>(.*?<\/exa:request>)/moi) do
pre, act, pos = $1, $2, $3
action = act.sub(/\.exa$/,'') if action.empty?
str = "#{pre}<exa:action>#{action}</exa:action>#{pos}"
- str.sub(/\s*<exa:command>.*?<\/exa:command>\s*/mois ,'')
+ str.sub(/\s*<exa:command>.*?<\/exa:command>\s*/moi ,'')
end
- unless req =~ /<exa:data>(.*?)<\/exa:data>/mois then
+ unless req =~ /<exa:data>(.*?)<\/exa:data>/moi then
req.sub!(/(<\/exa:request>)/) do dat + $1 end
end
end
- req.sub!(/<exa:filename>.*?<\/exa:filename>/mois, '')
+ req.sub!(/<exa:filename>.*?<\/exa:filename>/moi, '')
unless @variables.empty?('exa:filename') then
- req.sub!(/(<\/exa:application>)/mois) do
+ req.sub!(/(<\/exa:application>)/moi) do
"<exa:filename>#{@variables.get('exa:filename')}<\/exa:filename>" + $1
end
end
@@ -312,13 +312,13 @@ class WWW
end
unless req.empty? then
# better use rexml but slower / reuse these : command = filter_from_request('exa:command')
- if req =~ /<exa:request[^>]*>.*?\s*<exa:command>\s*(.*?)\s*<\/exa:command>\s*.*?<\/exa:request>/mois then
+ if req =~ /<exa:request[^>]*>.*?\s*<exa:command>\s*(.*?)\s*<\/exa:command>\s*.*?<\/exa:request>/moi then
command = $1
end
- if req =~ /<exa:request[^>]*>.*?\s*<exa:url>\s*(.*?)\s*<\/exa:url>\s*.*?<\/exa:request>/mois then
+ if req =~ /<exa:request[^>]*>.*?\s*<exa:url>\s*(.*?)\s*<\/exa:url>\s*.*?<\/exa:request>/moi then
url = $1
end
- if req =~ /<exa:request[^>]*>.*?\s*<exa:threshold>\s*(.*?)\s*<\/exa:threshold>\s*.*?<\/exa:request>/mois then
+ if req =~ /<exa:request[^>]*>.*?\s*<exa:threshold>\s*(.*?)\s*<\/exa:threshold>\s*.*?<\/exa:request>/moi then
threshold = $1
unless threshold.empty? then
@interface.set('process:threshold', threshold)
diff --git a/scripts/context/ruby/xmltools.rb b/scripts/context/ruby/xmltools.rb
index 0c828e9d3..e0ff3c0f7 100644
--- a/scripts/context/ruby/xmltools.rb
+++ b/scripts/context/ruby/xmltools.rb
@@ -15,7 +15,7 @@
# This script will harbor some handy manipulations on tex
# related files.
-banner = ['XMLTools', 'version 1.2.1', '2002/2006', 'PRAGMA ADE/POD']
+banner = ['XMLTools', 'version 1.2.2', '2002/2007', 'PRAGMA ADE/POD']
$: << File.expand_path(File.dirname($0)) ; $: << File.join($:.last,'lib') ; $:.uniq!
@@ -466,35 +466,35 @@ class Commands
elements = Array.new
preamble = ""
done = false
- data.sub!(/^(.*?)\s*(<[a-z])/mois) do
+ data.sub!(/^(.*?)\s*(<[a-z])/moi) do
preamble = $1
$2
end
# hide elements
- data.gsub!(/<(.*?)>/mois) do
+ data.gsub!(/<([^>]*?)>/moi) do
elements << $1
"<#{elements.length}>"
end
# abc[-/]def
- data.gsub!(/([a-z]{3,})([\/\-\(\)])([a-z]{3,})/mois) do
+ data.gsub!(/([a-z]{3,})([\/\-\(\)])([a-z]{3,})/moi) do
done = true
report("compound: #{$1}#{$2}#{$3}") if verbose
"#{$1}<compound token='#{$2}'/>#{$3}"
end
# (abcd
- # data.gsub!(/(\()([a-z]{4,})/mois) do
+ # data.gsub!(/(\()([a-z]{4,})/moi) do
# done = true
# report("compound: #{$1}#{$2}") if verbose
# "<compound token='#{$1}'/>#{$2}"
# end
# abcd)
- # data.gsub!(/(\()([a-z]{4,})/mois) do
+ # data.gsub!(/(\()([a-z]{4,})/moi) do
# done = true
# report("compound: #{$1}#{$2}") if verbose
# "#{$2}<compound token='#{$2}'/>"
# end
# roll back elements
- data.gsub!(/<(\d+)>/mois) do
+ data.gsub!(/<(\d+)>/moi) do
"<#{elements.shift}>"
end
File.open(newname,'wb') do |f|
diff --git a/tex/context/base/core-fig.tex b/tex/context/base/core-fig.tex
index 194959bfd..b6a655c4f 100644
--- a/tex/context/base/core-fig.tex
+++ b/tex/context/base/core-fig.tex
@@ -962,7 +962,10 @@
\let\figurefilename\wantedconversionname
\let\figurefiletype\wantedconversiontype
\let\figurefileconversion\wantedfigureconversion
- \def\figurefullname{\wantedconversionpath/\wantedconversionname.\wantedconversiontype}}}}
+ \def\figurefullname
+ {\ifx\wantedconversionpath\empty\else\wantedconversionpath/\fi
+ \wantedconversionname
+ \ifx\wantedconversiontype\empty\else.\wantedconversiontype\fi}}}}
%D In \PDF\ one can specify an alternative graphic. This means
%D that for instance a low resolution graphic can be used for
@@ -1141,7 +1144,7 @@
\let\dogetfiguresizemps\dogetfiguresizeeps
\def\dogetfiguresizesvg
- {\doifinset\wantedfiguretypespec{\c!svg}
+ {\doifinset\wantedfiguretypespec\c!svg
{\startnointerference
\startXMLignore
\defineXMLcommand[svg][width=100,height=75]
diff --git a/tex/context/base/core-mat.tex b/tex/context/base/core-mat.tex
index e9300f35b..2451d6c1a 100644
--- a/tex/context/base/core-mat.tex
+++ b/tex/context/base/core-mat.tex
@@ -164,14 +164,14 @@
\makesectionnumber[\v!formula]%
\setbox0\hbox{\ignorespaces#2\unskip}%
\ifdim\wd0>\zeropoint
- \edef\hetsubnummer{#2}%
+ \edef\hetsubnummer{\@@fnseparator#2}%AM: was \edef\hetsubnummer{#2}%
\else
\let\hetsubnummer\empty
\fi
\doifsomething{#1}{\rawreference{\s!for}{#1}{\composedsectionnumber\hetsubnummer}}%
\setbox0\hbox{\ignorespaces#4\unskip}%
\ifdim\wd0>\zeropoint
- \edef\hetsubnummer{#4}%
+ \edef\hetsubnummer{\@@fnseparator#4}%AM: was \edef\hetsubnummer{#4}%
\fi
\doifsomething{#3}{\rawreference\s!for{#3}{\composedsectionnumber\hetsubnummer}}%
\doflushformulalistentry{\composedsectionnumber\hetsubnummer}%
@@ -607,7 +607,8 @@
\setupsubformulas
[\c!conversion=\v!character,
- \c!separator=\@@fmseparator,
+% \c!separator=\@@fmseparator,
+ \c!separator=,%AM: for compatibility with \placesubformula
\c!indentnext=\@@fmindentnext]
%D Experimental goodie:
diff --git a/tex/context/base/core-not.tex b/tex/context/base/core-not.tex
index c013dba40..d0049d653 100644
--- a/tex/context/base/core-not.tex
+++ b/tex/context/base/core-not.tex
@@ -828,6 +828,10 @@
\def\placenoteinserts
{\processnotes\doplacenoteinserts}
+% testcase for split bottom alignment see (a) below
+%
+% \dorecurse{6}{\input tufte\footnote{\input ward \input tufte \relax}}
+
\def\doplacenoteinserts
{%\ifvoid\currentnoteins \else % unsafe, strange
\relax\ifdim\ht\currentnoteins>\zeropoint\relax
@@ -846,6 +850,7 @@
\unvbox\currentnoteins
\or
\box\currentnoteins
+ \obeydepth % (a) added , since split footnotes will not align properly
\else
\unvbox\currentnoteins
\fi
diff --git a/tex/context/base/core-reg.tex b/tex/context/base/core-reg.tex
index bd64bd6ad..af90cebd0 100644
--- a/tex/context/base/core-reg.tex
+++ b/tex/context/base/core-reg.tex
@@ -142,14 +142,28 @@
\def\writetoregister[#1]% to be documented
{\doregister{#1}}
-\def\startregister
- {\dotripleempty\dostartregister}
+% \def\startregister
+% {\dotripleempty\dostartregister}
-\def\dostartregister[#1][#2][#3]#4%
- {\chardef\registerpagestatus\plustwo
- \def\currentregister{#1}%
- \setgvalue{\??id#1\??id#2}{\dodostopregister[#1][#3]{#4}}%
- \dodoregister[#3]{}{#4}}
+% \def\dostartregister[#1][#2][#3]#4%
+% {\chardef\registerpagestatus\plustwo
+% \def\currentregister{#1}%
+% \setgvalue{\??id#1\??id#2}{\dodostopregister[#1][#3]{#4}}%
+% \dodoregister[#3]{}{#4}}
+
+\def\startregister
+ {\doquadrupleempty\dostartregister}
+
+\def\dostartregister[#1][#2][#3][#4]#5% % 3 args: #3 is sortkey
+ {\chardef\registerpagestatus\plustwo % 4 args: #3 is type, #4 is sortkey
+ \def\currentregister{#1}%
+ \iffourarguments
+ \setgvalue{\??id#1\??id#2}{\dodostopregister[#1][#4]{#5}}%
+ \dodoregister[#4]{#3}{#5}%
+ \else
+ \setgvalue{\??id#1\??id#2}{\dodostopregister[#1][#3]{#5}}%
+ \dodoregister[#3]{}{#5}%
+ \fi}
\def\stopregister
{\dodoubleargument\dostopregister}
diff --git a/tex/context/base/core-sec.tex b/tex/context/base/core-sec.tex
index 50032edcd..ef33e7735 100644
--- a/tex/context/base/core-sec.tex
+++ b/tex/context/base/core-sec.tex
@@ -102,7 +102,7 @@
% \section{test} \subsection{test} \subsection{test}
% from now on, internaly numbers are separated by a period
-% and postprocessed on demand
+% and postprocessed on demand; this will change to {} {} {}
\def\numberseparator {.} % reasonable default
\def\sectionseparator{-} % was : but is now -
@@ -1185,7 +1185,7 @@
\def\localheadlineheight{\lineheight}
\def\dolocalheadsetup#1% koppeling met standaard kopcommando / engels
- {\forgetall % traag dus ...
+ {\forgetall % traag dus ...
\doifvaluesomething{\??ko#1\c!align} % wordt al expanded in spa
{\expanded{\setupalign[\getvalue{\??ko#1\c!align}]}}%
\doifvaluesomething{\??ko#1\c!tolerance} % wordt al expanded in spa
@@ -1381,7 +1381,7 @@
\let\localkopprefix\empty
\def\headparameter#1% to do: everywhere in core-sec
- {\csname\??ko\currenthead#1\endcsname}
+ {\executeifdefined{\??ko\currenthead#1}\empty}
\def\dodododoconstructhead#1[#2]#3#4% [ref] {number} {title}
{\def\currenthead{#1}% dus #1 overal vervangen
@@ -2104,20 +2104,74 @@
{\localheadsetup
\begstrut\ifheadnumbercontent#1\hskip\numberheaddistance\fi#2}}
+% \defineheadplacement[\v!normal][\v!vertical]#1#2%
+% {\ifheadnumbercontent
+% \setbox0\hbox{{#1}\hskip\numberheaddistance}%
+% \vbox
+% {\localheadsetup
+% \hangindent 1\wd0
+% \hangafter 1
+% \noindent
+% \unhbox0 % don't use \strut's here!
+% #2}%
+% \else
+% \vbox
+% {\localheadsetup\noindent#2}%
+% \fi}
+%
+% enhanced version:
+
+% \setuphead
+% [chapter]
+% [numberwidth=2cm,hang=line,after={\blank[3*line]}]
+%
+% \chapter{Oeps oeps oeps} \input tufte \section{Oeps}
+% \chapter{Oeps oeps oeps} \section{Oeps} \input tufte
+
\defineheadplacement[\v!normal][\v!vertical]#1#2%
- {\ifheadnumbercontent
- \setbox0\hbox{{#1}\hskip\numberheaddistance}%
- \vbox
- {\localheadsetup
- \hangindent 1\wd0
- \hangafter 1
+ {\vbox
+ {\localheadsetup
+ \edef\headwidth {\headparameter\c!width }%
+ \edef\headnumberwidth{\headparameter\c!numberwidth}%
+ \edef\headtextwidth {\headparameter\c!textwidth }%
+ \ifheadnumbercontent
+ \ifx\headwidth\empty
+ \else
+ \ifx\headnumberwidth\empty
+ \ifx\headtextwidth\empty\else
+ \edef\headnumberwidth{\the\dimexpr\headwidth-\headtextwidth\relax}%
+ \fi
+ \else
+ \ifx\headtextwidth\empty
+ \edef\headtextwidth{\the\dimexpr\headwidth-\headnumberwidth\relax}%
+ \fi
+ \fi
+ \hsize\headwidth
+ \fi
+ \ifx\headnumberwidth\empty\else
+ \let\numberheaddistance\!!zeropoint
+ \fi
+ \setbox\scratchbox\hbox \ifx\headnumberwidth\empty\else to \headnumberwidth\fi{{#1}}%
+ \scratchdimen\dimexpr\wd\scratchbox+\numberheaddistance\relax
+ \ifx\headtextwidth\empty\else
+ \hsize\dimexpr\scratchdimen+\headparameter\c!textwidth\relax
+ \fi
+ \hangindent\scratchdimen
+ \hangafter \plusone
\noindent
- \unhbox0 % don't use \strut's here!
- #2}%
- \else
- \vbox
- {\localheadsetup\noindent#2}%
- \fi}
+ \box\scratchbox\hskip\numberheaddistance
+ \else
+ \ifx\headtextwidth\empty
+ \ifx\headwidth\empty
+ \else
+ \hsize\headwidth
+ \fi
+ \else
+ \hsize\headtextwidth
+ \fi
+ \noindent
+ \fi
+ #2}}
\def\placeheadmargin#1#2%
{\vbox
diff --git a/tex/context/base/core-spa.tex b/tex/context/base/core-spa.tex
index e41f19215..7ef8597ea 100644
--- a/tex/context/base/core-spa.tex
+++ b/tex/context/base/core-spa.tex
@@ -13,7 +13,7 @@
\writestatus{loading}{Context Spacing Macros}
-% to be sorted out: dependencies, order of initialization
+% to be sorted out: dependencies, order of initialization / also some dutch code here
\unprotect
@@ -501,6 +501,8 @@
\defineblankmethod [\v!none] {\global\blankresettrue}
\defineblankmethod [\v!joinedup] {\ifvmode\nointerlineskip\fi}
+\defineblankmethod [\v!always] {\redowhitespace} % experimental
+
% happens often, so we speed this up:
%
% \defineblankmethod [2*\v!line] {\addblankskip+{2\openlineheight}{2\openlineheight}}
@@ -1732,9 +1734,9 @@
\newif\ifwitruimteflexibel \witruimteflexibeltrue
-\def\blankokleinmaat {\smallskipamount}
-\def\blankomiddelmaat {\medskipamount}
-\def\blankogrootmaat {\bigskipamount}
+\def\blankokleinmaat {\smallskipamount}
+\def\blankomiddelmaat {\medskipamount}
+\def\blankogrootmaat {\bigskipamount}
\def\currentwhitespace {\zeropoint}
% \def\stelwitruimteopnieuwin
@@ -1819,11 +1821,11 @@
\definewhitespacemethod [\v!line] {\ctxparskip \baselineskip}
\definewhitespacemethod [\v!halfline] {\ctxparskip.5\baselineskip}
\definewhitespacemethod [\v!none] {\ctxparskip \zeropoint}
-\definewhitespacemethod [\v!big] {\ctxparskip \blankogrootmaat}
-\definewhitespacemethod [\v!medium] {\ctxparskip \blankomiddelmaat}
-\definewhitespacemethod [\v!small] {\ctxparskip \blankokleinmaat}
+\definewhitespacemethod [\v!big] {\ctxparskip \bigskipamount}
+\definewhitespacemethod [\v!medium] {\ctxparskip \medskipamount}
+\definewhitespacemethod [\v!small] {\ctxparskip \smallskipamount}
-\definewhitespacemethod [\s!default] {\stelwitruimteopnieuwin}
+\definewhitespacemethod [\s!default] {\simplesetupwhitespace} % {\stelwitruimteopnieuwin}
\def\dowhitespacemethod#1%
{\executeifdefined{\??ws\??ws#1}{\ctxparskip#1}\relax}
@@ -1836,6 +1838,16 @@
\fi
\fi}
+\def\nowhitespaceunlessskip
+ {\ifdim\lastskip>\zeropoint \else
+ \nowhitespace
+ \fi}
+
+\def\redowhitespace
+ {\ifdim\lastskip>-\parskip \else
+ \vskip\parskip
+ \fi}
+
\def\savecurrentwhitespace
{\edef\restorecurrentwhitespace
{\ctxparskip\the\ctxparskip
diff --git a/tex/context/base/core-var.tex b/tex/context/base/core-var.tex
index 2317d7bf7..0c740d4b8 100644
--- a/tex/context/base/core-var.tex
+++ b/tex/context/base/core-var.tex
@@ -443,12 +443,29 @@
\def\globalsetvariables % obsolete
{\dotripleargument\dosetvariables[\globalgetrawparameters]}
+% \long\def\dosetvariables[#1][#2][#3]%
+% {\errorisfataltrue
+% \def\currentvariableclass{#2}%
+% \getvariable{#2}\s!reset
+% #1[\??vars:#2:][#3]%
+% \getvariable{#2}\s!set
+% \errorisfatalfalse}
+%
+% permit nested definitions while preventing nested set/reset
+
\long\def\dosetvariables[#1][#2][#3]%
{\errorisfataltrue
- \def\currentvariableclass{#2}%
- \getvariable{#2}\s!reset
- #1[\??vars:#2:][#3]%
- \getvariable{#2}\s!set
+ \getrawparameters[\??vars:*:][\s!reset=*,\s!set=*,#3]%
+ \doifelse{\getvalue{\??vars:*:\s!reset}\getvalue{\??vars:*:\s!set}}{**}
+ {\doifelse{#2}\currentvariableclass
+ {#1[\??vars:#2:][#3]}
+ {\pushmacro\currentvariableclass
+ \def\currentvariableclass{#2}%
+ \getvariable{#2}\s!reset
+ #1[\??vars:#2:][#3]%
+ \getvariable{#2}\s!set
+ \popmacro\currentvariableclass}}%
+ {#1[\??vars:#2:][#3]}%
\errorisfatalfalse}
\long\def\setvariable #1#2#3{\long\setvalue {\??vars:#1:#2}{#3}}
diff --git a/tex/context/base/font-ini.mkii b/tex/context/base/font-ini.mkii
index cbe71a187..25fea33b4 100644
--- a/tex/context/base/font-ini.mkii
+++ b/tex/context/base/font-ini.mkii
@@ -64,14 +64,13 @@
\def\fontfilename#1{"#1"}
\def\fontfilefile#1{"#1"}
-\def\fontfilesome#1{"#1"}
+\def\fontfilesome#1{#1}
\beginXETEX
-
- \def\fontfilename#1{"#1"}
\def\fontfilefile#1{"[#1]"}
- \def\fontfilesome#1{"[#1]"}
-
\endXETEX
+\def\mkdefinefontfeature#1% #2
+ {\setvalue{\??fa#1}} % {#2}
+
\protect \endinput
diff --git a/tex/context/base/font-ini.tex b/tex/context/base/font-ini.tex
index 3efc12386..803798b08 100644
--- a/tex/context/base/font-ini.tex
+++ b/tex/context/base/font-ini.tex
@@ -1454,6 +1454,7 @@
\let\@@fontencoding\empty
\let\@@fontmapping \empty
\let\@@fonthandling\empty
+\let\@@fontfeatures\empty
\let\@@skewchar \empty
\let\@@hyphenchar \empty % todo, will go to encoding
@@ -1485,6 +1486,7 @@
\def\donoparsefontspec % #1 == \cs
{\edef\fontfile{\truefontname\somefontname}%
\ifx\fontfile\s!unknown \let\fontfile\defaultfontfile \fi
+ \updatefontparameters
\checkfontfilename
\edef\lastfontname{\checkedfontfile\somefontspec}%
\ifx\fontclass\empty
@@ -1502,8 +1504,10 @@
\noexpand\reactivatefont{\somefontname}{\fontfile}}%
\global\expandafter\font\csname#1:\endcsname\lastfontname\relax}
-\def\reactivatefont#1%#2%
- {\def\somefontname{#1}\def\fontfile}%{#2}}
+\def\reactivatefont#1#2%
+ {\def\somefontname{#1}%
+ \def\fontfile {#2}%
+ \updatefontparameters}
% can be handy for tracing purposes
%
@@ -1619,7 +1623,6 @@
%
% \testfeatureonce{5000}{\definefontsynonym[somefont][somename]} \end
-
\def\classfont#1#2{#1#2} % \definefont[whatever][\classfont{xx}{yy} at 10pt]
\def\definefontsynonym[#1]#2[#3]%
@@ -1635,6 +1638,9 @@
\getglobalfontparameters
\fi \fi}
+% \def\resetfontsynonym[#1]% fails
+% {\letbeundefined{\??ff\fontclass#1}}
+
\let\definefontfile\definefontsynonym % dedicated to Taco Hoekwater
\def\setupfontsynonym
@@ -1836,7 +1842,8 @@
{\edef\@@truefontname{\truefontname{#1}}%
\edef\currentfontfileencoding{\truefontdata\@@truefontname\s!encoding}%
\edef\currentfontfilemapping {\truefontdata\@@truefontname\s!mapping }%
- \edef\currentfontfilehandling{\truefontdata\@@truefontname\s!handling}}
+ \edef\currentfontfilehandling{\truefontdata\@@truefontname\s!handling}%
+ \edef\currentfontfilefeatures{\truefontdata\@@truefontname\s!features}}
%D \macros
%D {definefont}
@@ -3150,21 +3157,6 @@
\newtoks\fontstrategies
\newif\iftryingfont
-% \def\synchronizefont
-% {\tryingfonttrue
-% \ifx\fontclass\empty\else
-% \let\fontstrategy\dofontclassstrategy
-% \the\fontstrategies \relax % \relax still needed ?
-% \fi
-% \iftryingfont
-% \let\fontstrategy\dofontstrategy
-% \the\fontstrategies \relax % \relax still needed ?
-% \fi
-% \ifskipfontcharacteristics
-% \setfontcharacteristics
-% \the\everyfontswitch
-% \fi}
-
\let\fontstrategy\relax
\def\synchronizefont
@@ -3576,10 +3568,11 @@
{\edef\@@fontencoding{\truefontdata\fontfile \s!encoding}%
\edef\@@fontmapping {\truefontdata\fontfile \s!mapping }%
\edef\@@fonthandling{\truefontdata\somefontname\s!handling}%
+ \edef\@@fontfeatures{\truefontdata\fontfile \s!features}%
\edef\@@fontskewchar{\truefontdata\fontfile \s!skewchar}}
\def\setfontcharacteristics
- {\updatefontparameters
+ {\updatefontparameters % redundant, will go away, faster too
\fastenableencoding
{\ifx\@@fontencoding\empty
\s!default \else \@@fontencoding
@@ -3602,6 +3595,16 @@
\ifx\synchronizepatternswithfont\undefined \def\synchronizepatternswithfont{\synchronizepatterns} \fi
+%D Experimental:
+
+\def\definefontfeature
+ {\dodoubleargument\dodefinefontfeature}
+
+\def\dodefinefontfeature[#1][#2]%
+ {\mkdefinefontfeature{#1}{#2}}
+
+\ifx\mkdefinefontfeature\undefined \let\mkdefinefontfeature\gobbletwoarguments \fi
+
%D The next auxilliary macro is an alternative to \type
%D {\fontname}.
@@ -4719,21 +4722,24 @@
\definefontsize[\c!a] \definefontsize[\c!b]
\definefontsize[\c!c] \definefontsize[\c!d]
-\definealternativestyle [\v!mediaeval] [\os] []
-\definealternativestyle [\v!normal] [\tf] []
-\definealternativestyle [\v!bold] [\bf] []
-\definealternativestyle [\v!type] [\tt] []
-\definealternativestyle [\v!mono] [\tt] []
-\definealternativestyle [\v!slanted] [\sl] []
-\definealternativestyle [\v!italic] [\it] []
-\definealternativestyle [\v!boldslanted,\v!slantedbold] [\bs] []
-\definealternativestyle [\v!bolditalic,\v!italicbold] [\bi] []
-\definealternativestyle [\v!small,\v!smallnormal] [\tfx] []
-\definealternativestyle [\v!smallbold] [\bfx] []
-\definealternativestyle [\v!smalltype] [\ttx] []
-\definealternativestyle [\v!smallslanted] [\slx] []
-\definealternativestyle [\v!smallboldslanted,\v!smallslantedbold] [\bsx] []
-\definealternativestyle [\v!smallbolditalic,\v!smallitalicbold] [\bix] []
+\definealternativestyle [\v!mediaeval] [\os] []
+\definealternativestyle [\v!normal] [\tf] []
+\definealternativestyle [\v!bold] [\bf] []
+\definealternativestyle [\v!type] [\tt] []
+\definealternativestyle [\v!mono] [\tt] []
+\definealternativestyle [\v!slanted] [\sl] []
+\definealternativestyle [\v!italic] [\it] []
+\definealternativestyle [\v!boldslanted,\v!slantedbold] [\bs] []
+\definealternativestyle [\v!bolditalic,\v!italicbold] [\bi] []
+\definealternativestyle [\v!small,\v!smallnormal] [\tfx] []
+\definealternativestyle [\v!smallbold] [\bfx] []
+\definealternativestyle [\v!smalltype] [\ttx] []
+\definealternativestyle [\v!smallslanted] [\slx] []
+\definealternativestyle [\v!smallboldslanted,\v!smallslantedbold] [\bsx] []
+\definealternativestyle [\v!smallbolditalic,\v!smallitalicbold] [\bix] []
+
+\definealternativestyle [\v!sans,\v!sansserif] [\ss] []
+\definealternativestyle [\v!sansbold] [\ss\bf] []
%D Slow but handy:
diff --git a/tex/context/base/math-tex.tex b/tex/context/base/math-tex.tex
index 6cd834ab4..42fb9bd17 100644
--- a/tex/context/base/math-tex.tex
+++ b/tex/context/base/math-tex.tex
@@ -457,6 +457,18 @@
\stopmathcollection
+%D By request:
+
+\startmathcollection[default]
+
+\definemathsymbol [lvert] [open] [sy] ["6A] [ex] ["0C]
+\definemathsymbol [rvert] [close] [sy] ["6A] [ex] ["0C]
+
+\definemathsymbol [lVert] [open] [sy] ["6B] [ex] ["0D]
+\definemathsymbol [rVert] [close] [sy] ["6B] [ex] ["0D]
+
+\stopmathcollection
+
%D For brooks:
%D
%D \starttyping
diff --git a/tex/context/base/meta-ini.tex b/tex/context/base/meta-ini.tex
index e2f9fa1f9..b095431cd 100644
--- a/tex/context/base/meta-ini.tex
+++ b/tex/context/base/meta-ini.tex
@@ -757,7 +757,7 @@
%
PageNumber:=\the\pageno;
RealPageNumber:=\the\realpageno;
- LastPageNumber:= lastpage;
+ LastPageNumber:= \lastpage;
\stopMPinitializations
\appendtoks
diff --git a/tex/context/base/mult-con.tex b/tex/context/base/mult-con.tex
index 86147d85d..d293472b3 100644
--- a/tex/context/base/mult-con.tex
+++ b/tex/context/base/mult-con.tex
@@ -1694,6 +1694,10 @@ subsubsubsubsubsubject: subsubsubsubsubonderwerp subsubsubsubsub
textbreite sirkatextu
ampiezzatesto latimetext
largeurtexte
+numberwidth: nummerbreedte numberwidth
+ numberwidth numberwidth
+ numberwidth numberwidth
+ numberwidth
textcommand: tekstcommando textcommand
textbefehl textovyprikaz
comandotesto comandatext
@@ -2940,6 +2944,10 @@ subsubsubsubsubsubject: subsubsubsubsubonderwerp subsubsubsubsub
fett tucne
grassetto aldin
gras
+ sansbold: sansvet sansbold
+ sansfett sanstucne
+ sansgrassetto sansaldin
+ sansgras
boldslanted: vetschuin boldslanted
fettgeneigt tucnesklonene
grassettoinclinato aldininclinat
diff --git a/tex/context/base/mult-sys.tex b/tex/context/base/mult-sys.tex
index ce51665c2..572cd827a 100644
--- a/tex/context/base/mult-sys.tex
+++ b/tex/context/base/mult-sys.tex
@@ -167,6 +167,7 @@
\definesystemconstant {patterns}
\definesystemconstant {rscale}
\definesystemconstant {handling}
+\definesystemconstant {features}
\definesystemconstant {ucmap}
\definesystemconstant {property}
@@ -415,7 +416,7 @@
\definesystemvariable {eq} % EQalign
\definesystemvariable {er} % external resources
\definesystemvariable {ex} % ExterneFiguren
-\definesystemvariable {ht} % HiddenText
+\definesystemvariable {fa} % font feature
\definesystemvariable {fc} % FramedContent
\definesystemvariable {fd} % FielD
\definesystemvariable {fe} % FoxetExtensions
@@ -433,6 +434,7 @@
\definesystemvariable {fx} % FoXet
\definesystemvariable {ha} % HAng
\definesystemvariable {hs} % HSpace
+\definesystemvariable {ht} % HiddenText
\definesystemvariable {ia} % Interactie
\definesystemvariable {ib} % InteractieBalk
\definesystemvariable {id} % Index
diff --git a/tex/context/base/page-one.tex b/tex/context/base/page-one.tex
index bab18d7d8..5524fb818 100644
--- a/tex/context/base/page-one.tex
+++ b/tex/context/base/page-one.tex
@@ -198,7 +198,12 @@
\fakepagenotes}% was \fakenotes, but wrong! (check with \setupalign[height])
\ifbottomnotes
\ifgridsnapping
- \getnoflines\textheight
+\ifcase\layoutlines % todo: make macro of this
+ \getrawnoflines\textheight
+\else
+ \noflines\layoutlines
+\fi
+% \getnoflines\textheight
\advance\noflines \minusone
\scratchdimen\noflines\lineheight
\advance\scratchdimen \topskip
diff --git a/tex/context/base/rlxcache.rlx b/tex/context/base/rlxcache.rlx
new file mode 100644
index 000000000..006e5feac
--- /dev/null
+++ b/tex/context/base/rlxcache.rlx
@@ -0,0 +1,71 @@
+<?xml version='1.0 standalone='yes'?>
+
+<rl:manipulators>
+
+ <rl:manipulator name='pdf' suffix='eps'>
+ <rl:old><rl:value name='path'/>/<rl:value name='file' method='nosuffix'/>.eps</rl:old>
+ <rl:new><rl:value name='cache' default='rlxcache'/>/<rl:value name='file' method='nosuffix'/>.pdf</rl:new>
+ <rl:step>
+ texmfstart pstopdf --convert
+ --inputpath="<rl:value name='path'/>"
+ --outputpath="<rl:value name='cache' default='.'/>"
+ "<rl:value name='file' method='nosuffix'/>.eps"
+ </rl:step>
+ </rl:manipulator>
+
+ <rl:manipulator name='pdf' suffix='svg'>
+ <rl:old><rl:value name='path'/>/<rl:value name='file' method='nosuffix'/>.svg</rl:old>
+ <rl:new><rl:value name='cache' default='rlxcache'/>/<rl:value name='file' method='nosuffix'/>.pdf</rl:new>
+ <rl:step>
+ texmfstart pstopdf --convert
+ --inputpath="<rl:value name='path'/>"
+ --outputpath="<rl:value name='cache' default='.'/>"
+ "<rl:value name='file' method='nosuffix'/>.svg"
+ </rl:step>
+ </rl:manipulator>
+
+ <rl:manipulator name='pdf' suffix='svgz'>
+ <rl:old><rl:value name='path'/>/<rl:value name='file' method='nosuffix'/>.svgz</rl:old>
+ <rl:new><rl:value name='cache' default='rlxcache'/>/<rl:value name='file' method='nosuffix'/>.pdf</rl:new>
+ <rl:step>
+ texmfstart pstopdf --convert
+ --inputpath="<rl:value name='path'/>"
+ --outputpath="<rl:value name='cache' default='.'/>"
+ "<rl:value name='file' method='nosuffix'/>.svgz"
+ </rl:step>
+ </rl:manipulator>
+
+ <rl:manipulator name='pdf' suffix='gif'>
+ <rl:old><rl:value name='path'/>/<rl:value name='file' method='nosuffix'/>.gif</rl:old>
+ <rl:new><rl:value name='cache' default='rlxcache'/>/<rl:value name='file' method='nosuffix'/>.pdf</rl:new>
+ <rl:step>
+ texmfstart pstopdf --convert
+ --inputpath="<rl:value name='path'/>"
+ --outputpath="<rl:value name='cache' default='.'/>"
+ "<rl:value name='file' method='nosuffix'/>.gif"
+ </rl:step>
+ </rl:manipulator>
+
+ <rl:manipulator name='pdf' suffix='tif'>
+ <rl:old><rl:value name='path'/>/<rl:value name='file' method='nosuffix'/>.tif</rl:old>
+ <rl:new><rl:value name='cache' default='rlxcache'/>/<rl:value name='file' method='nosuffix'/>.pdf</rl:new>
+ <rl:step>
+ texmfstart pstopdf --convert
+ --inputpath="<rl:value name='path'/>"
+ --outputpath="<rl:value name='cache' default='.'/>"
+ "<rl:value name='file' method='nosuffix'/>.tif"
+ </rl:step>
+ </rl:manipulator>
+
+ <rl:manipulator name='pdf' suffix='tiff'>
+ <rl:old><rl:value name='path'/>/<rl:value name='file' method='nosuffix'/>.tiff</rl:old>
+ <rl:new><rl:value name='cache' default='rlxcache'/>/<rl:value name='file' method='nosuffix'/>.pdf</rl:new>
+ <rl:step>
+ texmfstart pstopdf --convert
+ --inputpath="<rl:value name='path'/>"
+ --outputpath="<rl:value name='cache' default='.'/>"
+ "<rl:value name='file' method='nosuffix'/>.tiff"
+ </rl:step>
+ </rl:manipulator>
+
+</rl:manipulators>
diff --git a/tex/context/base/supp-pat.tex b/tex/context/base/supp-pat.tex
index 15c69e2c2..6c11c1d92 100644
--- a/tex/context/base/supp-pat.tex
+++ b/tex/context/base/supp-pat.tex
@@ -155,6 +155,7 @@
%D An example of usage in another format than \CONTEXT:
%D
+%D \starttyping
%D \bgroup
%D
%D \lccode"E4="E4 \definepatterntoken adiaeresis ^^e4
@@ -169,6 +170,7 @@
%D \input lang-de.hyp
%D
%D \egroup
+%D \stoptyping
%D
%D This is a minimal example for EC encoding, and of course
%D a couple of more language related settings need to take
diff --git a/tex/context/base/syst-prm.tex b/tex/context/base/syst-prm.tex
index e54c2e20c..ea7b5634c 100644
--- a/tex/context/base/syst-prm.tex
+++ b/tex/context/base/syst-prm.tex
@@ -122,7 +122,7 @@
%D Let's get rid of this one:
-% \def\wlog#1{}
+\def\wlog#1{}
%D Just for tracing purposes we set:
diff --git a/tex/context/base/type-syn.tex b/tex/context/base/type-syn.tex
index c4d908b35..c5514c65f 100644
--- a/tex/context/base/type-syn.tex
+++ b/tex/context/base/type-syn.tex
@@ -485,142 +485,142 @@
\starttypescript [sans] [iwona-light] [name]
\setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-Light] [encoding=\typescriptthree]
- \definefontsynonym [SansItalic] [Iwona-LightItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansBold] [Iwona-Medium] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldItalic] [Iwona-MediumItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansCaps] [Iwona-CapsLight] [encoding=\typescriptthree]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsLightItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsMedium] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsMediumItalic] [encoding=\typescriptthree]
+ \definefontsynonym [Sans] [Iwona-Light]
+ \definefontsynonym [SansItalic] [Iwona-LightItalic]
+ \definefontsynonym [SansBold] [Iwona-Medium]
+ \definefontsynonym [SansBoldItalic] [Iwona-MediumItalic]
+ \definefontsynonym [SansCaps] [Iwona-CapsLight]
+ \definefontsynonym [SansItalicCaps] [Iwona-CapsLightItalic]
+ \definefontsynonym [SansBoldCaps] [Iwona-CapsMedium]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsMediumItalic]
\stoptypescript
\starttypescript [sans] [iwona-light-caps] [name]
\setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CapsLight] [encoding=\typescriptthree]
- \definefontsynonym [SansItalic] [Iwona-CapsLightItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansBold] [Iwona-CapsMedium] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldItalic] [Iwona-CapsMediumItalic] [encoding=\typescriptthree]
+ \definefontsynonym [Sans] [Iwona-CapsLight]
+ \definefontsynonym [SansItalic] [Iwona-CapsLightItalic]
+ \definefontsynonym [SansBold] [Iwona-CapsMedium]
+ \definefontsynonym [SansBoldItalic] [Iwona-CapsMediumItalic]
\stoptypescript
\starttypescript [sans] [iwona] [name]
\setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-Regular] [encoding=\typescriptthree]
- \definefontsynonym [SansItalic] [Iwona-RegularItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansBold] [Iwona-Bold] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldItalic] [Iwona-BoldItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansCaps] [Iwona-CapsRegular] [encoding=\typescriptthree]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsRegularItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsBold] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsBoldItalic] [encoding=\typescriptthree]
+ \definefontsynonym [Sans] [Iwona-Regular]
+ \definefontsynonym [SansItalic] [Iwona-RegularItalic]
+ \definefontsynonym [SansBold] [Iwona-Bold]
+ \definefontsynonym [SansBoldItalic] [Iwona-BoldItalic]
+ \definefontsynonym [SansCaps] [Iwona-CapsRegular]
+ \definefontsynonym [SansItalicCaps] [Iwona-CapsRegularItalic]
+ \definefontsynonym [SansBoldCaps] [Iwona-CapsBold]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsBoldItalic]
\stoptypescript
\starttypescript [sans] [iwona-caps] [name]
\setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CapsRegular] [encoding=\typescriptthree]
- \definefontsynonym [SansItalic] [Iwona-CapsRegularItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansBold] [Iwona-CapsBold] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldItalic] [Iwona-CapsBoldItalic] [encoding=\typescriptthree]
+ \definefontsynonym [Sans] [Iwona-CapsRegular]
+ \definefontsynonym [SansItalic] [Iwona-CapsRegularItalic]
+ \definefontsynonym [SansBold] [Iwona-CapsBold]
+ \definefontsynonym [SansBoldItalic] [Iwona-CapsBoldItalic]
\stoptypescript
\starttypescript [sans] [iwona-medium] [name]
\setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-Medium] [encoding=\typescriptthree]
- \definefontsynonym [SansItalic] [Iwona-MediumItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansBold] [Iwona-Heavy] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldItalic] [Iwona-HeavyItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansCaps] [Iwona-CapsHeavy] [encoding=\typescriptthree]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsMediumItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavyItalic] [encoding=\typescriptthree]
+ \definefontsynonym [Sans] [Iwona-Medium]
+ \definefontsynonym [SansItalic] [Iwona-MediumItalic]
+ \definefontsynonym [SansBold] [Iwona-Heavy]
+ \definefontsynonym [SansBoldItalic] [Iwona-HeavyItalic]
+ \definefontsynonym [SansCaps] [Iwona-CapsHeavy]
+ \definefontsynonym [SansItalicCaps] [Iwona-CapsMediumItalic]
+ \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavyItalic]
\stoptypescript
\starttypescript [sans] [iwona-medium-caps] [name]
\setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CapsHeavy] [encoding=\typescriptthree]
- \definefontsynonym [SansItalic] [Iwona-CapsMediumItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansBold] [Iwona-CapsHeavy] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldItalic] [Iwona-CapsHeavyItalic] [encoding=\typescriptthree]
+ \definefontsynonym [Sans] [Iwona-CapsHeavy]
+ \definefontsynonym [SansItalic] [Iwona-CapsMediumItalic]
+ \definefontsynonym [SansBold] [Iwona-CapsHeavy]
+ \definefontsynonym [SansBoldItalic] [Iwona-CapsHeavyItalic]
\stoptypescript
\starttypescript [sans] [iwona-heavy] [name]
\setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-Heavy] [encoding=\typescriptthree]
- \definefontsynonym [SansItalic] [Iwona-HeavyItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansBold] [Iwona-Heavy] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldItalic] [Iwona-HeavyItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansCaps] [Iwona-CapsHeavy] [encoding=\typescriptthree]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsHeavyItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavyItalic] [encoding=\typescriptthree]
+ \definefontsynonym [Sans] [Iwona-Heavy]
+ \definefontsynonym [SansItalic] [Iwona-HeavyItalic]
+ \definefontsynonym [SansBold] [Iwona-Heavy]
+ \definefontsynonym [SansBoldItalic] [Iwona-HeavyItalic]
+ \definefontsynonym [SansCaps] [Iwona-CapsHeavy]
+ \definefontsynonym [SansItalicCaps] [Iwona-CapsHeavyItalic]
+ \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavyItalic]
\stoptypescript
\starttypescript [sans] [iwona-heavy-caps] [name]
\setups[font:fallback:sans]
- \definefontsynonym [SansCaps] [Iwona-CapsHeavy] [encoding=\typescriptthree]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsHeavyItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavyItalic] [encoding=\typescriptthree]
+ \definefontsynonym [SansCaps] [Iwona-CapsHeavy]
+ \definefontsynonym [SansItalicCaps] [Iwona-CapsHeavyItalic]
+ \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavyItalic]
\stoptypescript
\starttypescript [sans] [iwona-light-cond] [name]
\setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CondLight] [encoding=\typescriptthree]
- \definefontsynonym [SansItalic] [Iwona-CondLightItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansBold] [Iwona-CondMedium] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldItalic] [Iwona-CondMediumItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansCaps] [Iwona-CondCapsLight] [encoding=\typescriptthree]
- \definefontsynonym [SansItalicCaps] [Iwona-CondCapsLightItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldCaps] [Iwona-CondCapsMedium] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CondCapsMediumItalic] [encoding=\typescriptthree]
+ \definefontsynonym [Sans] [Iwona-CondLight]
+ \definefontsynonym [SansItalic] [Iwona-CondLightItalic]
+ \definefontsynonym [SansBold] [Iwona-CondMedium]
+ \definefontsynonym [SansBoldItalic] [Iwona-CondMediumItalic]
+ \definefontsynonym [SansCaps] [Iwona-CondCapsLight]
+ \definefontsynonym [SansItalicCaps] [Iwona-CondCapsLightItalic]
+ \definefontsynonym [SansBoldCaps] [Iwona-CondCapsMedium]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CondCapsMediumItalic]
\stoptypescript
\starttypescript [sans] [iwona-light-cond-caps] [name]
\setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CondCapsLight] [encoding=\typescriptthree]
- \definefontsynonym [SansItalic] [Iwona-CondCapsLightItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansBold] [Iwona-CondCapsMedium] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldItalic] [Iwona-CondCapsMediumItalic] [encoding=\typescriptthree]
+ \definefontsynonym [Sans] [Iwona-CondCapsLight]
+ \definefontsynonym [SansItalic] [Iwona-CondCapsLightItalic]
+ \definefontsynonym [SansBold] [Iwona-CondCapsMedium]
+ \definefontsynonym [SansBoldItalic] [Iwona-CondCapsMediumItalic]
\stoptypescript
\starttypescript [sans] [iwona-cond] [name]
\setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CondRegular] [encoding=\typescriptthree]
- \definefontsynonym [SansItalic] [Iwona-CondRegularItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansBold] [Iwona-CondBold] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldItalic] [Iwona-CondBoldItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansCaps] [Iwona-CondCapsRegular] [encoding=\typescriptthree]
- \definefontsynonym [SansItalicCaps] [Iwona-CondCapsRegularItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldCaps] [Iwona-CondCapsBold] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CondCapsBoldItalic] [encoding=\typescriptthree]
+ \definefontsynonym [Sans] [Iwona-CondRegular]
+ \definefontsynonym [SansItalic] [Iwona-CondRegularItalic]
+ \definefontsynonym [SansBold] [Iwona-CondBold]
+ \definefontsynonym [SansBoldItalic] [Iwona-CondBoldItalic]
+ \definefontsynonym [SansCaps] [Iwona-CondCapsRegular]
+ \definefontsynonym [SansItalicCaps] [Iwona-CondCapsRegularItalic]
+ \definefontsynonym [SansBoldCaps] [Iwona-CondCapsBold]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CondCapsBoldItalic]
\stoptypescript
\starttypescript [sans] [iwona-cond-caps] [name]
\setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CondCapsRegular] [encoding=\typescriptthree]
- \definefontsynonym [SansItalic] [Iwona-CondCapsRegularItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansBold] [Iwona-CondCapsBold] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldItalic] [Iwona-CondCapsBoldItalic] [encoding=\typescriptthree]
+ \definefontsynonym [Sans] [Iwona-CondCapsRegular]
+ \definefontsynonym [SansItalic] [Iwona-CondCapsRegularItalic]
+ \definefontsynonym [SansBold] [Iwona-CondCapsBold]
+ \definefontsynonym [SansBoldItalic] [Iwona-CondCapsBoldItalic]
\stoptypescript
\starttypescript [sans] [iwona-medium-cond] [name]
\setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CondMedium] [encoding=\typescriptthree]
- \definefontsynonym [SansItalic] [Iwona-CondMediumItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansBold] [Iwona-CondHeavy] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldItalic] [Iwona-CondHeavyItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansCaps] [Iwona-CondCapsHeavy] [encoding=\typescriptthree]
- \definefontsynonym [SansItalicCaps] [Iwona-CondCapsMediumItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldCaps] [Iwona-CondCapsHeavy] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CondCapsHeavyItalic] [encoding=\typescriptthree]
+ \definefontsynonym [Sans] [Iwona-CondMedium]
+ \definefontsynonym [SansItalic] [Iwona-CondMediumItalic]
+ \definefontsynonym [SansBold] [Iwona-CondHeavy]
+ \definefontsynonym [SansBoldItalic] [Iwona-CondHeavyItalic]
+ \definefontsynonym [SansCaps] [Iwona-CondCapsHeavy]
+ \definefontsynonym [SansItalicCaps] [Iwona-CondCapsMediumItalic]
+ \definefontsynonym [SansBoldCaps] [Iwona-CondCapsHeavy]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CondCapsHeavyItalic]
\stoptypescript
\starttypescript [sans] [iwona-medium-cond-caps] [name]
\setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CondCapsHeavy] [encoding=\typescriptthree]
- \definefontsynonym [SansItalic] [Iwona-CondCapsMediumItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansBold] [Iwona-CondCapsHeavy] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldItalic] [Iwona-CondCapsHeavyItalic] [encoding=\typescriptthree]
+ \definefontsynonym [Sans] [Iwona-CondCapsHeavy]
+ \definefontsynonym [SansItalic] [Iwona-CondCapsMediumItalic]
+ \definefontsynonym [SansBold] [Iwona-CondCapsHeavy]
+ \definefontsynonym [SansBoldItalic] [Iwona-CondCapsHeavyItalic]
\stoptypescript
\starttypescript [math] [iwona-light] [name]
@@ -655,26 +655,26 @@
\starttypescript [sans] [kurier-light] [name]
\setups[font:fallback:sans]
- \definefontsynonym [Sans] [Kurier-Light] [encoding=\typescriptthree]
- \definefontsynonym [SansItalic] [Kurier-LightItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansBold] [Kurier-Medium] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldItalic] [Kurier-MediumItalic] [encoding=\typescriptthree]
+ \definefontsynonym [Sans] [Kurier-Light]
+ \definefontsynonym [SansItalic] [Kurier-LightItalic]
+ \definefontsynonym [SansBold] [Kurier-Medium]
+ \definefontsynonym [SansBoldItalic] [Kurier-MediumItalic]
\stoptypescript
\starttypescript [sans] [kurier] [name]
\setups[font:fallback:sans]
- \definefontsynonym [Sans] [Kurier-Regular] [encoding=\typescriptthree]
- \definefontsynonym [SansItalic] [Kurier-RegularItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansBold] [Kurier-Bold] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldItalic] [Kurier-BoldItalic] [encoding=\typescriptthree]
+ \definefontsynonym [Sans] [Kurier-Regular]
+ \definefontsynonym [SansItalic] [Kurier-RegularItalic]
+ \definefontsynonym [SansBold] [Kurier-Bold]
+ \definefontsynonym [SansBoldItalic] [Kurier-BoldItalic]
\stoptypescript
\starttypescript [sans] [kurier-medium] [name]
\setups[font:fallback:sans]
- \definefontsynonym [Sans] [Kurier-Medium] [encoding=\typescriptthree]
- \definefontsynonym [SansItalic] [Kurier-MediumItalic] [encoding=\typescriptthree]
- \definefontsynonym [SansBold] [Kurier-Heavy] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldItalic] [Kurier-HeavyItalic] [encoding=\typescriptthree]
+ \definefontsynonym [Sans] [Kurier-Medium]
+ \definefontsynonym [SansItalic] [Kurier-MediumItalic]
+ \definefontsynonym [SansBold] [Kurier-Heavy]
+ \definefontsynonym [SansBoldItalic] [Kurier-HeavyItalic]
\stoptypescript
\starttypescript [math] [kurier-light] [name]
diff --git a/tex/context/base/unic-003.tex b/tex/context/base/unic-003.tex
index 1ce1ade8d..d37563d26 100644
--- a/tex/context/base/unic-003.tex
+++ b/tex/context/base/unic-003.tex
@@ -14,8 +14,14 @@
\unprotect
\startunicodevector 3
- \ifcase\numexpr#1-132\relax
- % special greek
+ \ifcase\numexpr#1-126\relax
+ % special greek
+ \strippedcsname \greekquestionmark \or
+ \strippedcsname \unknownchar \or
+ \strippedcsname \unknownchar \or
+ \strippedcsname \unknownchar \or
+ \strippedcsname \unknownchar \or
+ \strippedcsname \unknownchar \or
\strippedcsname \greektonos \or
\strippedcsname \greekdialytikatonos \or
\strippedcsname \greekAlphatonos \or
diff --git a/tex/context/base/x-res-08.tex b/tex/context/base/x-res-08.tex
index d90c421e1..b714cfb4d 100644
--- a/tex/context/base/x-res-08.tex
+++ b/tex/context/base/x-res-08.tex
@@ -118,8 +118,8 @@
\else
\writestatus\m!systems{registering rlxtools (manipulator)}%
\doiflocfileelse{\jobname.rlx}
- {\installprogram{texmfstart rlxtools --manipulate kpse:\jobname.rlx \jobname.rlg}}
- {\installprogram{texmfstart rlxtools --manipulate kpse:\getvariabledefault{rl:manipulate}{file}{rlxtools.rlx} \jobname.rlg}}%
+ {\installprogram{texmfstart rlxtools --manipulate "kpse:\jobname.rlx" "\jobname.rlg"}}
+ {\installprogram{texmfstart rlxtools --manipulate "kpse:\getvariabledefault{rl:manipulate}{file}{rlxtools.rlx}" "\jobname.rlg"}}%
\fi
\to \everybye % \everylastshipout
diff --git a/tex/context/interface/cont-cz.xml b/tex/context/interface/cont-cz.xml
index 6e7b36073..655e50372 100644
--- a/tex/context/interface/cont-cz.xml
+++ b/tex/context/interface/cont-cz.xml
@@ -6803,6 +6803,7 @@
<cd:constant type="fixne"/>
<cd:constant type="prizpusobive"/>
<cd:constant type="zadny"/>
+ <cd:constant type="vzdy"/>
</cd:keywords>
</cd:arguments>
</cd:command>
diff --git a/tex/context/interface/cont-de.xml b/tex/context/interface/cont-de.xml
index 1140e0015..8e5ac5a45 100644
--- a/tex/context/interface/cont-de.xml
+++ b/tex/context/interface/cont-de.xml
@@ -6803,6 +6803,7 @@
<cd:constant type="fest"/>
<cd:constant type="flexibel"/>
<cd:constant type="kein"/>
+ <cd:constant type="immer"/>
</cd:keywords>
</cd:arguments>
</cd:command>
diff --git a/tex/context/interface/cont-en.xml b/tex/context/interface/cont-en.xml
index e0370fc81..e0bb0af3e 100644
--- a/tex/context/interface/cont-en.xml
+++ b/tex/context/interface/cont-en.xml
@@ -6803,6 +6803,7 @@
<cd:constant type="fixed"/>
<cd:constant type="flexible"/>
<cd:constant type="none"/>
+ <cd:constant type="always"/>
</cd:keywords>
</cd:arguments>
</cd:command>
diff --git a/tex/context/interface/cont-fr.xml b/tex/context/interface/cont-fr.xml
index 22e77bdaf..ecaf36823 100644
--- a/tex/context/interface/cont-fr.xml
+++ b/tex/context/interface/cont-fr.xml
@@ -6803,6 +6803,7 @@
<cd:constant type="fixe"/>
<cd:constant type="flexible"/>
<cd:constant type="rien"/>
+ <cd:constant type="toujours"/>
</cd:keywords>
</cd:arguments>
</cd:command>
diff --git a/tex/context/interface/cont-it.xml b/tex/context/interface/cont-it.xml
index f791d7909..142740294 100644
--- a/tex/context/interface/cont-it.xml
+++ b/tex/context/interface/cont-it.xml
@@ -6803,6 +6803,7 @@
<cd:constant type="fisso"/>
<cd:constant type="flessibile"/>
<cd:constant type="nessuno"/>
+ <cd:constant type="sempre"/>
</cd:keywords>
</cd:arguments>
</cd:command>
diff --git a/tex/context/interface/cont-nl.xml b/tex/context/interface/cont-nl.xml
index b0e1d48b8..ace0c537a 100644
--- a/tex/context/interface/cont-nl.xml
+++ b/tex/context/interface/cont-nl.xml
@@ -6803,6 +6803,7 @@
<cd:constant type="vast"/>
<cd:constant type="flexibel"/>
<cd:constant type="geen"/>
+ <cd:constant type="altijd"/>
</cd:keywords>
</cd:arguments>
</cd:command>
diff --git a/tex/context/interface/cont-ro.xml b/tex/context/interface/cont-ro.xml
index 8e206978d..1847e0176 100644
--- a/tex/context/interface/cont-ro.xml
+++ b/tex/context/interface/cont-ro.xml
@@ -6803,6 +6803,7 @@
<cd:constant type="fixat"/>
<cd:constant type="flexibil"/>
<cd:constant type="niciunul"/>
+ <cd:constant type="totdeauna"/>
</cd:keywords>
</cd:arguments>
</cd:command>
diff --git a/tex/context/interface/keys-cz.xml b/tex/context/interface/keys-cz.xml
index 0bcfe9c08..54713192c 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="2007.02.21 11:55">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2007.03.19 11:20">
<cd:variables>
<cd:variable name="one" value="jedna"/>
@@ -417,6 +417,7 @@
<cd:constant name="text" value="text"/>
<cd:constant name="listtext" value="listtext"/>
<cd:constant name="textwidth" value="sirkatextu"/>
+ <cd:constant name="numberwidth" value="numberwidth"/>
<cd:constant name="textcommand" value="textovyprikaz"/>
<cd:constant name="textsize" value="velikosttextu"/>
<cd:constant name="textcolor" value="barvatextu"/>
@@ -727,6 +728,7 @@
<cd:variable name="continue" value="pokracovat"/>
<cd:variable name="vertical" value="vertikalne"/>
<cd:variable name="bold" value="tucne"/>
+ <cd:variable name="sansbold" value="sanstucne"/>
<cd:variable name="boldslanted" value="tucnesklonene"/>
<cd:variable name="bolditalic" value="tucnekurzivni"/>
<cd:variable name="quadruple" value="ctyrnasobny"/>
diff --git a/tex/context/interface/keys-de.xml b/tex/context/interface/keys-de.xml
index 84f7d4cda..7b799eac0 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="2007.02.21 11:55">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2007.03.19 11:20">
<cd:variables>
<cd:variable name="one" value="eins"/>
@@ -417,6 +417,7 @@
<cd:constant name="text" value="text"/>
<cd:constant name="listtext" value="listtext"/>
<cd:constant name="textwidth" value="textbreite"/>
+ <cd:constant name="numberwidth" value="numberwidth"/>
<cd:constant name="textcommand" value="textbefehl"/>
<cd:constant name="textsize" value="textgroesse"/>
<cd:constant name="textcolor" value="textfarbe"/>
@@ -727,6 +728,7 @@
<cd:variable name="continue" value="fortsetzten"/>
<cd:variable name="vertical" value="vertikal"/>
<cd:variable name="bold" value="fett"/>
+ <cd:variable name="sansbold" value="sansfett"/>
<cd:variable name="boldslanted" value="fettgeneigt"/>
<cd:variable name="bolditalic" value="fettitalic"/>
<cd:variable name="quadruple" value="viertel"/>
diff --git a/tex/context/interface/keys-en.xml b/tex/context/interface/keys-en.xml
index bea0c41b8..0d8f3528a 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="2007.02.21 11:55">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2007.03.19 11:20">
<cd:variables>
<cd:variable name="one" value="one"/>
@@ -417,6 +417,7 @@
<cd:constant name="text" value="text"/>
<cd:constant name="listtext" value="listtext"/>
<cd:constant name="textwidth" value="textwidth"/>
+ <cd:constant name="numberwidth" value="numberwidth"/>
<cd:constant name="textcommand" value="textcommand"/>
<cd:constant name="textsize" value="textsize"/>
<cd:constant name="textcolor" value="textcolor"/>
@@ -727,6 +728,7 @@
<cd:variable name="continue" value="continue"/>
<cd:variable name="vertical" value="vertical"/>
<cd:variable name="bold" value="bold"/>
+ <cd:variable name="sansbold" value="sansbold"/>
<cd:variable name="boldslanted" value="boldslanted"/>
<cd:variable name="bolditalic" value="bolditalic"/>
<cd:variable name="quadruple" value="quadruple"/>
diff --git a/tex/context/interface/keys-fr.xml b/tex/context/interface/keys-fr.xml
index 42299b771..06c0774ec 100644
--- a/tex/context/interface/keys-fr.xml
+++ b/tex/context/interface/keys-fr.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="fr" version="2007.02.21 11:55">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="fr" version="2007.03.19 11:20">
<cd:variables>
<cd:variable name="one" value="un"/>
@@ -417,6 +417,7 @@
<cd:constant name="text" value="texte"/>
<cd:constant name="listtext" value="texteliste"/>
<cd:constant name="textwidth" value="largeurtexte"/>
+ <cd:constant name="numberwidth" value="numberwidth"/>
<cd:constant name="textcommand" value="commandetexte"/>
<cd:constant name="textsize" value="tailletexte"/>
<cd:constant name="textcolor" value="couleurtexte"/>
@@ -727,6 +728,7 @@
<cd:variable name="continue" value="continue"/>
<cd:variable name="vertical" value="verticale"/>
<cd:variable name="bold" value="gras"/>
+ <cd:variable name="sansbold" value="sansgras"/>
<cd:variable name="boldslanted" value="inclinegras"/>
<cd:variable name="bolditalic" value="italiquegras"/>
<cd:variable name="quadruple" value="quadruple"/>
diff --git a/tex/context/interface/keys-it.xml b/tex/context/interface/keys-it.xml
index 394ae8e5b..d84a86351 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="2007.02.21 11:55">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2007.03.19 11:20">
<cd:variables>
<cd:variable name="one" value="uno"/>
@@ -417,6 +417,7 @@
<cd:constant name="text" value="testo"/>
<cd:constant name="listtext" value="listtext"/>
<cd:constant name="textwidth" value="ampiezzatesto"/>
+ <cd:constant name="numberwidth" value="numberwidth"/>
<cd:constant name="textcommand" value="comandotesto"/>
<cd:constant name="textsize" value="dimensionetesto"/>
<cd:constant name="textcolor" value="coloretesto"/>
@@ -727,6 +728,7 @@
<cd:variable name="continue" value="continua"/>
<cd:variable name="vertical" value="verticale"/>
<cd:variable name="bold" value="grassetto"/>
+ <cd:variable name="sansbold" value="sansgrassetto"/>
<cd:variable name="boldslanted" value="grassettoinclinato"/>
<cd:variable name="bolditalic" value="grassettocorsivo"/>
<cd:variable name="quadruple" value="quadruplo"/>
diff --git a/tex/context/interface/keys-nl.xml b/tex/context/interface/keys-nl.xml
index 961e620c7..c98d0a752 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="2007.02.21 11:55">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2007.03.19 11:20">
<cd:variables>
<cd:variable name="one" value="een"/>
@@ -417,6 +417,7 @@
<cd:constant name="text" value="tekst"/>
<cd:constant name="listtext" value="lijsttekst"/>
<cd:constant name="textwidth" value="tekstbreedte"/>
+ <cd:constant name="numberwidth" value="nummerbreedte"/>
<cd:constant name="textcommand" value="tekstcommando"/>
<cd:constant name="textsize" value="tekstformaat"/>
<cd:constant name="textcolor" value="tekstkleur"/>
@@ -727,6 +728,7 @@
<cd:variable name="continue" value="verder"/>
<cd:variable name="vertical" value="vertikaal"/>
<cd:variable name="bold" value="vet"/>
+ <cd:variable name="sansbold" value="sansvet"/>
<cd:variable name="boldslanted" value="vetschuin"/>
<cd:variable name="bolditalic" value="vetitalic"/>
<cd:variable name="quadruple" value="viertal"/>
diff --git a/tex/context/interface/keys-ro.xml b/tex/context/interface/keys-ro.xml
index fee47cf19..4d83f5903 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="2007.02.21 11:55">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2007.03.19 11:20">
<cd:variables>
<cd:variable name="one" value="unu"/>
@@ -417,6 +417,7 @@
<cd:constant name="text" value="text"/>
<cd:constant name="listtext" value="listtext"/>
<cd:constant name="textwidth" value="latimetext"/>
+ <cd:constant name="numberwidth" value="numberwidth"/>
<cd:constant name="textcommand" value="comandatext"/>
<cd:constant name="textsize" value="dimensiunetext"/>
<cd:constant name="textcolor" value="culoaretext"/>
@@ -727,6 +728,7 @@
<cd:variable name="continue" value="continuu"/>
<cd:variable name="vertical" value="vertical"/>
<cd:variable name="bold" value="aldin"/>
+ <cd:variable name="sansbold" value="sansaldin"/>
<cd:variable name="boldslanted" value="aldininclinat"/>
<cd:variable name="bolditalic" value="aldinitalic"/>
<cd:variable name="quadruple" value="cvadrupul"/>