summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2004-10-19 00:00:00 +0200
committerHans Hagen <pragma@wxs.nl>2004-10-19 00:00:00 +0200
commitfab4c585fb2e32c04b8086db8b08a3478538230c (patch)
tree43f3014d8d6b9d4adf90aedcdbdacd867f0e19ba
parent7d1c22dedd29f5cdc98b2f2dad60cd174b1945e0 (diff)
downloadcontext-fab4c585fb2e32c04b8086db8b08a3478538230c.tar.gz
stable 2004.10.19
-rw-r--r--scripts/context/perl/texexec.pl14
-rw-r--r--scripts/context/ruby/ctxtools.rb96
-rw-r--r--scripts/context/ruby/texmfstart.rb90
-rw-r--r--scripts/context/ruby/textools.rb122
-rw-r--r--tex/context/base/cont-fil.tex4
-rw-r--r--tex/context/base/cont-new.tex50
-rw-r--r--tex/context/base/cont-sys.ori38
-rw-r--r--tex/context/base/context.tex2
-rw-r--r--tex/context/base/core-int.tex3
-rw-r--r--tex/context/base/core-itm.tex87
-rw-r--r--tex/context/base/core-job.tex3
-rw-r--r--tex/context/base/core-mis.tex28
-rw-r--r--tex/context/base/core-reg.tex10
-rw-r--r--tex/context/base/core-spa.tex2
-rw-r--r--tex/context/base/core-syn.tex97
-rw-r--r--tex/context/base/core-uti.tex5
-rw-r--r--tex/context/base/font-chi.tex217
-rw-r--r--tex/context/base/page-mul.tex10
-rw-r--r--tex/context/base/page-set.tex2
-rw-r--r--tex/context/base/s-abr-01.tex4
-rw-r--r--tex/context/base/s-chi-00.tex8
-rw-r--r--tex/context/base/spec-fdf.tex1
-rw-r--r--tex/context/base/supp-box.tex1
-rw-r--r--tex/context/base/supp-mps.tex2
-rw-r--r--tex/context/base/syst-ext.tex4
-rw-r--r--tex/context/base/syst-new.tex21
-rw-r--r--tex/context/base/x-fe.tex10
-rw-r--r--tex/context/base/x-fo.tex470
-rw-r--r--tex/context/base/xtag-ini.tex10
-rw-r--r--tex/context/foxet/fo-0101.fo13
-rw-r--r--tex/context/foxet/fo-0102.fo11
-rw-r--r--tex/context/foxet/fo-0103.fo19
-rw-r--r--tex/context/foxet/fo-0301.fo24
-rw-r--r--tex/context/foxet/fo-0601.fo4
-rw-r--r--tex/context/foxet/fo-0602.fo2
-rw-r--r--tex/context/foxet/fo-0603.fo2
-rw-r--r--tex/context/foxet/fo-0604.fo2
-rw-r--r--tex/context/foxet/fo-0612.fo2
-rw-r--r--tex/context/foxet/fo-0621.fo44
-rw-r--r--tex/context/foxet/fo-0641.fo2
-rw-r--r--tex/context/foxet/fo-0642.fo2
-rw-r--r--tex/context/foxet/fo-0643.fo2
-rw-r--r--tex/context/foxet/fo-0644.fo2
-rw-r--r--tex/context/foxet/fo-0650.fo10
-rw-r--r--tex/context/foxet/fo-0651.fo12
-rw-r--r--tex/context/foxet/fo-0701.fo4
-rw-r--r--tex/context/foxet/fo-0801.fo11
-rw-r--r--tex/context/foxet/fo-0901.fo20
-rw-r--r--tex/context/foxet/fo-0902.fo33
-rw-r--r--tex/context/foxet/fo-1101.fo61
-rw-r--r--tex/context/foxet/fo-1102.fo128
-rw-r--r--tex/context/foxet/fo-1103.fo85
-rw-r--r--tex/context/foxet/fo-1104.fo28
-rw-r--r--tex/context/foxet/fo-1201.fo40
-rw-r--r--tex/context/user/cont-sys.rme38
55 files changed, 1371 insertions, 641 deletions
diff --git a/scripts/context/perl/texexec.pl b/scripts/context/perl/texexec.pl
index 1693094ea..3d01f3011 100644
--- a/scripts/context/perl/texexec.pl
+++ b/scripts/context/perl/texexec.pl
@@ -303,6 +303,7 @@ if ($Foxet) {
$ProducePdfT = 1 ;
$ForceXML = 1 ;
$Modules = "foxet" ;
+ $Purge = 1 ;
}
# a set file (like blabla.bat) can set paths now
@@ -2178,19 +2179,22 @@ sub LocatedFormatPath {
my $FormatPath = shift;
my $EnginePath = shift;
if ( ( $FormatPath eq '' ) && ( $kpsewhich ne '' ) ) {
- $FormatPath = `$kpsewhich --show-path=fmt`;
+ $FormatPath = `$kpsewhich --expand-var=\$TEXFORMATS` ;
chomp $FormatPath;
+ if ($FormatPath eq '') {
+ $FormatPath = `$kpsewhich --show-path=fmt`;
+ chomp $FormatPath;
+ }
$FormatPath =~ s/\.+\;//o; # should be a sub
$FormatPath =~ s/\;.*//o;
$FormatPath =~ s/\!//go;
+ $FormatPath =~ s/\\/\//go;
$FormatPath =~ s/\/\//\//go;
- $FormatPath =~ s/\\\\/\//go;
$FormatPath =~ s/[\/\\]$//;
- $FormatPath .= '/';
-
if ( ( $FormatPath ne '' ) && $Verbose ) {
print " located formatpath : $FormatPath\n";
}
+ $FormatPath .= '/';
}
if ($UseEnginePath && ($FormatPath ne '' && ($FormatPath !~ /$EnginePath\/$/))) {
@@ -2208,7 +2212,7 @@ sub RunOneFormat {
my @TeXFormatPath;
my $TeXPrefix = "";
if ( ( $fmtutil ne "" ) && ( $FormatName !~ /metafun|mptopdf/io ) ) {
-# could not happen, not supported any more
+ # could not happen, not supported any more
my $cmd = "$fmtutil --byfmt $FormatName";
if ($Verbose) { print "\n$cmd\n\n" }
MakeUserFile; # this works only when the path is kept
diff --git a/scripts/context/ruby/ctxtools.rb b/scripts/context/ruby/ctxtools.rb
new file mode 100644
index 000000000..36b34f30e
--- /dev/null
+++ b/scripts/context/ruby/ctxtools.rb
@@ -0,0 +1,96 @@
+#!/usr/bin/env ruby
+
+# program : ctxtools
+# copyright : PRAGMA Advanced Document Engineering
+# version : 1.0 - 2002/2004
+# author : Hans Hagen
+
+# This script will harbor some handy manipulations on context
+# related files.
+
+banner = ['CtxTools', 'version 1.0', '2004', 'PRAGMA ADE/POD']
+
+unless defined? ownpath
+ ownpath = $0.sub(/[\\\/][a-z0-9\-]*?\.rb/i,'')
+ $: << ownpath
+end
+
+require 'ftools'
+require 'xmpl/switch'
+require 'exa/logger'
+
+class Commands
+
+ include CommandBase
+
+ def touchcontextfile
+ maincontextfile = 'context.tex'
+ unless FileTest.file?(maincontextfile) then
+ begin
+ maincontextfile = `kpsewhich -progname=context #{maincontextfile}`.chomp
+ rescue
+ maincontextfile = ''
+ end
+ end
+ touchfile(maincontextfile) unless maincontextfile.empty?
+ end
+
+ private
+
+ def touchfile(filename)
+
+ if FileTest.file?(filename) then
+ if data = IO.read(filename) then
+ timestamp = Time.now.strftime('%Y.%m.%d')
+ prevstamp = ''
+ begin
+ data.gsub!(/\\contextversion\{(\d+\.\d+\.\d+)\}/) do
+ prevstamp = $1
+ "\\contextversion{#{timestamp}}"
+ end
+ rescue
+ else
+ begin
+ File.delete(filename+'.old')
+ rescue
+ end
+ begin
+ File.copy(filename,filename+'.old')
+ rescue
+ end
+ begin
+ if f = File.open(filename,'w') then
+ f.puts(data)
+ f.close
+ end
+ rescue
+ end
+ end
+ if prevstamp.empty? then
+ report("#{filename} is not updated, no timestamp found")
+ else
+ report("#{filename} is updated from #{prevstamp} to #{timestamp}")
+ end
+ end
+ else
+ report("#{filename} is not found")
+ end
+
+ end
+
+end
+
+logger = EXA::ExaLogger.new(banner.shift)
+commandline = CommandLine.new
+
+commandline.registeraction('touchcontextfile', '')
+
+commandline.registeraction('help')
+commandline.registeraction('version')
+
+commandline.registerflag('recurse')
+commandline.registerflag('force')
+
+commandline.expand
+
+Commands.new(commandline,logger,banner).send(commandline.action || 'help')
diff --git a/scripts/context/ruby/texmfstart.rb b/scripts/context/ruby/texmfstart.rb
index 8d5175325..67aba9dbe 100644
--- a/scripts/context/ruby/texmfstart.rb
+++ b/scripts/context/ruby/texmfstart.rb
@@ -9,6 +9,8 @@
# info : j.hagen@xs4all.nl
# www : www.pragma-pod.com / www.pragma-ade.com
+# no special requirements, i.e. no exa modules/classes used
+
# texmfstart [switches] filename [optional arguments]
#
# ruby2exe texmfstart --help -> avoids stub test
@@ -29,7 +31,7 @@ if $mswindows then
require "Win32API"
GetShortPathName = Win32API.new('kernel32', 'GetShortPathName', ['P','P','N'], 'N')
- GetLongPathName = Win32API.new('kernel32', 'GetLongPathName', ['P','P','N'], 'N')
+ GetLongPathName = Win32API.new('kernel32', 'GetLongPathName', ['P','P','N'], 'N')
def dowith_pathname (filename,filemethod)
filename.gsub!(/\\/o,'/')
@@ -83,6 +85,7 @@ end
$applications = Hash.new
$suffixinputs = Hash.new
+$predefined = Hash.new
$suffixinputs['pl'] = 'PERLINPUTS'
$suffixinputs['rb'] = 'RUBYINPUTS'
@@ -90,6 +93,16 @@ $suffixinputs['py'] = 'PYTHONINPUTS'
$suffixinputs['jar'] = 'JAVAINPUTS'
$suffixinputs['pdf'] = 'PDFINPUTS'
+$predefined['texexec'] = 'texexec.pl'
+$predefined['texutil'] = 'texutil.pl'
+$predefined['texfont'] = 'texfont.pl'
+$predefined['examplex'] = 'examplex.rb'
+$predefined['concheck'] = 'concheck.rb'
+$predefined['textools'] = 'textools.rb'
+$predefined['pdftools'] = 'pdftools.rb'
+$predefined['exatools'] = 'exatools.rb'
+$predefined['xmltools'] = 'xmltools.rb'
+
$scriptlist = 'rb|pl|py|jar'
$documentlist = 'pdf|ps|eps|htm|html'
@@ -131,6 +144,24 @@ def launch(filename)
end
end
+def expanded(arg)
+ arg.gsub(/kpse\:(\S+)/o) do
+ original, resolved = $1, ''
+ begin
+ resolved = `kpsewhich -progname=#{program} -format=\"other text files\" #{file}`.chomp
+ rescue
+ resolved = ''
+ end
+ if resolved.empty? then
+ report("#{original} is not resolved") unless $report
+ original
+ else
+ report("#{original} is resolved to #{resolved}") unless $report
+ resolved
+ end
+ end
+end
+
def runoneof(application,fullname,browserpermitted)
if browserpermitted && launch(fullname) then
return true
@@ -140,28 +171,28 @@ def runoneof(application,fullname,browserpermitted)
applications = $applications[application]
if applications.class == Array then
if $report then
- print [fullname,$arguments].join(' ')
+ print [fullname,expanded($arguments)].join(' ')
return true
else
applications.each do |a|
- if system([a,fullname,$arguments].join(' ')) then
+ if system([a,fullname,expanded($arguments)].join(' ')) then
return true
end
end
end
elsif applications.empty? then
if $report then
- print [fullname,$arguments].join(' ')
+ print [fullname,expanded($arguments)].join(' ')
return true
else
- return system([fullname,$arguments].join(' '))
+ return system([fullname,expanded($arguments)].join(' '))
end
else
if $report then
- print [applications,fullname,$arguments].join(' ')
+ print [applications,fullname,expanded($arguments)].join(' ')
return true
else
- return system([applications,fullname,$arguments].join(' '))
+ return system([applications,fullname,expanded($arguments)].join(' '))
end
end
return false
@@ -173,11 +204,11 @@ def report(str)
end
def usage
- print "version : 1.04 - 2003/2004 - www.pragma-ade.com\n"
+ print "version : 1.05 - 2003/2004 - www.pragma-ade.com\n"
print("\n")
print("usage : texmfstart [switches] filename [optional arguments]\n")
print("\n")
- print("switches : --verbose --report --browser\n")
+ print("switches : --verbose --report --browser --direct\n")
print(" --program --file --page --arguments\n")
print(" --make --lmake --wmake\n")
print("\n")
@@ -186,21 +217,23 @@ def usage
print(" texmfstart showcase.pdf\n")
print(" texmfstart --page=2 --file=showcase.pdf\n")
print(" texmfstart --program=yourtex yourscript.pl arg-1 arg-2\n")
+ print(" texmfstart --direct xsltproc kpse:somefile.xsl somefile.xml\n")
+ print(" texmfstart bin:xsltproc kpse:somefile.xsl somefile.xml\n")
end
# somehow registration does not work out (at least not under windows)
def registered?(filename)
- return ENV['texmfstart.'+filename] != nil
+ return ENV["texmfstart.#{filename}"] != nil
end
def registered(filename)
- return ENV['texmfstart.'+filename]
+ return ENV["texmfstart.#{filename}"]
end
def register(filename,fullname)
if fullname && ! fullname.empty? then # && FileTest.file?(fullname)
- ENV['texmfstart.'+filename] = fullname
+ ENV["texmfstart.#{filename}"] = fullname
return true
else
return false
@@ -208,6 +241,10 @@ def register(filename,fullname)
end
def find(filename,program)
+ if $predefined.key?(filename) then
+ report("expanding '#{filename}' to '#{$predefined[filename]}'")
+ filename = $predefined[filename]
+ end
if registered?(filename) then
report("already located '#{filename}'")
return registered(filename)
@@ -219,7 +256,7 @@ def find(filename,program)
else
suffixlist = [$scriptlist.split('|'),$documentlist.split('|')].flatten
end
- # first we honor a given path or
+ # first we honor a given path
if filename =~ /[\\\/]/ then
report("trying to honor '#{filename}'")
suffixlist.each do |suffix|
@@ -392,6 +429,14 @@ def run(fullname)
return false
end
+def direct(fullname)
+ begin
+ return system([fullname.sub(/^bin\:/, ''),expanded($arguments)].join(' '))
+ rescue
+ return false
+ end
+end
+
def make(filename,windows=false,linux=false)
basename = filename.dup
basename.sub!(/\.[^.]+?$/, '')
@@ -408,14 +453,15 @@ def make(filename,windows=false,linux=false)
program = 'texmfstart' if $indirect || ! program || program.empty?
begin
if windows && f = open(basename+'.bat','w') then
- f.puts("@echo off\n")
- f.puts("#{program} #{filename} %*\n")
+ f.binmode
+ f.write("@echo off\015\012")
+ f.write("#{program} #{filename} %*\015\012")
f.close
report("windows stub '#{basename}.bat' made")
- end
- if linux && f = open(basename,'w') then
- f.puts("#!/bin/sh\n")
- f.puts("#{program} #{filename} $@\n")
+ elsif linux && f = open(basename,'w') then
+ f.binmode
+ f.write("#!/bin/sh\012")
+ f.write("#{program} #{filename} $@\012")
f.close
report("unix stub '#{basename}' made")
end
@@ -434,6 +480,7 @@ $directives = hashed(ARGV)
$help = $directives['help'] || false
$filename = $directives['file'] || ''
$program = $directives['program'] || 'context'
+$direct = $directives['direct'] || false
$page = $directives['page'] || 0
$browser = $directives['browser'] || false
$report = $directives['report'] || false
@@ -477,7 +524,8 @@ elsif $make then
end
elsif $browser && $filename =~ /^http\:\/\// then
launch($filename)
+elsif $direct || $filename =~ /^bin\:/ then
+ direct($filename)
else
- # run(find($filename,$program))
run(find(shortpathname($filename),$program))
-end \ No newline at end of file
+end
diff --git a/scripts/context/ruby/textools.rb b/scripts/context/ruby/textools.rb
index d8928099c..6c8b08813 100644
--- a/scripts/context/ruby/textools.rb
+++ b/scripts/context/ruby/textools.rb
@@ -352,6 +352,8 @@ class Commands
def replace
+ report('replace file')
+
if newname = @commandline.argument('first') then
if newname && ! newname.empty? then
report
@@ -462,35 +464,34 @@ class Commands
return used
end
- def touchcontextfile
- maincontextfile = 'context.tex'
- unless FileTest.file?(maincontextfile) then
- begin
- maincontextfile = `kpsewhich -progname=context #{maincontextfile}`.chomp
- rescue
- maincontextfile = ''
- end
- end
- touchfile(maincontextfile) unless maincontextfile.empty?
- end
-
def downcasefilenames
- if @commandline.option('recurse') then
- files = Dir.glob('**/*')
- else
- files = Dir.glob('*')
- end
- if files && files.length>0 then
+
+ report('downcase filenames')
+
+ force = @commandline.option('force')
+
+ # if @commandline.option('recurse') then
+ # files = Dir.glob('**/*')
+ # else
+ # files = Dir.glob('*')
+ # end
+ # if files && files.length>0 then
+
+ if files = findfiles() then
files.each do |oldname|
if FileTest.file?(oldname) then
newname = oldname.downcase
if oldname != newname then
- begin
- File.rename(oldname,newname)
- rescue
- report("#{oldname} == #{oldname}\n")
+ if force then
+ begin
+ File.rename(oldname,newname)
+ rescue
+ report("#{oldname} == #{oldname}\n")
+ else
+ report("#{oldname} => #{newname}\n")
+ end
else
- report("#{oldname} => #{newname}\n")
+ report("(#{oldname} => #{newname})\n")
end
end
end
@@ -498,43 +499,40 @@ class Commands
end
end
- private # specific
+ def stripformfeeds
- def touchfile(filename)
+ report('strip formfeeds')
- if FileTest.file?(filename) then
- if data = IO.read(filename) then
- timestamp = Time.now.strftime('%Y.%m.%d')
- begin
- data.gsub!(/\\contextversion\{(\d+)\.(\d+)\.(\d+)\}/) do
- "\\contextversion{#{timestamp}}"
- end
- rescue
- else
- begin
- File.delete(filename+'.old')
- rescue
- end
+ force = @commandline.option('force')
+
+ if files = findfiles() then
+ files.each do |filename|
+ if FileTest.file?(filename) then
begin
- File.copy(filename,filename+'.old')
+ data = IO.readlines(filename).join('')
rescue
- end
- begin
- if f = File.open(filename,'w') then
- f.puts(data)
- f.close
+ else
+ if data.gsub!(/\n*\f\n*/io,"\n\n") then
+ if force then
+ if f = open(filename,'w') then
+ report("#{filename} is stripped\n")
+ f.puts(data)
+ f.close
+ else
+ report("#{filename} cannot be stripped\n")
+ end
+ else
+ report("#{filename} will be stripped\n")
+ end
end
- rescue
end
end
- report("#{filename} is touched as #{timestamp}")
end
- else
- report("#{filename} is not found")
end
-
end
+ private # specific
+
def movefiles(from_path,to_path,suffix,&block)
obsolete = 'obsolete'
force = @commandline.option('force')
@@ -642,19 +640,19 @@ end
logger = EXA::ExaLogger.new(banner.shift)
commandline = CommandLine.new
-commandline.registeraction('touchcontextfile', '') # private
-commandline.registeraction('downcasefilenames', '') # private
-
-commandline.registeraction('removemapnames' , '[pattern] [--recurse]')
-commandline.registeraction('restoremapnames' , '[pattern] [--recurse]')
-commandline.registeraction('hidemapnames' , '[pattern] [--recurse]')
-commandline.registeraction('videmapnames' , '[pattern] [--recurse]')
-commandline.registeraction('findfile' , 'filename [--recurse]')
-commandline.registeraction('unzipfiles' , '[pattern] [--recurse]')
-commandline.registeraction('fixafmfiles' , '[pattern] [--recurse]')
-commandline.registeraction('mactodos' , '[pattern] [--recurse]')
-commandline.registeraction('fixtexmftrees' , '[texmfroot] [--force]')
-commandline.registeraction('replace' , 'filename [--force]')
+commandline.registeraction('removemapnames' , '[pattern] [--recurse]')
+commandline.registeraction('restoremapnames' , '[pattern] [--recurse]')
+commandline.registeraction('hidemapnames' , '[pattern] [--recurse]')
+commandline.registeraction('videmapnames' , '[pattern] [--recurse]')
+commandline.registeraction('findfile' , 'filename [--recurse]')
+commandline.registeraction('unzipfiles' , '[pattern] [--recurse]')
+commandline.registeraction('fixafmfiles' , '[pattern] [--recurse]')
+commandline.registeraction('mactodos' , '[pattern] [--recurse]')
+commandline.registeraction('fixtexmftrees' , '[texmfroot] [--force]')
+commandline.registeraction('replace' , 'filename [--force]')
+commandline.registeraction('downcasefilenames', '[--recurse] [--force]') # not yet documented
+commandline.registeraction('stripformfeeds' , '[--recurse] [--force]') # not yet documented
+
commandline.registeraction('help')
commandline.registeraction('version')
diff --git a/tex/context/base/cont-fil.tex b/tex/context/base/cont-fil.tex
index 6c39a2c4d..680e21a22 100644
--- a/tex/context/base/cont-fil.tex
+++ b/tex/context/base/cont-fil.tex
@@ -90,8 +90,8 @@
\definefilesynonym [abr-smallcaps] [abr-02]
\definefilesynonym [chinese] [chi-00]
-\definefilesynonym [chi-simplified] [chi-01]
-\definefilesynonym [chi-traditional] [chi-02]
+%definefilesynonym [chi-simplified] [chi-01]
+%definefilesynonym [chi-traditional] [chi-02]
\definefilesynonym [greek] [grk-00]
diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex
index 966740bd3..66dc52c3c 100644
--- a/tex/context/base/cont-new.tex
+++ b/tex/context/base/cont-new.tex
@@ -31,6 +31,23 @@
\unexpanded\def\xmlrent#1{\doXMLentity#1;}
+% And so, after a few years of keeping this potentially dangerous
+% speedup in cont-exp, we now move it to the kernel: the next
+% patch is 30\% faster on main interface (seconds) (9->7 sec on
+% 1 million calls). Another speed up is still under testing.
+
+\startinterface english
+
+ \def\dosetevalue #1#2{\@EA\edef\csname#1#2\endcsname}
+ \def\dosetgvalue #1#2{\@EA\gdef\csname#1#2\endcsname}
+ \def\dosetvalue #1#2{\@EA\def \csname#1#2\endcsname}
+ \def\docopyvalue#1#2#3{\@EA\def \csname#1#3\@EA\endcsname\@EA{\csname#2#3\endcsname}}
+
+\stopinterface
+
+\def\XMLprocess#1%
+ {\begingroup\enableXML\XMLflush{#1}\endgroup}
+
% In 2005 we will abandon support for font encodings that don't have
% the ascii characters { } $ etc in their normal slot, i.e. latin modern
% instead of computer modern. Then we can also clean up some of the ugly
@@ -126,6 +143,30 @@
\showmessage\m!floatblocks9\empty
\someherefloat} % [#1]
+%D \starttyping
+%D {\sanitizePDFdocencoding test \CONTEXT\ test \to\oeps\stripstring\oeps\tttf[\oeps]}
+%D \stoptyping
+
+\def\stripstring#1% #1 is \cs
+ {\bgroup
+ \convertcommand#1\to\ascii
+ \global\let\globalascii\empty
+ \donefalse
+ \expandafter\handletokens\ascii\with\dostripstring
+ \egroup
+ \let#1\globalascii}
+
+\def\dostripstring#1%
+ {\ifx#1\blankspace
+ \donetrue
+ \else
+ \ifdone\ifx\globalascii\empty\else
+ \xdef\globalascii{\globalascii\space}%
+ \donefalse
+ \fi\fi
+ \xdef\globalascii{\globalascii#1}%
+ \fi}
+
%D Ok, I got tired of making dediccated clean up macros using the
%D same mechanism again and again, so now we have:
%D
@@ -557,8 +598,13 @@
\global\percentdimendonefalse
\def\%{\dimexpr(#1/100)\global\percentdimendonetrue\ignorespaces}| scantokens add's a space
\catcode`%=\@@active
+ \catcode`\\=\@@escape
\let%\%|
- \global\globalscratchdimen\scantokens\@EA{\@@expanded}| i'm lazy and use etex
+\scratchdimen#1|
+\xdef\@@expanded{\@@expanded\scratchdimen\!!zeropoint}| trick: when 1.2 => .2\scratchdimen and 0pt typeset
+\startnointerference
+ \global\globalscratchdimen\scantokens\@EA{\@@expanded}| i'm lazy and use etex
+\stopnointerference
\egroup
#1\globalscratchdimen
\fi}
@@ -566,7 +612,7 @@
\bgroup
-\obeylines
+\obeylines % don't remove %'s !
\gdef\collapsedspace#1%
{\ifx#1^^M%
diff --git a/tex/context/base/cont-sys.ori b/tex/context/base/cont-sys.ori
index 1f9bd0dc2..6860efefa 100644
--- a/tex/context/base/cont-sys.ori
+++ b/tex/context/base/cont-sys.ori
@@ -51,9 +51,9 @@
% \usetypescript[adobekb] [\defaultencoding]
% You can let \CONTEXT\ load the map files for \PDFTEX.
-%
-% \autoloadmapfilestrue
-%
+
+\autoloadmapfilestrue
+
% (1) use this when you have a big mapfile
%
% \preloadmapfile[original-base.map]
@@ -72,21 +72,21 @@
% \resetmapfiles \usetypescript [map] [base] [all]
%
% (3) or this if it's a slow one:
-%
-% \resetmapfiles
-%
-% \loadmapfile[original-base.map]
-% \loadmapfile[ec-base.map]
-% \loadmapfile[8r-base.map]
-% \loadmapfile[qx-base.map]
-% \loadmapfile[texnansi-base.map]
-% \loadmapfile[original-ams-cmr.map]
-% \loadmapfile[original-ams-euler.map]
-% \loadmapfile[original-public-lm.map]
-% \loadmapfile[original-public-plr.map]
-% \loadmapfile[original-public-csr.map]
-% \loadmapfile[texnansi-public-lm.map]
-% \loadmapfile[ec-public-lm.map]
+
+\resetmapfiles
+
+\loadmapfile[original-base.map]
+\loadmapfile[ec-base.map]
+\loadmapfile[8r-base.map]
+\loadmapfile[qx-base.map]
+\loadmapfile[texnansi-base.map]
+\loadmapfile[original-ams-cmr.map]
+\loadmapfile[original-ams-euler.map]
+\loadmapfile[original-public-lm.map]
+\loadmapfile[original-public-plr.map]
+\loadmapfile[original-public-csr.map]
+\loadmapfile[texnansi-public-lm.map]
+\loadmapfile[ec-public-lm.map]
% When you have your own fonts installed, you may want to predefine:
%
@@ -162,4 +162,4 @@
% So far.
-\protect \endinput \ No newline at end of file
+\protect \endinput
diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex
index dee6cd6e3..9ce29a94a 100644
--- a/tex/context/base/context.tex
+++ b/tex/context/base/context.tex
@@ -31,7 +31,7 @@
%D 2004.8.30 the low level interface is english. Watch out and adapt
%D your styles an modules.
-\def\contextversion{2004.10.07}
+\def\contextversion{2004.10.19}
%D Welcome to the main module. When this module is ran through
%D \type{initex} or \type {tex -i} or \type {whatevertex} using
diff --git a/tex/context/base/core-int.tex b/tex/context/base/core-int.tex
index 230f833b5..223ca6c40 100644
--- a/tex/context/base/core-int.tex
+++ b/tex/context/base/core-int.tex
@@ -577,8 +577,7 @@
\fi
\global\chardef\previousbookmarklevel\currentbookmarklevel
\global\utilitydonetrue
- \insertsomebookmark
- {#1}{\the\currentbookmarklevel}{\bookmarklevelcount}{#4}{#6}}
+ \insertsomebookmark{#1}{\the\currentbookmarklevel}{\bookmarklevelcount}{#4}{#6}}
\def\dogetbookmarkelement#1#2#3#4#5#6%
{\doifnot{#1}\@@bookmark
diff --git a/tex/context/base/core-itm.tex b/tex/context/base/core-itm.tex
index a248b1077..86171507e 100644
--- a/tex/context/base/core-itm.tex
+++ b/tex/context/base/core-itm.tex
@@ -154,31 +154,31 @@
{\processaction
[#2#3#4]
[ \v!packed*=>\packitems,
- \v!intro*=>\itemintrotrue,
- \v!autointro*=>\autoitemintrotrue,
- \v!broad*=>\setitemparameter{#1}\c!factor{1},
- #2#3*\v!broad*=>\setitemparameter{#1}\c!factor{#2#3},
- #2*\v!broad*=>\setitemparameter{#1}\c!factor{#2},
- \v!text*=>\textitemstrue
- \settrue\inlinelistitem
- \dosetuppackeditemgroup{#1}%
- \packitems,
- \v!columns*=>\packitems,
- \v!margin*=>\setitemparameter{#1}\c!width{-2em}, % signal
- \v!inmargin*=>\setitemparameter{#1}\c!width{-2em}, % signal
- \v!atmargin*=>\doifnot{#1}{1}{\setitemparameter{#1}\c!width{0em}}, % signal
- \v!intext*=>\settrue\inlinelistitem, % new
- \v!loose*=>\optimizeitemsfalse,
- \v!paragraph*=>\paragraphitemstrue
- \packitems,
- \v!joinedup*=>\dosetuppackeditemgroup{#1}%
- \packitems,
+ \v!intro*=>\itemintrotrue,
+ \v!autointro*=>\autoitemintrotrue,
+ \v!broad*=>\setitemparameter{#1}\c!factor{1},
+ #2#3*\v!broad*=>\setitemparameter{#1}\c!factor{#2#3},
+ #2*\v!broad*=>\setitemparameter{#1}\c!factor{#2},
+ \v!text*=>\textitemstrue
+ \settrue\inlinelistitem
+ \dosetuppackeditemgroup{#1}%
+ \packitems,
+ \v!columns*=>\packitems,
+ \v!margin*=>\setitemparameter{#1}\c!width{-2em}, % signal
+ \v!inmargin*=>\setitemparameter{#1}\c!width{-2em}, % signal
+ \v!atmargin*=>\doifnot{#1}{1}{\setitemparameter{#1}\c!width{0em}}, % signal
+ \v!intext*=>\settrue\inlinelistitem, % new
+ \v!loose*=>\optimizeitemsfalse,
+ \v!paragraph*=>\paragraphitemstrue
+ \packitems,
+ \v!joinedup*=>\dosetuppackeditemgroup{#1}%
+ \packitems,
\v!serried*=>\setitemparameter{#1}\c!factor{-1},
#2#3*\v!serried*=>\setitemparameter{#1}\c!factor{-#2#3},
#2*\v!serried*=>\setitemparameter{#1}\c!factor{-#2},
\v!stopper*=>\setitemparameter{#1}\c!placestopper\v!yes,
- \v!unpacked*=>\packeditemsfalse,
- \v!standard*=>\dosetupstandarditemgroup{#1}]}
+ \v!unpacked*=>\packeditemsfalse,
+ \v!standard*=>\dosetupstandarditemgroup{#1}]}
\def\dosetupstandarditemgroup#1%
{\getparameters
@@ -195,8 +195,8 @@
\def\dosetuppackeditemgroup#1%
{\letitemparameter{#1}\c!beforehead\empty
- \letitemparameter{#1}\c!afterhead \empty
- \letitemparameter{#1}\c!before \empty
+ \letitemparameter{#1}\c!afterhead \empty
+ \letitemparameter{#1}\c!before \empty
\letitemparameter{#1}\c!after \empty
\letitemparameter{#1}\c!inbetween \empty}
@@ -412,23 +412,24 @@
\processfirstactioninset
[#1]
[ \v!one=>\!!counta1\relax,
- \v!two=>\!!counta2\relax,
- \v!three=>\!!counta3\relax,
+ \v!two=>\!!counta2\relax,
+ \v!three=>\!!counta3\relax,
\v!four=>\!!counta4\relax,
\v!five=>\!!counta5\relax,
\s!unknown=>\@EA\!!counta\getitemparameter\itemlevel\c!n]%
% new
- \edef\columneditemleftskip{\the\leftskip}%
- \def\postprocesscolumnbox##1%
- {\scratchdimen\columneditemleftskip
- \divide\scratchdimen \nofcolumns
- \hbox{\hskip\columneditemleftskip\hbox{\box##1}}}%
- \scratchdimen-\columneditemleftskip
- \multiply\scratchdimen \nofcolumns
- \advance\scratchdimen \columneditemleftskip
- \advance\scratchdimen \hsize
- \edef\columntextwidth{\the\scratchdimen}%
- \leftskip\zeropoint
+% now handled in column routines
+% \edef\columneditemleftskip{\the\leftskip}%
+% \def\postprocesscolumnbox##1%
+% {\scratchdimen\columneditemleftskip
+% \divide\scratchdimen \nofcolumns
+% \hbox{\hskip\columneditemleftskip\hbox{\box##1}}}%
+% \scratchdimen-\columneditemleftskip
+% \multiply\scratchdimen \nofcolumns
+% \advance\scratchdimen \columneditemleftskip
+% \advance\scratchdimen \hsize
+% \edef\columntextwidth{\the\scratchdimen}%
+% \leftskip\zeropoint
% so far
\startcolumns
[\c!n=\!!counta, % netter \??op\itemlevel\c!n
@@ -493,6 +494,20 @@
\fi
\fi}
+% test / example
+%
+% \startnarrower[left] \startcolumns[n=3] \startitemize
+% \item \input ward \item \input ward \item \input ward
+% \stopitemize \stopcolumns\stopnarrower \blank
+%
+% \startnarrower[left] \startitemize[columns,three]
+% \item \input ward \item \input ward \item \input ward
+% \stopitemize \stopnarrower \blank
+%
+% \setupitemize[leftmargin=1.5em] \startitemize[columns,three]
+% \item \input ward \item \input ward \item \input ward
+% \stopitemize \blank
+
\def\stopitemgroup
{\iftextitems
\removeunwantedspaces\space\ignorespaces
diff --git a/tex/context/base/core-job.tex b/tex/context/base/core-job.tex
index 5957b5c98..b45b5d495 100644
--- a/tex/context/base/core-job.tex
+++ b/tex/context/base/core-job.tex
@@ -134,7 +134,8 @@
\loadallsystemfiles\f!filfilename
\donothing
\loadallsystemfiles\f!sysfilename
- {\doglobal\appendtoks
+ {\loadallsystemfiles{\f!sysfilename.rme}\donothing % new, fall back
+ \doglobal\appendtoks
\loadallsystemfiles\f!errfilename\donothing
\to\everygoodbye}}
diff --git a/tex/context/base/core-mis.tex b/tex/context/base/core-mis.tex
index d157a7ee4..be7ba2008 100644
--- a/tex/context/base/core-mis.tex
+++ b/tex/context/base/core-mis.tex
@@ -78,7 +78,9 @@
%D A possibly growing list:
-\appendtoks \def\executesynonym#1#2#3#4{#3}\to\simplifiedcommands
+%appendtoks \def\executesynonym#1#2#3#4{#3}\to\simplifiedcommands
+%appendtoks \def\executesort#1#2#3{#3}\to\simplifiedcommands
+
\appendtoks \def\ { }\to\simplifiedcommands
\appendtoks\def\type#1{\string\\\strippedcsname#1}\to\simplifiedcommands
\appendtoks \def\TeX{TeX}\to\simplifiedcommands
@@ -107,10 +109,10 @@
{\advance\!!counta \plusone
\processaction
[\@@isalign]
- [ \v!left=>\hbox to \scratchdimen{\strut##1\hss},
- \v!right=>\hbox to \scratchdimen{\hss\strut##1},
+ [ \v!left=>\hbox to \scratchdimen{\strut##1\hss},
+ \v!right=>\hbox to \scratchdimen{\hss\strut##1},
\v!middle=>\hbox to \scratchdimen{\hss\strut##1\hss},
- \v!margin=>\ifnum\!!counta=\plusone\hss\else\hfill\fi
+ \v!margin=>\ifnum\!!counta=\plusone\hss\else\hfill\fi
\strut##1%
\ifnum\!!counta=\nofitems\hss\else\hfill\fi,
\s!default=>\hbox to \scratchdimen{\hss\strut##1\hss}, % midden
@@ -1625,19 +1627,19 @@
\getfromcommacommand[\@@ldlocation][1]%
\processaction
[\commalistelement]
- [ \v!left=>\chardef\pairedlocationa0,
- \v!right=>\chardef\pairedlocationa1,
- \v!top=>\chardef\pairedlocationa2,
- \v!bottom=>\chardef\pairedlocationa3]%
+ [ \v!left=>\chardef\pairedlocationa0,
+ \v!right=>\chardef\pairedlocationa1,
+ \v!top=>\chardef\pairedlocationa2,
+ \v!bottom=>\chardef\pairedlocationa3]%
\getfromcommacommand[\@@ldlocation][2]%
\processaction
[\commalistelement]
- [ \v!left=>\chardef\pairedlocationb0,
- \v!right=>\chardef\pairedlocationb1,
+ [ \v!left=>\chardef\pairedlocationb0,
+ \v!right=>\chardef\pairedlocationb1,
\v!high=>\chardef\pairedlocationb2,
- \v!top=>\chardef\pairedlocationb2,
- \v!low=>\chardef\pairedlocationb3,
- \v!bottom=>\chardef\pairedlocationb3,
+ \v!top=>\chardef\pairedlocationb2,
+ \v!low=>\chardef\pairedlocationb3,
+ \v!bottom=>\chardef\pairedlocationb3,
\v!middle=>\chardef\pairedlocationb4]}
\def\betweenbothpairedboxes
diff --git a/tex/context/base/core-reg.tex b/tex/context/base/core-reg.tex
index 4830dcb32..2836fab43 100644
--- a/tex/context/base/core-reg.tex
+++ b/tex/context/base/core-reg.tex
@@ -929,12 +929,10 @@
{\iffirstargument
\begingroup
\def\currentregister{#1}%
- \expanded % the expansion is needed because we don't want \v!'s in the tuo file (french)
- {\plaatsvolledig
- {\noexpand\systemsuppliedchapter}%
- {\currentregister}%
- {\noexpand\headtext{\currentregister}}%
- {\noexpand\placeregister[\currentregister][#2]}}%
+ % the expansion is needed because we don't want \v!'s in the tuo file (french)
+ \expanded{\systemsuppliedchapter[\currentregister]{\noexpand\headtext{\currentregister}}}%
+ \placeregister[\currentregister][#2]%
+ \page[\v!yes]%
\endgroup
\fi}
diff --git a/tex/context/base/core-spa.tex b/tex/context/base/core-spa.tex
index 416071374..f429e874f 100644
--- a/tex/context/base/core-spa.tex
+++ b/tex/context/base/core-spa.tex
@@ -2467,7 +2467,7 @@
% Nodig i.v.m. inspringen eerste alineas
-\def\explicithmode{\unhbox\voidb@x}
+\def\explicithmode{\unhbox\voidb@x} % can probably become \dontleavehmode
% Nog doen:
%
diff --git a/tex/context/base/core-syn.tex b/tex/context/base/core-syn.tex
index e32e55f0a..8d49b0196 100644
--- a/tex/context/base/core-syn.tex
+++ b/tex/context/base/core-syn.tex
@@ -28,6 +28,8 @@
\newif\ifsynonymmeaning
+% \def\currentsynonymparameter#1{\csname\??sm\currentsynonym#1\endcsname}
+
\def\dosetupsynonyms[#1][#2]%
{\getparameters[\??sm#1][#2]}
@@ -53,7 +55,7 @@
{\setvalue{#1\s!entry}{\getvalue{\??sm#1\c!command}}} % 3 argumenten
{\setvalue{#1\s!entry}{\dohandlesynonymentry{#1}}}}
-\def\doplaatslijstmetsynoniemen#1#2%
+\def\doplacelistofsynonyms#1#2%
{\whitespace
\begingroup
\def\currentsynonym{#1}%
@@ -71,19 +73,15 @@
\c!indentnext=\getvalue{\??sm#1\c!indentnext},
\c!headstyle=,
\c!style=]%
-%
\setupwhitespace[\v!none]%
\doutilities{#1}\jobname{#2}\relax\par
\endgroup
\ifutilitydone\else\nowhitespace\fi}
-\def\dovolledigelijstmetsynoniemen#1#2% expansion needed to avoid v! (due to french active !)
- {\expanded
- {\plaatsvolledig
- {\noexpand\systemsuppliedchapter}%
- {#1}%
- {\noexpand\headtext{#2}}%
- {\noexpand\doplaatslijstmetsynoniemen{#1}{#2}}}}
+\def\docompletelistofsynonyms#1#2% expansion needed to avoid v! (due to french active !)
+ {\expanded{\systemsuppliedchapter[#1]{\noexpand\headtext{#2}}}%
+ \doplacelistofsynonyms{#1}{#2}%
+ \page[\v!yes]}
\def\processsynonym#1#2#3%
{\begingroup % anders in mathmode lege \hbox, zie eenheden
@@ -96,11 +94,6 @@
\fi
\endgroup}
-%\def\getsynonymmeaning#1#2#3%
-% {\doifdefinedelse{#2#3}
-% {{\synonymmeaningtrue\getvalue{#2#3}}}
-% {{\showmessage\m!systems{18}{#1,#3}}}}
-
\def\getsynonymmeaning#1#2#3%
{\bgroup
\doifundefined{#2#3}
@@ -141,7 +134,7 @@
{\dodoloadsynonym{#1}{##1}{##2}{##3}}%
\global\utilitydonetrue}}
-\def\dolaadsynoniemen#1#2%
+\def\doloadsynonyms#1#2%
{\bgroup
\let\dosetsynonym\doloadsynonym
\showmessage\m!systems{19}{#2}%
@@ -152,6 +145,7 @@
\def\dodocomplexsynonym[#1][#2]#3#4%
{\doifsomething{#2}
{\getvalue{\s!check#1}{#2}%
+ \doglobal\appendtoks\setvalue{#2}{#2}\to\simplifiedcommands
\doifelsevalue{\??sm#1\c!conversion}\v!yes
{\unexpanded\setgvalue{#2}{\expandsynonym{#1}{#2}{#3}{#4}}}
{\doifelsevalue{\??sm#1\c!state}\v!start
@@ -182,30 +176,22 @@
\fi
\dosetupsynonyms
[#1]%
- [\c!synonymstyle=,
- \c!textstyle=,
- \c!state=\v!start,
- \c!criterium=,
- \c!location=\v!left,
- \c!width=5em,
- \c!distance=0pt,
- \c!sample=,
- \c!hang=,
- \c!align=,
- \c!before=,
- \c!inbetween=,
- \c!after=,
+ [\c!synonymstyle=,\c!textstyle=,
+ \c!state=\v!start,\c!criterium=,
+ \c!location=\v!left,\c!width=5em,\c!distance=0pt,
+ \c!sample=,\c!hang=,\c!align=,
+ \c!before=,\c!inbetween=,\c!after=,
\c!indentnext=\v!no,
\c!expansion=]%
\presetheadtext[#2=\Word{#2}]% changes the \if...argument
\addutilityreset{#1}%
- \setvalue{\e!setup#2\e!endsetup}{\dodoubleargument\getparameters[\??sm#1]}% to be obsolete
- \setvalue{\s!set#1}{\dosetsynonym{#1}}%
- \setvalue{\s!reset#1}{\doresetsynonym{#1}}%
- \setvalue{\s!check#1}##1{\checkdefined{synoniemen}{#1}{##1}}%
- \setvalue{\e!load#2}{\dolaadsynoniemen{#1}{#2}}%
- \setvalue{\e!place\e!listof#2}{\doplaatslijstmetsynoniemen{#1}{#2}}%
- \setvalue{\e!complete\e!listof#2}{\dovolledigelijstmetsynoniemen{#1}{#2}}}
+ \setvalue{\e!setup #2\e!endsetup}{\dodoubleargument\getparameters[\??sm#1]}% to be obsolete
+ \setvalue{\s!set #1}{\dosetsynonym{#1}}%
+ \setvalue{\s!reset #1}{\doresetsynonym{#1}}%
+ \setvalue{\s!check #1}##1{\checkdefined{synonym}{#1}{##1}}%
+ \setvalue{\e!load #2}{\doloadsynonyms{#1}{#2}}%
+ \setvalue{\e!place\e!listof #2}{\doplacelistofsynonyms{#1}{#2}}%
+ \setvalue{\e!complete\e!listof#2}{\docompletelistofsynonyms{#1}{#2}}}
\def\definesynonyms
{\doquadrupleempty\dodefinesynonyms}
@@ -225,10 +211,10 @@
\def\setupsorting
{\dodoubleargument\dosetupsorting}
-\def\doresetsorteren#1%
+\def\doresetsort#1%
{\letvalue{#1\s!entry}\gobblethreearguments}
-\def\dosetsorteren#1%
+\def\dosetsort#1%
{\setvalue{#1\s!entry}##1##2##3%
{\def\dowritesort####1####2####3{}%
\global\utilitydonetrue
@@ -240,18 +226,18 @@
\getvalue{\??so#1\c!after}}%
\egroup}}
-\def\doplaatslijstmetsorteren#1% NOG EEN RUWE VERSIE MAKEN
- {\whitespace % ZONDER WITRUIMTE ETC ETC
+\def\doplacelistofsorts#1% NOG EEN RUWE VERSIE MAKEN
+ {\whitespace % ZONDER WITRUIMTE ETC ETC
\begingroup
\setupwhitespace[\v!none]%
\doutilities{#1}\jobname{#1}\relax\par
\endgroup
\ifutilitydone\else\nowhitespace\fi}
-\def\dovolledigelijstmetsorteren#1#2%
- {\plaatsvolledig
- {\systemsuppliedchapter}{#1}{\headtext{#2}}
- {\doplaatslijstmetsorteren{#1}}}
+\def\docompletelistofsorts#1#2%
+ {\expanded{\systemsuppliedchapter[#1]{\noexpand\headtext{#2}}}%
+ \doplacelistofsorts{#1}%
+ \page[\v!yes]}
\def\processsort#1#2#3%
{\explicithmode
@@ -274,12 +260,6 @@
\unexpanded\setgvalue{#2}{\processsort{#1}{#3}{#2}}%
\fi}
-% \def\executesort#1#2#3%
-% {\preexecutesort{#1}{#2}{#3}%
-% \processsort{#1}{#3}{#2}}
-%
-% Better because it catches nested logo's:
-
\def\executesort#1#2#3%
{\bgroup
\def\executesort##1##2##3{##3}% Trick needed for nested logo's.
@@ -292,9 +272,9 @@
{\setgvalue{##1}{##2}%
\global\utilitydonetrue}}
-\def\dolaadsorteren#1#2%
+\def\doloadsort#1#2%
{\bgroup
- \let\dosetsorteren\doloadsort
+ \let\dosetsort\doloadsort
\showmessage\m!systems{20}{#2}%
\doutilities{#1}\jobname\empty\relax\relax
\egroup
@@ -303,6 +283,7 @@
\def\dodocomplexsort[#1][#2]#3%
{\doifsomething{#2}
{\getvalue{\s!check#1}{#2}%
+ \doglobal\appendtoks\setvalue{#2}{#2}\to\simplifiedcommands
\doifelsevalue{\??so#1\c!state}\v!start
{\doifelsevalue{\??so#1\c!criterium}\v!all
{\preexecutesort{#1}{#2}{#3}}
@@ -316,7 +297,7 @@
\dowritesort{#2}{#4}{#4}%
\fi}
-% if #3=\relax or \v!geen, then no command but still protected
+% if #3=\relax or \v!none, then no command but still protected
\def\dodefinesorting[#1][#2][#3]%
{\getparameters[\??so#1]
@@ -339,12 +320,12 @@
\addutilityreset{#1}%
\presetheadtext[#2=\Word{#2}]% after \ifthirdargument -)
\setvalue{\e!setup#2\e!endsetup}[##1]{\getparameters[\??so#1][##1]}% to be obsolete
- \setvalue{\s!set#1}{\dosetsorteren{#1}}%
- \setvalue{\s!reset#1}{\doresetsorteren{#1}}%
- \setvalue{\e!load#2}{\dolaadsorteren{#1}{#2}}%
- \setvalue{\s!check#1}##1{\checkdefined{sorteren}{#1}{##1}}%
- \setvalue{\e!place\e!listof#2}{\doplaatslijstmetsorteren{#1}}%
- \setvalue{\e!complete\e!listof#2}{\dovolledigelijstmetsorteren{#1}{#2}}}
+ \setvalue{\s!set#1}{\dosetsort{#1}}%
+ \setvalue{\s!reset#1}{\doresetsort{#1}}%
+ \setvalue{\e!load#2}{\doloadsort{#1}{#2}}%
+ \setvalue{\s!check#1}##1{\checkdefined{sort}{#1}{##1}}%
+ \setvalue{\e!place\e!listof#2}{\doplacelistofsorts{#1}}%
+ \setvalue{\e!complete\e!listof#2}{\docompletelistofsorts{#1}{#2}}}
\def\definesorting
{\dotripleempty\dodefinesorting}
diff --git a/tex/context/base/core-uti.tex b/tex/context/base/core-uti.tex
index a32b670d8..6ea2c1812 100644
--- a/tex/context/base/core-uti.tex
+++ b/tex/context/base/core-uti.tex
@@ -576,11 +576,6 @@
\prependtoks \resetutilities \to \everyjob
-% left over
-
-\def\plaatsvolledig#1#2#3#4% kop, ref, tit, do
- {#1[#2]{#3}#4\page[\v!yes]}
-
% Experiment
%
%\installprogram{Hello World}
diff --git a/tex/context/base/font-chi.tex b/tex/context/base/font-chi.tex
index 1dc4cbfa8..c568a25ef 100644
--- a/tex/context/base/font-chi.tex
+++ b/tex/context/base/font-chi.tex
@@ -215,45 +215,47 @@
%
% chinese classes: left=1|right=2|center=3
-\def\analyzechineseunicodeglyph%
- {\chardef\chineseSstatus=0\getvalue{uc\the\unicodeposition}\relax}
+\chardef\plusfour=4
-\def\analyzechineseunicodeenviroment%
+\def\analyzechineseunicodeglyph
+ {\chardef\chineseSstatus\zerocount\getvalue{uc\the\unicodeposition}\relax}
+
+\def\analyzechineseunicodeenviroment
{% left
- \ifx (\nextglyph \chardef\chineseAstatus=1 \else
- \ifx [\nextglyph \chardef\chineseAstatus=1 \else
+ \ifx (\nextglyph \chardef\chineseAstatus\plusone \else
+ \ifx [\nextglyph \chardef\chineseAstatus\plusone \else
% right
- \ifx ,\nextglyph \chardef\chineseAstatus=2 \else
- \ifx .\nextglyph \chardef\chineseAstatus=2 \else
- \ifx ?\nextglyph \chardef\chineseAstatus=2 \else
- \ifx ;\nextglyph \chardef\chineseAstatus=2 \else
- \ifx :\nextglyph \chardef\chineseAstatus=2 \else
- \ifx !\nextglyph \chardef\chineseAstatus=2 \else
- \ifx )\nextglyph \chardef\chineseAstatus=2 \else
- \ifx ]\nextglyph \chardef\chineseAstatus=2 \else
+ \ifx ,\nextglyph \chardef\chineseAstatus\plustwo \else
+ \ifx .\nextglyph \chardef\chineseAstatus\plustwo \else
+ \ifx ?\nextglyph \chardef\chineseAstatus\plustwo \else
+ \ifx ;\nextglyph \chardef\chineseAstatus\plustwo \else
+ \ifx :\nextglyph \chardef\chineseAstatus\plustwo \else
+ \ifx !\nextglyph \chardef\chineseAstatus\plustwo \else
+ \ifx )\nextglyph \chardef\chineseAstatus\plustwo \else
+ \ifx ]\nextglyph \chardef\chineseAstatus\plustwo \else
% space
- \ifx\nextglyph\blankspace \chardef\chineseAstatus=3 \else
- \ifx\nextglyph\space \chardef\chineseAstatus=3 \else
- \chardef\chineseAstatus=0
+ \ifx\nextglyph\blankspace \chardef\chineseAstatus\plusthree \else
+ \ifx\nextglyph\space \chardef\chineseAstatus\plusthree \else
+ \chardef\chineseAstatus\zerocount
% unknown
\fi\fi\fi\fi\fi \fi\fi\fi\fi\fi \fi\fi
% maybe save the last skip?
- \chardef\chineseBstatus=\ifdim\lastskip=\!!zeropoint 4 \else0 \fi
- \ifdim\lastskip=\chineseLsignal \chardef\chineseBstatus=1 \else
- \ifdim\lastskip=\chineseRsignal \chardef\chineseBstatus=2 \else
- \ifdim\lastskip=\chineseSsignal \chardef\chineseBstatus=3 \else
+ \chardef\chineseBstatus\ifdim\lastskip=\zeropoint\plusfour\else\zerocount\fi
+ \ifdim\lastskip=\chineseLsignal \chardef\chineseBstatus\plusone \else
+ \ifdim\lastskip=\chineseRsignal \chardef\chineseBstatus\plustwo \else
+ \ifdim\lastskip=\chineseSsignal \chardef\chineseBstatus\plusthree \else
\scratchskip=\lastskip \unskip
- \ifdim\lastskip=\chineseLsignal \chardef\chineseBstatus=1 \else
- \ifdim\lastskip=\chineseRsignal \chardef\chineseBstatus=2 \else
- \ifdim\lastskip=\chineseSsignal \chardef\chineseBstatus=3 \else
+ \ifdim\lastskip=\chineseLsignal \chardef\chineseBstatus\plusone \else
+ \ifdim\lastskip=\chineseRsignal \chardef\chineseBstatus\plustwo \else
+ \ifdim\lastskip=\chineseSsignal \chardef\chineseBstatus\plusthree \else
\space\scratchskip=\lastskip \unskip
\setbox\scratchbox=\hbox\bgroup
(\space
\ifdim\lastskip=\scratchskip
- \egroup \chardef\chineseBstatus=1
+ \egroup \chardef\chineseBstatus\plusone
\else
\egroup
- \ifdim\scratchskip=\!!zeropoint \chardef\chineseBstatus=4 \fi
+ \ifdim\scratchskip=\zeropoint \chardef\chineseBstatus\plusfour \fi
\fi
\fi\fi\fi
\fi\fi\fi}
@@ -362,11 +364,11 @@
\nointerlineskip
\fi
\ifcase\prevchineseSstatus\relax
- \ifnum\chineseSstatus=2 \par\nobreak\else\allowbreak\fi
+ \ifnum\chineseSstatus=\plustwo \par\nobreak\else\allowbreak\fi
\or % left
\par\nobreak
\or % right
- \ifnum\chineseSstatus=2 \par\nobreak\else\allowbreak\fi
+ \ifnum\chineseSstatus=\plustwo \par\nobreak\else\allowbreak\fi
\fi
\global\chardef\prevchineseSstatus\chineseSstatus % pagebody ...
\box\scratchbox\par
@@ -390,13 +392,11 @@
{\bgroup
\def\maxnofcolumns{25}%
\verticalchinesetrue
- \global\chardef\prevchineseSstatus=0
+ \global\chardef\prevchineseSstatus\zerocount
\let\nochinese\nochineseinvertical
\doif\@@vtn\v!fit
- {\dimen0=\textwidth
- \advance\dimen0 \@@vtdistance
- \dimen2=\bodyfontsize
- \advance\dimen2 \@@vtdistance
+ {\dimen0=\textwidth \advance\dimen0 \@@vtdistance
+ \dimen2=\bodyfontsize \advance\dimen2 \@@vtdistance
\divide\dimen0 \number\dimen2
\edef\@@vtn{\number\dimen0}}%
\startcolumns
@@ -519,22 +519,25 @@
\newif\iftracechinese
-\def\showchinesetracelegend%
+\def\showchinesetracelegend
{\definetabulate[\s!dummy][|c|l|l|l|]%
\startdummy
- \HL \NC \bf key \NC \bf meaning \NC \bf glyph \NC \bf keys \NC \NR \HL
- \NC u \NC unknown character type \NC \color[green]{current} \NC u l r \NC\NR
- \NC l \NC left boundary character \NC \color[red]{previous} \NC u l r c n \NC\NR
- \NC r \NC right boundary character \NC \color[blue]{next} \NC u l r s \NC\NR
- \NC c \NC chinese character \NC \NC \NC\NR
- \NC s \NC following space \NC \NC \NC\NR
- \NC n \NC no preceding space \NC \NC \NC\NR \HL
+ \HL
+ \NC \bf key \NC \bf meaning \NC \bf glyph \NC \bf keys \NC\NR
+ \HL
+ \NC u \NC unknown character type \NC \color[green]{current} \NC u l r \NC\NR
+ \NC l \NC left boundary character \NC \color[red]{previous} \NC u l r c n \NC\NR
+ \NC r \NC right boundary character \NC \color[blue]{next} \NC u l r s \NC\NR
+ \NC c \NC chinese character \NC \NC \NC\NR
+ \NC s \NC following space \NC \NC \NC\NR
+ \NC n \NC no preceding space \NC \NC \NC\NR
+ \HL
\stopdummy}
-\def\tracedchineseglyph%
+\def\tracedchineseglyph
{\leavevmode
\ruledhbox
- {\setbox\scratchbox=\hbox{\insertunicodeglyph}%
+ {\setbox\scratchbox\hbox{\insertunicodeglyph}%
\hbox to \wd\scratchbox
{\localcolortrue
\copy\scratchbox
@@ -782,7 +785,7 @@
\def\arabicchinesenumber#1%
{\expandafter\doarabicchinesenumber\number#1@\relax}
-\def\doarabicchinesenumber#1#2\relax%
+\def\doarabicchinesenumber#1#2\relax
{\if#1@\else
\chinesedigit{#1}\empty
\doarabicchinesenumber#2\relax
@@ -889,12 +892,12 @@
\setupunicodefont
[chinese]
- [ \c!scale=\chineseunicodescale,
- \c!height=\chineseunicodeheight,
- \c!depth=\chineseunicodedepth,
+ [ \c!scale=\chineseunicodescale,
+ \c!height=\chineseunicodeheight,
+ \c!depth=\chineseunicodedepth,
\c!conversion=\chinesenumber,
- \c!commands=\setchineseencoding, % needed for digits
- \c!command=\handlechineseunicodeglyph]
+ \c!commands=\setchineseencoding, % needed for digits
+ \c!command=\handlechineseunicodeglyph]
%D For the moment, this encoding is implemented rather ugly. The
%D trick is to move the encoding value from the current font
@@ -902,7 +905,7 @@
\let\chineseencoding\empty
-\def\setchineseencoding% normally SomeChineseRegular
+\def\setchineseencoding % normally SomeChineseRegular
{\getfontfileparameters\unicodestyle
\ifx\currentfontfileencoding\undefined \else
\let\chineseencoding\currentfontfileencoding
@@ -949,73 +952,73 @@
%D In addition to these fonts, we (pre|)|define some commonly
%D used fonts:
-\definefontsynonym [SimplifiedChineseSongTiRegular] [gbsong] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseSongTiSlanted] [gbsongsl] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseSongTiBold] [gbsong] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseSongTiBoldSlanted][gbsongsl] [encoding=gbk]
-
-\definefontsynonym [TraditionalChineseSongTiRegular] [b5song] [encoding=big5]
-\definefontsynonym [TraditionalChineseSongTiSlanted] [b5songsl] [encoding=big5]
-\definefontsynonym [TraditionalChineseSongTiBold] [b5song] [encoding=big5]
-\definefontsynonym [TraditionalChineseSongTiBoldSlanted][b5songsl] [encoding=big5]
-
-\definefontsynonym [SimplifiedChineseHeiTiRegular] [gbhei] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseHeiTiSlanted] [gbheisl] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseHeiTiBold] [gbhei] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseHeiTiBoldSlanted] [gbheisl] [encoding=gbk]
-
-\definefontsynonym [TraditionalChineseHeiTiRegular] [b5hei] [encoding=big5]
-\definefontsynonym [TraditionalChineseHeiTiSlanted] [b5heisl] [encoding=big5]
-\definefontsynonym [TraditionalChineseHeiTiBold] [b5hei] [encoding=big5]
-\definefontsynonym [TraditionalChineseHeiTiBoldSlanted][b5heisl] [encoding=big5]
-
-\definefontsynonym [SimplifiedChineseKaiTiRegular] [gbkai] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseKaiTiSlanted] [gbkaisl] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseKaiTiBold] [gbkai] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseKaiTiBoldSlanted] [gbkaisl] [encoding=gbk]
-
-\definefontsynonym [TraditionalChineseKaiTiRegular] [b5kai] [encoding=big5]
-\definefontsynonym [TraditionalChineseKaiTiSlanted] [b5kaisl] [encoding=big5]
-\definefontsynonym [TraditionalChineseKaiTiBold] [b5kai] [encoding=big5]
-\definefontsynonym [TraditionalChineseKaiTiBoldSlanted] [b5kaisl] [encoding=big5]
-
-\definefontsynonym [SimplifiedChineseFangSongRegular] [gbfs] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseFangSongSlanted] [gbfssl] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseFangSongBold] [gbfs] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseFangSongBoldSlanted] [gbfssl] [encoding=gbk]
-
-\definefontsynonym [TraditionalChineseFangSongRegular] [b5fs] [encoding=big5]
-\definefontsynonym [TraditionalChineseFangSongSlanted] [b5fssl] [encoding=big5]
-\definefontsynonym [TraditionalChineseFangSongBold] [b5fs] [encoding=big5]
-\definefontsynonym [TraditionalChineseFangSongBoldSlanted] [b5fssl] [encoding=big5]
-
-\definefontsynonym [SimplifiedChineseLiShuRegular] [gbli] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseLiShuSlanted] [gblisl] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseLiShuBold] [gbli] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseLiShuBoldSlanted] [gblisl] [encoding=gbk]
-
-\definefontsynonym [TraditionalChineseLiShuRegular] [b5li] [encoding=big5]
-\definefontsynonym [TraditionalChineseLiShuSlanted] [b5lisl] [encoding=big5]
-\definefontsynonym [TraditionalChineseLiShuBold] [b5li] [encoding=big5]
-\definefontsynonym [TraditionalChineseLiShuBoldSlanted] [b5lisl] [encoding=big5]
+\definefontsynonym [SimplifiedChineseSongTiRegular] [gbsong] [encoding=gbk]
+\definefontsynonym [SimplifiedChineseSongTiSlanted] [gbsongsl] [encoding=gbk]
+\definefontsynonym [SimplifiedChineseSongTiBold] [gbsong] [encoding=gbk]
+\definefontsynonym [SimplifiedChineseSongTiBoldSlanted] [gbsongsl] [encoding=gbk]
+
+\definefontsynonym [TraditionalChineseSongTiRegular] [b5song] [encoding=big5]
+\definefontsynonym [TraditionalChineseSongTiSlanted] [b5songsl] [encoding=big5]
+\definefontsynonym [TraditionalChineseSongTiBold] [b5song] [encoding=big5]
+\definefontsynonym [TraditionalChineseSongTiBoldSlanted] [b5songsl] [encoding=big5]
+
+\definefontsynonym [SimplifiedChineseHeiTiRegular] [gbhei] [encoding=gbk]
+\definefontsynonym [SimplifiedChineseHeiTiSlanted] [gbheisl] [encoding=gbk]
+\definefontsynonym [SimplifiedChineseHeiTiBold] [gbhei] [encoding=gbk]
+\definefontsynonym [SimplifiedChineseHeiTiBoldSlanted] [gbheisl] [encoding=gbk]
+
+\definefontsynonym [TraditionalChineseHeiTiRegular] [b5hei] [encoding=big5]
+\definefontsynonym [TraditionalChineseHeiTiSlanted] [b5heisl] [encoding=big5]
+\definefontsynonym [TraditionalChineseHeiTiBold] [b5hei] [encoding=big5]
+\definefontsynonym [TraditionalChineseHeiTiBoldSlanted] [b5heisl] [encoding=big5]
+
+\definefontsynonym [SimplifiedChineseKaiTiRegular] [gbkai] [encoding=gbk]
+\definefontsynonym [SimplifiedChineseKaiTiSlanted] [gbkaisl] [encoding=gbk]
+\definefontsynonym [SimplifiedChineseKaiTiBold] [gbkai] [encoding=gbk]
+\definefontsynonym [SimplifiedChineseKaiTiBoldSlanted] [gbkaisl] [encoding=gbk]
+
+\definefontsynonym [TraditionalChineseKaiTiRegular] [b5kai] [encoding=big5]
+\definefontsynonym [TraditionalChineseKaiTiSlanted] [b5kaisl] [encoding=big5]
+\definefontsynonym [TraditionalChineseKaiTiBold] [b5kai] [encoding=big5]
+\definefontsynonym [TraditionalChineseKaiTiBoldSlanted] [b5kaisl] [encoding=big5]
+
+\definefontsynonym [SimplifiedChineseFangSongRegular] [gbfs] [encoding=gbk]
+\definefontsynonym [SimplifiedChineseFangSongSlanted] [gbfssl] [encoding=gbk]
+\definefontsynonym [SimplifiedChineseFangSongBold] [gbfs] [encoding=gbk]
+\definefontsynonym [SimplifiedChineseFangSongBoldSlanted] [gbfssl] [encoding=gbk]
+
+\definefontsynonym [TraditionalChineseFangSongRegular] [b5fs] [encoding=big5]
+\definefontsynonym [TraditionalChineseFangSongSlanted] [b5fssl] [encoding=big5]
+\definefontsynonym [TraditionalChineseFangSongBold] [b5fs] [encoding=big5]
+\definefontsynonym [TraditionalChineseFangSongBoldSlanted] [b5fssl] [encoding=big5]
+
+\definefontsynonym [SimplifiedChineseLiShuRegular] [gbli] [encoding=gbk]
+\definefontsynonym [SimplifiedChineseLiShuSlanted] [gblisl] [encoding=gbk]
+\definefontsynonym [SimplifiedChineseLiShuBold] [gbli] [encoding=gbk]
+\definefontsynonym [SimplifiedChineseLiShuBoldSlanted] [gblisl] [encoding=gbk]
+
+\definefontsynonym [TraditionalChineseLiShuRegular] [b5li] [encoding=big5]
+\definefontsynonym [TraditionalChineseLiShuSlanted] [b5lisl] [encoding=big5]
+\definefontsynonym [TraditionalChineseLiShuBold] [b5li] [encoding=big5]
+\definefontsynonym [TraditionalChineseLiShuBoldSlanted] [b5lisl] [encoding=big5]
%D The following definitions provide us the commands to switch
%D to these fonts.
-\defineunicodefont [SimSongTi] [SimplifiedChineseSongTi] [chinese]
-\defineunicodefont [TraSongTi] [TraditionalChineseSongTi] [chinese]
+\defineunicodefont [SimSongTi] [SimplifiedChineseSongTi] [chinese]
+\defineunicodefont [TraSongTi] [TraditionalChineseSongTi] [chinese]
-\defineunicodefont [SimHeiTi] [SimplifiedChineseHeiTi] [chinese]
-\defineunicodefont [TraHeiTi] [TraditionalChineseHeiTi] [chinese]
+\defineunicodefont [SimHeiTi] [SimplifiedChineseHeiTi] [chinese]
+\defineunicodefont [TraHeiTi] [TraditionalChineseHeiTi] [chinese]
-\defineunicodefont [SimKaiTi] [SimplifiedChineseKaiTi] [chinese]
-\defineunicodefont [TraKaiTi] [TraditionalChineseKaiTi] [chinese]
+\defineunicodefont [SimKaiTi] [SimplifiedChineseKaiTi] [chinese]
+\defineunicodefont [TraKaiTi] [TraditionalChineseKaiTi] [chinese]
\defineunicodefont [SimFangSong] [SimplifiedChineseFangSong] [chinese]
\defineunicodefont [TraFangSong] [TraditionalChineseFangSong] [chinese]
-\defineunicodefont [SimLiShu] [SimplifiedChineseLiShu] [chinese]
-\defineunicodefont [TraLiShu] [TraditionalChineseLiShu] [chinese]
+\defineunicodefont [SimLiShu] [SimplifiedChineseLiShu] [chinese]
+\defineunicodefont [TraLiShu] [TraditionalChineseLiShu] [chinese]
% \definealternativestyle [ChineseTitleFont] [\bfd\SimKaiTi] []
@@ -1035,7 +1038,7 @@
%D Use the next macro when you want the next item to be put
%D tight to the previous chinese character.
-\def\stillchinese%
+\def\stillchinese
{\hskip\chineseSsignal\relax}
%D \macros
diff --git a/tex/context/base/page-mul.tex b/tex/context/base/page-mul.tex
index 8e5fb5888..739e1f7b6 100644
--- a/tex/context/base/page-mul.tex
+++ b/tex/context/base/page-mul.tex
@@ -264,8 +264,8 @@
%D register \type{\localcolumnwidth}, which is calculated as:
\def\setcolumnhsize % beware, this one is available for use in macros
- {\setbox0\hbox{\parindent\zeropoint\betweencolumns}%
- \intercolumnwidth\wd0
+ {\setbox\scratchbox\hbox{\parindent\zeropoint\betweencolumns}%
+ \intercolumnwidth\wd\scratchbox
\localcolumnwidth\columntextwidth
\advance\localcolumnwidth -\leftskip
\advance\localcolumnwidth -\rightskip
@@ -276,9 +276,9 @@
\advance\localcolumnwidth -\nofcolumns\intercolumnwidth
\advance\localcolumnwidth \intercolumnwidth
\divide \localcolumnwidth \nofcolumns
- \dimen0=\columntextoffset
- \multiply\dimen0 2
- \advance\localcolumnwidth -\dimen0
+ \scratchdimen\columntextoffset
+ \multiply\scratchdimen \plustwo
+ \advance\localcolumnwidth -\scratchdimen
\usercolumnwidth\localcolumnwidth
\hsize\localcolumnwidth} % we don't do it \global
diff --git a/tex/context/base/page-set.tex b/tex/context/base/page-set.tex
index 1aeb05a96..cc5fc1d35 100644
--- a/tex/context/base/page-set.tex
+++ b/tex/context/base/page-set.tex
@@ -2163,7 +2163,7 @@
\def\OTRSETsometopfloat {\def\floatmethod{TOPS}\OTRSETsomeslotfloat} % check
\def\OTRSETsomebottomfloat{\def\floatmethod{BOTS}\OTRSETsomeslotfloat} % check
-\def\OTRSETflushfloatbox% nog verder doorvoeren en meer info in marge
+\def\OTRSETflushfloatbox % nog verder doorvoeren en meer info in marge
{\iftestfloatbox\ruledhbox\fi{\box\floatbox}}
\def\OTRSETsomeslotfloat[#1]%
diff --git a/tex/context/base/s-abr-01.tex b/tex/context/base/s-abr-01.tex
index 1eb1baf69..63a67fe04 100644
--- a/tex/context/base/s-abr-01.tex
+++ b/tex/context/base/s-abr-01.tex
@@ -39,6 +39,7 @@
\logo [CMYK] {cmyk}
\logo [CODHOST] {CodHost}
\logo [CONTEXT] {\ConTeXt}
+\logo [CSS] {css}
\logo [CTAN] {ctan}
\logo [CWEB] {cweb}
\logo [DANTE] {Dante}
@@ -107,6 +108,7 @@
\logo [LATEX] {\LaTeX}
\logo [LINUX] {linux}
\logo [LISP] {Lisp}
+\logo [MACOSX] {MacOSX}
\logo [MAKEMPY] {MakeMPY}
\logo [MAPS] {Maps}
\logo [MATHML] {MathML}
@@ -209,7 +211,9 @@
\logo [XFDF] {xfdf}
\logo [XPDFETEX] {xpdfe\TeX}
\logo [XSLT] {xslt}
+\logo [XSLTPROC] {xsltproc}
\logo [XSL] {xsl}
+\logo [XETEX] {XeTeX}
\logo [XSLFO] {xsl-fo}
\logo [XYPIC] {XYPIC} % wrong logo
\logo [YandY] {y\&y}
diff --git a/tex/context/base/s-chi-00.tex b/tex/context/base/s-chi-00.tex
index c62a02d08..bb41b5b05 100644
--- a/tex/context/base/s-chi-00.tex
+++ b/tex/context/base/s-chi-00.tex
@@ -34,10 +34,10 @@
\setupmarking [\v!chapter\v!number] [\c!headlabel=\v!yes,\c!headconversion=\v!yes]
\setupmarking [\v!section\v!number] [\c!headlabel=\v!yes,\c!headconversion=\v!yes]
-\setuplabeltext[cn][\v!subsection={\symbol[S]\kern.25em}]
-\setuplabeltext[cn][\v!subsubsection={\symbol[S]\kern.25em}]
-\setuplabeltext[cn][\v!subsubsubsection={\symbol[S]\kern.25em}]
-\setuplabeltext[cn][\v!subsubsubsubsection={\symbol[S]\kern.25em}]
+\setuplabeltext [cn] [\v!subsection={\symbol[S]\kern.25em}]
+\setuplabeltext [cn] [\v!subsubsection={\symbol[S]\kern.25em}]
+\setuplabeltext [cn] [\v!subsubsubsection={\symbol[S]\kern.25em}]
+\setuplabeltext [cn] [\v!subsubsubsubsection={\symbol[S]\kern.25em}]
% nog taalonafhankelijk maken -> \e!tabel enz
diff --git a/tex/context/base/spec-fdf.tex b/tex/context/base/spec-fdf.tex
index f17777671..a1e792bf1 100644
--- a/tex/context/base/spec-fdf.tex
+++ b/tex/context/base/spec-fdf.tex
@@ -1263,6 +1263,7 @@
{\bgroup
% todo, unicode
\sanitizePDFdocencoding#3\to\bookmarktext % uses scratchcounter
+ \stripstring\bookmarktext
\scratchcounter#4%
\advance\scratchcounter \minusone
%\sanitizePDFstring#3\to\bookmarktext
diff --git a/tex/context/base/supp-box.tex b/tex/context/base/supp-box.tex
index a122684c1..af9f5d223 100644
--- a/tex/context/base/supp-box.tex
+++ b/tex/context/base/supp-box.tex
@@ -1631,7 +1631,6 @@
\box\scratchbox}%
\fi}
-
%D \macros
%D {startvboxtohbox,stopvboxtohbox,convertvboxtohbox}
%D
diff --git a/tex/context/base/supp-mps.tex b/tex/context/base/supp-mps.tex
index b36433be0..f9ae07acc 100644
--- a/tex/context/base/supp-mps.tex
+++ b/tex/context/base/supp-mps.tex
@@ -650,7 +650,7 @@
\immediate\openout\MPwrite=\MPgraphicfile.mp
\ifx\MPinputtranslation\empty\else
\immediate\write\MPwrite{\MPinputtranslation}%
- \immediate\write\MPwrite{verbatimtex \MPinputtranslation etex ;}
+ \immediate\write\MPwrite{verbatimtex \MPinputtranslation etex ;}%
\fi
\immediate\write\MPwrite{\letterpercent\space #2 graphics of job "\jobname"}%
\writeMPgraph
diff --git a/tex/context/base/syst-ext.tex b/tex/context/base/syst-ext.tex
index 0cfd9681d..4d64b914d 100644
--- a/tex/context/base/syst-ext.tex
+++ b/tex/context/base/syst-ext.tex
@@ -1691,7 +1691,7 @@
%D \CONTEXT only defines lowcased macros.
\def\showdefinederror#1#2%
- {\writestatus{system}{#1 #2 replaces a macro, use CAPITALS!}}
+ {\writestatus\m!systems{#1 #2 replaces a macro, use CAPITALS!}}
\def\checkdefined#1#2#3%
{\doifdefined{#3}{\showdefinederror{#2}{#3}}}
@@ -3998,7 +3998,7 @@
%D way we can handle the sentinal, a blank space and grouped
%D tokens.
-\def\dohandletokens
+\def\dohandletokens % \nexthandledtoken is part of interface
{\futurelet\nexthandledtoken\dodohandletokens}
\long\def\handletokens#1\with#2%
diff --git a/tex/context/base/syst-new.tex b/tex/context/base/syst-new.tex
index 3027ac4af..c56dda731 100644
--- a/tex/context/base/syst-new.tex
+++ b/tex/context/base/syst-new.tex
@@ -516,15 +516,22 @@
% The following macros are used in XML handling.
-\long\def\dowithstringed#1#2#3#4% " ' space
- {\if#4"\@EA#1\else\if#4'\@EAEAEA#2\else\@EAEAEA#3\fi\fi#4}
+% \long\def\dowithstringed#1#2#3#4% " ' space
+% {\if#4"\@EA#1\else\if#4'\@EAEAEA#2\else\@EAEAEA#3\fi\fi#4}
+%
+% \def\unstringed
+% {\dowithstringed\unstringdouble\unstringsingle\unstringspaced}
+%
+% \long\def\unstringdouble"#1"{#1}
+% \long\def\unstringsingle'#1'{#1}
+% \long\def\unstringspaced #1 {#1}
-\def\unstringed
- {\dowithstringed\unstringdouble\unstringsingle\unstringspaced}
+\long\def\unstringed#1% " ' space
+ {\csname\ifcsname @u@s@#1\endcsname @u@s@#1\else\s!empty\fi\endcsname#1}
-\long\def\unstringdouble"#1"{#1}
-\long\def\unstringsingle'#1'{#1}
-\long\def\unstringspaced #1 {#1}
+\long\setvalue{@u@s@"}#1#2"{#2}
+\long\setvalue{@u@s@'}#1#2'{#2}
+\long\setvalue{@u@s@ }#1#2 {#2}
\def\grabstring
{\dowithstringed\grabstringdouble\grabstringsingle\grabstringspaced}
diff --git a/tex/context/base/x-fe.tex b/tex/context/base/x-fe.tex
index 96cba355f..5748c8ff0 100644
--- a/tex/context/base/x-fe.tex
+++ b/tex/context/base/x-fe.tex
@@ -108,11 +108,15 @@
\stopTEXpage
\stopsetups
-\mapXMLvalue {fe:tracing} {true} {\tracingFOtrue}
-\mapXMLvalue {fe:tracing} {false} {\tracingFOfalse}
+\useMPlibrary[pre]
+
+\mapXMLvalue {fe:tracing} {true} {\tracingFOtrue}
+\mapXMLvalue {fe:tracing} {false} {\tracingFOfalse}
+\mapXMLvalue {fe:testgrid} {true} {\setupbackgrounds[page][background=pagegrid]}
\startsetups fe:setup
- \XMLval{fe:tracing}{\XMLop{fe:tracing}}{}
+ \XMLval{fe:tracing} {\XMLop{fe:tracing}} {}
+ \XMLval{fe:testgrid}{\XMLop{fe:testgrid}}{}
\stopsetups
\protect \endinput
diff --git a/tex/context/base/x-fo.tex b/tex/context/base/x-fo.tex
index 075e88de0..094bb71fc 100644
--- a/tex/context/base/x-fo.tex
+++ b/tex/context/base/x-fo.tex
@@ -17,6 +17,25 @@
% beware: aftergroup vs egroup/endgroup
+\unprotect
+
+% syst-new.tex
+
+\long\def\unstringed#1% " ' space
+ {\csname\ifcsname @u@s@#1\endcsname @u@s@#1\else\s!empty\fi\endcsname#1}
+
+\long\setvalue{@u@s@"}#1#2"{#2}
+\long\setvalue{@u@s@'}#1#2'{#2}
+\long\setvalue{@u@s@ }#1#2 {#2}
+
+% xtag-ini
+
+\def\letXMLpar #1#2{\@EA \let\csname\@@XMLvariable:#1:#2\endcsname}
+\def\setXMLpar #1#2{\@EA \def\csname\@@XMLvariable:#1:#2\endcsname}
+\def\setXMLepar#1#2{\@EA\edef\csname\@@XMLvariable:#1:#2\endcsname}
+
+\protect
+
%D Most time went into figuring out the specifications, especially
%D because there are no examples included. Samples that circulate on the
%D web are often border cases and torture test and don't have much to do
@@ -212,11 +231,11 @@
border-right-color=\XMLop{border-end-color},
border-right-style=\XMLop{border-end-style},
border-right-width=\XMLop{border-end-width},
- padding=0pt,
- padding-before=\XMLop{padding},
- padding-after=\XMLop{padding},
- padding-start=\XMLop{padding},
- padding-end=\XMLop{padding},
+ padding=,% 0pt,
+ padding-before=0pt,%\XMLop{padding},
+ padding-after=0pt,%\XMLop{padding},
+ padding-start=0pt,%\XMLop{padding},
+ padding-end=0pt,%\XMLop{padding},
padding-top=\XMLop{padding-before},
padding-bottom=\XMLop{padding-after},
padding-left=\XMLop{padding-start},
@@ -234,9 +253,9 @@
\extendXMLattributeset
[fo:inherited]
[font=,
- font-family=Times,
+ font-family=,% Times,
font-selection-strategy=,
- font-size=12pt,
+ font-size=,% 12pt,
font-size-adjust=1,
font-style=normal,
font-variant=normal,
@@ -258,11 +277,11 @@
\defineXMLattributeset
[fo:margin-block]
- [margin=0pt,
- margin-top=\XMLop{margin},
- margin-bottom=\XMLop{margin},
- margin-left=\XMLop{margin},
- margin-right=\XMLop{margin},
+ [margin=, % 0pt,
+ margin-top=0pt,% \XMLop{margin},
+ margin-bottom=0pt,% \XMLop{margin},
+ margin-left=0pt,% \XMLop{margin},
+ margin-right=0pt,% \XMLop{margin},
space-before=0pt,
space-after=0pt,
space-before.precedence=,
@@ -498,10 +517,15 @@
\defineXMLattributeset
[fo:writing-mode]
- [text-altitude=,
- text-depth=,
+ [%text-altitude=,
+ %text-depth=,
unicode-bidi=]
+\extendXMLattributeset % for practical reasons we inherit along the whole chain
+ [fo:inherited] % unless we implement relax skipping
+ [text-altitude=,
+ text-depth=]
+
\extendXMLattributeset
[fo:inherited]
[direction=,
@@ -795,12 +819,13 @@ leader-pattern-width=12pt,
{fo:simple-page-master-do}
{fo:simple-page-master}}
-% reference-orientation=0,
+% reference-orientation=0deg,
% writing-mode=
\defineXMLenvironment
[fo:simple-page-master-do]
- [\XMLattributeset{fo:margin-block},
+ [\XMLattributeset{fo:inherited}, % added
+ \XMLattributeset{fo:margin-block},
page-height=29.7cm,
page-width=21cm]
{\directsetup{fo:simple-page-master:start}}
@@ -808,12 +833,13 @@ leader-pattern-width=12pt,
% not needed any more:
-\mapXMLvalue {fo:reference-orientation} {90} {90}
-\mapXMLvalue {fo:reference-orientation} {180} {180}
-\mapXMLvalue {fo:reference-orientation} {270} {270}
-\mapXMLvalue {fo:reference-orientation} {-90} {270}
-\mapXMLvalue {fo:reference-orientation} {-180} {180}
-\mapXMLvalue {fo:reference-orientation} {-270} {90}
+\mapXMLvalue {fo:reference-orientation} {0deg} {0}
+\mapXMLvalue {fo:reference-orientation} {90deg} {90}
+\mapXMLvalue {fo:reference-orientation} {180deg} {180}
+\mapXMLvalue {fo:reference-orientation} {270deg} {270}
+\mapXMLvalue {fo:reference-orientation} {-90deg} {270}
+\mapXMLvalue {fo:reference-orientation} {-180deg} {180}
+\mapXMLvalue {fo:reference-orientation} {-270deg} {90}
\startsetups fo:simple-page-master:start
@@ -834,6 +860,8 @@ leader-pattern-width=12pt,
height=\XMLop{page-height}]}
\checkFOpadding {fo:region-body}
+ \checkFOmargin {fo:region-body}
+ \checkFOmargin {fo:simple-page-master-do}
\writestatus{XML-FO}{defining layout '\directsetup{fo:layout:kind}'}
@@ -850,7 +878,7 @@ leader-pattern-width=12pt,
\XMLpar{fo:region-body}{margin-right}{0pt}),
topspace=\the\dimexpr(\XMLpar{fo:simple-page-master-do}{margin-top}{0pt}+
\XMLpar{fo:region-body}{padding-top}{0pt}+
- \XMLpar{fo:region-body}{margin-top} {0pt}),
+ \XMLpar{fo:region-body}{margin-top}{0pt}),
bottomspace=\the\dimexpr(\XMLpar{fo:simple-page-master-do}{margin-top}{0pt}+
\XMLpar{fo:region-body}{padding-bottom}{0pt}+
\XMLpar{fo:region-body}{margin-bottom}{0pt})]}
@@ -884,6 +912,7 @@ leader-pattern-width=12pt,
[fo:region-body]
[\XMLattributeset{fo:border-padding-background},
\XMLattributeset{fo:margin-block},
+ fe:z-order=above,
clip=,
column-count=1,
column-gap=12pt,
@@ -900,12 +929,15 @@ leader-pattern-width=12pt,
\mapXMLvalue {fo:odd-or-even} {odd} {odd}
\mapXMLvalue {fo:odd-or-even} {even} {even}
-\mapXMLvalue {fo:page-position} {even} {even}
-\mapXMLvalue {fo:page-position} {odd} {odd}
+\mapXMLvalue {fo:page-position} {any} {rest} % todo
\mapXMLvalue {fo:page-position} {first} {current}
-\mapXMLvalue {fo:page-position} {blank} {blank} % todo
+\mapXMLvalue {fo:page-position} {last} {last} % todo
\mapXMLvalue {fo:page-position} {rest} {rest} % todo
+%mapXMLvalue {fo:blank-or-not-blank} {any} {} % todo
+%mapXMLvalue {fo:blank-or-not-blank} {not-blank} {} % todo
+%mapXMLvalue {fo:blank-or-not-blank} {blank} {} % todo
+
% check this one esp default value
\startsetups fo:layout:kind
@@ -918,7 +950,6 @@ leader-pattern-width=12pt,
{fo:page-position}
{fo:conditional-page-master-reference}
{page-position}
-% {\XMLop{master-reference}}}
{\XMLpar{fo:page-sequence-master}{master-reference}{any}}}
\stopsetups
@@ -1024,6 +1055,7 @@ leader-pattern-width=12pt,
\checkFOposition{fo:region-\currentcommalistitem}{background}
\checkFOpadding {fo:region-\currentcommalistitem}
+ \checkFOmargin {fo:region-\currentcommalistitem}
\stopprocesscommalist
@@ -1085,7 +1117,11 @@ leader-pattern-width=12pt,
{\doifnot{\XMLpar{fo:#1}{background-image}{none}}{none}
{\setFOimagename{\XMLpar{fo:#1}{background-image}{dummy}}%
\FObgpositionH#2%
- \setpercentdimen\FObgpositionH{\XMLpav{fo:background-location}{fo:#1}{background-position-horizontal}{}}%
+ \setpercentdimen\FObgpositionH{\XMLpav
+ {fo:background-location}
+ {fo:#1}
+ {background-position-horizontal}
+ {\XMLpar{fo:#1}{background-position-horizontal}{}}}%
\ifpercentdimendone
\skip0\zeropoint plus \FObgpositionH
\skip2\zeropoint plus \dimexpr(#2-\FObgpositionH)%
@@ -1094,7 +1130,9 @@ leader-pattern-width=12pt,
\skip2\zeropoint plus 1fill\relax
\fi
\FObgpositionV#3%
- \setpercentdimen\FObgpositionV{\XMLpav{fo:background-location}{fo:#1}{background-position-vertical}{}}%
+ \setpercentdimen\FObgpositionV{\XMLpav
+ {fo:background-location}{fo:#1}{background-position-vertical}
+ {\XMLpar{fo:#1}{background-position-vertical}{}}}%
\ifpercentdimendone
\skip4\zeropoint plus \FObgpositionV
\skip6\zeropoint plus \dimexpr(#3-\FObgpositionV)%
@@ -1193,11 +1231,15 @@ leader-pattern-width=12pt,
\directsetup{fo:regions:check}
+ \checkFOmargin{fo:simple-page-master-do}
+
\FOscratchML \XMLpar{fo:simple-page-master-do}{margin-left} \zeropoint
\FOscratchMR \XMLpar{fo:simple-page-master-do}{margin-right} \zeropoint
\FOscratchMT \XMLpar{fo:simple-page-master-do}{margin-top} \zeropoint
\FOscratchMB \XMLpar{fo:simple-page-master-do}{margin-bottom}\zeropoint
+ \doif{\XMLpar{fo:region-body}{fe:z-order}{above}}{below}{\directsetup{fo:regions:process:body}}
+
\FOscratchRB \XMLpar{fo:region-before} {extent} \zeropoint
\FOscratchRA \XMLpar{fo:region-after} {extent} \zeropoint
\FOscratchRS \XMLpar{fo:region-start} {extent} \zeropoint
@@ -1211,6 +1253,14 @@ leader-pattern-width=12pt,
{\directsetup{fo:regions:process:false:true}}
{\directsetup{fo:regions:process:false:false}}}
+ \doif{\XMLpar{fo:region-body}{fe:z-order}{above}}{above}{\directsetup{fo:regions:process:body}}
+
+\stopsetups
+
+\startsetups fo:regions:process:body
+
+ \bgroup
+
\FOscratchRB \XMLpar{fo:region-body}{margin-top} \zeropoint
\FOscratchRA \XMLpar{fo:region-body}{margin-bottom}\zeropoint
\FOscratchRS \XMLpar{fo:region-body}{margin-left} \zeropoint
@@ -1224,6 +1274,8 @@ leader-pattern-width=12pt,
{\paperwidth -\FOscratchML-\FOscratchMR-\FOscratchRS-\FOscratchRE}
{\paperheight-\FOscratchMT-\FOscratchMB-\FOscratchRB-\FOscratchRA}
+ \egroup
+
\stopsetups
\startsetups fo:regions:process:true:true
@@ -1354,17 +1406,13 @@ leader-pattern-width=12pt,
\XMLattributeset{fo:margin-block},
\XMLattributeset{fo:relative-position},
\XMLattributeset{fo:keeps-and-breaks},
- text-depth=,
- text-altitude=,
+% text-depth=,
+% text-altitude=,
span=,
visibility=]
{\beginXMLelement\directsetup{fo:block:start}}
{\directsetup{fo:block:stop}\endXMLelement}
-\newdimen \dFOlineheight
-
-\let\FOlineheight\empty
-
\startsetups fo:block:start
\endgraf
@@ -1383,24 +1431,9 @@ leader-pattern-width=12pt,
\directsetup{fo:font:setup}
- % \setupinterlinespace, no, interferes with columnset and lineheight
-
- \edef\xFOlineheight{\XMLop{line-height}}
-
- \ifx\xFOlineheight\FOlineheight \else
-
- \let\FOlineheight\xFOlineheight
- \dFOlineheight 2.8ex
- \setpercentdimen\dFOlineheight\FOlineheight
- \ifpercentdimendone
- \expanded{\setupinterlinespace[line=\dFOlineheight]}%
- \else\ifx\FOlineheight\empty \else
- \doifdimensionelse\FOlineheight
- {\expanded{\setupinterlinespace[line=\FOlineheight]}}
- {\expanded{\setupinterlinespace[\FOlineheight]}}%
- \fi \fi
+ % \setupinterlinespace % no, interferes with columnset and lineheight
- \fi
+ \directsetup{fo:line-height:setup}
\directsetup{fo:indent:setup}
@@ -1591,8 +1624,6 @@ leader-pattern-width=12pt,
\mapXMLvalue {fo:font-size} {larger} {\dFOfontsize1.20\dFOfontsize}
\newdimen\dFOfontsize
-\newdimen\dFOdepth
-\newdimen\dFOheight
% evt class Times Helvetica
@@ -1636,10 +1667,10 @@ leader-pattern-width=12pt,
\startsetups fo:fonts:reset
- \dFOfontsize=12pt
+ \dFOfontsize=\bodyfontsize
- \def\FOfontsize {12pt}
- \def\FOfontfamily {Times}
+ \def\FOfontsize {10pt}% {12pt}
+ \def\FOfontfamily {}% {Times}
\def\FOfontweight {normal}
\def\FOfontstyle {normal}
\def\FOfontvariant {normal}
@@ -1708,10 +1739,17 @@ leader-pattern-width=12pt,
\donefalse
- \ifx\xFOfont\empty \else
+ \ifx\xFOfont\empty \else \ifx\xFOfont\relax \else
\let\FOfont\xFOfont
\checkFOfont\FOfont
- \fi
+ \fi \fi
+
+ \ifx\xFOfontsize\empty \else \ifx\xFOfontsize\FOfontsize \else
+ \let\FOfontsize\xFOfontsize
+ \doifXMLvalelse{fo:font-size}\FOfontsize
+ {\XMLval{fo:font-size}\FOfontsize\empty}
+ {\setpercentdimen\dFOfontsize\FOfontsize}
+ \fi \fi
\ifx\xFOfontsize\empty \else
\let\FOfontsize\xFOfontsize
@@ -1741,42 +1779,59 @@ leader-pattern-width=12pt,
\ifdone
\setFOfontname
- \edef\xFOfontdefinition{\FOfontname\space at \the\dimexpr(\FOfontsizeadjust\dFOfontsize)}
+ \ifx\FOfontname\empty \else
+ \edef\xFOfontdefinition{\FOfontname\space at \the\dimexpr(\FOfontsizeadjust\dFOfontsize)}
+ \fi
\else
\edef\xFOfontdefinition{\purefontname{\font} at \the\dimexpr(\FOfontsizeadjust\dFOfontsize)}
\fi
- \ifx\FOfontdefinition\xFOfontdefinition \else
+ \ifx\xFOfontdefinition\empty \else \ifx\FOfontdefinition\xFOfontdefinition \else
\let\FOfontdefinition\xFOfontdefinition
\expanded{\definedfont[\FOfontdefinition]}
- \fi
+ \fi \fi
- \edefXMLop\xFOtextdepth {text-depth}
- \edefXMLop\xFOtextaltitude{text-altitude}
- \edefXMLop\xFOlineheight {line-height}
+\stopsetups
+
+\newdimen\dFOlineheight
+\newdimen\dFOdepth
+\newdimen\dFOaltitude
+
+\let\FOlineheight \empty
+\let\FOtextdepth \empty
+\let\FOtextaltitude\empty
+
+\startsetups fo:line-height:setup
+
+ \edefXMLinh\xFOtextdepth {text-depth}
+ \edefXMLinh\xFOtextaltitude{text-altitude}
+ \edefXMLinh\xFOlineheight {line-height}
\ifx\xFOtextdepth\empty \else \ifx\xFOtextdepth\FOtextdepth \else
- \let\FOtextdepth\xFOtextdepth
- \doifnot\FOtextdepth{use-font-metrics}
- {\setstrut \dFOdepth=\strutdepth
- \setpercentdimen\dFOdepth\FOtextdepth
- \setupinterlinespace[mindepth=\dFOdepth]}
+ \let\FOtextdepth\xFOtextdepth
+ \doifnot\FOtextdepth{use-font-metrics}
+ {\setstrut \dFOdepth\strutdepth
+ \setpercentdimen\dFOdepth\FOtextdepth
+ \setupinterlinespace[mindepth=\dFOdepth]}
\fi \fi
\ifx\xFOtextaltitude\empty \else \ifx\xFOtextaltitude\FOtextaltitude \else
\let\FOtextaltitude\xFOtextaltitude
\doifnot\FOtextaltitude{use-font-metrics}
- {\setstrut \dFOheight=\strutheight
- \setpercentdimen\dFOheight\FOtextaltitude
- \setupinterlinespace[minheight=\dFOheight]}
+ {\setstrut \dFOaltitude\strutheight \advance\dFOaltitude\strutdepth
+ \setpercentdimen\dFOaltitude\FOtextaltitude
+ \setupinterlinespace[minheight=\dFOaltitude]}
\fi \fi
\ifx\xFOlineheight\empty \else \ifx\xFOlineheight\FOlineheight \else
\let\FOlineheight\xFOlineheight
- \doifnot\FOlineheight{use-font-metrics}
- {\setstrut \dFOheight=\strutheight
- \setpercentdimen\dFOheight\FOlineheight
- \setupinterlinespace[line=\dFOheight]}
+ \doifelse\FOlineheight{normal}
+ {\dFOlineheight2.8ex
+ \setupinterlinespace[line=\dFOlineheight]}
+ {\doifnot\FOlineheight{use-font-metrics}
+ {\setstrut \dFOlineheight\strutheight \advance\dFOlineheight\strutdepth
+ \setpercentdimen\dFOlineheight\FOlineheight
+ \setupinterlinespace[line=\dFOlineheight]}}
\fi \fi
\stopsetups
@@ -1875,11 +1930,15 @@ leader-pattern-width=12pt,
\FOcontainerWW\textwidth
\FOcontainerHH\textheight
\def\FOlayername{\XMLpar{fo:flow}{flow-name}{xsl-region-body}}
+
+ \iftracingFO \tracelayerstrue \fi
+
\directsetup{fo:preset:layer}
- \setlayer
+ \setlayerframed
[\XMLpar{fo:flow}{flow-name}{xsl-region-body}]
- [width=\FOcontainerW,
+ [frame=off,
+ width=\FOcontainerW,
height=\FOcontainerH]
\bgroup
@@ -1938,8 +1997,8 @@ leader-pattern-width=12pt,
alignment-adjust=,
baseline-shift=,
dominant-baseline=,
- text-depth=,
- text-altitude=,
+% text-depth=,
+% text-altitude=,
keep-with-next=,
keep-with-previous=,
score-spaces=,
@@ -1985,10 +2044,11 @@ leader-pattern-width=12pt,
\startsetups fo:character:orient
- \doifsomethingXMLop{glyph-orientation-horizontal}
- {\rotate[rotation=-\XMLop{glyph-orientation-horizontal}]}
+% \rotate[rotation=-\XMLop{glyph-orientation-horizontal}]
- {\XMLop{character}}
+ \doifsomethingXMLop{glyph-orientation-horizontal}
+ {\rotate[rotation=\XMLval{fo:reference-orientation}{\XMLop{glyph-orientation-horizontal}}{0}]}
+ {\XMLop{character}}
\stopsetups
@@ -2019,7 +2079,7 @@ leader-pattern-width=12pt,
% \XMLattributeset{fo:aural},
% display-align=,
-% line-height=,
+% height=,
% text-align=,
\defineXMLenvironmentsave
@@ -2077,21 +2137,22 @@ leader-pattern-width=12pt,
% leeg maken vars gaat ook goed, dan een \externalfigure
\setbox\scratchbox\hbox
- {\ifdim\FOgraphicheight>\zeropoint
+ {\setFOimagename{\XMLpar{fo:external-graphic}{src}{dummy}}
+ \ifdim\FOgraphicheight>\zeropoint
\ifdim\FOgraphicwidth>\zeropoint
- \externalfigure[\XMLop{src}][height=\FOgraphicheight,width=\FOgraphicwidth]
+ \externalfigure[\FOimagename][height=\FOgraphicheight,width=\FOgraphicwidth]
\else
- \externalfigure[\XMLop{src}][height=\FOgraphicheight]
+ \externalfigure[\FOimagename][height=\FOgraphicheight]
\fi
\else
\ifdim\FOgraphicwidth>\zeropoint
- \externalfigure[\XMLop{src}][width=\FOgraphicwidth]
+ \externalfigure[\FOimagename][width=\FOgraphicwidth]
\else
- \externalfigure[\XMLop{src}]
+ \externalfigure[\FOimagename]
\fi
\fi}
- \XMLval{external-graphic:align}{\XMLop{vertical-align}}{}{\box\scratchbox}
+ \dontleavehmode \XMLval{external-graphic:align}{\XMLop{vertical-align}}{}{\box\scratchbox}
\stopsetups
@@ -2398,8 +2459,8 @@ leader-pattern-width=12pt,
alignment-baseline=,
baseline-shift=,
dominant-baseline=,
- text-depth=,
- text-altitude=,
+% text-depth=,
+% text-altitude=,
keep-with-next=,
keep-with-previous=,
letter-spacing=,
@@ -2456,9 +2517,9 @@ leader-pattern-width=12pt,
keep-with-next=,
keep-with-previous=,
score-spaces=,
- text-altitude=,
+% text-altitude=,
text-decoration=,
- text-depth=,
+% text-depth=,
text-shadow=,
visibility=]
{\directsetup{fo:page-number:process}}
@@ -2514,9 +2575,9 @@ leader-pattern-width=12pt,
keep-with-next=,
keep-with-previous=,
score-spaces=,
- text-altitude=,
+% text-altitude=,
text-decoration=,
- text-depth=,
+% text-depth=,
text-shadow=,
visibility=]
{\directsetup{fo:page-number-citation:process}}
@@ -2651,8 +2712,8 @@ leader-pattern-width=12pt,
border-end-precedence=,
border-start-precedence=,
visibility=]
- {\beginXMLelement\bTABLEfoot}
- {\eTABLEfoot\endXMLelement}
+ {\beginXMLelement\bTABLEhead}
+ {\eTABLEhead\endXMLelement}
% \XMLattributeset{fo:aural},
@@ -2668,8 +2729,8 @@ leader-pattern-width=12pt,
border-end-precedence=,
border-start-precedence=,
visibility=]
- {\beginXMLelement\bTABLEhead}
- {\eTABLEhead\endXMLelement}
+ {\beginXMLelement\bTABLEfoot}
+ {\eTABLEfoot\endXMLelement}
% \XMLattributeset{fo:aural},
@@ -2710,14 +2771,16 @@ leader-pattern-width=12pt,
keep-with-next=,
keep-with-previous=,
visibility=]
- {\beginXMLelement\bTR}
- {\eTR\endXMLelement}
+ {\beginXMLelement\bTR\inTABLErowtrue}
+ {\eTR\inTABLErowfalse\endXMLelement}
% \XMLattributeset{fo:aural},
% display-align=,
% relative-align=,
% empty-cells=,
+\newif\ifinTABLErow
+
\defineXMLnested
[fo:table-cell]
[\XMLattributeset{fo:inherited},
@@ -2737,7 +2800,9 @@ leader-pattern-width=12pt,
number-rows-spanned=1,
starts-row=,
width=]
- {\doif{\XMLop{starts-row}}{true}{\bTR}%
+ {\doif{\XMLop{starts-row}}{true}
+ {\ifinTABLErow\eTR\inTABLErowfalse\fi}%
+ \ifinTABLErow\else\bTR\inTABLErowtrue\fi
\doifelsenothing{\XMLop{background-color}}
{\let\FoTableBG\empty}
{\checkhexcolor[\XMLop{background-color}]%
@@ -2753,7 +2818,8 @@ leader-pattern-width=12pt,
\ignorespaces}
{\removeunwantedspaces
\eTD
- \doif{\XMLop{ends-row}}{true}{\eTR}}
+ \doif{\XMLop{ends-row}}{true}
+ {\eTR\inTABLErowfalse}}
%D Element: fo:list-block fo:list-item fo:list-body fo:list-item-label
@@ -2775,8 +2841,8 @@ leader-pattern-width=12pt,
break-after=,
break-before=,
keep-with-next=,
- keep-with-previous=,
- space-between-list-rows=] % ? mentioned in bradley
+% space-between-list-rows=, % ? mentioned in bradley
+ keep-with-previous=]
{\beginXMLelement\directsetup{fo:list:start}}
{\directsetup{fo:list:stop}\endXMLelement}
@@ -2786,14 +2852,15 @@ leader-pattern-width=12pt,
\directsetup{fe:setup}
\disablemode[fo:in-list]
% \forgetall, no!
- \directsetup{fo:space:before}
+% \directsetup{fo:break-and-space:before}
+ \directsetup{fo:indent:setup}
\begingroup
\stopsetups
\startsetups fo:list:stop
\endgraf
\endgroup
- \directsetup{fo:space:after}
+% \directsetup{fo:break-and-space:after}
\endgroup
\stopsetups
@@ -2802,6 +2869,12 @@ leader-pattern-width=12pt,
% intrusion-displace=,
% keep-together=,
+% The list model is plain stupid. Instead of just defining a few mechanism
+% or using some kind of type attribute, a strange mechanism of functions is
+% used. Why on the one hand introduce redundant attributes and on the other
+% hand safe a few elements. A proper segmentation of the problem would have
+% brought better solutions.
+
\defineXMLenvironment
[fo:list-item]
[\XMLattributeset{fo:inherited},
@@ -2820,69 +2893,141 @@ leader-pattern-width=12pt,
% check what is needed
-\newdimen\FOlistitemlabelhsize \newdimen\FOlistitembodyhsize
+\newdimen\FOlistitemlabelhsize \newdimen\FOlistitembodyhsize \newdimen\FOlistitemdistance
\newdimen\FOlistitemlabelleftskip \newdimen\FOlistitembodyleftskip
\newdimen\FOlistitemlabelrightskip \newdimen\FOlistitembodyrightskip
-% keep-together=,
-
\defineXMLnestedsave
[fo:list-item-body]
[\XMLattributeset{fo:inherited},
- id=,
+ id=, % keep-together=,
\XMLattributeset{fo:accessibility}]
-% keep-together=,
-
\defineXMLnestedsave
[fo:list-item-label]
[\XMLattributeset{fo:inherited},
- id=,
- \XMLattributeset{fo:accessibility}]
+ id=, % keep-together=,
+ \XMLattributeset{fo:accessibility}]
\startsetups fo:list-item:start
\bgroup
- \startmode[fo:in-list]
-
- \doifsomething{\XMLpar{fo:list-block}{space-between-list-rows}{}}
- {\vskip\XMLpar{fo:list-block}{space-between-list-rows}{}} % todo ! ! ! !
-
- \stopmode
+% \startmode[fo:in-list]
+% \doifsomething{\XMLpar{fo:list-block}{space-between-list-rows}{}}
+% {\vskip\XMLpar{fo:list-block}{space-between-list-rows}{}} % todo ! ! ! !
+% \stopmode
\enablemode[fo:in-list]
\stopsetups
+% todo : relative-align in list item
+
+\newif\ifFOlabelend
+\newif\ifFObodystart
+
\startsetups fo:list-item:stop
- % 24 pt en 6pt in fo:root instellen
+ % 24pt en 6pt in fo:root instellen
\edefXMLinh \FOprodis {provisional-distance-between-starts}
\edefXMLinh \FOprolab {provisional-label-separation}
- \FOlistitemlabelhsize \ifx\FOprodis\empty 24pt\else \FOprodis\fi
- \FOlistitemlabelrightskip\ifx\FOprolab\empty 6pt\else \FOprolab\fi
+ \edef\FOprodis{\ifx\FOprodis\empty24pt\else\FOprodis\fi}
+ \edef\FOprolab{\ifx\FOprolab\empty 6pt\else\FOprolab\fi}
+
+ \setlocalhsize
+
+ \FOlistitemlabelleftskip \zeropoint
+ \FOlistitemlabelrightskip\zeropoint
+ \FOlistitembodyleftskip \zeropoint
+ \FOlistitembodyrightskip \zeropoint
- \edefXMLinh \FOstartindent {start-indent}
- \edefXMLinh \FOendindent {end-indent}
+ \doifelse{\XMLpar{fo:list-item-label}{end-indent} {}}{label-end()} \FOlabelendtrue \FOlabelendfalse
+ \doifelse{\XMLpar{fo:list-item-body} {start-indent}{}}{body-start()}\FObodystarttrue\FObodystartfalse
-% \FOlistitemlabelleftskip \ifx\FOstartindent\empty 0pt\else \FOstartindent\fi
-% \FOlistitembodyrightskip \ifx\FOendindent \empty 0pt\else \FOendindent \fi
+ \setpercentdimen\FOlistitemlabelleftskip {\XMLpar{fo:list-item-label}{start-indent}{0pt}}
+ \setpercentdimen\FOlistitembodyrightskip {\XMLpar{fo:list-item-body} {end-indent} {0pt}}
+
+ % maybe i need to implement something configurable
+
+ \ifFObodystart
+ \ifFOlabelend
+ \FOlistitemlabelrightskip\dimexpr(\localhsize-\FOlistitemlabelleftskip-\FOprodis+\FOprolab)
+ \FOlistitembodyleftskip\dimexpr(\FOlistitemlabelleftskip+\FOprodis)
+ \FOlistitemlabelhsize\dimexpr(\FOprodis-\FOprolab)
+ \else
+ \setpercentdimen\FOlistitemlabelrightskip{\XMLpar{fo:list-item-label}{end-indent}{0pt}}
+ \FOlistitemlabelhsize\dimexpr(\localhsize-\FOlistitemlabelleftskip-\FOlistitemlabelrightskip)
+ \FOlistitembodyleftskip\dimexpr(\FOlistitemlabelleftskip+\FOlistitemlabelhsize+\FOprolab)
+ \fi
+ \FOlistitemdistance \dimexpr(\FOprolab)
+ \else
+ \setpercentdimen\FOlistitembodyleftskip{\XMLpar{fo:list-item-body}{start-indent}{0pt}}
+ \ifFOlabelend
+ \FOlistitemlabelrightskip\dimexpr(\localhsize-\FOlistitembodyleftskip+\FOprolab)
+ \FOlistitemlabelhsize\dimexpr(\localhsize-\FOlistitemlabelleftskip-\FOlistitemlabelrightskip)
+ \FOlistitemdistance \dimexpr(\FOprolab)
+ \else
+ \setpercentdimen\FOlistitemlabelrightskip{\XMLpar{fo:list-item-label}{end-indent}{0pt}}
+ \FOlistitemlabelhsize\dimexpr(\localhsize-\FOlistitemlabelleftskip-\FOlistitemlabelrightskip)
+ \FOlistitemdistance \dimexpr(\FOlistitembodyleftskip-\FOlistitemlabelleftskip-\FOlistitemlabelhsize)
+ \fi
+ \fi
+
+ % is this fall back permitted ?
+
+ \ifzeropt\FOlistitemlabelleftskip \ifzeropt\FOlistitemlabelrightskip
+ \FOlistitembodyleftskip\FOprodis
+ \FOlistitemdistance\FOprolab
+ \FOlistitemlabelhsize\dimexpr(\FOlistitembodyleftskip-\FOlistitemdistance)
+ \fi \fi
+
+ %
+
+ \FOlistitembodyhsize\localhsize
+
+ \advance\FOlistitembodyhsize-\FOlistitembodyleftskip
+ \advance\FOlistitembodyhsize-\FOlistitembodyrightskip
+
+ \doifelse{\XMLpar{fo:list-item}{display-align}{}}{center}
+ {\directsetup{fo:list-item:display}}
+ {\directsetup{fo:list-item:text}}
+
+ \egroup
+
+\stopsetups
+
+\startsetups fo:list-item:display
+
+ \endgraf
\advance\leftskip \FOlistitemlabelleftskip
- \advance\leftskip \FOlistitemlabelhsize
- \advance\leftskip \FOlistitemlabelrightskip
+ \advance\rightskip\FOlistitembodyrightskip
+
+ \dontleavehmode \valign\bgroup\forgetall\vss##\vss\cr
+ \iftracingFO\ruledvtop\else\vbox\fi{\hsize\FOlistitemlabelhsize\XMLflush{fo:list-item-label}}\cr
+ \iftracingFO\ruledvtop\else\vbox\fi{\hsize\FOlistitembodyhsize \XMLflush{fo:list-item-body}}\cr
+ \egroup
+% \dontleavehmode \placesidebyside % or maybe paired boxes (legends)
+% {\ruledvtop{\forgetall\hsize\FOlistitemlabelhsize\XMLflush{fo:list-item-label}}}
+% {\ruledvtop{\forgetall\hsize\FOlistitembodyhsize \XMLflush{fo:list-item-body}}}
+
+ \endgraf
+
+\stopsetups
+
+\startsetups fo:list-item:text
+
+ \advance\leftskip \FOlistitembodyleftskip
\advance\rightskip\FOlistitembodyrightskip
\setupparagraphintro[first][\directsetup{fo:list-item-label:process}]
\setupparagraphintro[next] [\begstrut\resetpenalties\clubpenalties]
\XMLflush{fo:list-item-body}\endstrut
- \egroup
-
\stopsetups
\newbox\FOitembox
@@ -2897,7 +3042,7 @@ leader-pattern-width=12pt,
\egroup
\getnoflines{\dimexpr(\ht\FOitembox+\dp\FOitembox)}
\setpenalties\clubpenalties\noflines\maxdimen
- \strut\llap{\box\FOitembox\hskip\FOlistitemlabelrightskip}
+ \strut\llap{\box\FOitembox\hskip\FOlistitemdistance}
\stopsetups
@@ -2998,7 +3143,8 @@ leader-pattern-width=12pt,
\defineXMLenvironment % todo: all inheritable
[fo:wrapper]
- [\XMLattributeset{fo:inherited},\XMLattributeset{fe:tracing},
+ [\XMLattributeset{fo:inherited},
+ \XMLattributeset{fe:tracing},
\XMLattributeset{fo:fonts},
\XMLattributeset{fo:hyphenation}]
{\beginXMLelement\begingroup\directsetup{fo:wrapper}}
@@ -3164,31 +3310,55 @@ leader-pattern-width=12pt,
\expandafter\docheckFOposition
\fi#3}
-\def\checkFOpadding#1%
- {\edef\FOattribute{\XMLpar{#1}{padding}\empty}%
+\def\checkFOpadding{\def\FOatt{padding}\checkFOquadruple}
+\def\checkFOmargin {\def\FOatt{margin}\checkFOquadruple}
+
+\def\checkFOquadruple#1%
+ {\edef\FOattribute{\XMLpar{#1}\FOatt\empty}%
\ifx\FOattribute\empty\else
\edef\FOtag{#1}%
- \edef\FOatt{padding}%
\scratchcounter\zerocount
- \expanded{\docheckFOpadding\FOattribute\space\relax\space\relax}\od
+ \expanded{\docheckFOquadruple\FOattribute\space\relax\space\relax}\od
+ \ifcase\scratchcounter
+ \let\FOattributeT\FOattribute
+ \let\FOattributeR\FOattribute
+ \let\FOattributeB\FOattribute
+ \let\FOattributeL\FOattribute
+ \or % (tblr)
+ \let\FOattributeT\FOattribute
+ \let\FOattributeR\FOattribute
+ \let\FOattributeB\FOattribute
+ \let\FOattributeL\FOattribute
+ \or % (tb)(lr)
+ \let\FOattributeB\FOattributeT
+ \let\FOattributeL\FOattributeR
+ \or % (t)(lr)(b)
+ \let\FOattributeL\FOattributeR
+ \or % (t)(r)(b)(l)
+ % already ok
+ \fi
+ \letXMLpar\FOtag{\FOatt-top}\FOattributeT
+ \letXMLpar\FOtag{\FOatt-right}\FOattributeR
+ \letXMLpar\FOtag{\FOatt-bottom}\FOattributeB
+ \letXMLpar\FOtag{\FOatt-left}\FOattributeL
\fi}
-\def\docheckFOpadding#1#2 #3%
+\def\docheckFOquadruple#1#2 #3%
{\ifx#1\relax
\expandafter\noFOchecks
\else
\advance\scratchcounter\plusone
\ifcase\scratchcounter
\or
- \setXMLpar\FOtag{\FOatt-top}{#1#2}%
+ \edef\FOattributeT{#1#2}%
\or
- \setXMLpar\FOtag{\FOatt-bottom}{#1#2}%
+ \edef\FOattributeR{#1#2}%
\or
- \setXMLpar\FOtag{\FOatt-left}{#1#2}%
+ \edef\FOattributeB{#1#2}%
\or
- \setXMLpar\FOtag{\FOatt-right}{#1#2}%
+ \edef\FOattributeL{#1#2}%
\fi
- \expandafter\docheckFOpadding
+ \expandafter\docheckFOquadruple
\fi#3}
% \def\setFOimagename#1%
@@ -3269,12 +3439,16 @@ leader-pattern-width=12pt,
\def/##1 {}}% todo linespacing
\egroup
+\globallet\xFOattribute\empty
+
\def\checkFOfont#1%
{\FOfonttoks\emptytoks
\bgroup
\catcode`\\=\@@escape
\catcode`\{=\@@begingroup
\catcode`\}=\@@endgroup
+% \catcode`\:=\@@letter
+% \catcode`\-=\@@letter
\setcheckFOfontX
\xdef\xFOattribute{#1 }%
\setbox\scratchbox\hbox{\scantokens\@EA{\xFOattribute}}%
@@ -3283,7 +3457,7 @@ leader-pattern-width=12pt,
\egroup
\the\FOfonttoks
\ifx\xFOattribute\empty\else
- \expanded{\docheckFOfont\xFOattribute\space\relax\space\relax}\od
+ \expanded{\docheckFOfont\xFOattribute\space\relax\space\relax}\od
\fi
\directsetup{fo:font:family:check}}
@@ -3297,7 +3471,7 @@ leader-pattern-width=12pt,
{\doifelsenothing{\XMLval{fo:weight}{#1#2}{}}
{\doifelsenothing{\XMLval{fo:variant}{#1#2}{}}
{\doifelsenothing{\XMLval{fo:style}{#1#2}{}}
- {\setpercentdimen\FOfontsize{#1#2}}
+ {\setpercentdimen\dFOfontsize{#1#2}}
{\edef\FOfontstyle{\XMLval{fo:style}{#1#2}{}}}}
{\edef\FOfontvariant{\XMLval{fo:variant}{#1#2}{}}}}
{\edef\FOfontweight{\XMLval{fo:weight}{#1#2}{}}}}%
diff --git a/tex/context/base/xtag-ini.tex b/tex/context/base/xtag-ini.tex
index ee876b1a8..4cb3940dc 100644
--- a/tex/context/base/xtag-ini.tex
+++ b/tex/context/base/xtag-ini.tex
@@ -40,7 +40,7 @@
\bgroup \obeylines
- \gdef\startXMLdefinitions%
+ \gdef\startXMLdefinitions% keep %
{\bgroup\obeylines\dostartXMLdefinitions}
\gdef\dostartXMLdefinitions #1
@@ -2274,8 +2274,12 @@
#4%
\fi}
-\def\setXMLpar#1#2%
- {\@EA\def\csname\@@XMLvariable:#1:#2\endcsname}
+% \def\setXMLpar#1#2%
+% {\@EA\def\csname\@@XMLvariable:#1:#2\endcsname}
+
+\def\letXMLpar #1#2{\@EA \let\csname\@@XMLvariable:#1:#2\endcsname}
+\def\setXMLpar #1#2{\@EA \def\csname\@@XMLvariable:#1:#2\endcsname}
+\def\setXMLepar#1#2{\@EA\edef\csname\@@XMLvariable:#1:#2\endcsname}
% ancestor arguments:
%
diff --git a/tex/context/foxet/fo-0101.fo b/tex/context/foxet/fo-0101.fo
index aae8178af..197c5834c 100644
--- a/tex/context/foxet/fo-0101.fo
+++ b/tex/context/foxet/fo-0101.fo
@@ -2,7 +2,16 @@
<!-- foxet test file - Hans Hagen - PRAGMA ADE - www.pragma-ade.com -->
-<fo:root xmlns:fo='http://www.w3.org/1999/XSL/Format'
- xmlns:fe='http://www.pragma-ade.com/schemas/foxet.rng'>
+<fo:root xmlns:fo='http://www.w3.org/1999/XSL/Format'>
+
+ <fo:layout-master-set>
+ <fo:simple-page-master master-name='default'>
+ <fo:region-body/>
+ </fo:simple-page-master>
+ </fo:layout-master-set>
+
+ <fo:page-sequence master-reference='default'>
+ <fo:flow flow-name='xsl-region-body'/>
+ </fo:page-sequence>
</fo:root>
diff --git a/tex/context/foxet/fo-0102.fo b/tex/context/foxet/fo-0102.fo
index 21274c626..9adcf917e 100644
--- a/tex/context/foxet/fo-0102.fo
+++ b/tex/context/foxet/fo-0102.fo
@@ -2,10 +2,15 @@
<!-- foxet test file - Hans Hagen - PRAGMA ADE - www.pragma-ade.com -->
-
<fo:root xmlns:fo='http://www.w3.org/1999/XSL/Format'
xmlns:fe='http://www.pragma-ade.com/schemas/foxet.rng'>
+ <fo:layout-master-set>
+ <fo:simple-page-master master-name='default'>
+ <fo:region-body/>
+ </fo:simple-page-master>
+ </fo:layout-master-set>
+
<fo:declarations>
<fe:definecolor name='red' r='.6'/>
<fe:definecolor name='green' g='.6'/>
@@ -13,4 +18,8 @@
<fe:definefontsynonym name='mono' file='lmtt10' encoding='texnansi'/>
</fo:declarations>
+ <fo:page-sequence master-reference='default'>
+ <fo:flow flow-name='xsl-region-body'/>
+ </fo:page-sequence>
+
</fo:root>
diff --git a/tex/context/foxet/fo-0103.fo b/tex/context/foxet/fo-0103.fo
index 14805a87b..95d0d4769 100644
--- a/tex/context/foxet/fo-0103.fo
+++ b/tex/context/foxet/fo-0103.fo
@@ -2,11 +2,20 @@
<!-- foxet test file - Hans Hagen - PRAGMA ADE - www.pragma-ade.com -->
-<fo:root xmlns:fo='http://www.w3.org/1999/XSL/Format'
- xmlns:fe='http://www.pragma-ade.com/schemas/foxet.rng'>
+<fo:root xmlns:fo='http://www.w3.org/1999/XSL/Format'>
- <fo:color-profile>
- <!-- maybe some day ... -->
- </fo:color-profile>
+ <fo:layout-master-set>
+ <fo:simple-page-master master-name='default'>
+ <fo:region-body/>
+ </fo:simple-page-master>
+ </fo:layout-master-set>
+
+ <fo:declarations>
+ <fo:color-profile src="url('myprofile.xml')" color-profile-name="myprofile"/>
+ </fo:declarations>
+
+ <fo:page-sequence master-reference='default'>
+ <fo:flow flow-name='xsl-region-body'/>
+ </fo:page-sequence>
</fo:root>
diff --git a/tex/context/foxet/fo-0301.fo b/tex/context/foxet/fo-0301.fo
index 9b5e0cc8b..e0b8a6fc4 100644
--- a/tex/context/foxet/fo-0301.fo
+++ b/tex/context/foxet/fo-0301.fo
@@ -24,22 +24,22 @@
before<fo:character character='@' vertical-align='+3pt' />after
</fo:block>
<fo:block>
- before<fo:character character='@' glyph-orientation-horizontal='0' />after
- before<fo:character character='@' glyph-orientation-horizontal='90' />after
- before<fo:character character='@' glyph-orientation-horizontal='180'/>after
- before<fo:character character='@' glyph-orientation-horizontal='270'/>after
+ before<fo:character character='@' glyph-orientation-horizontal='0deg' />after
+ before<fo:character character='@' glyph-orientation-horizontal='90deg' />after
+ before<fo:character character='@' glyph-orientation-horizontal='180deg'/>after
+ before<fo:character character='@' glyph-orientation-horizontal='270deg'/>after
</fo:block>
<fo:block>
- before<fo:character character='@' glyph-orientation-horizontal='0' vertical-align='super'/>after
- before<fo:character character='@' glyph-orientation-horizontal='90' vertical-align='super'/>after
- before<fo:character character='@' glyph-orientation-horizontal='180' vertical-align='super'/>after
- before<fo:character character='@' glyph-orientation-horizontal='270' vertical-align='super'/>after
+ before<fo:character character='@' glyph-orientation-horizontal='0deg' vertical-align='super'/>after
+ before<fo:character character='@' glyph-orientation-horizontal='90deg' vertical-align='super'/>after
+ before<fo:character character='@' glyph-orientation-horizontal='180deg' vertical-align='super'/>after
+ before<fo:character character='@' glyph-orientation-horizontal='270deg' vertical-align='super'/>after
</fo:block>
<fo:block>
- before<fo:character character='@' glyph-orientation-horizontal='0' vertical-align='3pt'/>after
- before<fo:character character='@' glyph-orientation-horizontal='90' vertical-align='3pt'/>after
- before<fo:character character='@' glyph-orientation-horizontal='180' vertical-align='3pt'/>after
- before<fo:character character='@' glyph-orientation-horizontal='270' vertical-align='3pt'/>after
+ before<fo:character character='@' glyph-orientation-horizontal='0deg' vertical-align='3pt'/>after
+ before<fo:character character='@' glyph-orientation-horizontal='90deg' vertical-align='3pt'/>after
+ before<fo:character character='@' glyph-orientation-horizontal='180deg' vertical-align='3pt'/>after
+ before<fo:character character='@' glyph-orientation-horizontal='270deg' vertical-align='3pt'/>after
</fo:block>
<fo:block>
before<fo:character character='@' vertical-align='super' text-altitude='10pt'/>after
diff --git a/tex/context/foxet/fo-0601.fo b/tex/context/foxet/fo-0601.fo
index ba3e58780..325240510 100644
--- a/tex/context/foxet/fo-0601.fo
+++ b/tex/context/foxet/fo-0601.fo
@@ -7,18 +7,18 @@
<fo:layout-master-set>
<fo:simple-page-master master-name='test'
margin-top='1cm' margin-bottom='2cm' margin-left='3cm' margin-right='4cm'>
+ <fo:region-body margin='2cm' background-color='gray' />
<fo:region-before extent='1cm' background-color='red' />
<fo:region-after extent='1cm' background-color='green' />
<fo:region-start extent='1cm' background-color='blue' />
<fo:region-end extent='1cm' background-color='yellow'/>
- <fo:region-body margin='2cm' background-color='gray' />
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference='test'>
<fo:flow flow-name='xsl-region-body'>
<fo:block>
- <fe:include url='fe-zapf.xml'/>
+ <fe:include url='fe-zapf.xml'/>
</fo:block>
</fo:flow>
</fo:page-sequence>
diff --git a/tex/context/foxet/fo-0602.fo b/tex/context/foxet/fo-0602.fo
index 143dfce88..36e864767 100644
--- a/tex/context/foxet/fo-0602.fo
+++ b/tex/context/foxet/fo-0602.fo
@@ -8,11 +8,11 @@
<fo:layout-master-set>
<fo:simple-page-master master-name='test'
margin-top='1cm' margin-bottom='2cm' margin-left='3cm' margin-right='4cm'>
+ <fo:region-body margin='2cm' background-color='gray' />
<fo:region-before extent='1cm' background-color='red' precedence='true'/>
<fo:region-after extent='1cm' background-color='green' />
<fo:region-start extent='1cm' background-color='blue' />
<fo:region-end extent='1cm' background-color='yellow'/>
- <fo:region-body margin='2cm' background-color='gray' />
</fo:simple-page-master>
</fo:layout-master-set>
diff --git a/tex/context/foxet/fo-0603.fo b/tex/context/foxet/fo-0603.fo
index 80e178c45..268249d3e 100644
--- a/tex/context/foxet/fo-0603.fo
+++ b/tex/context/foxet/fo-0603.fo
@@ -7,11 +7,11 @@
<fo:layout-master-set>
<fo:simple-page-master master-name='test'
margin-top='1cm' margin-bottom='2cm' margin-left='3cm' margin-right='4cm'>
+ <fo:region-body margin='2cm' background-color='gray' />
<fo:region-before extent='1cm' background-color='red' />
<fo:region-after extent='1cm' background-color='green' precedence='true'/>
<fo:region-start extent='1cm' background-color='blue' />
<fo:region-end extent='1cm' background-color='yellow'/>
- <fo:region-body margin='2cm' background-color='gray' />
</fo:simple-page-master>
</fo:layout-master-set>
diff --git a/tex/context/foxet/fo-0604.fo b/tex/context/foxet/fo-0604.fo
index 92499d89d..891198ee0 100644
--- a/tex/context/foxet/fo-0604.fo
+++ b/tex/context/foxet/fo-0604.fo
@@ -7,11 +7,11 @@
<fo:layout-master-set>
<fo:simple-page-master master-name='test'
margin-top='1cm' margin-bottom='2cm' margin-left='3cm' margin-right='4cm'>
+ <fo:region-body margin='2cm' background-color='gray' />
<fo:region-before extent='1cm' background-color='red' precedence='true'/>
<fo:region-after extent='1cm' background-color='green' precedence='true'/>
<fo:region-start extent='1cm' background-color='blue' />
<fo:region-end extent='1cm' background-color='yellow'/>
- <fo:region-body margin='2cm' background-color='gray' />
</fo:simple-page-master>
</fo:layout-master-set>
diff --git a/tex/context/foxet/fo-0612.fo b/tex/context/foxet/fo-0612.fo
index c062ec4ee..4b3de6940 100644
--- a/tex/context/foxet/fo-0612.fo
+++ b/tex/context/foxet/fo-0612.fo
@@ -13,7 +13,7 @@
<fo:page-sequence master-reference='test'>
<fo:flow flow-name='xsl-region-body'>
<fo:block>
- <fe:include url='fe-zapf.xml' n='15'/>
+ <fe:include url='fe-zapf.xml' n='25'/>
</fo:block>
</fo:flow>
</fo:page-sequence>
diff --git a/tex/context/foxet/fo-0621.fo b/tex/context/foxet/fo-0621.fo
index fa14aefc6..b46f82477 100644
--- a/tex/context/foxet/fo-0621.fo
+++ b/tex/context/foxet/fo-0621.fo
@@ -7,74 +7,78 @@
<fo:layout-master-set>
<fo:simple-page-master master-name='any' margin='2cm'>
<fe:message>setting up simple page master 'any'</fe:message>
+ <fo:region-body background-color='darkgray' margin-top='2cm' margin-bottom='2cm' padding='.5cm'/>
<fo:region-before background-color='darkgray' extent='1cm'/>
<fo:region-after background-color='darkgray' extent='1cm'/>
- <fo:region-body background-color='darkgray' margin-top='2cm' margin-bottom='2cm' padding='.5cm'/>
</fo:simple-page-master>
<fo:simple-page-master master-name='first-page' margin='2cm'>
<fe:message>setting up simple page master 'first-page'</fe:message>
+ <fo:region-body background-color='red' margin='2cm' padding='.5cm'/>
<fo:region-before background-color='red' extent='1cm'/>
<fo:region-after background-color='red' extent='1cm'/>
- <fo:region-body background-color='red' margin='2cm' padding='.5cm'/>
</fo:simple-page-master>
<fo:simple-page-master master-name='left-page' margin='2cm'>
<fe:message>setting up simple page master 'left-page'</fe:message>
+ <fo:region-body background-color='green' margin='2cm' padding='.5cm'/>
<fo:region-before background-color='green' extent='1cm'/>
<fo:region-after background-color='green' extent='1cm'/>
- <fo:region-body background-color='green' margin='2cm' padding='.5cm'/>
</fo:simple-page-master>
<fo:simple-page-master master-name='right-page' margin='2cm'>
<fe:message>setting up simple page master 'right-page'</fe:message>
+ <fo:region-body background-color='blue' margin='2cm' padding='.5cm'/>
<fo:region-before background-color='blue' extent='1cm'/>
<fo:region-after background-color='blue' extent='1cm'/>
- <fo:region-body background-color='blue' margin='2cm' padding='.5cm'/>
</fo:simple-page-master>
<fo:simple-page-master master-name='blank-page' margin='2cm'>
<fe:message>setting up simple page master 'blank-page'</fe:message>
+ <fo:region-body background-color='black' margin='2cm' padding='.5cm'/>
<fo:region-before background-color='black' extent='1cm'/>
<fo:region-after background-color='black' extent='1cm'/>
- <fo:region-body background-color='black' margin='2cm' padding='.5cm'/>
</fo:simple-page-master>
<fo:simple-page-master master-name='odd' margin='2cm'>
<fe:message>setting up simple page master 'odd'</fe:message>
+ <fo:region-body background-color='cyan' margin='2cm' padding='.5cm' margin-right='2cm'/>
<fo:region-before background-color='cyan' extent='1cm'/>
<fo:region-after background-color='cyan' extent='1cm'/>
- <fo:region-body background-color='cyan' margin='2cm' padding='.5cm' margin-right='2cm'/>
</fo:simple-page-master>
<fo:simple-page-master master-name='even' margin='2cm'>
<fe:message>setting up simple page master 'even'</fe:message>
+ <fo:region-body background-color='magenta' margin='2cm' padding='.5cm' margin-left='2cm'/>
<fo:region-before background-color='magenta' extent='1cm'/>
<fo:region-after background-color='magenta' extent='1cm'/>
- <fo:region-body background-color='magenta' margin='2cm' padding='.5cm' margin-left='2cm'/>
</fo:simple-page-master>
<fo:simple-page-master master-name='rest' margin='2cm'>
<fe:message>setting up simple page master 'rest'</fe:message>
+ <fo:region-body background-color='yellow' margin='2cm' padding='.5cm'/>
<fo:region-before background-color='yellow' extent='1cm'/>
<fo:region-after background-color='yellow' extent='1cm'/>
- <fo:region-body background-color='yellow' margin='2cm' padding='.5cm'/>
</fo:simple-page-master>
<fo:page-sequence-master master-name='demo'>
<fe:message>setting up page sequence master 'demo'</fe:message>
- <fo:conditional-page-master-reference page-position='first' master-reference='first-page'/>
- <fo:conditional-page-master-reference page-position='blank' master-reference='blank-page'/>
- <fo:conditional-page-master-reference page-position='odd' master-reference='odd'/>
- <fo:conditional-page-master-reference page-position='even' master-reference='even'/>
+ <fo:repeatable-page-master-alternatives>
+ <fo:conditional-page-master-reference page-position='first' master-reference='first-page'/>
+ <fo:conditional-page-master-reference page-position='last' master-reference='blank-page'/>
+ <fo:conditional-page-master-reference page-position='any' master-reference='odd' odd-or-even='odd'/>
+ <fo:conditional-page-master-reference page-position='any' master-reference='even' odd-or-even='even'/>
+ </fo:repeatable-page-master-alternatives>
</fo:page-sequence-master>
<fo:page-sequence-master master-name='omed'>
<fe:message>setting up page sequence master 'omed'</fe:message>
- <fo:conditional-page-master-reference page-position='first' master-reference='first-page'/>
- <fo:conditional-page-master-reference page-position='blank' master-reference='blank-page'/>
- <fo:conditional-page-master-reference page-position='odd' master-reference='even'/>
- <fo:conditional-page-master-reference page-position='even' master-reference='odd'/>
+ <fo:repeatable-page-master-alternatives>
+ <fo:conditional-page-master-reference page-position='first' master-reference='first-page'/>
+ <fo:conditional-page-master-reference page-position='last' master-reference='blank-page'/>
+ <fo:conditional-page-master-reference page-position='any' master-reference='odd' odd-or-even='even'/>
+ <fo:conditional-page-master-reference page-position='any' master-reference='even' odd-or-even='odd'/>
+ </fo:repeatable-page-master-alternatives>
</fo:page-sequence-master>
</fo:layout-master-set>
- <fo:page-sequence>
+ <fo:page-sequence master-reference='any'>
<fe:message>starting page sequence 'any'</fe:message>
<fo:flow flow-name='xsl-region-body'>
<fo:block>
- <fe:include url='fe-zapf.xml' n='15'/>
+ <fe:include url='fe-zapf.xml' n='15'/>
</fo:block>
</fo:flow>
</fo:page-sequence>
@@ -83,7 +87,7 @@
<fe:message>starting page sequence 'demo'</fe:message>
<fo:flow flow-name='xsl-region-body'>
<fo:block>
- <fe:include url='fe-bryson.xml' n='30'/>
+ <fe:include url='fe-bryson.xml' n='30'/>
</fo:block>
</fo:flow>
</fo:page-sequence>
@@ -92,7 +96,7 @@
<fe:message>starting page sequence 'omed'</fe:message>
<fo:flow flow-name='xsl-region-body'>
<fo:block>
- <fe:include url='fe-ward.xml' n='30'/>
+ <fe:include url='fe-ward.xml' n='30'/>
</fo:block>
</fo:flow>
</fo:page-sequence>
diff --git a/tex/context/foxet/fo-0641.fo b/tex/context/foxet/fo-0641.fo
index 1ec9772a8..9dbb90870 100644
--- a/tex/context/foxet/fo-0641.fo
+++ b/tex/context/foxet/fo-0641.fo
@@ -6,11 +6,11 @@
<fo:layout-master-set>
<fo:simple-page-master master-name='test' margin='2cm'>
+ <fo:region-body margin='2cm' background-color='gray' fe:background-height='1cm' background-image="url('hacker.jpg')" clip='rect(1cm,1cm,1cm,1cm)' />
<fo:region-before extent='2cm' background-color='red' fe:background-height='1cm' background-image="url('hacker.jpg')" background-repeat='repeat-x' />
<fo:region-after extent='2cm' background-color='green' fe:background-height='2cm' background-image="url('hacker.jpg')" background-repeat='repeat-y' />
<fo:region-start extent='2cm' background-color='blue' fe:background-height='1cm' background-image="url('hacker.jpg')" background-repeat='no-repeat'/>
<fo:region-end extent='2cm' background-color='yellow' fe:background-height='2cm' background-image="url('hacker.jpg')" background-repeat='repeat' />
- <fo:region-body margin='2cm' background-color='gray' fe:background-height='1cm' background-image="url('hacker.jpg')" clip='rect(1cm,1cm,1cm,1cm)' />
</fo:simple-page-master>
</fo:layout-master-set>
diff --git a/tex/context/foxet/fo-0642.fo b/tex/context/foxet/fo-0642.fo
index 0c1a345b9..8f646509c 100644
--- a/tex/context/foxet/fo-0642.fo
+++ b/tex/context/foxet/fo-0642.fo
@@ -9,7 +9,7 @@
<fo:simple-page-master master-name='test' margin='2cm'>
<fo:region-body margin='2cm'
background-color='gray'
- background-image='hacker.jpg'
+ background-image="url('hacker.jpg')"
background-position-horizontal='10%'
background-position-vertical='20%'
background-repeat='no-repeat'/>
diff --git a/tex/context/foxet/fo-0643.fo b/tex/context/foxet/fo-0643.fo
index 7accf8ab8..9595d4438 100644
--- a/tex/context/foxet/fo-0643.fo
+++ b/tex/context/foxet/fo-0643.fo
@@ -9,7 +9,7 @@
<fo:simple-page-master master-name='test' margin='2cm'>
<fo:region-body margin='2cm'
background-color='gray'
- background-image='hacker.jpg'
+ background-image="url('hacker.jpg')"
background-position-horizontal='center'
background-position-vertical='center'
background-repeat='no-repeat'/>
diff --git a/tex/context/foxet/fo-0644.fo b/tex/context/foxet/fo-0644.fo
index c23647159..a408661e0 100644
--- a/tex/context/foxet/fo-0644.fo
+++ b/tex/context/foxet/fo-0644.fo
@@ -9,7 +9,7 @@
<fo:simple-page-master master-name='test' margin='2cm'>
<fo:region-body margin='2cm'
background-color='gray'
- background-image='hacker.jpg'
+ background-image="url('hacker.jpg')"
background-position-horizontal='3cm'
background-position-vertical='5cm'
background-repeat='no-repeat'/>
diff --git a/tex/context/foxet/fo-0650.fo b/tex/context/foxet/fo-0650.fo
index 7ae67a1e5..54fd7c128 100644
--- a/tex/context/foxet/fo-0650.fo
+++ b/tex/context/foxet/fo-0650.fo
@@ -7,11 +7,11 @@
<fo:layout-master-set>
<fo:simple-page-master master-name='test'
margin-top='1cm' margin-bottom='2cm' margin-left='3cm' margin-right='4cm'>
- <fo:region-before extent='1cm' background-color='red' />
- <fo:region-after extent='1cm' background-color='green' />
- <fo:region-start extent='1cm' background-color='blue' />
- <fo:region-end extent='1cm' background-color='yellow'/>
- <fo:region-body background-color='gray' />
+ <fo:region-body margin='.5cm' background-color='gray' fe:z-order='above' />
+ <fo:region-before extent='1cm' background-color='red' />
+ <fo:region-after extent='1cm' background-color='green' />
+ <fo:region-start extent='1cm' background-color='blue' />
+ <fo:region-end extent='1cm' background-color='yellow'/>
</fo:simple-page-master>
</fo:layout-master-set>
diff --git a/tex/context/foxet/fo-0651.fo b/tex/context/foxet/fo-0651.fo
index a10163f5d..319592ba8 100644
--- a/tex/context/foxet/fo-0651.fo
+++ b/tex/context/foxet/fo-0651.fo
@@ -7,18 +7,18 @@
<fo:layout-master-set>
<fo:simple-page-master master-name='test'
margin-top='1cm' margin-bottom='2cm' margin-left='3cm' margin-right='4cm'>
- <fo:region-before extent='1cm' background-color='red' />
- <fo:region-after extent='1cm' background-color='green' />
- <fo:region-start extent='1cm' background-color='blue' />
- <fo:region-end extent='1cm' background-color='yellow'/>
- <fo:region-body background-color='gray' />
+ <fo:region-body margin='.5cm' background-color='gray' fe:z-order='below' />
+ <fo:region-before extent='1cm' background-color='red' />
+ <fo:region-after extent='1cm' background-color='green' />
+ <fo:region-start extent='1cm' background-color='blue' />
+ <fo:region-end extent='1cm' background-color='yellow'/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference='test'>
<fo:flow flow-name='xsl-region-body'>
<fo:block>
- <fe:include url='zapf.xml'/>
+ <fe:include url='fe-zapf.xml'/>
</fo:block>
</fo:flow>
</fo:page-sequence>
diff --git a/tex/context/foxet/fo-0701.fo b/tex/context/foxet/fo-0701.fo
index 4d5391daa..fabbe0722 100644
--- a/tex/context/foxet/fo-0701.fo
+++ b/tex/context/foxet/fo-0701.fo
@@ -5,12 +5,12 @@
<fo:root xmlns:fo='http://www.w3.org/1999/XSL/Format' xmlns:fe='http://www.pragma-ade.com/schemas/foxet.rng'>
<fo:layout-master-set>
- <fo:simple-page-master margin='2cm'>
+ <fo:simple-page-master margin='2cm' master-name='default'>
<fo:region-body background-color='darkgray'/>
</fo:simple-page-master>
</fo:layout-master-set>
- <fo:page-sequence>
+ <fo:page-sequence master-reference='default' fe:tracing='true'>
<fo:flow flow-name='xsl-region-body'>
<fo:block-container absolute-position='absolute' height='2cm' width='3cm' left='1cm' top='1cm'>
<fo:block>Test 1</fo:block>
diff --git a/tex/context/foxet/fo-0801.fo b/tex/context/foxet/fo-0801.fo
index 11747d360..b18c4282f 100644
--- a/tex/context/foxet/fo-0801.fo
+++ b/tex/context/foxet/fo-0801.fo
@@ -43,11 +43,12 @@
<fo:page-sequence master-reference='test'>
<fo:flow flow-name='xsl-region-body'>
<fo:block-container space-after='12pt' id='y'>
- <fo:block>digits: <fo:page-number-citation ref-id='format n'/> </fo:block>
- <fo:block>characters: <fo:page-number-citation ref-id='format a'/> </fo:block>
- <fo:block>romannumerals: <fo:page-number-citation ref-id='format i'/> </fo:block>
- <fo:block>complex format: <fo:page-number-citation ref-id='complex format'/> </fo:block>
- <fo:block>no format: <fo:page-number-citation ref-id='no format'/> </fo:block>
+ <fo:block>digits: <fo:page-number-citation ref-id='format n'/> </fo:block>
+ <fo:block>characters: <fo:page-number-citation ref-id='format a'/> </fo:block>
+ <fo:block>romannumerals: <fo:page-number-citation ref-id='format i'/> </fo:block>
+ <fo:block>complex format: <fo:page-number-citation ref-id='complex format'/> </fo:block>
+ <fo:block>no format: <fo:page-number-citation ref-id='no format'/> </fo:block>
+ </fo:block-container>
</fo:flow>
</fo:page-sequence>
diff --git a/tex/context/foxet/fo-0901.fo b/tex/context/foxet/fo-0901.fo
index e071bd919..05011269b 100644
--- a/tex/context/foxet/fo-0901.fo
+++ b/tex/context/foxet/fo-0901.fo
@@ -5,8 +5,8 @@
<fo:root xmlns:fo='http://www.w3.org/1999/XSL/Format' xmlns:fe='http://www.pragma-ade.com/schemas/foxet.rng'>
<fo:layout-master-set>
- <fo:simple-page-master master-name='test' margin='2cm'>
- <fo:region-body margin='2cm'/>
+ <fo:simple-page-master master-name='test' margin='.5cm'>
+ <fo:region-body margin='.5cm'/>
</fo:simple-page-master>
</fo:layout-master-set>
@@ -32,10 +32,20 @@
<fo:block font-family='Helvetica'>helvetica</fo:block>
<fo:block font-family='Courier'>courier</fo:block>
</fo:block-container>
+ <fo:block-container font-style='italic' font-weight='bold' font-size='large'>
+ <fo:block font-family='Times'>large</fo:block>
+ <fo:block font-family='Helvetica'>large</fo:block>
+ <fo:block font-family='Courier'>large</fo:block>
+ </fo:block-container>
+ <fo:block-container font-style='italic' font-weight='bold' font-size='x-large'>
+ <fo:block font-family='Times'>x-large</fo:block>
+ <fo:block font-family='Helvetica'>x-large</fo:block>
+ <fo:block font-family='Courier'>x-large</fo:block>
+ </fo:block-container>
<fo:block-container font-style='italic' font-weight='bold' font-size='xx-large'>
- <fo:block font-family='Times'>times</fo:block>
- <fo:block font-family='Helvetica'>helvetica</fo:block>
- <fo:block font-family='Courier'>courier</fo:block>
+ <fo:block font-family='Times'>xx-large</fo:block>
+ <fo:block font-family='Helvetica'>xx-large</fo:block>
+ <fo:block font-family='Courier'>xx-large</fo:block>
</fo:block-container>
<fo:block-container font-style='italic' font-weight='bold' font-size='350%'>
<fo:block font-family='Times'>times</fo:block>
diff --git a/tex/context/foxet/fo-0902.fo b/tex/context/foxet/fo-0902.fo
new file mode 100644
index 000000000..ebaa06651
--- /dev/null
+++ b/tex/context/foxet/fo-0902.fo
@@ -0,0 +1,33 @@
+<?xml version='1.0'?>
+
+<!-- foxet test file - Hans Hagen - PRAGMA ADE - www.pragma-ade.com -->
+
+<fo:root xmlns:fo='http://www.w3.org/1999/XSL/Format' xmlns:fe='http://www.pragma-ade.com/schemas/foxet.rng'>
+
+ <fo:layout-master-set>
+ <fo:simple-page-master master-name='test' margin='.5cm'>
+ <fo:region-body margin='.5cm'/>
+ </fo:simple-page-master>
+ </fo:layout-master-set>
+
+ <fo:page-sequence master-reference='test' initial-page-number='123'>
+ <fo:flow flow-name='xsl-region-body'>
+ <fo:block-container>
+ <fo:block><fe:include url='fe-zapf.xml'/></fo:block>
+ </fo:block-container>
+ <fo:block-container line-height='40pt'>
+ <fo:block><fe:include url='fe-zapf.xml'/></fo:block>
+ </fo:block-container>
+ <fo:block-container line-height='180%'>
+ <fo:block><fe:include url='fe-zapf.xml'/></fo:block>
+ </fo:block-container>
+ <fo:block-container line-height='1.2'>
+ <fo:block><fe:include url='fe-zapf.xml'/></fo:block>
+ </fo:block-container>
+ <fo:block-container line-height='normal'>
+ <fo:block><fe:include url='fe-zapf.xml'/></fo:block>
+ </fo:block-container>
+ </fo:flow>
+ </fo:page-sequence>
+
+</fo:root>
diff --git a/tex/context/foxet/fo-1101.fo b/tex/context/foxet/fo-1101.fo
index 134e656b7..f6953d522 100644
--- a/tex/context/foxet/fo-1101.fo
+++ b/tex/context/foxet/fo-1101.fo
@@ -14,54 +14,49 @@
<fo:flow flow-name='xsl-region-body'>
<fo:block><fe:include url='fe-zapf.xml'/></fo:block>
<fo:list-block
- space-between-list-rows='6pt'
space-before.optimum='12pt'
space-after.optimum='12pt'>
<fo:list-item>
- <fo:list-item-label>
+ <fo:list-item-label start-indent='10pt'>
<fo:block>[a]</fo:block>
</fo:list-item-label>
- <fo:list-item-body>
+ <fo:list-item-body end-indent='0pt'>
<fo:block><fe:include url='fe-zapf.xml'/></fo:block>
</fo:list-item-body>
</fo:list-item>
<fo:list-item>
- <fo:list-item-label>
+ <fo:list-item-label start-indent='10pt'>
<fo:block>[b]</fo:block>
</fo:list-item-label>
- <fo:list-item-body>
- <fo:list-item>
- <fo:list-item-label>
- <fo:block>[bb]</fo:block>
- </fo:list-item-label>
- <fo:list-item-body>
- <fo:block><fe:include url='fe-zapf.xml'/></fo:block>
- </fo:list-item-body>
- </fo:list-item>
+ <fo:list-item-body end-indent='0pt'>
+ <fo:list-block>
+ <fo:list-item>
+ <fo:list-item-label start-indent='40pt'>
+ <fo:block>[bb]</fo:block>
+ </fo:list-item-label>
+ <fo:list-item-body end-indent='0pt'>
+ <fo:block><fe:include url='fe-zapf.xml'/></fo:block>
+ </fo:list-item-body>
+ </fo:list-item>
+ </fo:list-block>
+ </fo:list-item-body>
+ </fo:list-item>
+ </fo:list-block>
+ <fo:list-block
+ start-indent='1cm'
+ end-indent='1cm'
+ space-before.optimum='12pt'
+ space-after.optimum='12pt'>
+ <fo:list-item>
+ <fo:list-item-label start-indent='10pt'>
+ <fo:block>[a]</fo:block>
+ </fo:list-item-label>
+ <fo:list-item-body end-indent='0pt'>
+ <fo:block><fe:include url='fe-zapf.xml'/></fo:block>
</fo:list-item-body>
</fo:list-item>
</fo:list-block>
<fo:block><fe:include url='fe-zapf.xml'/></fo:block>
- <fo:block>
- test
- <fo:inline position='static' font-size='600%'>S</fo:inline>
- <fo:inline position='static' font-size='400%'>S</fo:inline>
- <fo:inline position='static' font-size='500%'>S</fo:inline>
- <fo:inline position='fixed' right='2cm' bottom='2cm' font-size='600%'>F</fo:inline>
- <fo:inline position='fixed' right='2cm' top='2cm' font-size='400%'>F</fo:inline>
- <fo:inline position='fixed' left='2cm' bottom='2cm' font-size='500%'>F</fo:inline>
- <fo:inline position='absolute' right='1cm' bottom='1cm' font-size='600%'>A</fo:inline>
- <fo:inline position='absolute' right='1cm' top='1cm' font-size='400%'>A</fo:inline>
- <fo:inline position='absolute' left='1cm' bottom='1cm' font-size='500%'>A</fo:inline>
- <fo:inline position='relative' right='2mm' bottom='2mm' font-size='600%'>R</fo:inline>
- <fo:inline position='relative' right='2mm' top='2mm' font-size='400%'>R</fo:inline>
- <fo:inline position='relative' left='2mm' bottom='2mm' font-size='500%'>R</fo:inline>
- test
- <fo:inline position='static' font-size='600%'>Q</fo:inline>
- <fo:inline position='relative' right='2mm' bottom='2mm' font-size='600%'>Q</fo:inline>
- <fo:inline position='relative' right='2mm' top='2mm' font-size='400%'>Q</fo:inline>
- <fo:inline position='relative' left='2mm' bottom='2mm' font-size='500%'>Q</fo:inline>
- </fo:block>
</fo:flow>
</fo:page-sequence>
diff --git a/tex/context/foxet/fo-1102.fo b/tex/context/foxet/fo-1102.fo
new file mode 100644
index 000000000..f8d5a9df3
--- /dev/null
+++ b/tex/context/foxet/fo-1102.fo
@@ -0,0 +1,128 @@
+<?xml version='1.0'?>
+
+<!-- foxet test file - Hans Hagen - PRAGMA ADE - www.pragma-ade.com -->
+
+<fo:root xmlns:fo='http://www.w3.org/1999/XSL/Format' xmlns:fe='http://www.pragma-ade.com/schemas/foxet.rng'>
+
+ <fo:layout-master-set>
+ <fo:simple-page-master master-name='test' margin='2cm'>
+ <fo:region-body margin='1cm'/>
+ </fo:simple-page-master>
+ </fo:layout-master-set>
+
+ <fo:page-sequence master-reference='test' fe:tracing='true' fe:testgrid='true'>
+ <fo:flow flow-name='xsl-region-body'>
+ <fo:list-block
+ space-before.optimum='12pt'
+ space-after.optimum='12pt'
+ provisional-distance-between-starts='2cm'
+ provisional-label-separation='.5cm'>
+ <!-- fo:list-item>
+ <fo:list-item-label start-indent='0pt' end-indent='0pt'>
+ <fo:block>[a]</fo:block>
+ </fo:list-item-label>
+ <fo:list-item-body start-indent='0pt' end-indent='0pt'>
+ <fo:block><fe:include url='fe-zapf.xml'/></fo:block>
+ </fo:list-item-body>
+ </fo:list-item>
+ <fo:list-item>
+ <fo:list-item-label start-indent='50pt' end-indent='0pt'>
+ <fo:block>[a]</fo:block>
+ </fo:list-item-label>
+ <fo:list-item-body start-indent='0pt' end-indent='0pt'>
+ <fo:block><fe:include url='fe-zapf.xml'/></fo:block>
+ </fo:list-item-body>
+ </fo:list-item>
+ <fo:list-item>
+ <fo:list-item-label start-indent='0pt' end-indent='50pt'>
+ <fo:block>[a]</fo:block>
+ </fo:list-item-label>
+ <fo:list-item-body start-indent='0pt' end-indent='0pt'>
+ <fo:block><fe:include url='fe-zapf.xml'/></fo:block>
+ </fo:list-item-body>
+ </fo:list-item>
+ <fo:list-item>
+ <fo:list-item-label start-indent='0pt' end-indent='0pt'>
+ <fo:block>[a]</fo:block>
+ </fo:list-item-label>
+ <fo:list-item-body start-indent='50pt' end-indent='0pt'>
+ <fo:block><fe:include url='fe-zapf.xml'/></fo:block>
+ </fo:list-item-body>
+ </fo:list-item>
+ <fo:list-item>
+ <fo:list-item-label start-indent='0pt' end-indent='0pt'>
+ <fo:block>[a]</fo:block>
+ </fo:list-item-label>
+ <fo:list-item-body start-indent='0pt' end-indent='50pt'>
+ <fo:block><fe:include url='fe-zapf.xml'/></fo:block>
+ </fo:list-item-body>
+ </fo:list-item>
+ <fo:list-item>
+ <fo:list-item-label start-indent='50pt' end-indent='50pt'>
+ <fo:block>[a]</fo:block>
+ </fo:list-item-label>
+ <fo:list-item-body start-indent='0pt' end-indent='0pt'>
+ <fo:block><fe:include url='fe-zapf.xml'/></fo:block>
+ </fo:list-item-body>
+ </fo:list-item>
+ <fo:list-item>
+ <fo:list-item-label start-indent='0pt' end-indent='0pt'>
+ <fo:block>[a]</fo:block>
+ </fo:list-item-label>
+ <fo:list-item-body start-indent='50pt' end-indent='50pt'>
+ <fo:block><fe:include url='fe-zapf.xml'/></fo:block>
+ </fo:list-item-body>
+ </fo:list-item>
+ <fo:list-item>
+ <fo:list-item-label start-indent='50pt' end-indent='50pt'>
+ <fo:block>[a]</fo:block>
+ </fo:list-item-label>
+ <fo:list-item-body start-indent='50pt' end-indent='50pt'>
+ <fo:block><fe:include url='fe-zapf.xml'/></fo:block>
+ </fo:list-item-body>
+ </fo:list-item>
+ <fo:list-item>
+ <fo:list-item-label start-indent='10%' end-indent='75%'>
+ <fo:block>[a]</fo:block>
+ </fo:list-item-label>
+ <fo:list-item-body start-indent='35%' end-indent='10%'>
+ <fo:block><fe:include url='fe-zapf.xml'/></fo:block>
+ </fo:list-item-body>
+ </fo:list-item -->
+ <fo:list-item>
+ <fo:list-item-label start-indent='1cm' end-indent='10cm'>
+ <fo:block>[a]</fo:block>
+ </fo:list-item-label>
+ <fo:list-item-body start-indent='4cm' end-indent='1cm'>
+ <fo:block><fe:include url='fe-zapf.xml'/></fo:block>
+ </fo:list-item-body>
+ </fo:list-item>
+ <fo:list-item>
+ <fo:list-item-label start-indent='1cm' end-indent='label-end()'>
+ <fo:block>[a]</fo:block>
+ </fo:list-item-label>
+ <fo:list-item-body start-indent='5cm' end-indent='1cm'>
+ <fo:block><fe:include url='fe-zapf.xml'/></fo:block>
+ </fo:list-item-body>
+ </fo:list-item>
+ <fo:list-item>
+ <fo:list-item-label start-indent='1cm' end-indent='10cm'>
+ <fo:block>[a]</fo:block>
+ </fo:list-item-label>
+ <fo:list-item-body start-indent='body-start()' end-indent='2cm'>
+ <fo:block><fe:include url='fe-zapf.xml'/></fo:block>
+ </fo:list-item-body>
+ </fo:list-item>
+ <fo:list-item>
+ <fo:list-item-label start-indent='1cm' end-indent='label-end()'>
+ <fo:block>[a]</fo:block>
+ </fo:list-item-label>
+ <fo:list-item-body start-indent='body-start()' end-indent='3cm'>
+ <fo:block><fe:include url='fe-zapf.xml'/></fo:block>
+ </fo:list-item-body>
+ </fo:list-item>
+ </fo:list-block>
+ </fo:flow>
+ </fo:page-sequence>
+
+</fo:root>
diff --git a/tex/context/foxet/fo-1103.fo b/tex/context/foxet/fo-1103.fo
new file mode 100644
index 000000000..245f3ff0e
--- /dev/null
+++ b/tex/context/foxet/fo-1103.fo
@@ -0,0 +1,85 @@
+<?xml version='1.0'?>
+
+<!-- foxet test file - Hans Hagen - PRAGMA ADE - www.pragma-ade.com -->
+
+<fo:root xmlns:fo='http://www.w3.org/1999/XSL/Format' xmlns:fe='http://www.pragma-ade.com/schemas/foxet.rng'>
+
+ <fo:layout-master-set>
+ <fo:simple-page-master master-name='test' margin='2cm'>
+ <fo:region-body margin='1cm'/>
+ </fo:simple-page-master>
+ </fo:layout-master-set>
+
+ <fo:page-sequence master-reference='test' fe:tracing='true'>
+ <fo:flow flow-name='xsl-region-body'>
+ <fo:list-block space-before.optimum='12pt' space-after.optimum='12pt'
+ start-indent='10pt' end-indent='10pt'>
+ <fo:list-item>
+ <fo:list-item-label start-indent='0pt' end-indent='0pt'>
+ <fo:block>[a]</fo:block>
+ </fo:list-item-label>
+ <fo:list-item-body start-indent='0pt' end-indent='0pt'>
+ <fo:block><fe:include url='fe-zapf.xml'/></fo:block>
+ </fo:list-item-body>
+ </fo:list-item>
+ <fo:list-item>
+ <fo:list-item-label start-indent='10pt' end-indent='0pt'>
+ <fo:block>[a]</fo:block>
+ </fo:list-item-label>
+ <fo:list-item-body start-indent='0pt' end-indent='0pt'>
+ <fo:block><fe:include url='fe-zapf.xml'/></fo:block>
+ </fo:list-item-body>
+ </fo:list-item>
+ <fo:list-item>
+ <fo:list-item-label start-indent='0pt' end-indent='10pt'>
+ <fo:block>[a]</fo:block>
+ </fo:list-item-label>
+ <fo:list-item-body start-indent='0pt' end-indent='0pt'>
+ <fo:block><fe:include url='fe-zapf.xml'/></fo:block>
+ </fo:list-item-body>
+ </fo:list-item>
+ <fo:list-item>
+ <fo:list-item-label start-indent='0pt' end-indent='0pt'>
+ <fo:block>[a]</fo:block>
+ </fo:list-item-label>
+ <fo:list-item-body start-indent='10pt' end-indent='0pt'>
+ <fo:block><fe:include url='fe-zapf.xml'/></fo:block>
+ </fo:list-item-body>
+ </fo:list-item>
+ <fo:list-item>
+ <fo:list-item-label start-indent='0pt' end-indent='0pt'>
+ <fo:block>[a]</fo:block>
+ </fo:list-item-label>
+ <fo:list-item-body start-indent='0pt' end-indent='10pt'>
+ <fo:block><fe:include url='fe-zapf.xml'/></fo:block>
+ </fo:list-item-body>
+ </fo:list-item>
+ <fo:list-item>
+ <fo:list-item-label start-indent='10pt' end-indent='10pt'>
+ <fo:block>[a]</fo:block>
+ </fo:list-item-label>
+ <fo:list-item-body start-indent='0pt' end-indent='0pt'>
+ <fo:block><fe:include url='fe-zapf.xml'/></fo:block>
+ </fo:list-item-body>
+ </fo:list-item>
+ <fo:list-item>
+ <fo:list-item-label start-indent='0pt' end-indent='0pt'>
+ <fo:block>[a]</fo:block>
+ </fo:list-item-label>
+ <fo:list-item-body start-indent='10pt' end-indent='10pt'>
+ <fo:block><fe:include url='fe-zapf.xml'/></fo:block>
+ </fo:list-item-body>
+ </fo:list-item>
+ <fo:list-item>
+ <fo:list-item-label start-indent='10pt' end-indent='0pt'>
+ <fo:block>[a]</fo:block>
+ </fo:list-item-label>
+ <fo:list-item-body start-indent='10pt' end-indent='10pt'>
+ <fo:block><fe:include url='fe-zapf.xml'/></fo:block>
+ </fo:list-item-body>
+ </fo:list-item>
+ </fo:list-block>
+ </fo:flow>
+ </fo:page-sequence>
+
+</fo:root>
diff --git a/tex/context/foxet/fo-1104.fo b/tex/context/foxet/fo-1104.fo
new file mode 100644
index 000000000..6867e772f
--- /dev/null
+++ b/tex/context/foxet/fo-1104.fo
@@ -0,0 +1,28 @@
+<?xml version='1.0'?>
+
+<!-- foxet test file - Hans Hagen - PRAGMA ADE - www.pragma-ade.com -->
+
+<fo:root xmlns:fo='http://www.w3.org/1999/XSL/Format' xmlns:fe='http://www.pragma-ade.com/schemas/foxet.rng'>
+
+ <fo:layout-master-set>
+ <fo:simple-page-master master-name='test' margin='2cm'>
+ <fo:region-body margin='1cm'/>
+ </fo:simple-page-master>
+ </fo:layout-master-set>
+
+ <fo:page-sequence master-reference='test'>
+ <fo:flow flow-name='xsl-region-body'>
+ <fo:list-block>
+ <fo:list-item>
+ <fo:list-item-label>
+ <fo:block text-align="center">X</fo:block>
+ </fo:list-item-label>
+ <fo:list-item-body>
+ <fo:block><fe:include url='fe-zapf.xml'/></fo:block>
+ </fo:list-item-body>
+ </fo:list-item>
+ </fo:list-block>
+ </fo:flow>
+ </fo:page-sequence>
+
+</fo:root>
diff --git a/tex/context/foxet/fo-1201.fo b/tex/context/foxet/fo-1201.fo
new file mode 100644
index 000000000..364dcb214
--- /dev/null
+++ b/tex/context/foxet/fo-1201.fo
@@ -0,0 +1,40 @@
+<?xml version='1.0'?>
+
+<!-- foxet test file - Hans Hagen - PRAGMA ADE - www.pragma-ade.com -->
+
+<fo:root xmlns:fo='http://www.w3.org/1999/XSL/Format' xmlns:fe='http://www.pragma-ade.com/schemas/foxet.rng'>
+
+ <fo:layout-master-set>
+ <fo:simple-page-master master-name='test' margin='2cm'>
+ <fo:region-body margin='1cm'/>
+ </fo:simple-page-master>
+ </fo:layout-master-set>
+
+ <fo:page-sequence master-reference='test' fe:tracing='true'>
+ <fo:flow flow-name='xsl-region-body'>
+ <fo:block><fe:include url='fe-zapf.xml'/></fo:block>
+ <fo:block>
+ test
+ <fo:inline position='static' font-size='600%'>S</fo:inline>
+ <fo:inline position='static' font-size='400%'>S</fo:inline>
+ <fo:inline position='static' font-size='500%'>S</fo:inline>
+ <fo:inline position='fixed' right='2cm' bottom='2cm' font-size='600%'>F</fo:inline>
+ <fo:inline position='fixed' right='2cm' top='2cm' font-size='400%'>F</fo:inline>
+ <fo:inline position='fixed' left='2cm' bottom='2cm' font-size='500%'>F</fo:inline>
+ <fo:inline position='absolute' right='1cm' bottom='1cm' font-size='600%'>A</fo:inline>
+ <fo:inline position='absolute' right='1cm' top='1cm' font-size='400%'>A</fo:inline>
+ <fo:inline position='absolute' left='1cm' bottom='1cm' font-size='500%'>A</fo:inline>
+ <fo:inline position='relative' right='2mm' bottom='2mm' font-size='600%'>R</fo:inline>
+ <fo:inline position='relative' right='2mm' top='2mm' font-size='400%'>R</fo:inline>
+ <fo:inline position='relative' left='2mm' bottom='2mm' font-size='500%'>R</fo:inline>
+ test
+ <fo:inline position='static' font-size='600%'>Q</fo:inline>
+ <fo:inline position='relative' right='2mm' bottom='2mm' font-size='600%'>Q</fo:inline>
+ <fo:inline position='relative' right='2mm' top='2mm' font-size='400%'>Q</fo:inline>
+ <fo:inline position='relative' left='2mm' bottom='2mm' font-size='500%'>Q</fo:inline>
+ </fo:block>
+ <fo:block><fe:include url='fe-zapf.xml'/></fo:block>
+ </fo:flow>
+ </fo:page-sequence>
+
+</fo:root>
diff --git a/tex/context/user/cont-sys.rme b/tex/context/user/cont-sys.rme
index 1f9bd0dc2..6860efefa 100644
--- a/tex/context/user/cont-sys.rme
+++ b/tex/context/user/cont-sys.rme
@@ -51,9 +51,9 @@
% \usetypescript[adobekb] [\defaultencoding]
% You can let \CONTEXT\ load the map files for \PDFTEX.
-%
-% \autoloadmapfilestrue
-%
+
+\autoloadmapfilestrue
+
% (1) use this when you have a big mapfile
%
% \preloadmapfile[original-base.map]
@@ -72,21 +72,21 @@
% \resetmapfiles \usetypescript [map] [base] [all]
%
% (3) or this if it's a slow one:
-%
-% \resetmapfiles
-%
-% \loadmapfile[original-base.map]
-% \loadmapfile[ec-base.map]
-% \loadmapfile[8r-base.map]
-% \loadmapfile[qx-base.map]
-% \loadmapfile[texnansi-base.map]
-% \loadmapfile[original-ams-cmr.map]
-% \loadmapfile[original-ams-euler.map]
-% \loadmapfile[original-public-lm.map]
-% \loadmapfile[original-public-plr.map]
-% \loadmapfile[original-public-csr.map]
-% \loadmapfile[texnansi-public-lm.map]
-% \loadmapfile[ec-public-lm.map]
+
+\resetmapfiles
+
+\loadmapfile[original-base.map]
+\loadmapfile[ec-base.map]
+\loadmapfile[8r-base.map]
+\loadmapfile[qx-base.map]
+\loadmapfile[texnansi-base.map]
+\loadmapfile[original-ams-cmr.map]
+\loadmapfile[original-ams-euler.map]
+\loadmapfile[original-public-lm.map]
+\loadmapfile[original-public-plr.map]
+\loadmapfile[original-public-csr.map]
+\loadmapfile[texnansi-public-lm.map]
+\loadmapfile[ec-public-lm.map]
% When you have your own fonts installed, you may want to predefine:
%
@@ -162,4 +162,4 @@
% So far.
-\protect \endinput \ No newline at end of file
+\protect \endinput