From 8a354e9fa5309910252aee3e7c5fdb4303deae45 Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Mon, 19 Mar 2007 11:20:00 +0100 Subject: stable 2007.03.19 11:20 --- fonts/tfm/public/marvosym/fmvr8x.tfm | Bin 0 -> 1756 bytes scripts/context/ruby/base/ctx.rb | 31 +++++- scripts/context/ruby/base/exa.rb | 6 +- scripts/context/ruby/base/merge.rb | 4 +- scripts/context/ruby/base/mp.rb | 2 +- scripts/context/ruby/base/tex.rb | 74 +++++++++----- scripts/context/ruby/ctxtools.rb | 2 +- scripts/context/ruby/graphics/gs.rb | 4 +- scripts/context/ruby/pdftools.rb | 10 +- scripts/context/ruby/texexec.rb | 2 +- scripts/context/ruby/texmfstart.rb | 94 +++++++++++++---- scripts/context/ruby/textools.rb | 2 +- scripts/context/ruby/www/exa.rb | 22 ++-- scripts/context/ruby/xmltools.rb | 14 +-- tex/context/base/core-fig.tex | 7 +- tex/context/base/core-mat.tex | 7 +- tex/context/base/core-not.tex | 5 + tex/context/base/core-reg.tex | 28 +++-- tex/context/base/core-sec.tex | 84 ++++++++++++--- tex/context/base/core-spa.tex | 28 +++-- tex/context/base/core-var.tex | 25 ++++- tex/context/base/font-ini.mkii | 9 +- tex/context/base/font-ini.tex | 76 +++++++------- tex/context/base/math-tex.tex | 12 +++ tex/context/base/meta-ini.tex | 2 +- tex/context/base/mult-con.tex | 8 ++ tex/context/base/mult-sys.tex | 4 +- tex/context/base/page-one.tex | 7 +- tex/context/base/rlxcache.rlx | 71 +++++++++++++ tex/context/base/supp-pat.tex | 2 + tex/context/base/syst-prm.tex | 2 +- tex/context/base/type-syn.tex | 192 +++++++++++++++++------------------ tex/context/base/unic-003.tex | 10 +- tex/context/base/x-res-08.tex | 4 +- tex/context/interface/cont-cz.xml | 1 + tex/context/interface/cont-de.xml | 1 + tex/context/interface/cont-en.xml | 1 + tex/context/interface/cont-fr.xml | 1 + tex/context/interface/cont-it.xml | 1 + tex/context/interface/cont-nl.xml | 1 + tex/context/interface/cont-ro.xml | 1 + tex/context/interface/keys-cz.xml | 4 +- tex/context/interface/keys-de.xml | 4 +- tex/context/interface/keys-en.xml | 4 +- tex/context/interface/keys-fr.xml | 4 +- tex/context/interface/keys-it.xml | 4 +- tex/context/interface/keys-nl.xml | 4 +- tex/context/interface/keys-ro.xml | 4 +- 48 files changed, 613 insertions(+), 272 deletions(-) create mode 100644 fonts/tfm/public/marvosym/fmvr8x.tfm create mode 100644 tex/context/base/rlxcache.rlx diff --git a/fonts/tfm/public/marvosym/fmvr8x.tfm b/fonts/tfm/public/marvosym/fmvr8x.tfm new file mode 100644 index 000000000..ce8172f1c Binary files /dev/null and b/fonts/tfm/public/marvosym/fmvr8x.tfm 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>/mois) do + data.gsub!(/]*?)>(.*?)<\/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 = "" , "" egraf = "

" 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 << "\n" else # better use rexml but slower - if req =~ /]*>.*?\s*\s*(.*?)\s*<\/exa:threshold>\s*.*?<\/exa:request>/mois then + if req =~ /]*>.*?\s*\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!(/(]*>.*?)\s*\s*\-\-action\=(.*?)\s*<\/exa:option>\s*(.*?<\/exa:request>)/mois) do + req.sub!(/(]*>.*?)\s*\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}#{action}#{pos}" - str.sub(/\s*.*?<\/exa:command>\s*/mois ,'') + str.sub(/\s*.*?<\/exa:command>\s*/moi ,'') end - req.sub!(/(]*>.*?)\s*(.*?)\s*<\/exa:action>(.*?<\/exa:request>)/mois) do + req.sub!(/(]*>.*?)\s*(.*?)\s*<\/exa:action>(.*?<\/exa:request>)/moi) do pre, act, pos = $1, $2, $3 action = act.sub(/\.exa$/,'') if action.empty? str = "#{pre}#{action}#{pos}" - str.sub(/\s*.*?<\/exa:command>\s*/mois ,'') + str.sub(/\s*.*?<\/exa:command>\s*/moi ,'') end - unless req =~ /(.*?)<\/exa:data>/mois then + unless req =~ /(.*?)<\/exa:data>/moi then req.sub!(/(<\/exa:request>)/) do dat + $1 end end end - req.sub!(/.*?<\/exa:filename>/mois, '') + req.sub!(/.*?<\/exa:filename>/moi, '') unless @variables.empty?('exa:filename') then - req.sub!(/(<\/exa:application>)/mois) do + req.sub!(/(<\/exa:application>)/moi) do "#{@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 =~ /]*>.*?\s*\s*(.*?)\s*<\/exa:command>\s*.*?<\/exa:request>/mois then + if req =~ /]*>.*?\s*\s*(.*?)\s*<\/exa:command>\s*.*?<\/exa:request>/moi then command = $1 end - if req =~ /]*>.*?\s*\s*(.*?)\s*<\/exa:url>\s*.*?<\/exa:request>/mois then + if req =~ /]*>.*?\s*\s*(.*?)\s*<\/exa:url>\s*.*?<\/exa:request>/moi then url = $1 end - if req =~ /]*>.*?\s*\s*(.*?)\s*<\/exa:threshold>\s*.*?<\/exa:request>/mois then + if req =~ /]*>.*?\s*\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}#{$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 # "#{$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}" # 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 @@ + + + + + + /.eps + /.pdf + + texmfstart pstopdf --convert + --inputpath="" + --outputpath="" + ".eps" + + + + + /.svg + /.pdf + + texmfstart pstopdf --convert + --inputpath="" + --outputpath="" + ".svg" + + + + + /.svgz + /.pdf + + texmfstart pstopdf --convert + --inputpath="" + --outputpath="" + ".svgz" + + + + + /.gif + /.pdf + + texmfstart pstopdf --convert + --inputpath="" + --outputpath="" + ".gif" + + + + + /.tif + /.pdf + + texmfstart pstopdf --convert + --inputpath="" + --outputpath="" + ".tif" + + + + + /.tiff + /.pdf + + texmfstart pstopdf --convert + --inputpath="" + --outputpath="" + ".tiff" + + + + 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 @@ + 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 @@ + 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 @@ + 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 @@ + 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 @@ + 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 @@ + 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 @@ + 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 @@ - + @@ -417,6 +417,7 @@ + @@ -727,6 +728,7 @@ + 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 @@ - + @@ -417,6 +417,7 @@ + @@ -727,6 +728,7 @@ + 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 @@ - + @@ -417,6 +417,7 @@ + @@ -727,6 +728,7 @@ + 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 @@ - + @@ -417,6 +417,7 @@ + @@ -727,6 +728,7 @@ + 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 @@ - + @@ -417,6 +417,7 @@ + @@ -727,6 +728,7 @@ + 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 @@ - + @@ -417,6 +417,7 @@ + @@ -727,6 +728,7 @@ + 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 @@ - + @@ -417,6 +417,7 @@ + @@ -727,6 +728,7 @@ + -- cgit v1.2.3