diff options
author | Hans Hagen <pragma@wxs.nl> | 2004-10-19 00:00:00 +0200 |
---|---|---|
committer | Hans Hagen <pragma@wxs.nl> | 2004-10-19 00:00:00 +0200 |
commit | fab4c585fb2e32c04b8086db8b08a3478538230c (patch) | |
tree | 43f3014d8d6b9d4adf90aedcdbdacd867f0e19ba | |
parent | 7d1c22dedd29f5cdc98b2f2dad60cd174b1945e0 (diff) | |
download | context-fab4c585fb2e32c04b8086db8b08a3478538230c.tar.gz |
stable 2004.10.19
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 |