summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2003-02-11 00:00:00 +0100
committerHans Hagen <pragma@wxs.nl>2003-02-11 00:00:00 +0100
commit94506ae16cbb3851986ebf900316894301f46667 (patch)
tree139caa4675899b887099882d8254f29805196001
parentd0b8c8944555fc6250ff5af04c01acfe37b93e0d (diff)
downloadcontext-94506ae16cbb3851986ebf900316894301f46667.tar.gz
stable 2003.02.11
-rw-r--r--context/config/texexec.rme6
-rw-r--r--context/perltk/texexec.pl122
-rw-r--r--context/perltk/texexec.rme6
-rw-r--r--context/perltk/texfont.pl24
-rw-r--r--context/perltk/texutil.pl87
-rw-r--r--metapost/context/base/mp-core.mp41
-rw-r--r--metapost/context/base/mp-page.mp18
-rw-r--r--tex/context/base/cont-new.tex168
-rw-r--r--tex/context/base/context.tex2
-rw-r--r--tex/context/base/core-fig.tex138
-rw-r--r--tex/context/base/core-lst.tex64
-rw-r--r--tex/context/base/core-ntb.tex14
-rw-r--r--tex/context/base/core-pos.tex2
-rw-r--r--tex/context/base/core-reg.tex2
-rw-r--r--tex/context/base/core-spa.tex80
-rw-r--r--tex/context/base/core-tbl.tex4
-rw-r--r--tex/context/base/core-uti.tex2
-rw-r--r--tex/context/base/core-ver.tex14
-rw-r--r--tex/context/base/enco-cyr.tex291
-rw-r--r--tex/context/base/enco-def.tex69
-rw-r--r--tex/context/base/enco-ini.tex6
-rw-r--r--tex/context/base/enco-mis.tex62
-rw-r--r--tex/context/base/enco-tbo.tex2
-rw-r--r--tex/context/base/font-ini.tex38
-rw-r--r--tex/context/base/hand-def.tex1
-rw-r--r--tex/context/base/lang-cyr.tex35
-rw-r--r--tex/context/base/lang-lab.tex4
-rw-r--r--tex/context/base/lang-ura.tex4
-rw-r--r--tex/context/base/m-graph.tex14
-rw-r--r--tex/context/base/page-flt.tex44
-rw-r--r--tex/context/base/page-lay.tex32
-rw-r--r--tex/context/base/page-set.tex81
-rw-r--r--tex/context/base/page-sid.tex6
-rw-r--r--tex/context/base/regi-cyp.tex76
-rw-r--r--tex/context/base/regi-cyr.tex131
-rw-r--r--tex/context/base/regi-mac.tex11
-rw-r--r--tex/context/base/regi-win.tex97
-rw-r--r--tex/context/base/spec-tpd.tex2
-rw-r--r--tex/context/base/supp-ali.tex138
-rw-r--r--tex/context/base/supp-fil.tex129
-rw-r--r--tex/context/base/supp-ini.tex1
-rw-r--r--tex/context/base/supp-mps.tex18
-rw-r--r--tex/context/base/syst-gen.tex28
-rw-r--r--tex/context/base/type-enc.tex279
-rw-r--r--tex/context/base/type-ini.tex75
-rw-r--r--tex/context/base/type-pre.tex128
-rw-r--r--tex/context/base/unic-ini.tex2
-rw-r--r--tex/context/base/x-contml.tex17
-rw-r--r--tex/context/base/x-fig-00.tex4
-rw-r--r--tex/context/base/x-fig-01.tex2
-rw-r--r--tex/context/base/x-fig-02.tex2
-rw-r--r--tex/context/base/x-res-04.tex10
-rw-r--r--tex/context/base/xtag-mmc.tex26
53 files changed, 1772 insertions, 887 deletions
diff --git a/context/config/texexec.rme b/context/config/texexec.rme
index 30ecfedf0..0a2735a8e 100644
--- a/context/config/texexec.rme
+++ b/context/config/texexec.rme
@@ -76,10 +76,12 @@ for tetex set TeXExecutable to pdfetex
for tetex set TeXVirginFlag to -ini
for tetex set TeXPassString to -progname=context
for tetex set TeXBatchFlag to -int=batchmode
+for tetex set TeXNonStopFlag to -int=nonstopmode
for tetex set MpToTeXExecutable to mpto
for tetex set MpVirginFlag to -ini
for tetex set MpPassString to -progname=mpost
for tetex set MpBatchFlag to -int=batchmode
+for tetex set MpNonStopFlag to -int=nonstopmode
% These also apply to fpTeX.
@@ -87,10 +89,12 @@ for fptex set TeXExecutable to pdfetex
for fptex set TeXVirginFlag to -ini
for fptex set TeXPassString to -progname=context
for fptex set TeXBatchFlag to -int=batchmode
+for tetex set TeXNonStopFlag to -int=nonstopmode
for fptex set MpToTeXExecutable to mpto
for fptex set MpVirginFlag to -ini
for fptex set MpPassString to -progname=mpost
for fptex set MpBatchFlag to -int=batchmode
+for tetex set MpNonStopFlag to -int=nonstopmode
% MikTeX users probably have to set up some paths too.
@@ -98,10 +102,12 @@ for miktex set TeXExecutable to pdfetex
for miktex set TeXVirginFlag to --initialize
for miktex set TeXPassString to --alias=context
for miktex set TeXBatchFlag to --interaction=batchmode
+for miktex set TeXNonStopFlag to --interaction=nonstopmode
for miktex set MpToTeXExecutable to mptotex
for miktex set MpVirginFlag to --initialize
for miktex set MpPassString to --alias=mpost
for miktex set MpBatchFlag to --interaction=batchmode
+for miktex set MpNonStopFlag to --interaction=nonstopmode
for miktex set TeXFormatFlag to --undump=
for miktex set MpFormatFlag to --undump=
diff --git a/context/perltk/texexec.pl b/context/perltk/texexec.pl
index dd6975041..e0f66d3ff 100644
--- a/context/perltk/texexec.pl
+++ b/context/perltk/texexec.pl
@@ -23,6 +23,7 @@ eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $
# Thanks to Thomas Esser for hooking it into web2c
# Thanks to Taco Hoekwater for suggesting improvements
# Thanks to Wybo Dekker for the advanced help interface
+# Thanks to Fabrice Popineau for windows path trickery
# (I still have to completely understand the help code -)
@@ -35,10 +36,12 @@ use Time::Local ;
use Config ;
use Getopt::Long ;
use Class::Struct ; # needed for help subsystem
-# Data::Dumper ; # needed for help subsystem
+#se Data::Dumper ; # needed for help subsystem
+use FindBin ;
my %ConTeXtInterfaces ; # otherwise problems with strict
my %ResponceInterface ; # since i dunno how to allocate else
+
# my %Help ;
# use strict ;
@@ -85,6 +88,7 @@ my $Convert = '' ;
my $DoMPTeX = 0 ;
my $DoMPXTeX = 0 ;
my $EnterBatchMode = 0 ;
+my $EnterNonStopMode = 0 ;
my $Environments = '' ;
my $Modules = '' ;
my $FastMode = 0 ;
@@ -153,6 +157,7 @@ my $ForceXML = 0 ;
&GetOptions
( "arrange" => \$Arrange ,
"batch" => \$EnterBatchMode ,
+ "nonstop" => \$EnterNonStopMode ,
"color" => \$UseColor ,
"centerpage" => \$CenterPage ,
"convert=s" => \$Convert ,
@@ -265,7 +270,7 @@ if (($LogFile ne '')&&($LogFile =~ /\w+\.log$/io))
*STDOUT = *LOGFILE ;
*STDERR = *LOGFILE }
-my $Program = " TeXExec 3.1 - ConTeXt / PRAGMA ADE 1997-2002" ;
+my $Program = " TeXExec 3.2 - ConTeXt / PRAGMA ADE 1997-2003" ;
print "\n$Program\n\n" ;
@@ -274,11 +279,25 @@ if ($Verbose)
my $pathslash = '/' ; if ($0 =~ /\\/) { $pathslash = "\\" }
my $cur_path = ".$pathslash" ;
-my $own_path = $0 ; $own_path =~ s/texexec(\.pl|\.bat|)//io ;
-my $own_type = $1 ;
+
+# $own_path = $0 ; $own_path =~ s/texexec(\.pl|\.bat|)//io ;
+# $own_type = $1 ;
+# $own_stub = "" ;
+
+# we need to handle window's "Program Files" path (patch by Fabrice P)
+
+my $own_path = "$FindBin::Bin/" ;
+my $own_type = $0 ;
+my $own_quote = ($own_path =~ m/^[^\"].* / ? "\"" : "") ;
my $own_stub = "" ;
-if ($own_type =~ /pl/oi) { $own_stub = "perl " }
+if ($own_type =~ /(\.(pl|bin|exe))$/io)
+ { $own_type = $1 }
+else
+ { $own_type = '' }
+
+if ($own_type =~ /pl/oi)
+ { $own_stub = "perl " }
sub checked_path
{ my $path = shift ;
@@ -325,7 +344,8 @@ my $kpsewhich = '' ;
sub found_ini_file
{ my $suffix = shift ;
- my $IniPath = `$kpsewhich --format="other text files" -progname=context texexec.$suffix` ;
+ # my $IniPath = `$kpsewhich --format="other text files" -progname=context texexec.$suffix` ;
+ my $IniPath = `$own_quote$kpsewhich$own_quote --format="other text files" -progname=context texexec.$suffix` ;
chomp($IniPath) ;
return $IniPath }
@@ -506,7 +526,9 @@ my $TeXScriptsPath = IniValue('TeXScriptsPath' , '' ) ;
my $TeXExecutable = IniValue('TeXExecutable' , 'tex' ) ;
my $TeXVirginFlag = IniValue('TeXVirginFlag' , '-ini' ) ;
my $TeXBatchFlag = IniValue('TeXBatchFlag' , '-int=batchmode' ) ;
+my $TeXNonStopFlag = IniValue('TeXNonStopFlag' , '-int=nonstopmode' ) ;
my $MpBatchFlag = IniValue('MpBatchFlag' , '-int=batchmode' ) ;
+my $MpNonStopFlag = IniValue('MpNonStopFlag' , '-int=nonstopmode' ) ;
my $TeXPassString = IniValue('TeXPassString' , '' ) ;
my $TeXFormatFlag = IniValue('TeXFormatFlag' , '' ) ;
my $MpFormatFlag = IniValue('MpFormatFlag' , '' ) ;
@@ -524,7 +546,7 @@ my $TcXPath = IniValue('TcXPath' , '' ) ;
if (($Verbose)&&($kpsewhich ne ''))
{ print "\n" ;
- my $CnfFile = `$kpsewhich -progname=context texmf.cnf` ;
+ my $CnfFile = `$own_quote$kpsewhich$own_quote -progname=context texmf.cnf` ;
chomp $CnfFile ;
print " applications will use : $CnfFile\n" }
@@ -624,6 +646,7 @@ SetInterfaces ( "xx" , "experimental" , "english" ) ;
# $Help{ARRANGE} = " --arrange process and arrange\n" ;
# $Help{BATCH} = " --batch run in batch mode (don't pause)\n" ;
+# $Help{NONSTOP} = " --nonstop run in non stop mode (don't pause)\n" ;
# $Help{CENTERPAGE} = " --centerpage center the page on the paper\n" ;
# $Help{COLOR} = " --color enable color (when not yet enabled)\n" ;
# $Help{USEMODULE} = " --usemodule load some modules first\n" ;
@@ -777,6 +800,7 @@ SetInterfaces ( "xx" , "experimental" , "english" ) ;
# else
# { print $Help{ARRANGE} ;
# print $Help{BATCH} ;
+# print $Help{NONSTOP} ;
# print $Help{CENTERPAGE} ;
# print $Help{COLOR} ;
# # print $Help{CONVERT} ;
@@ -984,13 +1008,17 @@ sub MPJobName
sub RunPerlScript
{ my ($ScriptName, $Options) = @_ ;
+ my $cmd = '' ;
if ($dosish)
- { if (-e "$own_path$ScriptName$own_type")
- { system ("$own_stub$own_path$ScriptName$own_type $Options") }
+ { if (-e "own_path$ScriptName$own_type")
+ { $cmd = "$own_stub$own_quote$own_path$ScriptName$own_type$own_quote $Options" }
elsif (-e "$TeXScriptsPath$ScriptName$own_type")
- { system ("$own_stub$TeXScriptsPath$ScriptName$own_type $Options") } }
+ { $cmd = "$own_stub$own_quote$TeXScriptsPath$ScriptName$own_type$own_quote $Options" }
+ else
+ { $cmd = "" } }
else
- { system ("$ScriptName $Options") } }
+ { $cmd = "$ScriptName $Options" }
+ unless ($cmd eq "") { system($cmd) } }
sub ConvertXMLFile
{ my $FileName = shift ; RunPerlScript($SGMLtoTeX, "$FileName.xml") }
@@ -1038,13 +1066,16 @@ sub MakeOptionFile
{ print OPT "\\setuplanguage[$MainLanguage]\n" }
# can best become : \use...[mik] / [web]
if ($TeXShell =~ /MikTeX/io)
- { print OPT "\\def\\MPOSTbatchswitch \{$MpBatchFlag\}" ;
- print OPT "\\def\\MPOSTformatswitch\{$MpPassString $MpFormatFlag\}" }
+ { print OPT "\\def\\MPOSTbatchswitch \{$MpBatchFlag\}" ;
+ print OPT "\\def\\MPOSTnonstopswitch \{$MpNonStopFlag\}" ;
+ print OPT "\\def\\MPOSTformatswitch \{$MpPassString $MpFormatFlag\}" }
#
if ($FullFormat ne 'standard')
{ print OPT "\\setupoutput[$FullFormat]\n" }
if ($EnterBatchMode)
{ print OPT "\\batchmode\n" }
+ if ($EnterNonStopMode)
+ { print OPT "\\nonstopmode\n" }
if ($UseColor)
{ print OPT "\\setupcolors[\\c!status=\\v!start]\n" }
if ($NoMPMode||$NoMPRun||$AutoMPRun)
@@ -1318,11 +1349,13 @@ sub RunTeX
($Format =~ /^cont/) &&
($TeXPassString !~ /progname/io))
{ $TeXProgNameFlag = "-progname=context" } }
- $cmd = "$TeXProgramPath$TeXExecutable $TeXProgNameFlag " .
+ $cmd = "$own_quote$TeXProgramPath$TeXExecutable$own_quote $TeXProgNameFlag " .
"$TeXPassString $PassOn " ;
#$cmd .= " -kpathsea-debug=62536 " ;
if ($EnterBatchMode)
{ $cmd .= "$TeXBatchFlag " }
+ if ($EnterNonStopMode)
+ { $cmd .= "$TeXNonStopFlag " }
if ($TeXTranslation ne '')
{ $cmd .= "-translate-file=$TeXTranslation " }
$cmd .= "$TeXFormatFlag$TeXFormatPath$Format $JobName.$JobSuffix" ;
@@ -1401,7 +1434,8 @@ sub RunTeXMP
if ($MPJobName ne "")
{ if (open(MP, "$MPJobName"))
{ $_ = <MP> ; chomp ; # we should handle the prefix as well
-if (/^\%\s+translate.*?\=([\w\d\-]+)/io) { $TeXTranslation = $1 }
+ if (/^\%\s+translate.*?\=([\w\d\-]+)/io)
+ { $TeXTranslation = $1 }
if (/collected graphics of job \"(.+)\"/i)
{ $MPFoundJobName = $1 }
close(MP) ;
@@ -1411,10 +1445,13 @@ if (/^\%\s+translate.*?\=([\w\d\-]+)/io) { $TeXTranslation = $1 }
{ print " generating graphics : metaposting $MPJobName\n" ;
my $ForceMpy = "" ;
if ($MpyForce) { $ForceMpy = "--mpyforce" }
-my $ForceTCX = '' ;
-if ($TeXTranslation ne '') { $ForceTCX = "--translate=$TeXTranslation " }
+ my $ForceTCX = '' ;
+ if ($TeXTranslation ne '')
+ { $ForceTCX = "--translate=$TeXTranslation " }
if ($EnterBatchMode)
{ RunPerlScript ($TeXExec,"$ForceTCX $ForceMpy --mptex --nomp --batch $MPJobName") }
+ elsif ($EnterNonStopMode)
+ { RunPerlScript ($TeXExec,"$ForceTCX $ForceMpy --mptex --nomp --nonstop $MPJobName") }
else
{ RunPerlScript ($TeXExec,"$ForceTCX $ForceMpy --mptex --nomp $MPJobName") } }
else
@@ -1505,20 +1542,21 @@ sub RunConTeXtFile
if ($TeXTranslation ne '')
{ print " translation : $TeXTranslation\n" }
my $Options = '' ;
- if ($FastMode) { $Options .= " fast" }
- if ($FinalMode) { $Options .= " final" }
- if ($Verbose) { $Options .= " verbose" }
- if ($TypesetListing) { $Options .= " listing" }
- if ($TypesetModule) { $Options .= " module" }
- if ($TypesetFigures) { $Options .= " figures" }
- if ($MakeFormats) { $Options .= " make" }
- if ($RunOnce) { $Options .= " once" }
- if ($UseColor) { $Options .= " color" }
- if ($EnterBatchMode) { $Options .= " batch" }
- if ($NoMPMode) { $Options .= " nomp" }
- if ($CenterPage) { $Options .= " center" }
- if ($Arrange) { $Options .= " arrange" }
- if ($NoArrange) { $Options .= " no-arrange" }
+ if ($FastMode) { $Options .= " fast" }
+ if ($FinalMode) { $Options .= " final" }
+ if ($Verbose) { $Options .= " verbose" }
+ if ($TypesetListing) { $Options .= " listing" }
+ if ($TypesetModule) { $Options .= " module" }
+ if ($TypesetFigures) { $Options .= " figures" }
+ if ($MakeFormats) { $Options .= " make" }
+ if ($RunOnce) { $Options .= " once" }
+ if ($UseColor) { $Options .= " color" }
+ if ($EnterBatchMode) { $Options .= " batch" }
+ if ($EnterNonStopMode) { $Options .= " nonstop" }
+ if ($NoMPMode) { $Options .= " nomp" }
+ if ($CenterPage) { $Options .= " center" }
+ if ($Arrange) { $Options .= " arrange" }
+ if ($NoArrange) { $Options .= " no-arrange" }
if ($Options)
{ print " options :$Options\n" }
if ($ConTeXtModes)
@@ -1913,7 +1951,7 @@ sub RunCombine
sub LocatedFormatPath
{ my $FormatPath = shift ;
if (($FormatPath eq '')&&($kpsewhich ne ''))
- { $FormatPath = `$kpsewhich --show-path=fmt` ;
+ { $FormatPath = `$own_quote$kpsewhich$own_quote --show-path=fmt` ;
chomp $FormatPath ;
$FormatPath =~ s/\.+\;//o ; # should be a sub
$FormatPath =~ s/\;.*//o ;
@@ -1931,7 +1969,7 @@ sub RunOneFormat
my @TeXFormatPath ;
my $TeXPrefix = "" ;
if (($fmtutil ne "")&&($FormatName !~ /metafun|mptopdf/io))
- { my $cmd = "$fmtutil --byfmt $FormatName" ;
+ { my $cmd = "$own_quote$fmtutil$own_quote --byfmt $FormatName" ;
if ($Verbose) { print "\n$cmd\n\n" }
MakeUserFile ; # this works only when the path is kept
MakeResponseFile ;
@@ -1993,7 +2031,7 @@ sub RunMpFormat
my $CurrentPath = cwd() ;
$MpFormatPath = LocatedFormatPath($MpFormatPath) ;
if ($MpFormatPath ne '') { chdir "$MpFormatPath" }
- my $cmd = "$MpExecutable $MpVirginFlag $MpPassString $MpFormat" ;
+ my $cmd = "$own_quote$MpExecutable$own_quote $MpVirginFlag $MpPassString $MpFormat" ;
if ($Verbose) { print "\n$cmd\n\n" }
system ( $cmd ) ;
if (($MpFormatPath ne '')&&($CurrentPath ne ''))
@@ -2139,7 +2177,7 @@ sub doRunMP ###########
close(MP) }
if ($TexFound)
{ print " metapost to tex : $MpName\n" ;
- $Problems = system ("$MpToTeXExecutable $MpFile > $MpTex" ) ;
+ $Problems = system ("$own_quote$MpToTeXExecutable$own_quote $MpFile > $MpTex" ) ;
if (-e $MpTex && !$Problems)
{ open (TMP,">>$MpTex") ;
print TMP "\\end\{document\}\n" ; # to be sure
@@ -2151,16 +2189,18 @@ sub doRunMP ###########
{ RunSomeTeXFile ($MpTmp, "tex") }
if (-e $MpDvi && !$Problems)
{ print " dvi to metapost : $MpName\n" ;
- $Problems = system ("$DviToMpExecutable $MpDvi $MpName.mpx") }
+ $Problems = system ("$own_quote$DviToMpExecutable$own_quote $MpDvi $MpName.mpx") }
# $Problems = system ("dvicopy $MpDvi texexec.dvi") ;
- # $Problems = system ("$DviToMpExecutable texexec.dvi $MpName.mpx") }
+ # $Problems = system ("$own_quote$DviToMpExecutable$own_quote texexec.dvi $MpName.mpx") }
unlink $MpBck ;
rename $MpTex, $MpBck ;
unlink $MpDvi } }
print " metapost : $MpName\n" ;
- my $cmd = $MpExecutable ;
+ my $cmd = "$own_quote$MpExecutable$own_quote" ;
if ($EnterBatchMode)
{ $cmd .= " $MpBatchFlag " }
+ if ($EnterNonStopMode)
+ { $cmd .= " $MpNonStopFlag " }
if (($MpFormat ne '')&&($MpFormat !~ /(plain|mpost)/oi))
{ print " format : $MpFormat\n" ;
$cmd .= " $MpPassString $MpFormatFlag$MpFormat " }
@@ -2186,7 +2226,7 @@ sub RunMPX
{ local $/ = "\0777" ; $_ = <MP> ; close(MP) ;
if (/(btex|etex|verbatimtex)/o)
{ print " generating mpx file : $MpName\n" ;
- $Problems = system ("$MpToTeXExecutable $MpFile > $MpTex" ) ;
+ $Problems = system ("$own_quote$MpToTeXExecutable$own_quote $MpFile > $MpTex" ) ;
if (-e $MpTex && !$Problems)
{ open (TMP,">>$MpTex") ;
print TMP "\\end\n" ; # to be sure
@@ -2196,7 +2236,7 @@ sub RunMPX
else
{ RunSomeTeXFile ($MpTmp, "tex") }
if (-e $MpDvi && !$Problems)
- { $Problems = system ("$DviToMpExecutable $MpDvi $MpName.mpx") }
+ { $Problems = system ("$own_quote$DviToMpExecutable$own_quote $MpDvi $MpName.mpx") }
unlink $MpTex ;
unlink $MpDvi } } } }
@@ -2322,6 +2362,8 @@ arrange process and arrange
-----------
batch run in batch mode (don't pause)
-----------
+nonstop run in non stop mode (don't pause)
+-----------
centerpage center the page on the paper
-----------
color enable color (when not yet enabled)
diff --git a/context/perltk/texexec.rme b/context/perltk/texexec.rme
index 30ecfedf0..0a2735a8e 100644
--- a/context/perltk/texexec.rme
+++ b/context/perltk/texexec.rme
@@ -76,10 +76,12 @@ for tetex set TeXExecutable to pdfetex
for tetex set TeXVirginFlag to -ini
for tetex set TeXPassString to -progname=context
for tetex set TeXBatchFlag to -int=batchmode
+for tetex set TeXNonStopFlag to -int=nonstopmode
for tetex set MpToTeXExecutable to mpto
for tetex set MpVirginFlag to -ini
for tetex set MpPassString to -progname=mpost
for tetex set MpBatchFlag to -int=batchmode
+for tetex set MpNonStopFlag to -int=nonstopmode
% These also apply to fpTeX.
@@ -87,10 +89,12 @@ for fptex set TeXExecutable to pdfetex
for fptex set TeXVirginFlag to -ini
for fptex set TeXPassString to -progname=context
for fptex set TeXBatchFlag to -int=batchmode
+for tetex set TeXNonStopFlag to -int=nonstopmode
for fptex set MpToTeXExecutable to mpto
for fptex set MpVirginFlag to -ini
for fptex set MpPassString to -progname=mpost
for fptex set MpBatchFlag to -int=batchmode
+for tetex set MpNonStopFlag to -int=nonstopmode
% MikTeX users probably have to set up some paths too.
@@ -98,10 +102,12 @@ for miktex set TeXExecutable to pdfetex
for miktex set TeXVirginFlag to --initialize
for miktex set TeXPassString to --alias=context
for miktex set TeXBatchFlag to --interaction=batchmode
+for miktex set TeXNonStopFlag to --interaction=nonstopmode
for miktex set MpToTeXExecutable to mptotex
for miktex set MpVirginFlag to --initialize
for miktex set MpPassString to --alias=mpost
for miktex set MpBatchFlag to --interaction=batchmode
+for miktex set MpNonStopFlag to --interaction=nonstopmode
for miktex set TeXFormatFlag to --undump=
for miktex set MpFormatFlag to --undump=
diff --git a/context/perltk/texfont.pl b/context/perltk/texfont.pl
index 51db205b0..ed6286945 100644
--- a/context/perltk/texfont.pl
+++ b/context/perltk/texfont.pl
@@ -32,6 +32,7 @@ use strict ;
my $savedoptions = join (" ",@ARGV) ;
use Config ;
+use FindBin ;
use File::Copy ;
use Getopt::Long ;
@@ -49,7 +50,7 @@ my $installpath = "" ; my @searchpaths = () ;
if (defined($ENV{TEXMFLOCAL})) { $installpath = "TEXMFLOCAL" }
if (defined($ENV{TEXMFFONTS})) { $installpath = "TEXMFFONTS" }
-if ($installpath eq "") { $installpath = "TEXMFFONTS" } # redundant
+# ($installpath eq "") { $installpath = "TEXMFFONTS" } # redundant
if ($installpath eq "") { $installpath = "TEXMFLOCAL" } # redundant
@searchpaths = ('TEXMFFONTS','TEXMFLOCAL','TEXMFMAIN') ;
@@ -117,6 +118,15 @@ my $width = "" ;
"width=s" => \$width,
"expert" => \$expert) ;
+# for/from Fabrice:
+
+my $own_path = "$FindBin::Bin/" ;
+$FindBin::RealScript =~ m/([^\.]*)(\.pl|\.bat|\.exe|)/io ;
+my $own_name = $1 ;
+my $own_type = $2 ;
+my $own_stub = "" ;
+if ($own_type =~ /pl/oi) { $own_stub = "perl " }
+
# so we can use both combined
if (!$novirtual) { $virtual = 1 }
@@ -139,7 +149,7 @@ sub error
# The banner.
print "\n" ;
-report ("TeXFont 1.6 - ConTeXt / PRAGMA ADE 2000-2002") ;
+report ("TeXFont 1.7 - ConTeXt / PRAGMA ADE 2000-2003") ;
print "\n" ;
# Handy for scripts: one can provide a preferred path, if it
@@ -245,7 +255,7 @@ if (($batch)||($ARGV[0] =~ /.+\.dat$/io))
{ if ($batchfile !~ /\.dat$/io) { $batchfile .= ".dat" } }
unless (-f $batchfile)
{ report ("trying to locate : $batchfile") ;
- $batchfile = `kpsewhich -progname=context --format="other text file" $batchfile` ;
+ $batchfile = `kpsewhich -progname=context --format="other text files" $batchfile` ;
chomp $batchfile }
error ("unknown batch file $batchfile") unless -e $batchfile ;
report ("processing batch file : $batchfile") ;
@@ -268,7 +278,8 @@ if (($batch)||($ARGV[0] =~ /.+\.dat$/io))
s/\s+/ /gio ;
s/(--en.*\=)\?/$1$encoding/io ;
report ("batch line : $_") ;
- system ("perl $0 --fontroot=$fontroot $_") }
+ # system ("perl $0 --fontroot=$fontroot $_") }
+ system ("$own_stub$own_path$own_name$own_type --fontroot=$fontroot $_") }
close (BAT) }
exit }
@@ -675,8 +686,11 @@ foreach my $file (@files)
else
{ $thename = $usename ; $theencoding = " $encoding.enc" }
# quit rest if no type 1 file
+ my $pfb_sourcepath = $sourcepath ;
+ $pfb_sourcepath =~ s@/afm/@/type1/@ ;
unless ((-e "$pfbpath/$fontname.pfb")||
- (-e "$sourcepath/$fontname.pfb"))
+ (-e "$pfb_sourcepath/$fontname.pfb")||
+ (-e "$sourcepath/$fontname.pfb"))
{ if ($tex) { $report .= "missing file: \\type \{$fontname.pfb\}\n" }
report ("missing pfb file : $fontname.pfb") }
# now add entry to map
diff --git a/context/perltk/texutil.pl b/context/perltk/texutil.pl
index f3fb75514..3eb529122 100644
--- a/context/perltk/texutil.pl
+++ b/context/perltk/texutil.pl
@@ -23,11 +23,13 @@ eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $
# Thanks to Taco Hoekwater for making the file -w proof
# Thanks to Alex Knowles and friends for the right JPG specs
# Thanks to Sebastian Rahtz for the eps to PDF method
+# Thanks to Fabrice Popineau for windows bin code
# undocumented:
#
-# --analyze file.pdf : reports some statistics
-# --purge [jobname] : removes temporary files
+# --analyze file.pdf : reports some statistics
+# --purge [jobname] : removes temporary files
+# --purgeall [jobname] : removes all temporary files
#D This is \TEXUTIL, a utility program (script) to be used
#D alongside the \CONTEXT\ macro package. This \PERL\ script is
@@ -38,7 +40,7 @@ eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $
#D binary version, like scanning illustrations other than \EPS.
#D I would suggest to keep an eye on the version number:
-$Program = "TeXUtil 7.4 - ConTeXt / PRAGMA ADE 1992-2002" ;
+$Program = "TeXUtil 7.5 - ConTeXt / PRAGMA ADE 1992-2003" ;
#D By the way, this is my first \PERL\ script, which means
#D that it will be improved as soon as I find new and/or more
@@ -73,6 +75,7 @@ $Program = "TeXUtil 7.4 - ConTeXt / PRAGMA ADE 1992-2002" ;
#D \PRAGMA\ environment system.
use Getopt::Long ;
+use FindBin ;
#D We don't want error messages and accept partial switches,
#D which saves users some typing.
@@ -88,7 +91,7 @@ $UserInterface = "en" ;
$UnknownOptions = 0 ;
$TcXPath = '' ;
-#D We need this for calling GS.
+#D We need this for calling GS.
use Config ;
@@ -119,6 +122,7 @@ my $dosish = ($Config{'osname'} =~ /^(ms)?dos|^os\/2|^(ms|cyg)win/i) ;
"criterium=f" =>\$ProcessCriterium,
"unknown" =>\$ProcessUnknown,
"purge" => \$PurgeFiles,
+ "purgeall" => \$PurgeAllFiles,
"analyze" => \$AnalyzeFile,
"help" => \$ProcessHelp,
"silent" => \$ProcessSilent,
@@ -160,13 +164,13 @@ sub CloseTerminal
$InputFile = "@ARGV" ; # niet waterdicht
sub CompFileName
- { my ($a,$b) = @_ ;
- my ($fa,$sa) = split(/\./,$a) ;
- my ($fb,$sb) = split(/\./,$b) ;
- if (($sa =~ /^\d+$/o)&&($sb =~ /^\d+$/o))
- { $a = $fa . "." . sprintf("%10d",$sa) ; $a =~ s/\s/0/o ;
- $b = $fb . "." . sprintf("%10d",$sb) ; $b =~ s/\s/0/o }
- return (lc ($a) cmp lc ($b)) }
+ { my ($a,$b) = @_ ;
+ my ($fa,$sa) = split(/\./,$a) ;
+ my ($fb,$sb) = split(/\./,$b) ;
+ if (($sa =~ /^\d+$/o)&&($sb =~ /^\d+$/o))
+ { $a = $fa . "." . sprintf("%10d",$sa) ; $a =~ s/\s/0/o ;
+ $b = $fb . "." . sprintf("%10d",$sb) ; $b =~ s/\s/0/o }
+ return (lc ($a) cmp lc ($b)) }
sub CheckInputFiles
{ @UserSuppliedFiles = glob $_[0] ;
@@ -602,7 +606,7 @@ if ($UserInterface eq "nl")
" --quotes : quotes converteren \n" .
" --tcxpath : tcx filter pad \n" .
" \n" .
-" --purge tijdelijke (klad) files verwijderen \n" .
+" --purge(all) tijdelijke (klad) files verwijderen \n" .
" \n" .
" --documents documentatie file genereren / tex->ted \n" .
" --sources broncode file genereren / tex->tes \n" .
@@ -633,7 +637,7 @@ elsif ($UserInterface eq "de")
" --quotes : Konvertiere akzentuierte Buchstaben \n" .
" --tcxpath : tcx Filter Path \n" .
" \n" .
-" --purge entferne temporaere ConTeXt-Dateien \n" .
+" --purge(all) entferne temporaere ConTeXt-Dateien \n" .
" \n" .
" --documents Erstelle Dokumentationsdatei / tex->ted \n" .
" --sources Erstelle reine Quelltextdateien / tex->tes \n" .
@@ -664,7 +668,7 @@ elsif ($UserInterface eq "it")
" --quotes : converti caratteri accentati \n" .
" --tcxpath : percorso del filtro tcx \n" .
" \n" .
-" --purge rimuovi i file temporanei ConTeXt \n" .
+" --purge(all) rimuovi i file temporanei ConTeXt \n" .
" \n" .
" --documents genera file di documentazione / tex->ted \n" .
" --sources genera solo sorgente / tex->tes \n" .
@@ -695,7 +699,7 @@ else
" --quotes : convert quotes characters \n" .
" --tcxpath : tcx filter path \n" .
" \n" .
-" --purge clean up temporary context files \n" .
+" --purge(all) clean up temporary context files \n" .
" \n" .
" --documents generate documentation file / tex->ted \n" .
" --sources generate source only file / tex->tes \n" .
@@ -828,7 +832,7 @@ sub HandleKey
$STR[$SortN] = $str ;
$CHR[$SortN] = $chr ;
$MAP[$SortN] = $map ;
-#print "$chr$map = $alf\n" ;
+#print "$chr$map = $alf\n" ;
# $ALF{"$chr$map"} = $alf }
$ALF{"$map"} = $alf }
@@ -843,7 +847,7 @@ sub SanitizedString
{ my $s = $STR[$i] ;
my $c = $CHR[$i] ;
my $m = $MAP[$i] ;
- # print "[$i $s $c $m]\n" ;
+ # print "[$i $s $c $m]\n" ;
$string =~ s/($s)/$c/ge ;
$copied =~ s/($s)/$m/ge }
$string .= "\x00";
@@ -958,7 +962,7 @@ my $NOfPositionsFound = 0 ;
my $TotalNOfPositions = 0 ;
my $TotalNOfMPgraphics = 0 ;
-my $SectionSeparator = ":" ;
+my $SectionSeparator = ":" ;
sub InitializeCommands
{ print TUO "%\n" . "% $Program / Commands\n" . "%\n" ;
@@ -973,9 +977,9 @@ sub HandleCommand
{ $TotalNOfPositions = $1 }
elsif ($RestOfLine =~ /^initializevariable\\totalnofMPgraphics\{(.*)\}/i)
{ $TotalNOfMPgraphics = $1 }
-# todo: reg how to
-# elsif ($RestOfLine =~ /^thisissectionseparator\{(.*)\}/o)
-# { $SectionSeparator = $1 }
+# todo: reg how to
+# elsif ($RestOfLine =~ /^thisissectionseparator\{(.*)\}/o)
+# { $SectionSeparator = $1 }
print TUO "\\$RestOfLine\n" }
sub FlushCommands
@@ -1022,13 +1026,14 @@ sub RunExtraPrograms
my $pm_path ;
BEGIN
- { # $pm_path = `kpsewhich --format="other text files" --progname=context texutil.pl` ;
- # chomp($pm_path) ;
+ { ## $pm_path = `kpsewhich --format="other text files" --progname=context texutil.pl` ;
+ ## chomp($pm_path) ;
# $pm_path =~ s/texutil\.pl.*// }
- $pm_path = $0 ;
- $pm_path =~ s/\\/\//o ;
+ # $pm_path = $0 ;
+ # $pm_path =~ s/\\/\//o ;
# $pm_path =~ s/texutil\.pl.*//io ;
- $pm_path =~ s/(.*)texutil.*?$/$1/i ;
+ ## $pm_path =~ s/(.*)texutil.*?$/$1/i ;
+ $pm_path = "$FindBin::Bin/" ;
if ($pm_path eq "") { $pm_path = "./" } }
use lib $pm_path ;
@@ -1191,7 +1196,7 @@ $RegStat{"e"} = 2 ; # end up between from and to
$RegStat{"t"} = 3 ;
$RegStat{"s"} = 4 ;
-my $RegSep = "$SectionSeparator$SectionSeparator" ;
+my $RegSep = "$SectionSeparator$SectionSeparator" ;
sub HandleRegister # the } { makes sure that local {} is ok
{ ($SecondTag, $RestOfLine) = split(/ /, $RestOfLine, 2) ;
@@ -1314,7 +1319,7 @@ sub HandleRegister # the } { makes sure that local {} is ok
#D \haalbuffer After being sorted, these entries are
#D turned into something \TEX\ using:
-$CollapseEntries = 0 ;
+$CollapseEntries = 0 ;
$RegisterEntry[0] = ("") ;
@@ -1323,11 +1328,11 @@ sub How
sub FlushSavedLine
{ if (($CollapseEntries)&&($SavedFrom ne ""))
- { if ($SavedTo ne "")
+ { if ($SavedTo ne "")
{ print TUO "\\registerfrom$SavedFrom" ;
- print TUO "\\registerto$SavedTo" }
+ print TUO "\\registerto$SavedTo" }
else
- { print TUO "\\registerpage$SavedFrom" } }
+ { print TUO "\\registerpage$SavedFrom" } }
$SavedFrom = "" ;
$SavedTo = "" ;
$SavedEntry = "" }
@@ -1350,7 +1355,7 @@ sub FlushRegisters
$SavedFrom = "" ;
$SavedTo = "" ;
- $SavedEntry = "" ;
+ $SavedEntry = "" ;
for ($n=1 ; $n<=$NOfEntries ; ++$n)
{ ($Class, $LCKey, $Key, $Entry, $TextHow, $RegisterState,
@@ -1415,8 +1420,8 @@ sub FlushRegisters
$LastRealPage = $RealPage }
elsif (($Copied) ||
! (($LastPage eq $Page) and ($LastRealPage eq $RealPage)))
- { # print "$LastPage / $Page // $LastRealPage / $RealPage\n" ;
- $NextEntry = "{$Class}{$PreviousA}{$PreviousB}{$PreviousC}{$PageHow,$TextHow}" ;
+ { # print "$LastPage / $Page // $LastRealPage / $RealPage\n" ;
+ $NextEntry = "{$Class}{$PreviousA}{$PreviousB}{$PreviousC}{$PageHow,$TextHow}" ;
$SavedLine = "{$Class}{$PageHow,$TextHow}{$Location}{$Page}{$RealPage}\n" ;
if ($RegisterState eq $RegStat{"f"})
{ FlushSavedLine ;
@@ -1425,15 +1430,15 @@ sub FlushRegisters
{ FlushSavedLine ;
print TUO "\\registerto$SavedLine" }
else
- { if ($CollapseEntries)
+ { if ($CollapseEntries)
{ if ($SavedEntry ne $NextEntry)
{ $SavedFrom = $SavedLine }
else
{ $SavedTo = $SavedLine }
- $SavedEntry = $NextEntry }
- else
+ $SavedEntry = $NextEntry }
+ else
{ print TUO "\\registerpage$SavedLine" }
- }
+ }
++$NOfSanePages ;
$LastPage = $Page ;
$LastRealPage = $RealPage } }
@@ -2017,7 +2022,7 @@ sub ConvertEpsToEps
{ my ( $SuppliedFileName , $LLX, $LLY, $URX, $URY ) = @_ ;
($FileName, $FileSuffix) = SplitFileName ($SuppliedFileName) ;
if ($ProcessEpsToPdf)
- { if ($dosish) { $gs = "gswin32c" } else { $gs = "gs" }
+ { if ($dosish) { $gs = "gswin32c" } else { $gs = "gs" }
unlink "$FileName.pdf" ;
$GSCommandLine = "-q " .
"-sDEVICE=pdfwrite " .
@@ -2680,6 +2685,9 @@ my @texonlysuffixes =
my @texnonesuffixes =
("tuo","tub","top") ;
+if ($PurgeAllFiles)
+ { push @forsuresuffixes, @texnonesuffixes ; @texnonesuffixes = [] }
+
sub PurgeFiles # no my in foreach
{ my $pattern = $ARGV[0] ; my $strippedname ;
if ($pattern eq '')
@@ -2766,6 +2774,7 @@ elsif ($ProcessInfos ) { HandleEditorCues }
elsif ($ProcessFigures ) { HandleFigures }
elsif ($ProcessLogFile ) { HandleLogFile }
elsif ($PurgeFiles ) { PurgeFiles }
+elsif ($PurgeAllFiles ) { PurgeFiles }
elsif ($AnalyzeFile ) { AnalyzeFile }
elsif ($ProcessHelp ) { ShowHelpInfo } # redundant
else { ShowHelpInfo }
diff --git a/metapost/context/base/mp-core.mp b/metapost/context/base/mp-core.mp
index 5f1341a69..ad90766f4 100644
--- a/metapost/context/base/mp-core.mp
+++ b/metapost/context/base/mp-core.mp
@@ -336,10 +336,12 @@ enddef ;
boolean compensate_multi_par_topskip ;
boolean span_multi_column_pars ;
boolean auto_multi_par_hsize ;
+boolean enable_multi_par_fallback ;
compensate_multi_par_topskip := true ;
span_multi_column_pars := false ;
auto_multi_par_hsize := false ; % true ;
+enable_multi_par_fallback := true ;
vardef multi_par_at_top (expr i) =
(round (ypart ulcorner multipars[i]) = round (ypart ulcorner
@@ -715,6 +717,27 @@ fi ;
% first loop
+ if enable_multi_par_fallback and
+ (nxy[fpos]=RealPageNumber) and
+ (nxy[tpos]=RealPageNumber) and not
+ (InsideSomeTextArea(lxy[fpos]) and
+ InsideSomeTextArea(rxy[tpos])) :
+
+ % fallback
+
+ multipar :=
+
+ llxy[fpos] --
+ lrxy[tpos] --
+ urxy[tpos] --
+ ulxy[fpos] -- cycle ;
+
+ save_multipar (i,1,multipar) ;
+
+ else :
+
+ % normal
+
for i=1 upto NOfTextAreas :
TopSkipCorrection := 0 ;
@@ -725,6 +748,7 @@ fi ;
if (nxy[fpos]=RealPageNumber) and (InsideTextArea(i,par_start_pos)) :
+
% first one in chain
ii := i ;
@@ -839,19 +863,6 @@ fi ;
fi ;
- elseif (nxy[tpos]=RealPageNumber) :
-
- % outside text area, fall back / test on: pascal werkboek
-
- multipar :=
-
- llxy[fpos] --
- lrxy[tpos] --
- urxy[tpos] --
- ulxy[fpos] -- cycle ;
-
- save_multipar (i,1,multipar) ;
-
else :
multipar := if obey_multi_par_hang :
@@ -949,6 +960,10 @@ snapped_multi_pos(ulxy[tpos]) --
endfor ;
+ % end of normal/fallback
+
+fi ;
+
if span_multi_column_pars :
endgroup ;
fi ;
diff --git a/metapost/context/base/mp-page.mp b/metapost/context/base/mp-page.mp
index 032844ce3..05a433395 100644
--- a/metapost/context/base/mp-page.mp
+++ b/metapost/context/base/mp-page.mp
@@ -119,6 +119,24 @@ vardef InsideSavedTextArea (expr _i_, _xy_) =
(round(ypart _xy_) <= round(ypart urcorner SavedTextAreas[_i_])) )
enddef ;
+vardef InsideSomeTextArea(expr _xy_) =
+ save ok ; boolean ok ; ok := false ;
+ for i := 1 upto NOfTextAreas :
+ if InsideTextArea(i,_xy_) : ok := true ; fi ;
+ exitif ok ;
+ endfor ;
+ ok
+enddef ;
+
+vardef InsideSomeSavedTextArea(expr _xy_) =
+ save ok ; boolean ok ; ok := false ;
+ for i := 1 upto NOfSavedTextAreas :
+ if InsideSavedTextArea(i,_xy_) : ok := true ; fi ;
+ exitif ok ;
+ endfor ;
+ ok
+enddef ;
+
vardef TextAreaX (expr x) =
numeric _TextAreaX_ ; _TextAreaX_ := 0 ;
for i := 1 upto NOfTextAreas :
diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex
index da32e7dbe..3b3b6884a 100644
--- a/tex/context/base/cont-new.tex
+++ b/tex/context/base/cont-new.tex
@@ -15,17 +15,147 @@
% todo achtergronden in kolommen
%D This file is loaded at runtime, thereby providing an
-%D excellent place for hacks and new features.
+%D excellent place for hacks, patches, extensions and new
+%D features.
\unprotect
\writestatus{\m!systems}{beware: some patches loaded from cont-new.tex!}
+\def\dodocomplexplaatsblok[#1][#2][#3]#4%
+ {\flushnotes
+ \ifsomefloatwaiting
+ % this was \checkwaitingfloats spread all over
+ \doifinsetelse\v!altijd{#2}
+ {\showmessage\m!floatblocks5\empty}
+ {\doifcommonelse
+ {#2}
+ {\v!tekst,\v!naast,% \v!pagina,
+ \v!links,\v!rechts,\v!inlinker,\v!inrechter,%
+ \v!inmarge}
+ {\doflushfloats}
+ {}}%
+ % but which should be done before using box \floatbox
+ \fi
+ \ifmargeblokken % waarschijnlijk gebroken ! ! ! !
+ \doifinset\v!marge{#2}
+ {\bgroup\everypar{\egroup\the\everypar}%
+ \hsize\@@mbbreedte}%
+ \fi
+ \global\insidefloattrue
+ \begingroup % **
+ \the\everyinsidefloat
+ \let\@@extrafloat\empty
+ \presetmorefloatvariables{#2}%
+ \dowithnextboxcontent % better a \the\everyfloattoks
+ {\setlocalfloathsize
+ \fuzzysnappingfalse
+ \postponefootnotes} % new
+ {\xdocompletefloat{#1}{#3}{#1}{#2}{#1}{#4}% ** not yet done
+ % we need to carry over the par because of side floats
+ \doifnotinset\v!tekst{#2}{\carryoverpar\endgroup}%
+ \ifparfloat\blanko[\v!blokkeer]\fi}%
+ \vbox}
+
+
+
+\collectMPpositiongraphicstrue
+
+% adapted
+
+\def\positionoverlay#1% the test prevents too many redundant positions
+ {\ifpositioning % in (not used) text* position layers
+ \vbox to \overlayheight
+ {\doifpositionactionelse{#1::\MPanchoridentifier}%
+ {\edef\MPanchorid{#1::\MPanchoridentifier:\MPanchornumber}%
+ \edef\MPanchor##1{\MPpos{\MPanchorid}}%
+ \the\everyinsertpositionaction
+ \copyposition{#1::\MPanchoridentifier}{#1::\MPanchoridentifier:\MPanchornumber}%
+ \hpos
+ {#1::\MPanchoridentifier:\MPanchornumber}%
+ % this is ok
+ %{\hbox to \overlaywidth{\dopositionaction{#1::\MPanchoridentifier}\hss}}}%
+ % but this one prevents cyclic runs due to
+ % rounding errors
+ {\setbox\scratchbox\hbox to \overlaywidth
+ {\dopositionaction{#1::\MPanchoridentifier}\hss}%
+ \ht\scratchbox\overlayheight
+ \dp\scratchbox\zeropoint
+ \box\scratchbox}}%
+ {\hbox to \overlaywidth{\hss}}%
+ \vfill}%
+ \fi}
+
+% reverted back to template parsing
+
+\def\thirdstagestartTABLE#1%
+ {\global\setTABLEactiontrue
+ \setTABLEaction\TABLEunknown
+ \setTABLEforce\TABLEunknown
+ \setTABLEerror\TABLEunknown
+ \global\TABLEgraylinefalse
+ \global\TABLEgraydonefalse
+ \globalletempty\TABLEgrayline
+ \globalletempty\nextTABLEgrayline
+ \globalletempty\TABLEgraylineerror
+ \globalletempty\TABLEgraylinestatus
+ \resetVLvalues
+ \appendtoks\popouterbarandquote\to\EveryTable
+ \appendtoks\localTABLEsetup\to\EveryTable
+ \BeginTable[\ifsplittables u\else b\fi]%
+ \defineTABLEunits
+ \defineTABLEsteps
+ \defineTABLErules
+ \defineTABLEdivisions
+ \defineTABLEshorthands
+ \defineTABLEbackgrounds
+ \defineTABLEendings
+ \forgetall % added
+ \doifsomething{#1}
+ {\def\TABLEformat{#1}%
+ \getTABLEnofcolumns\TABLEformat
+ \expandafter\BeginFormat\TABLEformat\EndFormat}}
+
+\def\!ttDoHalign
+ {\baselineskip \zeropoint
+ \lineskiplimit\zeropoint
+ \lineskip \zeropoint
+ \tabskip \zeropoint
+ % does not work in normal tex
+ % \expanded{\getTABLEnofcolumns{\the\!taPreamble}}% added
+ \halign \the\!taTableSpread \bgroup
+ \span\the\!taPreamble
+ \ifx \!tfRowOfWidths \empty \else \!tfRowOfWidths \cr \fi}
+
+\bgroup
+\catcode`\|=\@@active
+%\gdef\protectTABLEbar{\let|\letterbar} % maybe in \cleanupfeatures
+\doglobal \appendtoks \let|\letterbar \to \everycleanupfeatures
+\catcode`\|=\@@other
+\gdef\getTABLEnofcolumns#1%
+ {\bgroup
+ \cleanupfeatures % needed !
+% \protectTABLEbar
+ \expanded{\convertargument#1}\to\ascii
+ \@EA\doglobal\@EA\counttoken\@EA|\@EA\in\ascii\to\maxTABLEcolumn
+ \global\advance\maxTABLEcolumn \minusone
+ % in case of & counting, divide by 2
+ \egroup}
+\egroup
+
+
+
+\def\fixedspace
+ {\setbox\scratchbox\hbox\ifmmode{$0$}\else{0}\fi
+ \hskip\wd\scratchbox\relax}
+
+\appendtoks \fixedspaces \to \everytable
+
\def\toplinebox
{\dowithnextbox
{\ifdim\dp\nextbox>\strutdepth
\scratchdimen\dp\nextbox
- \advance\scratchdimen-\strutdepth
+ \advance\scratchdimen-\strutdepth
\getnoflines\scratchdimen
\struttedbox{\box\nextbox}%
\dorecurse\noflines{\vbox{\hsize\zeropoint\strut}}%
@@ -34,7 +164,7 @@
\fi}%
\tbox}
-\def\expandifnonempty#1%
+\def\expandifnonempty#1%
{\@EA\ifx\csname#1\endcsname\empty
\expandafter\secondoftwoarguments
\else
@@ -51,17 +181,17 @@
\def\sectioncountervalue#1%
{\@@sectionvalue{\@@sectiesectie{#1}}}
-\def\NormalizeFontSize#1#2#3#4#5% the normal struggle with accuracy
+\def\NormalizeFontSize#1#2#3#4#5% the normal struggle with accuracy
{\bgroup
\dimen0=#4% #4 can be \ht0 or so
- \setbox0\hbox{\definedfont[#5 at 5pt]#3}% 10pt
+ \setbox0\hbox{\definedfont[#5 at 5pt]#3}% 10pt
\ifdim\wd0>\zeropoint
\dimen2=#10 % #1 is \wd or \ht
\dimen4=\maxdimen % 10000pt
\divide\dimen4 \dimen2
\divide\dimen0 1638 % 1000
\dimen0=\number\dimen4\dimen0
- \divide \dimen0 \plustwo % ...
+ \divide \dimen0 \plustwo % ...
\xdef\TheNormalizedFontSize{\the\dimen0}%
\else
\dimen0\bodyfontsize
@@ -73,19 +203,19 @@
% todo namespace \@@meta:#1:... ! ! ! ! ! !
-\def\presetMPvariable
+\def\presetMPvariable
{\dodoubleargument\dopresetMPvariable}
-\def\dopresetMPvariable[#1][#2=#3]%
+\def\dopresetMPvariable[#1][#2=#3]%
{\doifundefined{#1:#2}{\setvalue{#1:#2}{#3}}}
-% experiment, not yet to be used
+% experiment, not yet to be used
\def\displaybreak
{\ifhmode
\removeunwantedspaces
\ifcase\raggedstatus\hfill\fi
- \strut\penalty-9999 % \break fails on case (3)
+ \strut\penalty-9999 % \break fails on case (3)
\fi}
\def\startdisplay{\displaybreak\ignorespaces\startopelkaar}
@@ -116,9 +246,9 @@
\def\dopagefigure[#1][#2]%
{\dostartpagefigure[#1][#2]\stoppagefigure}
-% pretty important (esp since we now ignore shipouts)
+% pretty important (esp since we now ignore shipouts)
%
-% actually we should nil all writes, marks, specials
+% actually we should nil all writes, marks, specials
\appendtoks \globallet\popcolor\relax \to \everylastshipout
@@ -127,14 +257,14 @@
% \translateMPinput{il2-pl}
%
-% \startMPenvironment[global]
-% \setupbodyfont[plr]
-% \stopMPenvironment
+% \startMPenvironment[global]
+% \setupbodyfont[plr]
+% \stopMPenvironment
%
-% \TeX: ± ¶
+% \TeX: ± ¶
%
% \startMPcode
-% draw btex MetaPost: ± ¶ etex scaled 5 ;
+% draw btex MetaPost: ± ¶ etex scaled 5 ;
% \stopMPcode
\def\begintbl
@@ -460,7 +590,7 @@
\def\startsetups % for international purposes
{\bgroup\doifnextcharelse[{\startsetupsA\stopsetups}%
{\startsetupsB\stopsetups}}
-
+
\def\startlocalsetups % for nested purposes
{\bgroup\doifnextcharelse[{\startsetupsA\stoplocalsetups}%
{\startsetupsB\stoplocalsetups}}
@@ -472,7 +602,7 @@
\def\startsetupsB#1#2 % space delimited
{\startsetupsA#1[#2]}%
-\long\def\dostartsetups#1#2% watch out: not \grabuntil
+\long\def\dostartsetups#1#2% watch out: not \grabuntil
{\dograbuntil#1{\egroup\long\setvalue{\??su#2}}}
\newtoks\everyfirstparagraphintro
diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex
index 83c94c796..4157b90b1 100644
--- a/tex/context/base/context.tex
+++ b/tex/context/base/context.tex
@@ -15,7 +15,7 @@
\catcode`\{=1 \catcode`\}=2
-\def\contextversion{2003.1.31}
+\def\contextversion{2003.2.11}
%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-fig.tex b/tex/context/base/core-fig.tex
index 71678e91a..fe9d185ea 100644
--- a/tex/context/base/core-fig.tex
+++ b/tex/context/base/core-fig.tex
@@ -2149,61 +2149,119 @@
% \egroup}%
% \hbox}
+% \def\doclip[#1]% nb top->bottom left->right
+% {\bgroup
+% \getparameters[\??cp][#1]%
+% \dowithnextbox
+% {\ifdim\@@cpbreedte>\zeropoint
+% \dimen0=\@@cpbreedte
+% \dimen4=\@@cphoffset
+% \else
+% \dimen0=\wd\nextbox
+% \divide\dimen0 \@@cpnx
+% \dimen4=\@@cpx\dimen0
+% \advance\dimen4 -\dimen0
+% \dimen0=\@@cpsx\dimen0
+% \fi
+% \relax % sure
+% \ifdim\@@cphoogte>\zeropoint
+% \dimen2=\@@cphoogte
+% \dimen6=\ht\nextbox
+% \advance\dimen6 -\@@cpvoffset
+% \advance\dimen6 -\dimen2
+% \else
+% \dimen2=\ht\nextbox
+% \divide\dimen2 \@@cpny
+% \dimen6=-\@@cpy\dimen2
+% \advance\dimen6 -\@@cpsy\dimen2
+% \advance\dimen6 \dimen2
+% \dimen2=\@@cpsy\dimen2
+% \advance\dimen6 \ht\nextbox
+% \fi
+% \setbox\nextbox\hbox % old
+% {\advance\dimen4 -\@@cplinkeroffset % new !
+% \advance\dimen6 \@@cpbovenoffset % new !
+% \hskip-\dimen4\lower\dimen6\box\nextbox}% old
+% \wd\nextbox\zeropoint
+% \ht\nextbox\zeropoint
+% \dp\nextbox\zeropoint
+% \setbox\nextbox\hbox
+% {\advance\dimen0 \@@cplinkeroffset % new !
+% \advance\dimen0 \@@cprechteroffset % new !
+% \advance\dimen2 \@@cpbovenoffset % new !
+% \advance\dimen2 \@@cponderoffset % new !
+% \dostartclipping\@@cpmp{\dimen0}{\dimen2}% old
+% \box\nextbox
+% \dostopclipping}%
+% \setbox\nextbox\hbox % new !
+% {\dimen0-\@@cplinkeroffset % new !
+% \dimen2-\@@cpbovenoffset % new !
+% \hskip\dimen0\lower\dimen2\box\nextbox}% new !
+% \wd\nextbox\dimen0
+% \ht\nextbox\dimen2
+% \dp\nextbox\zeropoint
+% \box\nextbox
+% \egroup}%
+% \hbox}
+
\def\doclip[#1]% nb top->bottom left->right
{\bgroup
\getparameters[\??cp][#1]%
- \dowithnextbox
+ \doifelse\@@cpstatus\v!start\dodoclip{\egroup\hbox}}
+
+\def\dodoclip
+ {\dowithnextbox
{\ifdim\@@cpbreedte>\zeropoint
- \dimen0=\@@cpbreedte
- \dimen4=\@@cphoffset
+ \!!dimena\@@cpbreedte
+ \!!dimenc\@@cphoffset
\else
- \dimen0=\wd\nextbox
- \divide\dimen0 \@@cpnx
- \dimen4=\@@cpx\dimen0
- \advance\dimen4 -\dimen0
- \dimen0=\@@cpsx\dimen0
+ \!!dimena\wd\nextbox
+ \divide\!!dimena \@@cpnx
+ \!!dimenc\@@cpx\!!dimena
+ \advance\!!dimenc -\!!dimena
+ \!!dimena\@@cpsx\!!dimena
\fi
\relax % sure
\ifdim\@@cphoogte>\zeropoint
- \dimen2=\@@cphoogte
- \dimen6=\ht\nextbox
- \advance\dimen6 -\@@cpvoffset
- \advance\dimen6 -\dimen2
+ \!!dimenb\@@cphoogte
+ \!!dimend\ht\nextbox
+ \advance\!!dimend -\@@cpvoffset
+ \advance\!!dimend -\!!dimenb
\else
- \dimen2=\ht\nextbox
- \divide\dimen2 \@@cpny
- \dimen6=-\@@cpy\dimen2
- \advance\dimen6 -\@@cpsy\dimen2
- \advance\dimen6 \dimen2
- \dimen2=\@@cpsy\dimen2
- \advance\dimen6 \ht\nextbox
+ \!!dimenb\ht\nextbox
+ \divide\!!dimenb \@@cpny
+ \!!dimend-\@@cpy\!!dimenb
+ \advance\!!dimend -\@@cpsy\!!dimenb
+ \advance\!!dimend \!!dimenb
+ \!!dimenb\@@cpsy\!!dimenb
+ \advance\!!dimend \ht\nextbox
\fi
- \setbox\nextbox\hbox % old
- {\advance\dimen4 -\@@cplinkeroffset % new !
- \advance\dimen6 \@@cpbovenoffset % new !
- \hskip-\dimen4\lower\dimen6\box\nextbox}% old
+ \setbox\nextbox\hbox % old
+ {\advance\!!dimenc -\@@cplinkeroffset % new !
+ \advance\!!dimend -\@@cpbovenoffset % new ! % - added
+ \hskip-\!!dimenc\lower\!!dimend\box\nextbox}% old
\wd\nextbox\zeropoint
\ht\nextbox\zeropoint
\dp\nextbox\zeropoint
\setbox\nextbox\hbox
- {\advance\dimen0 \@@cplinkeroffset % new !
- \advance\dimen0 \@@cprechteroffset % new !
- \advance\dimen2 \@@cpbovenoffset % new !
- \advance\dimen2 \@@cponderoffset % new !
- \dostartclipping\@@cpmp{\dimen0}{\dimen2}% old
+ {\advance\!!dimena \@@cplinkeroffset % new !
+ \advance\!!dimena \@@cprechteroffset % new !
+ \advance\!!dimenb \@@cpbovenoffset % new !
+ \advance\!!dimenb \@@cponderoffset % new !
+ \dostartclipping\@@cpmp{\!!dimena}{\!!dimenb}% old
\box\nextbox
\dostopclipping}%
\setbox\nextbox\hbox % new !
- {\dimen0-\@@cplinkeroffset % new !
- \dimen2-\@@cpbovenoffset % new !
- \hskip\dimen0\lower\dimen2\box\nextbox}% new !
- \wd\nextbox\dimen0
- \ht\nextbox\dimen2
+ {\!!dimena-\@@cplinkeroffset % new !
+ \!!dimenb \@@cpbovenoffset % new ! % - removed
+ \hskip\!!dimena\lower\!!dimenb\box\nextbox}% new !
+ \wd\nextbox\!!dimena
+ \ht\nextbox\!!dimenb
\dp\nextbox\zeropoint
\box\nextbox
\egroup}%
\hbox}
-
+
\def\clip{\dosingleempty\doclip}
\def\setupclipping
@@ -2272,17 +2330,19 @@
[buffer] [\jobname] [\c!type=\v!buffer,\c!object=\v!nee]
\setupclipping
- [\c!n=1, % was 2
+ [\c!status=\v!start,
+ \c!n=1, % was 2
\c!nx=\@@cpn,\c!x=1,\c!sx=1,
\c!ny=\@@cpn,\c!y=1,\c!sy=1,
\c!breedte=\!!zeropoint,
\c!hoogte=\!!zeropoint,
\c!hoffset=\!!zeropoint,
\c!voffset=\!!zeropoint,
- \c!linkeroffset=\zeropoint,
- \c!rechteroffset=\zeropoint,
- \c!bovenoffset=\zeropoint,
- \c!onderoffset=\zeropoint,
+\c!offset=\zeropoint,
+ \c!linkeroffset=\@@cpoffset, % \zeropoint,
+ \c!rechteroffset=\@@cpoffset, % \zeropoint,
+ \c!bovenoffset=\@@cpoffset, % \zeropoint,
+ \c!onderoffset=\@@cpoffset, % \zeropoint,
\c!mp=]
\protect \endinput
diff --git a/tex/context/base/core-lst.tex b/tex/context/base/core-lst.tex
index 7fa85b83a..3c7164b22 100644
--- a/tex/context/base/core-lst.tex
+++ b/tex/context/base/core-lst.tex
@@ -34,7 +34,7 @@
% (define reference) to keep track of the current ref.
\def\doschrijfnaarlijst#1%
- {\doifelsevalue{\??li#1\c!status}{\v!start}
+ {\doifelsevalue{\??li#1\c!status}\v!start
\dodoschrijfnaarlijst\gobblefourarguments{#1}}
\def\dodoschrijfnaarlijst#1#2#3#4%
@@ -62,7 +62,7 @@
\else
\thisisnextinternal\currentlist
\fi
- \edef\schrijfwegnaarlijst%
+ \edef\next % \schrijfwegnaarlijst%
{\writeutilitycommand%
{\listentry%
{\currentlist}%
@@ -71,7 +71,7 @@
{\asciilistentry}%
{\sectionformat\sectionseparator\sectionseparator\dopaginanummer}%
{\noexpand\realfolio}}}%
- \schrijfwegnaarlijst
+ \next % \schrijfwegnaarlijst
\endgroup}
\def\dododoschrijfnaarlijst#1%
@@ -88,26 +88,46 @@
% so far
-\def\doschrijftussenlijst#1#2%
- {\doifvalue{\??li#1\c!status}{\v!start}
- {\dodoschrijftussenlijst{#1}{#2}}}
+% \def\doschrijftussenlijst#1#2%
+% {\doifvalue{\??li#1\c!status}\v!start
+% {\dodoschrijftussenlijst{#1}{#2}}}
+%
+% \def\dodoschrijftussenlijst#1#2%
+% {\begingroup
+% \convertargument#2\to\ascii
+% \makesectionformat
+% \doifelse{\@@nmstatus}\v!start
+% {\def\dopaginanummer{\noexpand\pagenumber}}
+% {\def\dopaginanummer{0}}%
+% \edef\schrijfwegnaarlijst%
+% {\writeutilitycommand%
+% {\listbetween%
+% {#1}%
+% {\ascii}%
+% {\sectionformat\sectionseparator\sectionseparator\dopaginanummer}%
+% {\noexpand\realfolio}}}%
+% \schrijfwegnaarlijst
+% \endgroup}
+%
+% no reason for indirectness
-\def\dodoschrijftussenlijst#1#2%
- {\begingroup
- \convertargument#2\to\ascii
- \makesectionformat
- \doifelse{\@@nmstatus}\v!start
- {\def\dopaginanummer{\noexpand\pagenumber}}
- {\def\dopaginanummer{0}}%
- \edef\schrijfwegnaarlijst%
- {\writeutilitycommand%
- {\listbetween%
- {#1}%
- {\ascii}%
- {\sectionformat\sectionseparator\sectionseparator\dopaginanummer}%
- {\noexpand\realfolio}}}%
- \schrijfwegnaarlijst
- \endgroup}
+\def\doschrijftussenlijst#1#2%
+ {\doifvalue{\??li#1\c!status}\v!start
+ {\begingroup
+ \convertargument#2\to\ascii
+ \makesectionformat
+ \doifelse{\@@nmstatus}\v!start
+ {\def\dopaginanummer{\noexpand\pagenumber}}
+ {\def\dopaginanummer{0}}%
+ \edef\next % \schrijfwegnaarlijst
+ {\writeutilitycommand%
+ {\listbetween%
+ {#1}%
+ {\ascii}%
+ {\sectionformat\sectionseparator\sectionseparator\dopaginanummer}%
+ {\noexpand\realfolio}}}%
+ \next % \schrijfwegnaarlijst
+ \endgroup}}
\def\listentry#1%
{\executeifdefined{#1\c!lijst}\gobblefivearguments}
diff --git a/tex/context/base/core-ntb.tex b/tex/context/base/core-ntb.tex
index f6f5fa37e..e673cedd7 100644
--- a/tex/context/base/core-ntb.tex
+++ b/tex/context/base/core-ntb.tex
@@ -309,7 +309,12 @@
{\parseTD
[#1,\c!kleur=\tbltblkopkleur,\c!letter=\tbltblkopletter,%
\c!karakteruitlijnen=\v!nee]#2\eTD}
+
+%D new
+\long\def\parseTN[#1]#2\eTN
+ {\parseTD[#1]\digits#2\relax\eTD}
+
\newtoks\TBLhead
\newtoks\TBLbody
\newtoks\TBLfoot
@@ -351,6 +356,7 @@
{\pushTBL
% box not here
\bgroup
+\resetcharacteralign % new
\getparameters
[\@@tbl\@@tbl]
[\c!uitlijnen={\v!rechts,\v!ruim,\v!hoog},#1]%
@@ -380,6 +386,7 @@
\def\bTR{\dodoubleempty\parseTR}%
\def\bTD{\dodoubleempty\parseTD}%
\def\bTH{\dodoubleempty\parseTH}%
+ \def\bTN{\dodoubleempty\parseTN}%
\endgraf}
% permits \expanded{\bTD ... \eTD}
@@ -387,8 +394,9 @@
\unexpanded\def\eTR{}
\unexpanded\def\eTD{}
\unexpanded\def\eTH{}
+\unexpanded\def\eTN{}
-\def\eTABLE%
+\def\eTABLE
{% tricky and dirty order -)
\the\TBLhead
\edef\noftblheadlines{\number\maximumrow}%
@@ -822,9 +830,9 @@
{\edef\alignmentclass{#1}%
\edef\alignmentcharacter{\tbltbluitlijnkarakter}%
\ifcase\TBLpass\or
- \setfirstpasscharacteralign\checkalignment{\strut#2\unskip}%
+ \setfirstpasscharacteralign\checkalignment{#2}% {\strut#2\unskip}%
\fi % force hsize, so always a second
- \setsecondpasscharacteralign \checkalignment{\strut#2\unskip}%
+ \setsecondpasscharacteralign \checkalignment{#2}% {\strut#2\unskip}%
\ignorespaces}
\long\def\dohandleTBLcellA#1#2[#3]#4%
diff --git a/tex/context/base/core-pos.tex b/tex/context/base/core-pos.tex
index 85510c226..6af729aad 100644
--- a/tex/context/base/core-pos.tex
+++ b/tex/context/base/core-pos.tex
@@ -969,7 +969,7 @@
\the\everyinsertpositionaction
\copyposition{#1::\MPanchoridentifier}{#1::\MPanchoridentifier:\MPanchornumber}%
\hpos
- {#1::\MPanchoridentifier:\MPanchornumber}
+ {#1::\MPanchoridentifier:\MPanchornumber}%
{\hbox to \overlaywidth{\dopositionaction{#1::\MPanchoridentifier}\hss}}}%
{\hbox to \overlaywidth{\hss}}%
\vfill}%
diff --git a/tex/context/base/core-reg.tex b/tex/context/base/core-reg.tex
index d90fc59d1..0a1e95929 100644
--- a/tex/context/base/core-reg.tex
+++ b/tex/context/base/core-reg.tex
@@ -59,7 +59,7 @@
\else
\def\dodostelregisterin##1%
{\getparameters[\??id##1][#2]%
- \doifvalue{\??id##1\c!koppeling}{\v!ja}
+ \doifvalue{\??id##1\c!koppeling}\v!ja
{\appendtoks\koppelregister[##1][#2]\to\everystarttext}%
\preparepaginaprefix{\??id##1}}%
\fi
diff --git a/tex/context/base/core-spa.tex b/tex/context/base/core-spa.tex
index d9d93417b..f00a96e14 100644
--- a/tex/context/base/core-spa.tex
+++ b/tex/context/base/core-spa.tex
@@ -530,7 +530,7 @@
{% evt blokkeerfalse
\ifmmode\else\par\fi}
-% Overloaded in cont-new!
+% Overloaded in cont-new!
% \def\docomplexdoblanko[#1]% pas op \relax's zijn nodig ivm volgende \if
% {\global\blankoresetfalse
@@ -605,7 +605,7 @@
% \!!minus\skipgluefactor\blankoskip
% \fi
% \ifdim\prevdepth=\newprevdepth
-% % blokkeer
+% % blokkeer
% \else
% \iffuzzyvskip
% \removelastfuzzyvskip
@@ -773,10 +773,10 @@
\vskip\zeropoint
\fi
\else
- % also new
+ % also new
\ifdim\blankoskip=\zeropoint
\ifblankogeenwit
- \geenwitruimte
+ \geenwitruimte
\fi
\fi
\fi
@@ -1005,8 +1005,30 @@
\let\spatie \space
\let\hardespatie\fixedspace
\let\geenspatie \nospace
-
-\def\opelkaar%
+
+% \startbuffer
+% \startlines \tt \fixedspaces
+% 0~1~~2~~~3~~~~4~~~~~5
+% 0~~~~~~~~~~~~~~~~~~~5
+% $0~1~~2~~~3~~~~4~~~~~5$
+% $0~~~~~~~~~~~~~~~~~~~5$
+% \stoplines
+%
+% \starttabulate[|~|]
+% \NC 0~1~~2~~~3~~~~4~~~~~5 \NC \NR \NC 0~~~~~~~~~~~~~~~~~~~5 \NC \NR
+% \NC $0~1~~2~~~3~~~~4~~~~~5$ \NC \NR \NC $0~~~~~~~~~~~~~~~~~~~5$ \NC \NR
+% \stoptabulate
+%
+% \starttable[||]
+% \NC 0~1~~2~~~3~~~~4~~~~~5 \NC \AR \NC 0~~~~~~~~~~~~~~~~~~~5 \NC \AR
+% \NC $0~1~~2~~~3~~~~4~~~~~5$ \NC \AR \NC $0~~~~~~~~~~~~~~~~~~~5$ \NC \AR
+% \stoptable
+% \stopbuffer
+%
+% \setupbodyfont[cmr] \getbuffer
+% \setupbodyfont[lbr] \getbuffer
+
+\def\opelkaar
{\nointerlineskip}
\def\omlaag[#1]% nog eens mooier, relateren aan blanko
@@ -1149,15 +1171,15 @@
% \def\stelwitruimteopnieuwin
% {\expanded{\stelwitruimtein[\currentwitruimte]}}
-%
+%
% \newif\ifwitruimteflexibel \witruimteflexibeltrue
-%
+%
% \definecomplexorsimple\stelwitruimtein
-%
+%
% \def\complexstelwitruimtein[#1]%
% {\expanded{\dostelwitruimtein[#1]}%
% \dodostelwitruimtein}
-%
+%
% \def\dostelwitruimtein[#1]%
% {\processallactionsinset
% [#1]
@@ -1169,7 +1191,7 @@
% \s!default=>\doifnot\currentwitruimte\v!geen\stelwitruimteopnieuwin,
% \s!unknown=>\@EA\assigndimension\@EA{\commalistelement} % \@EA is nodig
% \tussenwit\blankokleinmaat\blankomiddelmaat\blankogrootmaat]} % te vangen
-%
+%
% \def\dodostelwitruimtein
% {\edef\currentwitruimte
% {\ifdim\tussenwit=\zeropoint
@@ -1187,7 +1209,7 @@
% \ifwitruimteflexibel \else \tussenwit1\tussenwit \fi
% \fi
% \parskip\tussenwit}
-%
+%
% \def\simplestelwitruimtein% == snelle \stelwitruimtein[\s!default]
% {\doifnot\currentwitruimte\v!geen\stelwitruimteopnieuwin
% \dodostelwitruimtein}
@@ -1219,11 +1241,11 @@
\fi
\parskip\tussenwit}
-\definesystemvariable {ws} % whitespace
+\definesystemvariable {ws} % whitespace
\def\definewhitespacemethod[#1]#2{\setvalue{\??ws\??ws#1}{#2}}
-\definewhitespacemethod [\v!herstel] {}
+\definewhitespacemethod [\v!herstel] {}
\definewhitespacemethod [\v!vast] {\witruimteflexibelfalse}
\definewhitespacemethod [\v!flexibel] {\witruimteflexibeltrue}
\definewhitespacemethod [\v!regel] {\tussenwit \baselineskip}
@@ -1236,7 +1258,7 @@
\definewhitespacemethod [\s!default] {\stelwitruimteopnieuwin}
\def\dowhitespacemethod#1%
- {\executeifdefined{\??ws\??ws#1}{\tussenwit#1}\relax}
+ {\executeifdefined{\??ws\??ws#1}{\tussenwit#1}\relax}
\def\geenwitruimte
{\ifdim\parskip>\zeropoint\relax
@@ -1310,7 +1332,7 @@
\doifelse{#1}\v!blanko
\opelkaarfalse
\opelkaartrue
- \blanko[\v!blokkeer] % dit is nog niet ok, gaat fout
+ \blanko[\v!blokkeer] % dit is nog niet ok, gaat fout
\stelwitruimtein[\v!geen] % bovenin vtop (dwz, baseline)
\fi}
@@ -1490,7 +1512,7 @@
\def\setnormalbaselines
{\ifdim\normallineheight>\zeropoint
\lineheight\normallineheight
- \fi
+ \fi
\openlineheight\spacingfactor\lineheight
\openstrutheight\strutheightfactor\openlineheight
\openstrutdepth \strutdepthfactor \openlineheight
@@ -1604,7 +1626,7 @@
\def\setupstrut%
{\dosingleempty\dosetupstrut}
-\def\dosetupstrut[#1]% yet undocumented, todo: fontstrut
+\def\dosetupstrut[#1]% yet undocumented, todo: fontstrut
{\processaction
[#1]
[ \v!ja=>\setstrut,
@@ -1763,7 +1785,7 @@
[ \v!links=>\global\advance\linkssmaller \@@sllinks,
\v!midden=>\global\advance\middensmaller \@@slmidden,
\v!rechts=>\global\advance\rechtssmaller \@@slrechts,
- \v!geen=>,% handy for delimitedtexts
+ \v!geen=>,% handy for delimitedtexts
\s!unknown=>{\herhaalmetcommando[#1]\dosinglesmaller}]}
\def\complexstartsmaller[#1]%
@@ -2083,7 +2105,7 @@
\def\forgetall
{\the\everyforgetall}
-\newif\ifforgotten % rather good signal for inner
+\newif\ifforgotten % rather good signal for inner
\appendtoks \forgottentrue \to \everyforgetall
\appendtoks \forgetragged \to \everyforgetall
@@ -2286,7 +2308,7 @@
\def\dosetleftskipadaption#1%
{\leftskipadaption\zeropoint
- \processaction[#1]
+ \processaction[#1]
[\v!standaard=>\leftskipadaption
\ifdim\voorwit=\zeropoint\@@sllinks\else\voorwit\fi,
\v!ja=>\leftskipadaption
@@ -2296,7 +2318,7 @@
\def\dosetrightskipadaption#1%
{\rightskipadaption\zeropoint
- \processaction[#1]
+ \processaction[#1]
[\v!standaard=>\rightskipadaption\@@slrechts,
\v!ja=>\rightskipadaption\@@slrechts,
\v!nee=>,
@@ -2615,12 +2637,12 @@
\def\raggedleft
{\setraggedness\leftraggedness
- \setraggedskips1\leftraggedness\zeropoint\raggedspaceamount
+ \setraggedskips1\leftraggedness\zeropoint\raggedspaceamount
\raggedxspaceamount\zeropoint\zeropoint}
\def\raggedcenter
{\setraggedness\middleraggedness
- \setraggedskips2\middleraggedness\middleraggedness\raggedspaceamount
+ \setraggedskips2\middleraggedness\middleraggedness\raggedspaceamount
\raggedxspaceamount\zeropoint\zeropoint}
%D We used to have:
@@ -2635,11 +2657,11 @@
\def\raggedright
{\setraggedness\rightraggedness
- \setraggedskips3\zeropoint\rightraggedness\raggedspaceamount
+ \setraggedskips3\zeropoint\rightraggedness\raggedspaceamount
\raggedxspaceamount\raggedfillamount\parindent}
\def\veryraggedleft
- {\setraggedskips1\raggedfillamount\zeropoint\raggedspaceamount
+ {\setraggedskips1\raggedfillamount\zeropoint\raggedspaceamount
\raggedxspaceamount\zeropoint\zeropoint}
%D When we want the last line to have a natural width:
@@ -2652,11 +2674,11 @@
%D but this one is not accepted by the macros.
\def\veryraggedcenter
- {\setraggedskips2\raggedfillamount\raggedfillamount\raggedspaceamount
+ {\setraggedskips2\raggedfillamount\raggedfillamount\raggedspaceamount
\raggedxspaceamount\zeropoint\zeropoint}
\def\veryraggedright
- {\setraggedskips3\zeropoint\raggedfillamount\raggedspaceamount
+ {\setraggedskips3\zeropoint\raggedfillamount\raggedspaceamount
\raggedxspaceamount\zeropoint\parindent}
\def\ttraggedright
@@ -2668,7 +2690,7 @@
\def\raggedwidecenter
{\setraggedness\middleraggedness
- \setraggedskips2\raggedhalffillamount\raggedhalffillamount
+ \setraggedskips2\raggedhalffillamount\raggedhalffillamount
\raggedspaceamount\raggedxspaceamount\zeropoint\zeropoint}
\newif\if@@asragged \@@asraggedtrue % old method
diff --git a/tex/context/base/core-tbl.tex b/tex/context/base/core-tbl.tex
index e0c662039..9238a4a55 100644
--- a/tex/context/base/core-tbl.tex
+++ b/tex/context/base/core-tbl.tex
@@ -703,6 +703,7 @@
\getvalue{\??tt\currenttabulate\c!voor}%
\fi
\bgroup
+\resetcharacteralign
% todo: spacing around tabulate when bodyfont is set
% expansion en test needed ?
\doifvaluesomething{\??tt\currenttabulate\c!korps}
@@ -904,7 +905,8 @@
\unexpanded \def\RQ{\tabulateequalcolumn 1}%
\unexpanded \def\HQ{\tabulateequalcolumn 2}%
\unexpanded \def\NG{\NC\handletabulatecharalign}%
- \unexpanded \def\ND{\NC\handletabulatedigits}% new, undocumented, test first
+ \unexpanded \def\NN{\NC\handletabulatedigits}% new, undocumented, test first
+ \unexpanded \def\ND{\NC\handletabulatedigits}% same, for old times sake
\def\HR % horizontal rule line (break untested)
{\TABLEnoalign
{\ifnum\noftabulatelines=\totalnoftabulatelines
diff --git a/tex/context/base/core-uti.tex b/tex/context/base/core-uti.tex
index 5cb9ad168..b82a7fb39 100644
--- a/tex/context/base/core-uti.tex
+++ b/tex/context/base/core-uti.tex
@@ -380,7 +380,7 @@
\fi
\stopnointerference}}
-\def\loadtwopassdata%
+\def\loadtwopassdata
{\ifx\alltwopasslists\empty\else
\def\twopassdata{0,0}% end condition
\processcommacommand[\alltwopasslists]\doloadtwopassdata
diff --git a/tex/context/base/core-ver.tex b/tex/context/base/core-ver.tex
index 1be4a50bf..e7511c2fb 100644
--- a/tex/context/base/core-ver.tex
+++ b/tex/context/base/core-ver.tex
@@ -556,13 +556,13 @@
%D \macros
%D {typ,obeyhyphens,obeybreakpoints}
-%D
-%D Although it's not clear from the macros, one character trait
-%D of this macros, which are build on top of the support
-%D module, is that they don't hyphenate. We therefore offer the
-%D alternative \type{\typ}. The current
-%D implementation works all right, but a decent hyphenation
-%D support of \type{\tt} text will be implemented soon.
+%D
+%D Although it's not clear from the macros, one character
+%D trait of this macros, which are build on top of the support
+%D module, is that they don't hyphenate. We therefore offer
+%D the alternative \type{\typ}. The current implementation
+%D works all right, but a decent hyphenation support of
+%D \type{\tt} text will be implemented soon.
\def\obeyhyphens
{\def\obeyedspace{\hskip\spaceskip}%
diff --git a/tex/context/base/enco-cyr.tex b/tex/context/base/enco-cyr.tex
index 98ba9f518..8a91f0380 100644
--- a/tex/context/base/enco-cyr.tex
+++ b/tex/context/base/enco-cyr.tex
@@ -1,6 +1,6 @@
%D \module
%D [ file=enco-cyr,
-%D version=2003.01.24,
+%D version=2003.01.24,
%D title=\CONTEXT\ Encoding Macros,
%D subtitle=Cyrillic,
%D author=...,
@@ -8,18 +8,16 @@
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
-%D The following kerning test is inspired by a test file
-%D provided by Victor Figurnov. I hope he still recognizes
-%D some bit and pieces.
-%D
+%D The following kerning test is inspired by a test file
+%D provided by Victor Figurnov. I hope he still recognizes
+%D some bit and pieces.
+%D
%D \starttyping
%D \setupoutput[pdftex]
%D
-%D \setuplayout[middle] \noheaderandfooterlines
-%D
%D \startMPenvironment[global]
%D \useregime[cyr]
%D \useencoding[cyr]
@@ -27,7 +25,7 @@
%D \enableregime[cp1251]
%D \setupbodyfont[cyr]
%D \stopMPenvironment
-%D
+%D
%D \startbuffer
%D \starttabulate[|l|l|l|]
%D \NC \ruledhbox{Ãäå} \NC \ruledhbox{AV} \NC with kerning \NC \NR
@@ -35,27 +33,27 @@
%D \NC \ruledhbox{\tfd Ãäå} \NC \ruledhbox{\tfd AV} \NC with kerning \NC \NR
%D \NC \ruledhbox{\tfd Ã{}ä{}å} \NC \ruledhbox{\tfd A{}V} \NC without kerning \NC \NR
%D \stoptabulate
-%D
+%D
%D \showkerning{Êàê ñäåëàòü äîêóìåíò}
%D \stopbuffer
-%D
+%D
%D \starttext
-%D
-%D \title{Kerning test}
-%D
+%D
+%D \title{Kerning test}
+%D
%D \typebuffer
-%D
+%D
%D \rm \subject{Serif font} \getbuffer
%D \ss \subject{SansSerif font} \getbuffer
%D \tt \subject{MonoSpacec font} \getbuffer
-%D
+%D
%D \stoptext
-%D \stoptyping
+%D \stoptyping
-%D We start with a fallback, define by HH, who assumes that
+%D We start with a fallback, define by HH, who assumes that
%D this is phonetic.
-\startencoding[default]
+\startencoding[default]
\definecharacter cyrillicA {A}
\definecharacter cyrillica {a}
@@ -224,41 +222,32 @@
\definecharacter textogonek 12
\definecharacter textcyrillicflex 18
-\definecharacter textcyrillicumlaut 19
+\definecharacter textdblgrave 19
\definecharacter textcyrillicbreve 20
\definecharacter endash 21
\definecharacter emdash 22
-\definecharacter emdash 22
\definecharacter textcompwordmark 23
-\definecharacter textvisiblespace 32
-\definecharacter textdollar 36
-\definecharacter textless 60
-\definecharacter textgreater 62
\definecharacter textbackslash 92
\definecharacter textasciicircum 94
\definecharacter textunderscore 95
\definecharacter textbraceleft 123
-\definecharacter textbar 124
\definecharacter textbraceright 125
\definecharacter textasciitilde 126
\definecharacter textnumero 157
\definecharacter textcurrency 158
-\definecharacter textsection 159
-\definecharacter textquotedbl 34
+\definecharacter sectionmark 159
-\definecharacter upperleftsinglesixquote 96
+\definecharacter quotedbl 34
+\definecharacter quoteleft 96
\definecharacter upperleftsingleninequote 39
-\definecharacter upperleftsinglesixquote 16
-\definecharacter upperleftdoubleninequote 17
+\definecharacter quotedblleft 16
+\definecharacter quotedblright 17
\definecharacter lowerleftdoubleninequote 189
-
-\definecharacter upperrightsinglesixquote 96
-\definecharacter upperrightsingleninequote 39
-\definecharacter upperrightsinglesixquote 16
-\definecharacter upperrightdoubleninequote 17
-\definecharacter lowerrightdoubleninequote 189
+\definecharacter upperrightdoublesixquote 16
+\definecharacter upperrightdoubleninequote 17
+\definecharacter quotedblbase 189
\definecharacter cyrillicpalochka 13
\definecharacter cyrilliclangle 14
@@ -266,11 +255,7 @@
\definecharacter leftguillemot 190
\definecharacter rightguillemot 191
-\definecharacter leftsubguillemot 190
-\definecharacter rightsubguillemot 191
-
\definecharacter dotlessi 25
-\definecharacter dotlessj 26
\definecharacter cyrillicA 192
\definecharacter cyrillica 224
@@ -403,21 +388,8 @@
\definecharacter cyrillicW 87
\definecharacter cyrillicw 119
-% \defineaccentforchar " ^^c5 {\cyrillicYO}
-% \defineaccentforchar " ^^e5 {\cyrillicyo}
-% \defineaccentforchar U ^^c8 {\cyrillicISHRT}
-% \defineaccentforchar U ^^e8 {\cyrillicishrt}
-% \defineaccentforchar " ^^49 {\cyrillicYI}
-% \defineaccentforchar " ^^69 {\cyrillicyi}
-% \defineaccentforchar c ^^c7 {\cyrillicZDSC}
-% \defineaccentforchar c ^^e7 {\cyrilliczdsc}
-% \defineaccentforchar k ^^d1 {\cyrillicSDSC}
-% \defineaccentforchar k ^^f1 {\cyrillicsdsc}
-% \defineaccentforchar U ^^d3 {\cyrillicUSHRT}
-% \defineaccentforchar U ^^f3 {\cyrillicushrt}
-
-\definecharacter textperthousand {\%\char 24 }
-\definecharacter textpertenthousand {\%\char 24\char 24 }
+% \definecharacter textperthousand {\%\char 24 }
+% \definecharacter textpertenthousand {\%\char 24\char 24 }
\stopcoding
@@ -456,40 +428,32 @@
\definecharacter textogonek 12
\definecharacter textcyrillicflex 18
-\definecharacter textcyrillicumlaut 19
+\definecharacter textdblgrave 19
\definecharacter textcyrillicbreve 20
\definecharacter endash 21
\definecharacter emdash 22
\definecharacter textcompwordmark 23
-\definecharacter textvisiblespace 32
-\definecharacter textdollar 36
-\definecharacter textless 60
-\definecharacter textgreater 62
\definecharacter textbackslash 92
\definecharacter textasciicircum 94
\definecharacter textunderscore 95
\definecharacter textbraceleft 123
-\definecharacter textbar 124
\definecharacter textbraceright 125
\definecharacter textasciitilde 126
\definecharacter textnumero 157
\definecharacter textcurrency 158
-\definecharacter textsection 159
-\definecharacter textquotedbl 34
-
-\definecharacter upperleftsinglesixquote 96
+\definecharacter sectionmark 159
+\definecharacter quotedbl 34
+\definecharacter quoteleft 96
\definecharacter upperleftsingleninequote 39
-\definecharacter upperleftsinglesixquote 16
-\definecharacter upperleftdoubleninequote 17
+\definecharacter quotedblleft 16
+\definecharacter quotedblright 17
\definecharacter lowerleftdoubleninequote 189
-\definecharacter upperrightsinglesixquote 96
-\definecharacter upperrightsingleninequote 39
-\definecharacter upperrightsinglesixquote 16
+\definecharacter upperrightdoublesixquote 16
\definecharacter upperrightdoubleninequote 17
-\definecharacter lowerrightdoubleninequote 189
+\definecharacter quotedblbase 189
\definecharacter cyrillicpalochka 13
\definecharacter cyrilliclangle 14
@@ -497,11 +461,7 @@
\definecharacter leftguillemot 190
\definecharacter rightguillemot 191
-\definecharacter leftsubguillemot 190
-\definecharacter rightsubguillemot 191
-
\definecharacter dotlessi 25
-\definecharacter dotlessj 26
\definecharacter cyrillicA 192
\definecharacter cyrillica 224
@@ -636,16 +596,6 @@
\definecharacter cyrillicW 87
\definecharacter cyrillicw 119
-% \defineaccentforchar " ^^c5 {\cyrillicYO}
-% \defineaccentforchar " ^^e5 {\cyrillicyo}
-% \defineaccentforchar U ^^c8 {\cyrillicISHRT}
-% \defineaccentforchar U ^^e8 {\cyrillicishrt}
-% \defineaccentforchar U ^^d3 {\cyrillicUSHRT}
-% \defineaccentforchar U ^^f3 {\cyrillicushrt}
-
-% \definecharacter textperthousand {\%\char 24 }
-% \definecharacter textpertenthousand {\%\char 24\char 24 }
-
\stopcoding
\startmapping[t2c]
@@ -668,68 +618,55 @@
\startcoding[t2c]
-\definecharacter textgrave 0
-\definecharacter textacute 1
-\definecharacter textcircumflex 2
-\definecharacter texttilde 3
-\definecharacter textdiaeresis 4
-\definecharacter texthungarumlaut 5
-\definecharacter textring 6
-\definecharacter textcaron 7
-\definecharacter textbreve 8
-\definecharacter textmacron 9
-\definecharacter textdotaccent 10
-\definecharacter textcedilla 11
-\definecharacter textogonek 12
-
-\definecharacter textcyrillicflex 18
-\definecharacter textcyrillicumlaut 19
-\definecharacter textcyrillicbreve 20
-
-\definecharacter endash 21
-\definecharacter emdash 22
-\definecharacter emdash 22
+\definecharacter textgrave 0
+\definecharacter textacute 1
+\definecharacter textcircumflex 2
+\definecharacter texttilde 3
+\definecharacter textdiaeresis 4
+\definecharacter texthungarumlaut 5
+\definecharacter textring 6
+\definecharacter textcaron 7
+\definecharacter textbreve 8
+\definecharacter textmacron 9
+\definecharacter textdotaccent 10
+\definecharacter textcedilla 11
+\definecharacter textogonek 12
-\definecharacter textcompwordmark 23
-\definecharacter textvisiblespace 32
-\definecharacter textdollar 36
-\definecharacter textless 60
-\definecharacter textgreater 62
-\definecharacter textbackslash 92
-\definecharacter textasciicircum 94
-\definecharacter textunderscore 95
-\definecharacter textbraceleft 123
-\definecharacter textbar 124
-\definecharacter textbraceright 125
-\definecharacter textasciitilde 126
-\definecharacter textnumero 157
-\definecharacter textcurrency 158
-\definecharacter textsection 159
-\definecharacter textquotedbl 34
+\definecharacter textcyrillicflex 18
+\definecharacter textdblgrave 19
+\definecharacter textcyrillicbreve 20
-\definecharacter cyrillicpalochka 13
-\definecharacter cyrilliclangle 14
-\definecharacter cyrillicrangle 15
+\definecharacter endash 21
+\definecharacter emdash 22
-\definecharacter leftguillemot 190
-\definecharacter rightguillemot 191
-\definecharacter leftsubguillemot 190
-\definecharacter rightsubguillemot 191
+\definecharacter textcompwordmark 23
+\definecharacter textbackslash 92
+\definecharacter textasciicircum 94
+\definecharacter textunderscore 95
+\definecharacter textbraceleft 123
+\definecharacter textbraceright 125
+\definecharacter textasciitilde 126
+\definecharacter textnumero 157
+\definecharacter textcurrency 158
+\definecharacter sectionmark 159
+\definecharacter quotedbl 34
+\definecharacter quoteleft 96
+\definecharacter upperleftsingleninequote 39
+\definecharacter quotedblleft 16
+\definecharacter quotedblright 17
+\definecharacter lowerleftdoubleninequote 189
+\definecharacter upperrightdoublesixquote 16
+\definecharacter upperrightdoubleninequote 17
+\definecharacter quotedblbase 189
-\definecharacter upperleftsinglesixquote 96
-\definecharacter upperleftsingleninequote 39
-\definecharacter upperleftsinglesixquote 16
-\definecharacter upperleftdoubleninequote 17
-\definecharacter lowerleftdoubleninequote 189
+\definecharacter cyrillicpalochka 13
+\definecharacter cyrilliclangle 14
+\definecharacter cyrillicrangle 15
-\definecharacter upperrightsinglesixquote 96
-\definecharacter upperrightsingleninequote 39
-\definecharacter upperrightsinglesixquote 16
-\definecharacter upperrightdoubleninequote 17
-\definecharacter lowerrightdoubleninequote 189
+\definecharacter leftguillemot 190
+\definecharacter rightguillemot 191
-\definecharacter dotlessi 25
-\definecharacter dotlessj 26
+\definecharacter dotlessi 25
\definecharacter cyrillicA 192
\definecharacter cyrillica 224
@@ -864,16 +801,6 @@
\definecharacter cyrillicW 87
\definecharacter cyrillicw 119
-% \defineaccentforchar " ^^c5 {\cyrillicYO}
-% \defineaccentforchar " ^^e5 {\cyrillicyo}
-% \defineaccentforchar U ^^c8 {\cyrillicISHRT }
-% \defineaccentforchar U ^^e8 {\cyrillicishrt }
-% \defineaccentforchar k ^^91 {\cyrillicABHCHDSC}
-% \defineaccentforchar k ^^b1 {\cyrillicabhchdsc}
-%
-% \definecharacter textperthousand {\%\char 24 }
-% \definecharacter textpertenthousand {\%\char 24\char 24 }
-
\stopcoding
\startmapping[x2]
@@ -896,9 +823,22 @@
\startcoding[x2]
+\definecharacter textgrave 0
+\definecharacter textacute 1
+\definecharacter textcircumflex 2
+\definecharacter texttilde 3
+\definecharacter textdiaeresis 4
+\definecharacter texthungarumlaut 5
+\definecharacter textring 6
+\definecharacter textcaron 7
+\definecharacter textbreve 8
+\definecharacter textmacron 9
+\definecharacter textdotaccent 10
+\definecharacter textcedilla 11
+\definecharacter textogonek 12
+
\definecharacter endash 21
\definecharacter emdash 22
-\definecharacter emdash 22
\definecharacter textcompwordmark 23
\definecharacter textvisiblespace 32
@@ -915,26 +855,25 @@
\definecharacter textnumero 157
\definecharacter textcurrency 158
\definecharacter textsection 159
+\definecharacter sectionmark 159
\definecharacter textquotedbl 34
\definecharacter cyrillicpalochka 13
\definecharacter cyrilliclangle 14
\definecharacter cyrillicrangle 15
-
+
\definecharacter leftguillemot 190
\definecharacter rightguillemot 191
-\definecharacter leftsubguillemot 190
-\definecharacter rightsubguillemot 191
\definecharacter upperleftsinglesixquote 96
\definecharacter upperleftsingleninequote 39
-\definecharacter upperleftsinglesixquote 16
+\definecharacter upperleftdoublesixquote 16
\definecharacter upperleftdoubleninequote 17
\definecharacter lowerleftdoubleninequote 189
\definecharacter upperrightsinglesixquote 96
\definecharacter upperrightsingleninequote 39
-\definecharacter upperrightsinglesixquote 16
+\definecharacter upperrightdoublesixquote 16
\definecharacter upperrightdoubleninequote 17
\definecharacter lowerrightdoubleninequote 189
@@ -1117,25 +1056,6 @@
\definecharacter cyrillicDELTA 30
\definecharacter cyrillicdelta 31
-% \defineaccentforchar " ^^c5 {\cyrillicYO}
-% \defineaccentforchar " ^^e5 {\cyrillicyo}
-% \defineaccentforchar U ^^c8 {\cyrillicISHRT}
-% \defineaccentforchar U ^^e8 {\cyrillicishrt}
-% \defineaccentforchar " ^^49 {\cyrillicYI}
-% \defineaccentforchar " ^^69 {\cyrillicyi}
-% \defineaccentforchar c ^^c7 {\cyrillicZDSC}
-% \defineaccentforchar c ^^e7 {\cyrilliczdsc}
-% \defineaccentforchar k ^^d1 {\cyrillicSDSC}
-% \defineaccentforchar k ^^f1 {\cyrillicsdsc}
-% \defineaccentforchar U ^^d3 {\cyrillicUSHRT}
-% \defineaccentforchar U ^^f3 {\cyrillicushrt}
-% \defineaccentforchar k ^^44 {\cyrillicABHCHDSC}
-% \defineaccentforchar k ^^64 {\cyrillicabhchdsc}
-
-% \definecharacter textperthousand {\%\char 24 }
-% \definecharacter textperthousand {\%\char 24 }
-% \definecharacter textpertenthousand {\%\char 24\char 24 }
-
\stopcoding
\startmapping[lcy]
@@ -1159,7 +1079,7 @@
\startcoding[lcy]
-%D Characters 0 to 127 are as in normal cmr slots
+%D Characters 0 to 127 are as in normal cmr slots
\definecharacter cyrillicA 128
\definecharacter cyrillicB 129
@@ -1243,17 +1163,8 @@
\definecharacter textnumero 252
\definecharacter leftguillemot 253
\definecharacter rightguillemot 254
-\definecharacter lowerleftdoubleninequote 255
-
-% \defineaccentforchar " ^^85 {\cyrillicYO}
-% \defineaccentforchar " ^^a5 {\cyrillicyo}
-% \defineaccentforchar U ^^88 {\cyrillicISHRT}
-% \defineaccentforchar U ^^a8 {\cyrillicishrt}
-% \defineaccentforchar " ^^f6 {\cyrillicYI}
-% \defineaccentforchar " ^^f7 {\cyrillicyi}
-% \defineaccentforchar U ^^93 {\cyrillicUSHRT}
-% \defineaccentforchar U ^^e3 {\cyrillicushrt}
+\definecharacter quotedblbase 255
\stopcoding
-\endinput
+\endinput
diff --git a/tex/context/base/enco-def.tex b/tex/context/base/enco-def.tex
index 95d03f870..d7d9ca82d 100644
--- a/tex/context/base/enco-def.tex
+++ b/tex/context/base/enco-def.tex
@@ -18,7 +18,8 @@
%D gain readability. The following definitions are based on
%D usage of the the original \TEX\ fonts, where composed
%D characters were not part of the design. So, occasionally
-%D we have to revert to hacks.
+%D we have to revert to hacks. Thanks to all those users who
+%D helped me to fill in the details!
\startencoding[default]
@@ -90,35 +91,38 @@
\definecharacter textsterling {\fakesterling}
\definecharacter textyen {Y}
+\definecharacter ordfeminine {\high{\txx a}}
+\definecharacter ordmasculine {\high{\txx o}}
+
\definecharacter percent {\fakepercent}
\definecharacter perthousand {\fakeperthousand}
\definecharacter softhyphen 45
-\definecharacter periodcentered {\mathematics{\cdot}}
+\definecharacter periodcentered {\mathematics\cdot}
\definecharacter compoundwordmark 23
\definecharacter textasciicircum 94
\definecharacter textasciitilde 126
\definecharacter textslash 47
\definecharacter textbackslash {\tex{}} % todo
-\definecharacter textbraceleft {\mathematics{\{}}
-\definecharacter textbraceright {\mathematics{\}}}
+\definecharacter textbraceleft {\mathematics\{}
+\definecharacter textbraceright {\mathematics\}}
\definecharacter textunderscore {\fakeunderscore}
\definecharacter textvisiblespace {\fakevisiblespace}
-\definecharacter textbrokenbar {\mathematics{\vert}}
-\definecharacter textbullet {\mathematics{\bullet}}
-\definecharacter textdag {\mathematics{\dag}}
-\definecharacter textddag {\mathematics{\ddag}}
+\definecharacter textbrokenbar {\mathematics\vert}
+\definecharacter textbullet {\mathematics\bullet}
+\definecharacter textdag {\mathematics\dag}
+\definecharacter textddag {\mathematics\ddag}
\definecharacter textdegree {\mathematics{{}^{\circ}}}
-\definecharacter textdiv {\mathematics{/}}
-\definecharacter textellipsis {\mathematics{\cdots}}
-\definecharacter textfraction {\mathematics{/}}
-\definecharacter textlognot {\mathematics{\neg}}
-\definecharacter textminus {\mathematics{-}}
-\definecharacter textmu {\mathematics{\mu}}
-\definecharacter textmultiply {\mathematics{\times}}
-\definecharacter textpm {\mathematics{\pm}}
+\definecharacter textdiv {\mathematics\div}
+\definecharacter textellipsis {\mathematics\cdots}
+\definecharacter textfraction {\mathematics/}
+\definecharacter textlognot {\mathematics\neg}
+\definecharacter textminus {\mathematics-}
+\definecharacter textmu {\mathematics\mu}
+\definecharacter textmultiply {\mathematics\times}
+\definecharacter textpm {\mathematics\pm}
\definecharacter quotedbl {"}
\definecharacter quotedblbase {,,}
@@ -224,8 +228,11 @@
\definecharacter Zacute {\buildtextaccent\textacute Z}
\definecharacter zacute {\buildtextaccent\textacute z}
-\definecharacter Dstroke {D}
-\definecharacter dstroke {d}
+%definecharacter Dstroke {D}
+%definecharacter dstroke {d}
+
+\definecharacter dstroke {\pseudoencodeddj}
+\definecharacter Dstroke {\pseudoencodedDJ}
\definecharacter Hstroke {H}
\definecharacter hstroke {h}
\definecharacter Tstroke {T}
@@ -401,6 +408,32 @@
\def\leftsubguillemot {\guilsingleleft}
\def\rightsubguillemot {\guilsingleright}
+%D A couple of fallbacks suggestion by users, slightly
+%D adapted and obscured by memory saving hacks.
+
+\unprotect
+
+\startencoding[default]
+
+\definecharacter textcent {c\rlap{\hskip-.2\s!em
+ \vrule\!!width.2\s!pt\!!height1.2\s!ex\!!depth.2\s!ex}}
+
+\definecharacter texteuro {C\rlap{\hskip-.75\s!em
+ \vrule\!!width.4\s!em\!!height.85\s!ex\!!depth-.8\s!ex}}
+
+\definecharacter textblacksquare {\dontleavehmode\hbox{%
+ \vrule\!!width.3\s!em\!!height.4\s!em\!!depth-.1\s!em}}
+
+\definecharacter textbrokenbar {\dontleavehmode\hbox{\kern.05\s!em
+ \vrule\!!width.4\s!pt\!!height1.8\s!ex\!!depth-.85\s!ex
+ \llap{%
+ \vrule\!!width.4\s!pt\!!height.35\s!ex\!!depth.6\s!ex}%
+ \kern.05\s!em}}
+
+\stopencoding
+
+\protect
+
%D We also use symbolic names for math accents.
\startencoding[default]
diff --git a/tex/context/base/enco-ini.tex b/tex/context/base/enco-ini.tex
index 2fb13c9e8..e7a8cc80a 100644
--- a/tex/context/base/enco-ini.tex
+++ b/tex/context/base/enco-ini.tex
@@ -1475,9 +1475,13 @@
\ignoreencoding
\to \everycleanupfeatures
+\appendtoks
+ \keepencodedtokens
+\to \everysafeexpanded
+
%D We preload several encodings:
-\useencoding[def,acc,raw,com,cas,mis]
+\useencoding[def,acc,raw,com,cas,mis] % mis shoudl come first
\useencoding[ans,il2,ec,tbo,pdf,uc,pol,x5]
diff --git a/tex/context/base/enco-mis.tex b/tex/context/base/enco-mis.tex
index 3ab1ad432..d80202994 100644
--- a/tex/context/base/enco-mis.tex
+++ b/tex/context/base/enco-mis.tex
@@ -23,39 +23,67 @@
\defineuppercasecom \Dj \dj
\defineuppercasecom \DJ \dj
+\definecharacter dstroke {\pseudoencodeddj}
+\definecharacter Dstroke {\pseudoencodedDJ}
+
\stopmapping
%D We need proper names like in enco-com.tex!
-\definecharacter dj {\pseudoencodeddj}
-\definecharacter Dj {\pseudoencodedDJ}
-\definecharacter DJ {\pseudoencodedDJ}
+\definecharacter dj {\dstroke} % {\pseudoencodeddj}
+\definecharacter Dj {\Dstroke} % {\pseudoencodedDJ}
+\definecharacter DJ {\Dstroke} % {\pseudoencodedDJ}
\unprotect
-\def\pseudoencodeddj % like in babel
+% \def\pseudoencodeddj % like in babel
+% {\leavevmode\hbox\bgroup
+% \setbox0\hbox{d}%
+% \dimen0=\ht0
+% \advance\dimen0 1ex
+% \dimen0=.45\dimen0
+% \dimen2\expandafter\withoutpt\the\fontdimen1\font\dimen0
+% \advance\dimen2 .5ex
+% \rlap{\raise\dimen0\hbox{\kern\dimen2\vbox{\hrule\!!height0.1ex\!!width0.3em}}}%
+% \box0
+% \egroup}
+%
+% \def\pseudoencodedDJ % like in babel
+% {\leavevmode
+% \hbox\bgroup
+% \setbox0\hbox{D}%
+% \dimen0=.55\ht0
+% \dimen2\expandafter\withoutpt\the\fontdimen1\font\dimen0
+% \advance\dimen2 .15ex
+% \advance\dimen2 -.15\fontdimen7\font
+% \rlap{\raise\dimen0\hbox{\kern\dimen2\vbox{\hrule\!!height0.1ex\!!width0.33em}}}%
+% \box0
+% \egroup}
+
+\def\pseudoencodeddj % like in babel, but safer
{\leavevmode\hbox\bgroup
- \setbox0\hbox{d}%
- \dimen0=\ht0
- \advance\dimen0 1ex
- \dimen0=.45\dimen0
+ \setbox\scratchbox\hbox{d}%
+ \scratchdimen\ht\scratchbox
+ \advance\scratchdimen 1ex
+ \scratchdimen.45\scratchdimen
\dimen2\expandafter\withoutpt\the\fontdimen1\font\dimen0
\advance\dimen2 .5ex
- \rlap{\raise\dimen0\hbox{\kern\dimen2\vbox{\hrule\!!height0.1ex\!!width0.3em}}}%
- \box0
+ \hbox to \wd\scratchbox
+ {\box\scratchbox\hss
+ \raise\scratchdimen\hbox{\kern\dimen2\vbox{\hrule\!!height0.1ex\!!width0.3em}}}%
\egroup}
-\def\pseudoencodedDJ % like in babel
+\def\pseudoencodedDJ % like in babel, but safer
{\leavevmode
\hbox\bgroup
- \setbox0\hbox{D}%
- \dimen0=.55\ht0
- \dimen2\expandafter\withoutpt\the\fontdimen1\font\dimen0
+ \setbox\scratchbox\hbox{D}%
+ \scratchdimen.55\ht\scratchbox
+ \dimen2\expandafter\withoutpt\the\fontdimen1\font\scratchdimen
\advance\dimen2 .15ex
\advance\dimen2 -.15\fontdimen7\font
- \dimen4\expandafter\withoutpt\the\fontdimen7\font\dimen0
- \rlap{\raise\dimen0\hbox{\kern\dimen2\vbox{\hrule\!!height0.1ex\!!width0.33em}}}%
- \box0
+ \hbox to \wd\scratchbox
+ {\box\scratchbox\hss
+ \raise\scratchdimen\hbox{\kern\dimen2\vbox{\hrule\!!height0.1ex\!!width0.3em}}}%
\egroup}
% currency
diff --git a/tex/context/base/enco-tbo.tex b/tex/context/base/enco-tbo.tex
index b129eded7..26ea374cf 100644
--- a/tex/context/base/enco-tbo.tex
+++ b/tex/context/base/enco-tbo.tex
@@ -206,7 +206,7 @@
\definecharacter lstroke 7
\definecharacter Lstroke 6
\definecharacter ostroke 248
-\definecharacter Ostoke 216
+\definecharacter Ostroke 216
\definecharacter atilde 227
\definecharacter Atilde 195
diff --git a/tex/context/base/font-ini.tex b/tex/context/base/font-ini.tex
index fa38f2c5b..1c5ca7074 100644
--- a/tex/context/base/font-ini.tex
+++ b/tex/context/base/font-ini.tex
@@ -15,6 +15,40 @@
\writestatus{loading}{Context Font Macros (ini)}
\unprotect
+
+% \def\fontrange#1%
+% {\dofontrange{#1 =\bodyfontsize}}
+%
+% \def\dofontrange#1%
+% {\dodofontrange#1 \relax}% \fontstringA
+%
+% \def\dodofontrange#1 #2 %
+% {\ifdim\bodyfontsize#2%
+% #1\expandafter\gobbleuntilrelax
+% \else
+% \expandafter\dodofontrange
+% \fi}
+%
+% \definefont
+% [crap]
+% [\fontrange
+% {Regular <10pt
+% RegularBold <12pt
+% RegularSlanted <15pt
+% Regular} sa 1]
+%
+% may be better:
+%
+% \definefontrange
+% [crap]
+% [Regular <10pt
+% RegularBold <12pt
+% RegularSlanted <15pt]
+% [Regular sa 1]
+%
+%
+% \dostepwiserecurse{2}{15}{1}
+% {{\switchtobodyfont[\recurselevel pt]\crap test}\endgraf}
% adapted, else wrong interlinespace
@@ -3863,7 +3897,7 @@
%D hexadecimal format. Next we set the height of the accented
%D character to the natural height of the character.
-\def\smashaccent#1%
+\unexpanded\def\smashaccent#1%
{\dontleavehmode
\bgroup
\setbox\scratchbox\hbox{#1}%
@@ -3903,7 +3937,7 @@
%D oder\quad
%D \ruledhbox{\"Uberhaupt}}
-\def\moveaccent#1#2%
+\unexpanded\def\moveaccent#1#2%
{\smashaccent
{\dimen0\fontdimen5\font
\dimen2\dimen0
diff --git a/tex/context/base/hand-def.tex b/tex/context/base/hand-def.tex
index 935a79b84..581dc3065 100644
--- a/tex/context/base/hand-def.tex
+++ b/tex/context/base/hand-def.tex
@@ -20,6 +20,7 @@
\defineprotrudefactor . 0 1
\defineprotrudefactor : 0 1
\defineprotrudefactor ; 0 1
+ \defineprotrudefactor - 0 1
\defineprotrudefactor hyphen 0 1
\defineprotrudefactor endash 0 .5
diff --git a/tex/context/base/lang-cyr.tex b/tex/context/base/lang-cyr.tex
index adc0defd6..20567e1e1 100644
--- a/tex/context/base/lang-cyr.tex
+++ b/tex/context/base/lang-cyr.tex
@@ -227,39 +227,42 @@
\setuplabeltext [\s!ru] [\v!pagina=\cyrillics \cyrillict \cyrillicr
\cyrillica \cyrillicn \cyrillici
\cyrillicc \cyrillica \space]
+\setuplabeltext [\s!ua] [\v!pagina=\cyrillics \cyrillict \cyrillico
+ \cyrillicr \cyrillicii\cyrillicn
+ \cyrillick \cyrillica \space ]
+
\setuplabeltext [\s!ru] [\v!oppagina=\cyrillicn \cyrillica \space
\cyrillics \cyrillict \cyrillicr
\cyrillica \cyrillicn \cyrillici
\cyrillicc \cyrillice \space]
+\setuplabeltext [\s!ua] [\v!oppagina=\cyrillicn \cyrillica \space
+ \cyrillics \cyrillict \cyrillico
+ \cyrillicr \cyrillicii\cyrillicn
+ \cyrillicc \cyrillicii\space ]
+
\setuplabeltext [\s!ru] [\v!hierboven=\cyrillics \cyrillicm.\space
\cyrillicv \cyrillicery \cyrillicsh
\cyrillice]
-\setuplabeltext [\s!ru] [\v!hieronder=\cyrillics \cyrillicm.\space
- \cyrillicn \cyrillici \cyrilliczh
- \cyrillice]
-\setuplabeltext [\s!ru] [\v!zie=\cyrillics \cyrillicm.\space]
-
-\setuplabeltext [\s!en] [\v!pagina=\cyrillics \cyrillict \cyrillico
- \cyrillicr \cyrillicii\cyrillicn
- \cyrillick \cyrillica \space]
-\setuplabeltext [\s!en] [\v!oppagina=\cyrillicn \cyrillica \space
- \cyrillics \cyrillict \cyrillico
- \cyrillicr \cyrillicii\cyrillicn
- \cyrillicc \cyrillicii\space]
-\setuplabeltext [\s!en] [\v!hierboven=\cyrillicya\cyrillick \space
+\setuplabeltext [\s!ua] [\v!hierboven=\cyrillicya\cyrillick \space
\cyrillicp \cyrillico \cyrillick
\cyrillica \cyrillicz \cyrillica
\cyrillicn \cyrillico \space
\cyrillicv \cyrillici \cyrillicshch
- \cyrilice]
-\setuplabeltext [\s!en] [\v!hieronder=\cyrillicya\cyrillick \space
+ \cyrillice]
+
+\setuplabeltext [\s!ru] [\v!hieronder=\cyrillics \cyrillicm.\space
+ \cyrillicn \cyrillici \cyrilliczh
+ \cyrillice]
+\setuplabeltext [\s!ua] [\v!hieronder=\cyrillicya\cyrillick \space
\cyrillicp \cyrillico \cyrillick
\cyrillica \cyrillicz \cyrillica
\cyrillicn \cyrillico \space
\cyrillicn \cyrillici \cyrilliczh
\cyrillicch\cyrillice]
-\setuplabeltext [\s!en] [\v!zie=\cyrillicd \cyrillici \cyrillicv.\ ]
+\setuplabeltext [\s!ru] [\v!zie=\cyrillics \cyrillicm.\space]
+\setuplabeltext [\s!ua] [\v!zie=\cyrillicd \cyrillici
+ \cyrillicv.\space ]
\setuplabeltext [\s!ru] [\v!january=\cyrillicya\cyrillicn \cyrillicv
\cyrillica \cyrillicr \cyrillicya]
diff --git a/tex/context/base/lang-lab.tex b/tex/context/base/lang-lab.tex
index 6711490f8..4e3886770 100644
--- a/tex/context/base/lang-lab.tex
+++ b/tex/context/base/lang-lab.tex
@@ -138,10 +138,10 @@
\unexpanded\def\LABELTEXTS#1#2{\LEFTLABELTEXT{#1}#2\RIGHTLABELTEXT{#1}}
\newif\iflabeltextdone % needs to be reset elsewhere
-\newif\iftracinglabels % shows missing labels
+\newif\iftracelabels % shows missing labels
\def\doreporttextprefixerror#1#2#3%
- {\iftracinglabels{\tttf[#2:~#3/#1]~}\fi}
+ {\iftracelabels{\tttf[#2:~#3/#1]~}\fi}
\def\dosetexpandedheadlabeltext#1#2#3%
{\bgroup
diff --git a/tex/context/base/lang-ura.tex b/tex/context/base/lang-ura.tex
index 22072dc0e..6c7f84960 100644
--- a/tex/context/base/lang-ura.tex
+++ b/tex/context/base/lang-ura.tex
@@ -57,7 +57,9 @@
\c!leftquotation=\lowerleftdoubleninequote,
\c!rightquotation=\upperrightdoubleninequote,
\c!datum={\v!jaar,.,\ ,\v!maand,\ ,\v!dag,.},
- \c!status=\v!stop]
+ \c!status=\v!stop,
+ \s!mapping=ec,
+ \s!encoding=ec]
\installlanguage [finish] [\s!fi]
\installlanguage [hungarian] [\s!hu]
diff --git a/tex/context/base/m-graph.tex b/tex/context/base/m-graph.tex
index 9b22ac078..0be24eee2 100644
--- a/tex/context/base/m-graph.tex
+++ b/tex/context/base/m-graph.tex
@@ -146,14 +146,14 @@
% @# is X_ or Y_; $ is Gxcvlin_ or Gycvlin_; l and h are numeric or string
% It would not be OK to set (@#low,@#high) to a pair expression because $ might
% try to rescale @#low when evaluating the right-hand side for @#high.
- vardef Gsetr_@#(suffix $)(expr l, h) =
- Gclbnds_@# ;
- if @#ctyp>0 :
- @#low = if abs @#ctyp<>log: $ fi Mlog_Str l ;
- @#high = if abs @#ctyp<>log: $ fi Mlog_Str h ;
+ vardef Gsetr_@\#(suffix $)(expr l, h) =
+ Gclbnds_@\# ;
+ if @\#ctyp>0 :
+ @\#low = if abs @\#ctyp<>log: $ fi Mlog_Str l ;
+ @\#high = if abs @\#ctyp<>log: $ fi Mlog_Str h ;
else :
- -@#high = if abs @#ctyp<>log: $ fi Mlog_Str l ;
- -@#low = if abs @#ctyp<>log: $ fi Mlog_Str h ;
+ -@\#high = if abs @\#ctyp<>log: $ fi Mlog_Str l ;
+ -@\#low = if abs @\#ctyp<>log: $ fi Mlog_Str h ;
fi
enddef ;
\to \MPinitializations
diff --git a/tex/context/base/page-flt.tex b/tex/context/base/page-flt.tex
index d8d6a548a..d96ddb385 100644
--- a/tex/context/base/page-flt.tex
+++ b/tex/context/base/page-flt.tex
@@ -334,16 +334,33 @@
% new : \place...[leftmargin,-2*line]
+% (keep this) this fails on fxtb:2*3
+%
+% \def\movesidefloat[#1]%
+% {\bgroup
+% \donefalse
+% \def\movesidefloat##1%
+% {\ifdone \else
+% \global\sidefloatdownshift\zeropoint
+% \donetrue
+% \fi
+% \global\advance\sidefloatdownshift##1\lineheight}%
+% \expanded{\dorepeatwithcommand[#1]}\domovesidefloat
+% \egroup}
+%
+% so we need to catch the :
+
\def\movesidefloat[#1]%
{\bgroup
- \donefalse
- \def\movesidefloat##1%
- {\ifdone \else
- \global\sidefloatdownshift\zeropoint
- \donetrue
- \fi
- \global\advance\sidefloatdownshift##1\lineheight}%
- \expanded{\dorepeatwithcommand[#1]}\domovesidefloat
+ \cleanupfeatures
+ \doifinstringelse{:}{#1}
+ \donothing
+ {\donefalse
+ \def\movesidefloat##1%
+ {\doifnumber{##1}
+ {\ifdone\else\global\sidefloatdownshift\zeropoint\donetrue\fi
+ \global\advance\sidefloatdownshift##1\lineheight}}%
+ \expanded{\dorepeatwithcommand[#1]}\domovesidefloat}%
\egroup}
% or cleaner but longer:
@@ -433,18 +450,18 @@
\fi}%
\doifinset\v!hangend{#2}
{\doifcommonelse{\v!inlinker,\v!linkermarge}{#2}
- {\letvalue{\??fl#1\c!maxbreedte}\leftmarginwidth}%
+ {\letvalue{\??fl#1\c!maxbreedte}\linkermargebreedte}%
{\doifcommon{\v!inrechter,\v!rechtermarge}{#2}
- {\letvalue{\??fl#1\c!maxbreedte}\rightmarginwidth}}}%
+ {\letvalue{\??fl#1\c!maxbreedte}\rechtermargebreedte}}}%
\doifvaluesomething{\??fl#1\c!maxbreedte}
{\scratchdimen\getvalue{\??fl#1\c!maxbreedte}\relax
\ifdim\wd#3>\scratchdimen
\doifcommonelse{\v!inrechter,\v!rechtermarge}{#2}
{\global\sidefloatshift-\scratchdimen
- \global\advance\sidefloatshift-\rightmargindistance}
+ \global\advance\sidefloatshift-\rechtermargeafstand}
{\doifcommonelse{\v!inlinker,\v!linkermarge}{#2}
{\global\sidefloatshift-\scratchdimen
- \global\advance\sidefloatshift-\leftmargindistance}
+ \global\advance\sidefloatshift-\linkermargeafstand}
{#4\setbox#3\hbox to \scratchdimen
{\doifcommonelse{\v!rechts,\v!links}{#2}
{\doifnotinset\v!rechts{#2}\hss
@@ -1517,7 +1534,8 @@
\doifelsevaluenothing{\??fl#4\c!criterium}
{\dogetfloatbox{#1}\empty}
{\ifdim\wd\floatbox>\getvalue{\??fl#4\c!criterium}\relax
- \dogetfloatbox{#1}\v!hier
+ \postcenterfloatbox{\wd\floatbox}% else we get left aligned
+ \dogetfloatbox{#1}\v!hier % see details/pascal
\else
\dogetfloatbox{#1}\empty
\fi}}
diff --git a/tex/context/base/page-lay.tex b/tex/context/base/page-lay.tex
index f6c0d33be..938100570 100644
--- a/tex/context/base/page-lay.tex
+++ b/tex/context/base/page-lay.tex
@@ -1079,27 +1079,27 @@
\beginETEX \dimexpr
- \def\leftmargintotal {\dimexpr(\linkermargebreedte +\linkermargeafstand )}
- \def\rightmargintotal{\dimexpr(\rechtermargebreedte+\rechtermargeafstand)}
- \def\leftedgetotal {\dimexpr(\linkerrandbreedte +\linkerrandafstand )}
- \def\rightedgetotal {\dimexpr(\rechterrandbreedte +\rechterrandafstand )}
+ \def\leftmargintotal {\dimexpr(\linkermargebreedte +\linkermargeafstand )}
+ \def\rightmargintotal{\dimexpr(\rechtermargebreedte +\rechtermargeafstand)}
+ \def\leftedgetotal {\dimexpr(\linkerrandbreedte +\linkerrandafstand )}
+ \def\rightedgetotal {\dimexpr(\rechterrandbreedte +\rechterrandafstand )}
- \def\leftsidetotal {\dimexpr(\leftmarginwidth +\leftedgetotal )}
- \def\rightsidetotal {\dimexpr(\rightmarginwidth +\rightedgetotal)}
+ \def\leftsidetotal {\dimexpr(\linkermargebreedte +\leftedgetotal )}
+ \def\rightsidetotal {\dimexpr(\rechtermargebreedte +\rightedgetotal)}
- \def\leftcombitotal {\dimexpr(\leftmargintotal +\leftedgetotal )}
- \def\rightcombitotal {\dimexpr(\rightmargintotal +\rightedgetotal)}
+ \def\leftcombitotal {\dimexpr(\leftmargintotal +\leftedgetotal )}
+ \def\rightcombitotal {\dimexpr(\rightmargintotal +\rightedgetotal)}
- \def\innermargintotal{\dimexpr(\innermarginwidth +\innermargindistance)}
- \def\outermargintotal{\dimexpr(\outermarginwidth +\outermargindistance)}
- \def\inneredgetotal {\dimexpr(\inneredgewidth +\inneredgedistance )}
- \def\outeredgetotal {\dimexpr(\outeredgewidth +\outeredgedistance )}
+ \def\innermargintotal{\dimexpr(\innermarginwidth +\innermargindistance)}
+ \def\outermargintotal{\dimexpr(\outermarginwidth +\outermargindistance)}
+ \def\inneredgetotal {\dimexpr(\inneredgewidth +\inneredgedistance )}
+ \def\outeredgetotal {\dimexpr(\outeredgewidth +\outeredgedistance )}
- \def\innercombitotal {\dimexpr(\innermargintotal +\inneredgetotal)}
- \def\outercombitotal {\dimexpr(\outermargintotal +\outeredgetotal)}
+ \def\innercombitotal {\dimexpr(\innermargintotal +\inneredgetotal)}
+ \def\outercombitotal {\dimexpr(\outermargintotal +\outeredgetotal)}
- \def\innersidetotal {\dimexpr(\innermarginwidth + \inneredgetotal)}
- \def\outersidetotal {\dimexpr(\outermarginwidth + \outeredgetotal)}
+ \def\innersidetotal {\dimexpr(\innermarginwidth + \inneredgetotal)}
+ \def\outersidetotal {\dimexpr(\outermarginwidth + \outeredgetotal)}
\endETEX
diff --git a/tex/context/base/page-set.tex b/tex/context/base/page-set.tex
index f67abb84f..4e35eac77 100644
--- a/tex/context/base/page-set.tex
+++ b/tex/context/base/page-set.tex
@@ -1623,22 +1623,49 @@
% \fi
% \fi}
+% \def\OTRSETnobalance
+% {\iflastcolumnfootnotes % testen ! optie
+% % inhibit flush of floats !
+% \dostepwiserecurse\mofcolumns\nofcolumns\plusone
+% {\vskip-\lineheight\vbox{\strut}\vfill\eject}%
+% \else
+% \ifdim\pagetotal>\zeropoint
+% \ifnum\mofcolumns=\nofcolumns
+% \OTRSETflushfinalfootnotes
+% \vfill \eject
+% \else
+% \vfill \eject
+% \OTRSETdofinalflush
+% \OTRSETdofinaloutput
+% \fi
+% \fi
+% \fi}
+%
+% no, this one looses empty 1page/1column with area (example **)
+%
+% \definecolumntextarea[title][x=1,y=4,nx=2,ny=7,state=start]
+% \setupcolumntextareatext[title][\vtop to 5cm{a\\b\\b\\d}]
+%
+% \starttext
+% \startcolumnset \dorecurse{1}{\input tufte \par} \stopcolumnset
+% \stoptext
+
\def\OTRSETnobalance
{\iflastcolumnfootnotes % testen ! optie
% inhibit flush of floats !
\dostepwiserecurse\mofcolumns\nofcolumns\plusone
{\vskip-\lineheight\vbox{\strut}\vfill\eject}%
- \else
- \ifdim\pagetotal>\zeropoint
+ \else
+ % \ifdim\pagetotal>\zeropoint no, see example **
\ifnum\mofcolumns=\nofcolumns
\OTRSETflushfinalfootnotes
- \vfill \eject
\else
- \vfill \eject
- \OTRSETdofinalflush
- \OTRSETdofinaloutput
+ % probably todo
\fi
- \fi
+ \vfill \eject
+ \OTRSETdofinalflush
+ \OTRSETdofinaloutput
+ % \fi
\fi}
\def\OTRSETstartnextpage
@@ -2226,11 +2253,18 @@
\docalculatecolumnsetspan
\!!heighta\columntextareaparameter\c!ny\lineheight
% to do: met/zonder ht/dp
- \ifnum\columntextareaparameter\c!y=\zerocount
+% wrong
+% \ifnum\columntextareaparameter\c!y=\zerocount
+% \advance\!!heighta -\lineheight
+% \advance\!!heighta \topskip
+% \fi
+% \advance\!!heighta -\lineheight % option
+%
+ \ifnum\columntextareaparameter\c!y=\plusone
\advance\!!heighta -\lineheight
\advance\!!heighta \topskip
\fi
- \advance\!!heighta -\lineheight % option
+%
\setbox\scratchbox\vbox
{\donetrue\localframed
[\??mt\currentcolumntestarea]
@@ -2242,13 +2276,20 @@
\advance\!!countb \minusone
\OTRSETsetgridcell
\!!counta\!!countb
- \hbox{\clip
- [\c!bovenoffset=\columntextareaparameter\c!clipoffset,%
- \c!onderoffset=\columntextareaparameter\c!clipoffset,%
- \c!linkeroffset=\columntextareaparameter\c!clipoffset,%
- \c!breedte=\!!widthb,%
- \c!hoogte=\!!heighta]%
- {\copy\scratchbox}}%
+ \hbox
+ {\ifcase\!!countc
+ \copy\scratchbox % \box
+ \else
+ \clip
+ [%\c!bovenoffset=\columntextareaparameter\c!clipoffset,%
+ %\c!onderoffset=\columntextareaparameter\c!clipoffset,%
+ %\c!linkeroffset=\columntextareaparameter\c!clipoffset,%
+\c!offset=\columntextareaparameter\c!clipoffset,%
+\c!rechteroffset=\zeropoint,
+ \c!breedte=\!!widthb,%
+ \c!hoogte=\!!heighta]%
+ {\copy\scratchbox}%
+ \fi}%
\ifcase\!!countc\else
\advance\!!counta \columntextareaparameter\c!nx
\advance\!!counta -\!!countc
@@ -2258,9 +2299,11 @@
\hbox
{\hskip-\namedlayoutparameter\v!oneven\c!rugwit
\clip
- [\c!bovenoffset=\columntextareaparameter\c!clipoffset,%
- \c!onderoffset=\columntextareaparameter\c!clipoffset,%
- \c!rechteroffset=\columntextareaparameter\c!clipoffset,%
+ [%\c!bovenoffset=\columntextareaparameter\c!clipoffset,%
+ %\c!onderoffset=\columntextareaparameter\c!clipoffset,%
+ %\c!rechteroffset=\columntextareaparameter\c!clipoffset,%
+\c!offset=\columntextareaparameter\c!clipoffset,%
+\c!linkeroffset=\zeropoint,
\c!breedte=\!!widtha,%
\c!hoogte=\!!heighta,%
\c!hoffset=\!!widthb]%
diff --git a/tex/context/base/page-sid.tex b/tex/context/base/page-sid.tex
index 534fa457b..9a62c7934 100644
--- a/tex/context/base/page-sid.tex
+++ b/tex/context/base/page-sid.tex
@@ -360,7 +360,7 @@
\global
\setbox\floatbox\hbox
{\ifmarginfloat\else\ifrightfloat\else\kern\sidefloatleftshift\fi\fi
- \hskip\sidefloatshift
+ \ifrightfloat\else\hskip\sidefloatshift\fi
\scratchdimen
\ifmarginfloat
\sidefloattopskip
@@ -389,6 +389,7 @@
% \or \advance\scratchdimen\lineheight
% \fi
\vbox{\vskip\scratchdimen\nointerlineskip#1}%
+ \ifrightfloat\kern\sidefloatshift\fi
% no \hskip, but \kern here
\ifmarginfloat\else\ifrightfloat\kern\sidefloatrightshift\fi\fi}%
\ifmarginfloat
@@ -430,6 +431,9 @@
\global \sidefloatwidth \wd\floatbox
\global\advance\sidefloatwidth \floatsideskip
\fi\fi
+\ifdim\sidefloatwidth<\zeropoint
+ \global\sidefloatwidth\zeropoint
+\fi
\global \sidefloathsize \hsize
\global\advance\sidefloathsize -\sidefloatwidth
\global \sidefloatheight \ht\floatbox
diff --git a/tex/context/base/regi-cyp.tex b/tex/context/base/regi-cyp.tex
index 277f4b099..7d134df50 100644
--- a/tex/context/base/regi-cyp.tex
+++ b/tex/context/base/regi-cyp.tex
@@ -8,11 +8,11 @@
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
-%D In this file several rarely user cyrillic input regimes
-%D are defined.
+%D In this file several rarely user cyrillic input regimes
+%D are defined.
\startregime[cp855]
@@ -113,8 +113,8 @@
\defineactivetoken 250 {\cyrillicSHCH}
\defineactivetoken 251 {\cyrillicch}
\defineactivetoken 252 {\cyrillicCH}
-\defineactivetoken 253 {\S}
-\defineactivetoken 254 {\textblacksquare}
+\defineactivetoken 253 {\sectionmark}
+\defineactivetoken 254 {\textblacksquare}
\defineactivetoken 255 {\nonbreakablespace}
\stopregime
@@ -189,8 +189,14 @@
\defineactivetoken 241 {\cyrillicyo}
\defineactivetoken 252 {\textnumero}
\defineactivetoken 253 {\textcurrency}
-\defineactivetoken 254 {\textblacksquare}
+\defineactivetoken 254 {\textblacksquare}
\defineactivetoken 255 {\nonbreakablespace}
+\defineactivetoken 246 {\mathematics\rightarrow}
+\defineactivetoken 247 {\mathematics\leftarrow}
+\defineactivetoken 248 {\mathematics\downarrow}
+\defineactivetoken 249 {\mathematics\uparrow}
+\defineactivetoken 250 {\textdiv}
+\defineactivetoken 251 {\textpm}
\stopregime
@@ -262,11 +268,18 @@
\defineactivetoken 239 {\cyrillicya}
\defineactivetoken 240 {\cyrillicYO}
\defineactivetoken 241 {\cyrillicyo}
-\defineactivetoken 248 {\textdegree}
-\defineactivetoken 249 {\bullet}
-\defineactivetoken 250 {\textperiodcentered}
-\defineactivetoken 254 {\textblacksquare}
+\defineactivetoken 248 {\textdegree}
+\defineactivetoken 249 {\textbullet}
+\defineactivetoken 250 {\periodcentered}
+\defineactivetoken 254 {\textblacksquare}
\defineactivetoken 255 {\nonbreakablespace}
+\defineactivetoken 242 {\mathematics\geq}
+\defineactivetoken 243 {\mathematics\leq}
+\defineactivetoken 246 {\textdiv}
+\defineactivetoken 247 {\mathematics\sim}
+\defineactivetoken 251 {\textsurd}
+\defineactivetoken 252 {\high{\txx n}}
+\defineactivetoken 253 {\twosuperior}
\stopregime
@@ -350,7 +363,7 @@
\defineactivetoken 251 {\cyrillicndsc}
\defineactivetoken 252 {\cyrillicSHHA}
\defineactivetoken 253 {\cyrillicshha}
-\defineactivetoken 254 {\textblacksquare}
+\defineactivetoken 254 {\textblacksquare}
\defineactivetoken 255 {\nonbreakablespace}
\stopregime
@@ -602,7 +615,7 @@
\defineactivetoken 250 {\cyrillicnje}
\defineactivetoken 251 {\cyrillictshe}
\defineactivetoken 252 {\'\cyrillick}
-\defineactivetoken 253 {\S}
+\defineactivetoken 253 {\sectionmark}
\defineactivetoken 254 {\cyrillicushrt}
\defineactivetoken 255 {\cyrillicdzhe}
@@ -776,18 +789,43 @@
\defineactivetoken 190 {\cyrillicyu}
\defineactivetoken 191 {\cyrillicya}
\defineactivetoken 213 {\textnumero}
-\defineactivetoken 214 {\S}
-\defineactivetoken 248 {\textdegree}
-\defineactivetoken 249 {\bullet}
-\defineactivetoken 250 {\textperiodcentered}
-\defineactivetoken 254 {\textblacksquare}
+\defineactivetoken 214 {\sectionmark}
+\defineactivetoken 248 {\textdegree}
+\defineactivetoken 249 {\textbullet}
+\defineactivetoken 250 {\periodcentered}
+\defineactivetoken 254 {\textblacksquare}
\defineactivetoken 255 {\nonbreakablespace}
+\defineactivetoken 224 {\mathematics\alpha}
+\defineactivetoken 225 {\mathematics\beta}
+\defineactivetoken 226 {\mathematics\Gamma}
+\defineactivetoken 227 {\mathematics\pi}
+\defineactivetoken 228 {\mathematics\Sigma}
+\defineactivetoken 229 {\mathematics\sigma}
+\defineactivetoken 230 {\textmu}
+\defineactivetoken 231 {\mathematics\tau}
+\defineactivetoken 232 {\mathematics\Phi}
+\defineactivetoken 233 {\mathematics\Theta}
+\defineactivetoken 234 {\mathematics\Omega}
+\defineactivetoken 235 {\mathematics\delta}
+\defineactivetoken 236 {\mathematics\infty}
+\defineactivetoken 237 {\mathematics\emptyset}
+\defineactivetoken 238 {\mathematics\in}
+\defineactivetoken 239 {\mathematics\cap}
+\defineactivetoken 240 {\mathematics\equiv}
+\defineactivetoken 241 {\textpm}
+\defineactivetoken 242 {\mathematics\geq}
+\defineactivetoken 243 {\mathematics\leq}
+\defineactivetoken 246 {\textdiv}
+\defineactivetoken 247 {\mathematics\sim}
+\defineactivetoken 251 {\textsurd}
+\defineactivetoken 252 {\high{\txx n}}
+\defineactivetoken 253 {\twosuperior}
\stopregime
\startregime[mls]
-% The symbols 194 to 253 are defined in Mongolian fonts in
+% The symbols 194 to 253 are defined in Mongolian fonts in
% the Mon\TeX\ package (?)
\defineactivetoken 128 {\cyrillicB}
diff --git a/tex/context/base/regi-cyr.tex b/tex/context/base/regi-cyr.tex
index ecb13973e..cc54551f6 100644
--- a/tex/context/base/regi-cyr.tex
+++ b/tex/context/base/regi-cyr.tex
@@ -24,27 +24,6 @@
%D Other, not so popular regimes, can be found in \type
%D {regi-cy2}.
-% to do :
-%
-% Some regimes contain symbols which are not yet defined in ConTeXt.
-% Here are given some (probably not perfect) definitions, have to
-% be substituted by real symbols if available.
-% LaTeX names are used
-
-% \definecharacter textcent
-% {c\rlap{\hskip-.2em\vrule width.2ptheight1.2exdepth0.2ex\relax}}
-% \definecharacter texteuro
-% {C\rlap{\hskip-.75em\vrule width.4emheight.85exdepth-0.8ex\relax}}
-% \definecharacter textblacksquare
-% {\vrule width.3emheight.4emdepth-.1em\relax}
-% \definecharacter textdegree
-% {\mathematics{{^\circ}}}
-% \definecharacter texttrademark
-% {\high{\ss\tx TM}}
-% \definecharacter textbrokenbar
-% {\kern0.05em\vrule width0.4ptheight1.8exdepth-0.85ex\llap{\vrule
-% width0.4ptheight0.35exdepth0.6ex}\kern0.05em}
-
\startregime[cp1251]
\defineactivetoken 192 {\cyrillicA}
@@ -116,11 +95,11 @@
\defineactivetoken 130 {\lowerleftsingleninequote}
\defineactivetoken 131 {\'\cyrillicg}
\defineactivetoken 132 {\lowerleftdoubleninequote}
-\defineactivetoken 133 {\dots}
-\defineactivetoken 134 {\dag}
-\defineactivetoken 135 {\ddag}
-\defineactivetoken 136 {\texteuro}
-\defineactivetoken 137 {\textperthousand}
+\defineactivetoken 133 {\textellipsis}
+\defineactivetoken 134 {\textdag}
+\defineactivetoken 135 {\textddag}
+\defineactivetoken 136 {\texteuro}
+\defineactivetoken 137 {\perthousand}
\defineactivetoken 138 {\cyrillicLJE}
\defineactivetoken 139 {\leftsubguillemot}
\defineactivetoken 140 {\cyrillicNJE}
@@ -130,12 +109,13 @@
\defineactivetoken 144 {\cyrillicdje}
\defineactivetoken 145 {\upperleftsinglesixquote}
\defineactivetoken 146 {\upperrightsingleninequote}
-\defineactivetoken 147 {\upperleftsinglesixquote}
+\defineactivetoken 147 {\upperleftdoublesixquote}
\defineactivetoken 148 {\upperrightdoubleninequote}
-\defineactivetoken 149 {\bullet}
+\defineactivetoken 149 {\textbullet}
\defineactivetoken 150 {\endash}
\defineactivetoken 151 {\emdash}
-\defineactivetoken 153 {\texttrademark}
+\defineactivetoken 152 {\missingglyph}
+\defineactivetoken 153 {\trademark}
\defineactivetoken 154 {\cyrilliclje}
\defineactivetoken 155 {\rightsubguillemot}
\defineactivetoken 156 {\cyrillicnje}
@@ -149,20 +129,20 @@
\defineactivetoken 164 {\textcurrency}
\defineactivetoken 165 {\cyrillicGUP}
\defineactivetoken 166 {\textbrokenbar}
-\defineactivetoken 167 {\S}
+\defineactivetoken 167 {\sectionmark}
\defineactivetoken 168 {\cyrillicYO}
\defineactivetoken 169 {\copyright}
\defineactivetoken 170 {\cyrillicIE}
\defineactivetoken 171 {\leftguillemot}
-\defineactivetoken 173 {\-}
-\defineactivetoken 174 {\registered}
+\defineactivetoken 173 {\hyphen}
+\defineactivetoken 174 {\registered}
\defineactivetoken 175 {\cyrillicYI}
\defineactivetoken 176 {\textdegree}
\defineactivetoken 178 {\cyrillicII}
\defineactivetoken 179 {\cyrillicii}
\defineactivetoken 180 {\cyrillicgup}
-\defineactivetoken 182 {\P}
-\defineactivetoken 183 {\textperiodcentered}
+\defineactivetoken 182 {\paragraphmark}
+\defineactivetoken 183 {\periodcentered}
\defineactivetoken 184 {\cyrillicyo}
\defineactivetoken 185 {\textnumero}
\defineactivetoken 186 {\cyrillicie}
@@ -171,6 +151,9 @@
\defineactivetoken 189 {\cyrillicDZE}
\defineactivetoken 190 {\cyrillicdze}
\defineactivetoken 191 {\cyrillicyi}
+\defineactivetoken 172 {\textlognot}
+\defineactivetoken 177 {\textpm}
+\defineactivetoken 181 {\textmu}
\stopregime
@@ -250,11 +233,12 @@
\defineactivetoken 247 {\cyrillicushrt}
\defineactivetoken 248 {\textdegree}
\defineactivetoken 249 {\bullet}
-\defineactivetoken 250 {\textperiodcentered}
+\defineactivetoken 250 {\periodcentered}
\defineactivetoken 252 {\textnumero}
\defineactivetoken 253 {\textcurrency}
\defineactivetoken 254 {\textblacksquare}
\defineactivetoken 255 {\nonbreakablespace}
+\defineactivetoken 251 {\textsurd}
\stopregime
@@ -412,11 +396,17 @@
\defineactivetoken 192 {\cyrillicyu}
\defineactivetoken 209 {\cyrillicya}
\defineactivetoken 148 {\textblacksquare}
-\defineactivetoken 149 {\bullet}
+\defineactivetoken 149 {\textbullet}
\defineactivetoken 154 {\nonbreakablespace}
\defineactivetoken 156 {\textdegree}
-\defineactivetoken 158 {\textperiodcentered}
+\defineactivetoken 158 {\periodcentered}
\defineactivetoken 191 {\copyright}
+\defineactivetoken 150 {\textsurd}
+\defineactivetoken 151 {\mathematics\sim}
+\defineactivetoken 152 {\mathematics\leq}
+\defineactivetoken 153 {\mathematics\geq}
+\defineactivetoken 157 {\twosuperior}
+\defineactivetoken 159 {\textdiv}
\stopregime
@@ -490,16 +480,16 @@
\defineactivetoken 209 {\cyrillicya}
\defineactivetoken 147 {\upperleftsinglesixquote}
\defineactivetoken 148 {\textblacksquare}
-\defineactivetoken 149 {\bullet}
+\defineactivetoken 149 {\textbullet} % Changed by V.F. 07/02/2003 (was: \bullet)
\defineactivetoken 150 {\upperrightdoubleninequote}
\defineactivetoken 151 {\emdash}
\defineactivetoken 152 {\textnumero}
-\defineactivetoken 153 {\texttrademark}
+\defineactivetoken 153 {\trademark} % Changed by V.F. 07/02/2003 (was: \texttrademark)
\defineactivetoken 154 {\nonbreakablespace}
\defineactivetoken 155 {\rightguillemot}
\defineactivetoken 156 {\registered}
\defineactivetoken 157 {\leftguillemot}
-\defineactivetoken 158 {\textperiodcentered}
+\defineactivetoken 158 {\periodcentered} % Changed by V.F. 07/02/2003 (was: \textperiodcentered)
\defineactivetoken 159 {\textcurrency}
\defineactivetoken 164 {\cyrillicie}
\defineactivetoken 166 {\cyrillicii}
@@ -628,17 +618,17 @@
\defineactivetoken 157 {\cyrillicEREV}
\defineactivetoken 158 {\cyrillicYU}
\defineactivetoken 159 {\cyrillicYA}
-\defineactivetoken 160 {\dag}
+\defineactivetoken 160 {\textdag} % Changed by V.F. 07/02/2003 (was: dag)
\defineactivetoken 161 {\textdegree}
\defineactivetoken 162 {\textcent}
-\defineactivetoken 163 {\sterling}
-\defineactivetoken 164 {\S}
-\defineactivetoken 165 {\bullet}
-\defineactivetoken 166 {\P}
+\defineactivetoken 163 {\textsterling} % Changed by V.F. 07/02/2003 (was: \sterling)
+\defineactivetoken 164 {\sectionmark} % Changed by V.F. 07/02/2003 (was: \S)
+\defineactivetoken 165 {\textbullet} % Changed by V.F. 07/02/2003 (was: \bullet}
+\defineactivetoken 166 {\paragraphmark} % Changed by V.F. 07/02/2003 (was: \P)
\defineactivetoken 167 {\cyrillicII}
\defineactivetoken 168 {\registered}
\defineactivetoken 169 {\copyright}
-\defineactivetoken 170 {\texttrademark}
+\defineactivetoken 170 {\trademark} % Changed by V.F. 07/02/2003 (was: \texttrademark}
\defineactivetoken 171 {\cyrillicDJE}
\defineactivetoken 172 {\cyrillicdje}
\defineactivetoken 174 {\'\cyrillicG}
@@ -655,10 +645,10 @@
\defineactivetoken 191 {\cyrillicnje}
\defineactivetoken 192 {\cyrillicje}
\defineactivetoken 193 {\cyrillicDZE}
-\defineactivetoken 196 {\florijn}
+\defineactivetoken 196 {\textflorin} % Changed by V.F. 07/02/2003 (was: \florijn)
\defineactivetoken 199 {\leftguillemot}
\defineactivetoken 200 {\rightguillemot}
-\defineactivetoken 201 {\dots}
+\defineactivetoken 201 {\textellipsis} % Changed by V.F. 07/02/2003 (was: \dots)
\defineactivetoken 202 {\nonbreakablespace}
\defineactivetoken 203 {\cyrillicTSHE}
\defineactivetoken 204 {\cyrillictshe}
@@ -667,7 +657,8 @@
\defineactivetoken 207 {\cyrillicdze}
\defineactivetoken 208 {\endash}
\defineactivetoken 209 {\emdash}
-\defineactivetoken 210 {\upperleftsinglesixquote}
+\defineactivetoken 210 {\upperleftdoublesixquote} % Changed by V.F. 07/02/2003
+ % (was: \upperleftsinglesixquote)
\defineactivetoken 211 {\upperrightdoubleninequote}
\defineactivetoken 212 {\upperleftsinglesixquote}
\defineactivetoken 213 {\upperrightsingleninequote}
@@ -712,6 +703,18 @@
\defineactivetoken 253 {\cyrillicerev}
\defineactivetoken 254 {\cyrillicyu}
\defineactivetoken 255 {\textcurrency}
+\defineactivetoken 173 {\mathematics{\neq}} % Added by V.F. 07/02/2003
+\defineactivetoken 176 {\mathematics{\infty}} % Added by V.F. 07/02/2003
+\defineactivetoken 177 {\textpm} % Added by V.F. 07/02/2003
+\defineactivetoken 178 {\mathematics{\leq}} % Added by V.F. 07/02/2003
+\defineactivetoken 179 {\mathematics{\geq}} % Added by V.F. 07/02/2003
+\defineactivetoken 181 {\textmu} % Added by V.F. 07/02/2003
+\defineactivetoken 182 {\mathematics{\partial}} % Added by V.F. 07/02/2003
+\defineactivetoken 194 {\textlognot} % Added by V.F. 07/02/2003
+\defineactivetoken 195 {\textsurd} % Added by V.F. 07/02/2003
+\defineactivetoken 197 {\mathematics{\approx}} % Added by V.F. 07/02/2003
+\defineactivetoken 198 {\mathematics{\Delta}} % Added by V.F. 07/02/2003
+\defineactivetoken 214 {\textdiv} % Added by V.F. 07/02/2003
\stopregime
@@ -749,17 +752,17 @@
\defineactivetoken 157 {\cyrillicEREV}
\defineactivetoken 158 {\cyrillicYU}
\defineactivetoken 159 {\cyrillicYA}
-\defineactivetoken 160 {\dag}
+\defineactivetoken 160 {\textdag} % Changed by V.F. 07/02/2003 (was: \dag)
\defineactivetoken 161 {\textdegree}
\defineactivetoken 162 {\cyrillicGUP}
-\defineactivetoken 163 {\sterling}
-\defineactivetoken 164 {\S}
-\defineactivetoken 165 {\bullet}
-\defineactivetoken 166 {\P}
+\defineactivetoken 163 {\textsterling} % Changed by V.F. 07/02/2003 (was: \sterling)
+\defineactivetoken 164 {\sectionmark} % Changed by V.F. 07/02/2003 (was: \S)
+\defineactivetoken 165 {\textbullet} % Changed by V.F. 07/02/2003 (was: \bullet}
+\defineactivetoken 166 {\paragraphmark} % Changed by V.F. 07/02/2003 (was: \P)
\defineactivetoken 167 {\cyrillicII}
\defineactivetoken 168 {\registered}
\defineactivetoken 169 {\copyright}
-\defineactivetoken 170 {\texttrademark}
+\defineactivetoken 170 {\trademark} % Changed by V.F. 07/02/2003 (was: \texttrademark}
\defineactivetoken 171 {\cyrillicDJE}
\defineactivetoken 172 {\cyrillicdje}
\defineactivetoken 174 {\'\cyrillicG}
@@ -777,10 +780,10 @@
\defineactivetoken 191 {\cyrillicnje}
\defineactivetoken 192 {\cyrillicje}
\defineactivetoken 193 {\cyrillicDZE}
-\defineactivetoken 196 {\florijn}
+\defineactivetoken 196 {\textflorin} % Changed by V.F. 07/02/2003 (was: \florijn)
\defineactivetoken 199 {\leftguillemot}
\defineactivetoken 200 {\rightguillemot}
-\defineactivetoken 201 {\dots}
+\defineactivetoken 201 {\textellipsis} % Changed by V.F. 07/02/2003 (was: \dots)
\defineactivetoken 202 {\nonbreakablespace}
\defineactivetoken 203 {\cyrillicTSHE}
\defineactivetoken 204 {\cyrillictshe}
@@ -789,7 +792,8 @@
\defineactivetoken 207 {\cyrillicdze}
\defineactivetoken 208 {\endash}
\defineactivetoken 209 {\emdash}
-\defineactivetoken 210 {\upperleftsinglesixquote}
+\defineactivetoken 210 {\upperleftdoublesixquote} % Changed by V.F. 07/02/2003
+ % (was: \upperleftsinglesixquote)
\defineactivetoken 211 {\upperrightdoubleninequote}
\defineactivetoken 212 {\upperleftsinglesixquote}
\defineactivetoken 213 {\upperrightsingleninequote}
@@ -834,6 +838,17 @@
\defineactivetoken 253 {\cyrillicerev}
\defineactivetoken 254 {\cyrillicyu}
\defineactivetoken 255 {\textcurrency}
+\defineactivetoken 173 {\mathematics{\neq}} % Added by V.F. 07/02/2003
+\defineactivetoken 176 {\mathematics{\infty}} % Added by V.F. 07/02/2003
+\defineactivetoken 177 {\textpm} % Added by V.F. 07/02/2003
+\defineactivetoken 178 {\mathematics{\leq}} % Added by V.F. 07/02/2003
+\defineactivetoken 179 {\mathematics{\geq}} % Added by V.F. 07/02/2003
+\defineactivetoken 181 {\textmu} % Added by V.F. 07/02/2003
+\defineactivetoken 194 {\textlognot} % Added by V.F. 07/02/2003
+\defineactivetoken 195 {\textsurd} % Added by V.F. 07/02/2003
+\defineactivetoken 197 {\mathematics{\approx}} % Added by V.F. 07/02/2003
+\defineactivetoken 198 {\mathematics{\Delta}} % Added by V.F. 07/02/2003
+\defineactivetoken 214 {\textdiv} % Added by V.F. 07/02/2003
\stopregime
diff --git a/tex/context/base/regi-mac.tex b/tex/context/base/regi-mac.tex
index 6f5dd36fa..62d79a059 100644
--- a/tex/context/base/regi-mac.tex
+++ b/tex/context/base/regi-mac.tex
@@ -102,13 +102,10 @@
\defineactivetoken © {\copyright}
\defineactivetoken £ {\sterling} % ?
-\defineactivetoken ã {\char44\kern-.1em\char44 } % ?
-\defineactivetoken Ò {\char96\kern-.1em\char96 } % ?
-%defineactivetoken " {\char34 } % no
-\defineactivetoken Ô {\quoteleft} % ?
-\defineactivetoken Õ {\char39 } % ?
-%defineactivetoken {\guilsingleright} % ?
-%defineactivetoken {\guilsingleleft} % ?
+\defineactivetoken ã {\quotedblleft } % {\char44\kern-.1em\char44 } % ?
+\defineactivetoken Ò {\quotedblbase } % {\char96\kern-.1em\char96 } % ?
+\defineactivetoken Ô {\quoteleft}
+\defineactivetoken Õ {\char39 } % ?
\defineactivetoken Ç {\leftguillemot}
\defineactivetoken È {\rightguillemot}
diff --git a/tex/context/base/regi-win.tex b/tex/context/base/regi-win.tex
index e5082cb0a..36fd73f9d 100644
--- a/tex/context/base/regi-win.tex
+++ b/tex/context/base/regi-win.tex
@@ -3,7 +3,7 @@
%D version=1997.08.29,
%D title=\CONTEXT\ Encoding Macros,
%D subtitle=Windows 1252 ANSI keys,
-%D author={Tobias Burnus \& Hans Hagen},
+%D author={Tobias Burnus \& Hans Hagen \& Victor Figurnov},
%D date=\currentdate,
%D copyright=PRAGMA-ADE]
%C
@@ -14,36 +14,72 @@
%D This module activates the (western) \MSWINDOWS\ high \ANSI\
%D characters, such as ë and á.
-%D NOT OKAY YET.
-
\startregime [windows]
-\defineactivetoken 132 {\char44\kern-.1em\char44 }
+\defineactivetoken 128 {\texteuro}
+\defineactivetoken 129 {\missingglyph}
+\defineactivetoken 130 {\lowerleftsingleninequote}
+\defineactivetoken 131 {\textflorin}
+\defineactivetoken 132 {\lowerleftdoubleninequote}
\defineactivetoken 133 {\dots}
-\defineactivetoken 134 {\dag}
-\defineactivetoken 135 {\ddag}
+\defineactivetoken 134 {\textdag}
+\defineactivetoken 135 {\textddag}
+\defineactivetoken 136 {\textcircumflex}
+\defineactivetoken 137 {\perthousand}
+\defineactivetoken 138 {\Scaron}
\defineactivetoken 139 {\leftsubguillemot}
+\defineactivetoken 140 {\OEligature}
+\defineactivetoken 141 {\missingglyph}
+\defineactivetoken 142 {\missingglyph}
+\defineactivetoken 143 {\missingglyph}
+\defineactivetoken 144 {\missingglyph}
\defineactivetoken 145 {\upperleftsinglesixquote}
-
-\defineactivetoken 146 {\char39 }
-\defineactivetoken 147 {\char96\kern-.1em\char96 }
-\defineactivetoken 148 {\char34 }
-\defineactivetoken 150 {--}
-\defineactivetoken 151 {---}
+\defineactivetoken 146 {\upperrightsingleninequote}
+\defineactivetoken 147 {\upperleftdoublesixquote}
+\defineactivetoken 148 {\upperrightdoubleninequote}
+\defineactivetoken 149 {\textbullet}
+\defineactivetoken 150 {\endash}
+\defineactivetoken 151 {\emdash}
+\defineactivetoken 152 {\texttilde}
+\defineactivetoken 153 {\trademark}
+\defineactivetoken 154 {\scaron}
\defineactivetoken 155 {\rightsubguillemot}
-\defineactivetoken 161 {!`}
-\defineactivetoken 163 {\sterling}
-\defineactivetoken 167 {\S}
+\defineactivetoken 156 {\oeligature}
+\defineactivetoken 157 {\missingglyph}
+\defineactivetoken 158 {\missingglyph}
+\defineactivetoken 159 {\Ydiaeresis}
+\defineactivetoken 160 {\nonbreakablespace}
+\defineactivetoken 161 {\exclamdown}
+\defineactivetoken 162 {\textcent}
+\defineactivetoken 163 {\textsterling}
+\defineactivetoken 164 {\textcurrency}
+\defineactivetoken 165 {\textyen}
+\defineactivetoken 166 {\textbrokenbar}
+\defineactivetoken 167 {\sectionmark}
+\defineactivetoken 168 {\textdiaeresis}
\defineactivetoken 169 {\copyright}
-\defineactivetoken 171 {\ifvmode\leavevmode\fi\leftguillemot\prewordbreak}
-\defineactivetoken 191 {?`}
-
-\defineactivetoken 182 {\P}
-\defineactivetoken 187 {\prewordbreak\rightguillemot}
-
-\defineactivetoken 138 {\Scaron}
-\defineactivetoken 154 {\scaron}
-
+\defineactivetoken 170 {\ordfeminine}
+\defineactivetoken 171 {\leftguillemot}
+\defineactivetoken 172 {\textlognot}
+\defineactivetoken 173 {\hyphen}
+\defineactivetoken 174 {\registered}
+\defineactivetoken 175 {\textmacron}
+\defineactivetoken 176 {\textdegree}
+\defineactivetoken 177 {\textpm}
+\defineactivetoken 178 {\twosuperior}
+\defineactivetoken 179 {\threesuperior}
+\defineactivetoken 180 {\textacute}
+\defineactivetoken 181 {\textmu}
+\defineactivetoken 182 {\paragraphmark}
+\defineactivetoken 183 {\periodcentered}
+\defineactivetoken 184 {\textcedilla}
+\defineactivetoken 185 {\onesuperior}
+\defineactivetoken 186 {\ordmasculine}
+\defineactivetoken 187 {\rightguillemot}
+\defineactivetoken 188 {\onequarter}
+\defineactivetoken 189 {\onehalf}
+\defineactivetoken 190 {\threequarter}
+\defineactivetoken 191 {\questiondown}
\defineactivetoken 192 {\Agrave}
\defineactivetoken 193 {\Aacute}
\defineactivetoken 194 {\Acircumflex}
@@ -60,23 +96,22 @@
\defineactivetoken 205 {\Iacute}
\defineactivetoken 206 {\Icircumflex}
\defineactivetoken 207 {\Idiaeresis}
-
+\defineactivetoken 208 {\Eth}
\defineactivetoken 209 {\Ntilde}
\defineactivetoken 210 {\Ograve}
\defineactivetoken 211 {\Oacute}
\defineactivetoken 212 {\Ocircumflex}
\defineactivetoken 213 {\Otilde}
\defineactivetoken 214 {\Odiaeresis}
-\defineactivetoken 215 {\OEligature}
+\defineactivetoken 215 {\textmultiply}
\defineactivetoken 216 {\Ostroke}
\defineactivetoken 217 {\Ugrave}
\defineactivetoken 218 {\Uacute}
\defineactivetoken 219 {\Ucircumflex}
\defineactivetoken 220 {\Udiaeresis}
\defineactivetoken 221 {\Ygrave}
-
+\defineactivetoken 222 {\thorn}
\defineactivetoken 223 {\ssharp}
-
\defineactivetoken 224 {\agrave}
\defineactivetoken 225 {\aacute}
\defineactivetoken 226 {\acircumflex}
@@ -93,21 +128,21 @@
\defineactivetoken 237 {\iacute}
\defineactivetoken 238 {\icircumflex}
\defineactivetoken 239 {\idiaeresis}
-
+\defineactivetoken 240 {\eth}
\defineactivetoken 241 {\ntilde}
\defineactivetoken 242 {\ograve}
\defineactivetoken 243 {\oacute}
\defineactivetoken 244 {\ocircumflex}
\defineactivetoken 245 {\otilde}
\defineactivetoken 246 {\odiaeresis}
-\defineactivetoken 247 {\oeligature}
+\defineactivetoken 247 {\textdiv}
\defineactivetoken 248 {\ostroke}
\defineactivetoken 249 {\ugrave}
\defineactivetoken 250 {\uacute}
\defineactivetoken 251 {\ucircumflex}
\defineactivetoken 252 {\udiaeresis}
\defineactivetoken 253 {\ygrave}
-
+\defineactivetoken 254 {\Thorn}
\defineactivetoken 255 {\ydiaeresis}
\stopregime
diff --git a/tex/context/base/spec-tpd.tex b/tex/context/base/spec-tpd.tex
index 01bd94077..2bc130b00 100644
--- a/tex/context/base/spec-tpd.tex
+++ b/tex/context/base/spec-tpd.tex
@@ -531,7 +531,7 @@
\pdfliteral
{q 0 w \MPclippath\space W n}}
-\definespecial\dostopclipping%
+\definespecial\dostopclipping
{\pdfliteral{Q n}}
%D \macros
diff --git a/tex/context/base/supp-ali.tex b/tex/context/base/supp-ali.tex
index 30f9d25fe..87a844e7f 100644
--- a/tex/context/base/supp-ali.tex
+++ b/tex/context/base/supp-ali.tex
@@ -35,6 +35,8 @@
\chardef\characteralignmentmode=4
\chardef\characteralignmentslot=1
+\newtoks\@@characteralignlst
+
\let\afterassignwidth \!!zeropoint
\let\beforeassignwidth\!!zeropoint
@@ -46,26 +48,68 @@
{\popcharacteralign
\expanded{\dosetfirstpasscharacteralign{\alignmentcharacter}}}
+% \def\dosetfirstpasscharacteralign#1%
+% {\def\checkalignment##1%
+% {\popcharacteralign
+% \let\\\empty
+% \setbox\scratchbox\hbox{#1}%
+% \edef\characterassignwidth{\the\wd\scratchbox}%
+% \setbox\scratchbox\hbox{}%
+% \docheckalignment#1##1#1\relax\relax
+% \scratchdimen-\wd\scratchbox
+% \setbox\scratchbox\hbox{##1}%
+% \advance\scratchdimen \wd\scratchbox
+% \ifdim\scratchdimen>\beforeassignwidth\relax
+% \edef\beforeassignwidth{\the\scratchdimen}%
+% \fi
+% \ifdim\scratchdimen=\zeropoint
+% \setbox\scratchbox\hbox{##1}%
+% \scratchdimen\wd\scratchbox
+% \ifcase\characteralignmentmode
+% % do nothing
+% \else\ifnum\characteralignmentmode<3
+% \advance\scratchdimen \characterassignwidth
+% \ifdim\scratchdimen>\beforeassignwidth\relax
+% \edef\beforeassignwidth{\the\scratchdimen}%
+% \fi
+% \else
+% \ifdim\scratchdimen>\afterassignwidth\relax
+% \edef\afterassignwidth{\the\scratchdimen}%
+% \fi
+% \fi\fi
+% \fi
+% \pushcharacteralign}%
+% \def\docheckalignment##1#1##2##3\relax
+% {\ifx##2\relax
+% \setbox\scratchbox\hbox{##1}%
+% \ifdim\wd\scratchbox>\afterassignwidth
+% \edef\afterassignwidth{\the\wd\scratchbox}%
+% \fi
+% \else
+% \docheckalignment##2##3\relax
+% \fi}}
+
\def\dosetfirstpasscharacteralign#1%
{\def\checkalignment##1%
{\popcharacteralign
\let\\\empty
\setbox\scratchbox\hbox{#1}%
\edef\characterassignwidth{\the\wd\scratchbox}%
- \setbox\scratchbox\hbox{}%
- \docheckalignment#1##1#1\relax\relax
+ \setbox\scratchbox\null
+% \docheckalignment#1##1#1\relax\relax
+ \docheckalignment##1#1\relax\relax
\scratchdimen-\wd\scratchbox
- \setbox\scratchbox\hbox{##1}%
+ \setbox\scratchbox\hbox{\ignorespaces##1\unskip}%
\advance\scratchdimen \wd\scratchbox
\ifdim\scratchdimen>\beforeassignwidth\relax
\edef\beforeassignwidth{\the\scratchdimen}%
\fi
\ifdim\scratchdimen=\zeropoint
- \setbox\scratchbox\hbox{##1}%
+ \setbox\scratchbox\hbox{\ignorespaces##1\unskip}%
\scratchdimen\wd\scratchbox
\ifcase\characteralignmentmode
% do nothing
- \else\ifnum\characteralignmentmode<3
+ \else\ifnum\characteralignmentmode<\plusthree
\advance\scratchdimen \characterassignwidth
\ifdim\scratchdimen>\beforeassignwidth\relax
\edef\beforeassignwidth{\the\scratchdimen}%
@@ -79,36 +123,87 @@
\pushcharacteralign}%
\def\docheckalignment##1#1##2##3\relax
{\ifx##2\relax
- \setbox\scratchbox\hbox{##1}%
+ \setbox\scratchbox\hbox{\ignorespaces##1\unskip}%
\ifdim\wd\scratchbox>\afterassignwidth
\edef\afterassignwidth{\the\wd\scratchbox}%
\fi
\else
- \docheckalignment##2##3\relax
+ \docheckalignment##2##3\relax\relax
\fi}}
\def\setsecondpasscharacteralign
{\popcharacteralign
\expanded{\dosetsecondpasscharacteralign{\alignmentcharacter}}}
+% \def\dosetsecondpasscharacteralign#1%
+% {\def\checkalignment##1%
+% {\popcharacteralign
+% \let\\\empty % beware, no grouping
+% \setbox\scratchbox\hbox{#1}%
+% \edef\characterassignwidth{\the\wd\scratchbox}%
+% \setbox\scratchbox\hbox{}%
+% % new 12,34 vs 10\\ where 10 aligns on 12 if #1 = ,
+% \ifcase\characteralignmentslot
+% \docheckalignment#1##1#1\relax\relax
+% \scratchdimen\wd\scratchbox
+% \setbox\scratchbox\hbox{##1\unskip}%
+% \else
+% \def\\{#1}%
+% \expanded{\docheckalignment#1##1#1\relax\relax}%
+% \scratchdimen\wd\scratchbox
+% \setbox\scratchbox\hbox
+% {\def\\{\hphantom{#1}}##1}%
+% \fi
+% \ifdim\scratchdimen=\wd\scratchbox
+% \ifcase\characteralignmentmode
+% \noindent\box\scratchbox
+% \else
+% \noindent\hbox
+% {\dontcomplain
+% \hbox to \beforeassignwidth
+% {\ifcase\characteralignmentmode\or
+% \box\scratchbox\hss
+% \or
+% \hss\box\scratchbox\hskip\characterassignwidth
+% \or
+% \hss\rlap{\box\scratchbox}%
+% \or
+% \hss\rlap{\hbox to \afterassignwidth{\hss\box\scratchbox}}%
+% \fi}%
+% \hskip\afterassignwidth}%
+% \fi
+% \else
+% \noindent\hbox
+% {\hbox to \beforeassignwidth
+% {\hss\box\scratchbox\hskip-\scratchdimen}%
+% \hskip\afterassignwidth}%
+% \fi}%
+% \def\docheckalignment##1#1##2##3\relax
+% {\ifx##2\relax
+% \setbox\scratchbox\hbox{##1}%
+% \else
+% \docheckalignment##2##3\relax
+% \fi}}
+
\def\dosetsecondpasscharacteralign#1%
{\def\checkalignment##1%
{\popcharacteralign
\let\\\empty % beware, no grouping
\setbox\scratchbox\hbox{#1}%
\edef\characterassignwidth{\the\wd\scratchbox}%
- \setbox\scratchbox\hbox{}%
+ \setbox\scratchbox\null
% new 12,34 vs 10\\ where 10 aligns on 12 if #1 = ,
\ifcase\characteralignmentslot
- \docheckalignment#1##1#1\relax\relax
+% \docheckalignment#1##1#1\relax\relax
+ \docheckalignment##1#1\relax\relax
\scratchdimen\wd\scratchbox
- \setbox\scratchbox\hbox{##1\unskip}%
+ \setbox\scratchbox\hbox{\ignorespaces##1\unskip}%
\else
\def\\{#1}%
- \expanded{\docheckalignment#1##1#1\relax\relax}%
+% \expanded{\docheckalignment#1##1#1\relax\relax}%
+ \expanded{\docheckalignment##1#1\relax\relax}%
\scratchdimen\wd\scratchbox
- \setbox\scratchbox\hbox
- {\def\\{\hphantom{#1}}##1}%
+ \setbox\scratchbox\hbox{\def\\{\hphantom{#1}}\ignorespaces##1\unskip}%
\fi
\ifdim\scratchdimen=\wd\scratchbox
\ifcase\characteralignmentmode
@@ -136,15 +231,19 @@
\fi}%
\def\docheckalignment##1#1##2##3\relax
{\ifx##2\relax
- \setbox\scratchbox\hbox{##1}%
+ \setbox\scratchbox\hbox{\ignorespaces##1\unskip}%
\else
- \docheckalignment##2##3\relax
+ \docheckalignment##2##3\relax\relax
\fi}}
% provide a means to use multiple alignments mixed
\def\pushcharacteralign
- {\setxvalue{@cac@\alignmentclass}{\noexpand\do
+ {\ifundefined{@cac@\alignmentclass}%
+ \doglobal
+ \appendetoks\noexpand\do{\alignmentclass}\to\@@characteralignlst
+ \fi
+ \setxvalue{@cac@\alignmentclass}{\noexpand\do
{\afterassignwidth}{\beforeassignwidth}{\alignmentcharacter}}}
\def\popcharacteralign
@@ -152,7 +251,12 @@
{\def\afterassignwidth {##1}%
\def\beforeassignwidth {##2}%
\def\alignmentcharacter{##3}}%
- \getvalue{@cac@\alignmentclass}}
+ \executeifdefined{@cac@\alignmentclass}\donothing}
+
+\def\resetcharacteralign % does not work well nested
+ {\def\do##1{\letbeundefined{@cac@##1}}%
+ \the\@@characteralignlst
+ \global\@@characteralignlst\emptytoks}
\long\def\startcharacteralign#1\stopcharacteralign
{\bgroup
diff --git a/tex/context/base/supp-fil.tex b/tex/context/base/supp-fil.tex
index db33a050d..396718e6b 100644
--- a/tex/context/base/supp-fil.tex
+++ b/tex/context/base/supp-fil.tex
@@ -100,6 +100,18 @@
\def\writeln#1{\write#1{}}
+%D New!
+
+\def\doiffileexistselse#1%
+ {\immediate\openin\scratchread=#1\relax
+ \ifeof\scratchread
+ \immediate\closein\scratchread
+ \expandafter\secondoftwoarguments
+ \else
+ \immediate\closein\scratchread
+ \expandafter\firstoftwoarguments
+ \fi}
+
%D \macros
%D {doprocessfile,fileline,fileprocessedtrue,dofinishfile}
%D
@@ -260,42 +272,102 @@
\def\maxreadlevel{3}
+% \def\doreadfile#1#2#3#4%
+% {\sanitizefilename#2\to\readfilename
+% \checkfilename\readfilename
+% \ifcase\kindoffile
+% \iftracefiles\writestatus\m!systems{searching for \readfilename\space on #1}\fi
+% % not a full path or url, check for existence
+% \doifelsenothing{#1}
+% {\def\next{\redoreadfile\readfilename{#3}{#4}}}%
+% {\def\next{\redoreadfile{\pathplusfile{#1}{\readfilename}}{#3}{#4}}}%
+% \else
+% % a full path or url, no further checking done
+% \iftracefiles\writestatus\m!systems{assuming present \readfilename}\fi
+% \def\next{#3\dodoreadfile}%
+% \fi
+% \next}
+
+\newconditional\trackfilenames \settrue\trackfilenames
+
+\let\trackedfilename\empty
+
\def\doreadfile#1#2#3#4%
{\sanitizefilename#2\to\readfilename
- \checkfilename\readfilename
- \ifcase\kindoffile
- % not a full path or url, check for existence
- \doifelsenothing{#1}
- {\def\next{\redoreadfile\readfilename{#3}{#4}}}%
- {\def\next{\redoreadfile{\pathplusfile{#1}{\readfilename}}{#3}{#4}}}%
+ \let\trackedfilename\readfilename
+ \ifconditional\trackfilenames
+ \ifundefined{fn..\trackedfilename}\donetrue\else\donefalse\fi
+ \else
+ \donetrue
+ \fi
+ \ifdone
+ \checkfilename\readfilename
+ \ifcase\kindoffile
+ \iftracefiles\writestatus\m!systems{searching for \readfilename\space on #1}\fi
+ % not a full path or url, check for existence
+ \doifelsenothing{#1}
+ {\def\next{\redoreadfile\readfilename{#3}{#4}}}%
+ {\def\next{\redoreadfile{\pathplusfile{#1}{\readfilename}}{#3}{#4}}}%
+ \else
+ % a full path or url, no further checking done
+ \doiffileexistselse\readfilename
+ {\iftracefiles\writestatus\m!systems{located \readfilename}\fi
+ \def\next{#3\dodoreadfile}}%
+ {\iftracefiles\writestatus\m!systems{not found \readfilename}\fi
+ \def\next{#4}}%
+ \fi
\else
- % a full path or url, no further checking done
+ \edef\readfilename{\getvalue{fn..\readfilename}}%
+ \iftracefiles\writestatus\m!systems{already located \readfilename}\fi
\def\next{#3\dodoreadfile}%
\fi
\next}
+% \def\redoreadfile#1#2#3%
+% {\immediate\openin\scratchread=#1\relax
+% \ifeof\scratchread
+% \iftracefiles\writestatus\m!systems{cannot locate #1}\fi
+% \immediate\closein\scratchread
+% \decrement\readlevel\relax
+% \ifnum\readlevel>\zerocount
+% \edef\readfilename{\pathplusfile{\f!parentpath}{\readfilename}}%
+% \def\next{\redoreadfile\readfilename{#2}{#3}}%
+% \else
+% \def\next{#3}%
+% \fi
+% \else
+% \immediate\closein\scratchread
+% \edef\readfilename{#1}%
+% \iftracefiles\writestatus\m!systems{#1 located}\fi
+% \def\next{#2\dodoreadfile}%
+% \fi
+% \next}
+
\def\redoreadfile#1#2#3%
- {\immediate\openin\scratchread=#1\relax
- \ifeof\scratchread
- \iftracefiles\writestatus\m!systems{cannot locate #1}\fi
- \immediate\closein\scratchread
- \decrement\readlevel\relax
- \ifnum\readlevel>\zerocount
- \edef\readfilename{\pathplusfile{\f!parentpath}{\readfilename}}%
- \def\next{\redoreadfile\readfilename{#2}{#3}}%
- \else
- \def\next{#3}%
- \fi
- \else
- \immediate\closein\scratchread
- \edef\readfilename{#1}%
- \iftracefiles\writestatus\m!systems{#1 located}\fi
- \def\next{#2\dodoreadfile}%
- \fi
+ {\doiffileexistselse{#1}%
+ {\edef\readfilename{#1}%
+ \iftracefiles\writestatus\m!systems{#1 located}\fi
+ \def\next{#2\dodoreadfile}}%
+ {\iftracefiles\writestatus\m!systems{cannot locate #1}\fi
+ \decrement\readlevel\relax
+ \ifnum\readlevel>\zerocount
+ \edef\readfilename{\pathplusfile{\f!parentpath}{\readfilename}}%
+ \def\next{\redoreadfile\readfilename{#2}{#3}}%
+ \else
+ \def\next{#3}%
+ \fi}%
\next}
+% \def\dodoreadfile % we provide hooks, for instance for \enableXML
+% {\the\everybeforereadfile
+% \normalinput\readfilename\relax
+% \the\everyafterreadfile}
+
\def\dodoreadfile % we provide hooks, for instance for \enableXML
- {\the\everybeforereadfile
+ {\ifconditional\trackfilenames
+ \setxvalue{fn..\trackedfilename}{\readfilename}%
+ \fi
+ \the\everybeforereadfile
\normalinput\readfilename\relax
\the\everyafterreadfile}
@@ -335,8 +407,13 @@
%D \type{\readsysfile} is not bound to the current directory
%D and obeys the \TEX\ implementation.
+% \def\readsysfile#1% current path, obeys tex search
+% {\let\readlevel\maxreadlevel
+% %\doreadfile{#1}}
+% \doreadfile\empty{#1}}
+
\def\readsysfile#1% current path, obeys tex search
- {\let\readlevel\maxreadlevel
+ {\newcounter\readlevel
%\doreadfile{#1}}
\doreadfile\empty{#1}}
diff --git a/tex/context/base/supp-ini.tex b/tex/context/base/supp-ini.tex
index cc114de83..96639d108 100644
--- a/tex/context/base/supp-ini.tex
+++ b/tex/context/base/supp-ini.tex
@@ -30,7 +30,6 @@
\catcode`E=\@@endgroup
\catcode`.=\@@escape
-
.catcode `.{ 12 .xdef .letteropenbrace B.string{E
.catcode `.} 12 .xdef .letterclosebrace B.string}E
.catcode `.& 12 .xdef .letterampersand B.string&E
diff --git a/tex/context/base/supp-mps.tex b/tex/context/base/supp-mps.tex
index c8559f1fd..05442dc25 100644
--- a/tex/context/base/supp-mps.tex
+++ b/tex/context/base/supp-mps.tex
@@ -205,7 +205,8 @@
\long\def\startMPinclusions#1\stopMPinclusions
{\long\def\theMPinclusions
- {\@EA\expanded\@EA{\@EA\writeMPgraphic\@EA{\the\MPinitializations;}}%
+ {% \expanded !
+ \@EA\expanded\@EA{\@EA\writeMPgraphic\@EA{\the\MPinitializations;}}%
\writeMPgraphic{#1}}}
\long\def\MPinclusions#1%
@@ -866,14 +867,15 @@
\ifx\undefined\interactionmode \chardef\interactionmode=255 \fi
- \def\MPOSTbatchswitch {-int=batchmode}
- \def\MPOSTformatswitch{-progname=mpost -mem=}
- \def\MPOSTdriver {dvips}
+ \def\MPOSTbatchswitch {-int=batchmode}
+ \def\MPOSTnonstopswitch {-int=nonstopmode}
+ \def\MPOSTformatswitch {-progname=mpost -mem=}
+ \def\MPOSTdriver {dvips}
\def\executeMPOST#1%
{mpost
- \ifcase\interactionmode \MPOSTbatchswitch\space \fi
- \ifuseMETAFUNformat \MPOSTformatswitch metafun \fi #1}
+ \ifcase\interactionmode\MPOSTbatchswitch\or\MPOSTnonstopswitch\fi
+ \space\ifuseMETAFUNformat \MPOSTformatswitch metafun \fi #1}
\def\executeMPTEX#1%
{texexec
@@ -894,6 +896,10 @@
\fi
+%D The batchmode and nonstopmode (introduced in 2003 for
+%D Patrick Gundlach) switches may differ per binary and are
+%D supported by \TEXEXEC.
+
%D \macros
%D {insertMPfile}
%D
diff --git a/tex/context/base/syst-gen.tex b/tex/context/base/syst-gen.tex
index 40f8701e2..4e8e95275 100644
--- a/tex/context/base/syst-gen.tex
+++ b/tex/context/base/syst-gen.tex
@@ -412,6 +412,34 @@
{\long\xdef\@@expanded{\noexpand#1}\@@expanded}
%D \macros
+%D {safeexpanded,everysafeexpanded}
+%D
+%D In addition we provide:
+
+\newtoks\everysafeexpanded
+
+\long\def\safeexpanded#1%
+ {\begingroup
+ \the\everysafeexpanded\long\xdef\@@expanded{\noexpand#1}%
+ \endgroup
+ \@@expanded}
+
+\def\safeedef#1#2%
+ {\begingroup
+ \the\everysafeexpanded\long\xdef\@@expanded{\noexpand#2}%
+ \endgroup
+ \let#1\@@expanded}
+
+\def\safexdef#1#2%
+ {\begingroup
+ \the\everysafeexpanded\long\xdef\@@expanded{\noexpand#2}%
+ \endgroup
+ \global\let#1\@@expanded}
+
+%D You can append protective measures to the token register if
+%D needed, as we will do later.
+
+%D \macros
%D {expandoneargafter,expandtwoargsafter}
%D
%D These two commands make macros more readable by hiding a
diff --git a/tex/context/base/type-enc.tex b/tex/context/base/type-enc.tex
index 12cd9ac37..10441a464 100644
--- a/tex/context/base/type-enc.tex
+++ b/tex/context/base/type-enc.tex
@@ -209,6 +209,24 @@
\definefontsynonym [cmvtt10] [plvtt10] [encoding=pl0]
\stoptypescript
+%D {\em Comments by Victor Figurnov:} the wcmb10, wcmbx10,
+%D \unknown\ fonts below are taken from the Paradissa
+%D collection by Basil Malyshev. These fonts don't conform t2a
+%D encoding but are in MS Windows Cyrillic codepage 1251
+%D encoding. These fonts contain only 33 russian letters in
+%D upper and lower case, the number sign, and guillemots. But
+%D even among these characters only the basic 32 russian
+%D letters (in upper and lower case) will be typeset correctly
+%D with this definition. The letters cyrillicYO and
+%D cyrillicyo, as well as number sign (textnumero) and
+%D guillemots won't be typeset properly, because these symbols
+%D have different positions in t2a and MS CP1251 encodings.
+%D
+%D I think that the russian lh fonts and|/|or cm-super provide
+%D better alternatives (type1). Therefore, the names below
+%D match those of cm-super (\type {0NNN} instead of \type
+%D {NNN}, i.e.\ four digit numbers).
+
\starttypescript [all] [computer-modern] [cyr]
\definefontsynonym [cmb10] [wcmb10] [encoding=t2a]
\definefontsynonym [cmbsy10] [wcmbsy10] [encoding=t2a]
@@ -270,57 +288,57 @@
\definefontsynonym [cmb10] [larb1000] [encoding=t2a]
\definefontsynonym [cmbx10] [labx1000] [encoding=t2a]
\definefontsynonym [cmbx12] [labx1200] [encoding=t2a]
- \definefontsynonym [cmbx5] [labx500] [encoding=t2a]
- \definefontsynonym [cmbx6] [labx600] [encoding=t2a]
- \definefontsynonym [cmbx7] [labx700] [encoding=t2a]
- \definefontsynonym [cmbx8] [labx800] [encoding=t2a]
- \definefontsynonym [cmbx9] [labx900] [encoding=t2a]
+ \definefontsynonym [cmbx5] [labx0500] [encoding=t2a]
+ \definefontsynonym [cmbx6] [labx0600] [encoding=t2a]
+ \definefontsynonym [cmbx7] [labx0700] [encoding=t2a]
+ \definefontsynonym [cmbx8] [labx0800] [encoding=t2a]
+ \definefontsynonym [cmbx9] [labx0900] [encoding=t2a]
\definefontsynonym [cmbxsl10] [labl1000] [encoding=t2a]
\definefontsynonym [cmbxti10] [labi1000] [encoding=t2a]
\definefontsynonym [cmcsc10] [lacc1000] [encoding=t2a]
\definefontsynonym [cmdunh10] [ladh1000] [encoding=t2a]
\definefontsynonym [cmff10] [laff1000] [encoding=t2a]
\definefontsynonym [cmfi10] [lafi1000] [encoding=t2a]
- \definefontsynonym [cmfib8] [lafb800] [encoding=t2a]
- %\definefontsynonym [cminch] [lainch00] [encoding=t2a]
+ \definefontsynonym [cmfib8] [lafb0800] [encoding=t2a]
+ %\definefontsynonym [cminch] [lainch00] [encoding=t2a]
\definefontsynonym [cmitt10] [lait1000] [encoding=t2a]
\definefontsynonym [cmr10] [larm1000] [encoding=t2a]
\definefontsynonym [cmr12] [larm1200] [encoding=t2a]
\definefontsynonym [cmr17] [larm1700] [encoding=t2a]
- \definefontsynonym [cmr5] [larm500] [encoding=t2a]
- \definefontsynonym [cmr6] [larm600] [encoding=t2a]
- \definefontsynonym [cmr7] [larm700] [encoding=t2a]
- \definefontsynonym [cmr8] [larm800] [encoding=t2a]
- \definefontsynonym [cmr9] [larm900] [encoding=t2a]
+ \definefontsynonym [cmr5] [larm0500] [encoding=t2a]
+ \definefontsynonym [cmr6] [larm0600] [encoding=t2a]
+ \definefontsynonym [cmr7] [larm0700] [encoding=t2a]
+ \definefontsynonym [cmr8] [larm0800] [encoding=t2a]
+ \definefontsynonym [cmr9] [larm0900] [encoding=t2a]
\definefontsynonym [cmsl10] [lasl1000] [encoding=t2a]
\definefontsynonym [cmsl12] [lasl1200] [encoding=t2a]
- \definefontsynonym [cmsl8] [lasl800] [encoding=t2a]
- \definefontsynonym [cmsl9] [lasl900] [encoding=t2a]
+ \definefontsynonym [cmsl8] [lasl0800] [encoding=t2a]
+ \definefontsynonym [cmsl9] [lasl0900] [encoding=t2a]
\definefontsynonym [cmsltt10] [last1000] [encoding=t2a]
\definefontsynonym [cmss10] [lass1000] [encoding=t2a]
\definefontsynonym [cmss12] [lass1200] [encoding=t2a]
\definefontsynonym [cmss17] [lass1700] [encoding=t2a]
- \definefontsynonym [cmss8] [lass800] [encoding=t2a]
- \definefontsynonym [cmss9] [lass900] [encoding=t2a]
+ \definefontsynonym [cmss8] [lass0800] [encoding=t2a]
+ \definefontsynonym [cmss9] [lass0900] [encoding=t2a]
\definefontsynonym [cmssbx10] [lasx1000] [encoding=t2a]
%\definefontsynonym [cmssdc10] [lassdc1000] [encoding=t2a]
\definefontsynonym [cmssi10] [lasi1000] [encoding=t2a]
\definefontsynonym [cmssi12] [lasi1200] [encoding=t2a]
\definefontsynonym [cmssi17] [lasi1700] [encoding=t2a]
- \definefontsynonym [cmssi8] [lasi800] [encoding=t2a]
- \definefontsynonym [cmssi9] [lasi900] [encoding=t2a]
- \definefontsynonym [cmssq8] [lass800] [encoding=t2a] % ssq->ss
- \definefontsynonym [cmssqi8] [lasi800] [encoding=t2a] % ssq->ss
+ \definefontsynonym [cmssi8] [lasi0800] [encoding=t2a]
+ \definefontsynonym [cmssi9] [lasi0900] [encoding=t2a]
+ \definefontsynonym [cmssq8] [lass0800] [encoding=t2a]
+ \definefontsynonym [cmssqi8] [lasi0800] [encoding=t2a]
\definefontsynonym [cmtcsc10] [latc1000] [encoding=t2a]
\definefontsynonym [cmti10] [lati1000] [encoding=t2a]
\definefontsynonym [cmti12] [lati1200] [encoding=t2a]
- \definefontsynonym [cmti7] [lati700] [encoding=t2a]
- \definefontsynonym [cmti8] [lati800] [encoding=t2a]
- \definefontsynonym [cmti9] [lati900] [encoding=t2a]
+ \definefontsynonym [cmti7] [lati0700] [encoding=t2a]
+ \definefontsynonym [cmti8] [lati0800] [encoding=t2a]
+ \definefontsynonym [cmti9] [lati0900] [encoding=t2a]
\definefontsynonym [cmtt10] [latt1000] [encoding=t2a]
\definefontsynonym [cmtt12] [latt1200] [encoding=t2a]
- \definefontsynonym [cmtt8] [latt800] [encoding=t2a]
- \definefontsynonym [cmtt9] [latt900] [encoding=t2a]
+ \definefontsynonym [cmtt8] [latt0800] [encoding=t2a]
+ \definefontsynonym [cmtt9] [latt0900] [encoding=t2a]
\definefontsynonym [cmu10] [laui1000] [encoding=t2a]
\definefontsynonym [cmvtt10] [lavt1000] [encoding=t2a]
\stoptypescript
@@ -329,57 +347,57 @@
\definefontsynonym [cmb10] [lbrb1000] [encoding=t2b]
\definefontsynonym [cmbx10] [lbbx1000] [encoding=t2b]
\definefontsynonym [cmbx12] [lbbx1200] [encoding=t2b]
- \definefontsynonym [cmbx5] [lbbx500] [encoding=t2b]
- \definefontsynonym [cmbx6] [lbbx600] [encoding=t2b]
- \definefontsynonym [cmbx7] [lbbx700] [encoding=t2b]
- \definefontsynonym [cmbx8] [lbbx800] [encoding=t2b]
- \definefontsynonym [cmbx9] [lbbx900] [encoding=t2b]
+ \definefontsynonym [cmbx5] [lbbx0500] [encoding=t2b]
+ \definefontsynonym [cmbx6] [lbbx0600] [encoding=t2b]
+ \definefontsynonym [cmbx7] [lbbx0700] [encoding=t2b]
+ \definefontsynonym [cmbx8] [lbbx0800] [encoding=t2b]
+ \definefontsynonym [cmbx9] [lbbx0900] [encoding=t2b]
\definefontsynonym [cmbxsl10] [lbbl1000] [encoding=t2b]
\definefontsynonym [cmbxti10] [lbbi1000] [encoding=t2b]
\definefontsynonym [cmcsc10] [lbcc1000] [encoding=t2b]
\definefontsynonym [cmdunh10] [lbdh1000] [encoding=t2b]
\definefontsynonym [cmff10] [lbff1000] [encoding=t2b]
\definefontsynonym [cmfi10] [lbfi1000] [encoding=t2b]
- \definefontsynonym [cmfib8] [lbfb800] [encoding=t2b]
- %\definefontsynonym [cminch] [lbinch00] [encoding=t2b]
+ \definefontsynonym [cmfib8] [lbfb0800] [encoding=t2b]
+ %\definefontsynonym [cminch] [lbinch00] [encoding=t2b]
\definefontsynonym [cmitt10] [lbit1000] [encoding=t2b]
\definefontsynonym [cmr10] [lbrm1000] [encoding=t2b]
\definefontsynonym [cmr12] [lbrm1200] [encoding=t2b]
\definefontsynonym [cmr17] [lbrm1700] [encoding=t2b]
- \definefontsynonym [cmr5] [lbrm500] [encoding=t2b]
- \definefontsynonym [cmr6] [lbrm600] [encoding=t2b]
- \definefontsynonym [cmr7] [lbrm700] [encoding=t2b]
- \definefontsynonym [cmr8] [lbrm800] [encoding=t2b]
- \definefontsynonym [cmr9] [lbrm900] [encoding=t2b]
+ \definefontsynonym [cmr5] [lbrm0500] [encoding=t2b]
+ \definefontsynonym [cmr6] [lbrm0600] [encoding=t2b]
+ \definefontsynonym [cmr7] [lbrm0700] [encoding=t2b]
+ \definefontsynonym [cmr8] [lbrm0800] [encoding=t2b]
+ \definefontsynonym [cmr9] [lbrm0900] [encoding=t2b]
\definefontsynonym [cmsl10] [lbsl1000] [encoding=t2b]
\definefontsynonym [cmsl12] [lbsl1200] [encoding=t2b]
- \definefontsynonym [cmsl8] [lbsl800] [encoding=t2b]
- \definefontsynonym [cmsl9] [lbsl900] [encoding=t2b]
+ \definefontsynonym [cmsl8] [lbsl0800] [encoding=t2b]
+ \definefontsynonym [cmsl9] [lbsl0900] [encoding=t2b]
\definefontsynonym [cmsltt10] [lbst1000] [encoding=t2b]
\definefontsynonym [cmss10] [lbss1000] [encoding=t2b]
\definefontsynonym [cmss12] [lbss1200] [encoding=t2b]
\definefontsynonym [cmss17] [lbss1700] [encoding=t2b]
- \definefontsynonym [cmss8] [lbss800] [encoding=t2b]
- \definefontsynonym [cmss9] [lbss900] [encoding=t2b]
+ \definefontsynonym [cmss8] [lbss0800] [encoding=t2b]
+ \definefontsynonym [cmss9] [lbss0900] [encoding=t2b]
\definefontsynonym [cmssbx10] [lbsx1000] [encoding=t2b]
%\definefontsynonym [cmssdc10] [lbssdc1000] [encoding=t2b]
\definefontsynonym [cmssi10] [lbsi1000] [encoding=t2b]
\definefontsynonym [cmssi12] [lbsi1200] [encoding=t2b]
\definefontsynonym [cmssi17] [lbsi1700] [encoding=t2b]
- \definefontsynonym [cmssi8] [lbsi800] [encoding=t2b]
- \definefontsynonym [cmssi9] [lbsi900] [encoding=t2b]
- \definefontsynonym [cmssq8] [lbss800] [encoding=t2b] % ssq->ss
- \definefontsynonym [cmssqi8] [lbsi800] [encoding=t2b] % ssq->ss
+ \definefontsynonym [cmssi8] [lbsi0800] [encoding=t2b]
+ \definefontsynonym [cmssi9] [lbsi0900] [encoding=t2b]
+ \definefontsynonym [cmssq8] [lbss0800] [encoding=t2b]
+ \definefontsynonym [cmssqi8] [lbsi0800] [encoding=t2b]
\definefontsynonym [cmtcsc10] [lbtc1000] [encoding=t2b]
\definefontsynonym [cmti10] [lbti1000] [encoding=t2b]
\definefontsynonym [cmti12] [lbti1200] [encoding=t2b]
- \definefontsynonym [cmti7] [lbti700] [encoding=t2b]
- \definefontsynonym [cmti8] [lbti800] [encoding=t2b]
- \definefontsynonym [cmti9] [lbti900] [encoding=t2b]
+ \definefontsynonym [cmti7] [lbti0700] [encoding=t2b]
+ \definefontsynonym [cmti8] [lbti0800] [encoding=t2b]
+ \definefontsynonym [cmti9] [lbti0900] [encoding=t2b]
\definefontsynonym [cmtt10] [lbtt1000] [encoding=t2b]
\definefontsynonym [cmtt12] [lbtt1200] [encoding=t2b]
- \definefontsynonym [cmtt8] [lbtt800] [encoding=t2b]
- \definefontsynonym [cmtt9] [lbtt900] [encoding=t2b]
+ \definefontsynonym [cmtt8] [lbtt0800] [encoding=t2b]
+ \definefontsynonym [cmtt9] [lbtt0900] [encoding=t2b]
\definefontsynonym [cmu10] [lbui1000] [encoding=t2b]
\definefontsynonym [cmvtt10] [lbvt1000] [encoding=t2b]
\stoptypescript
@@ -388,57 +406,57 @@
\definefontsynonym [cmb10] [lcrb1000] [encoding=t2c]
\definefontsynonym [cmbx10] [lcbx1000] [encoding=t2c]
\definefontsynonym [cmbx12] [lcbx1200] [encoding=t2c]
- \definefontsynonym [cmbx5] [lcbx500] [encoding=t2c]
- \definefontsynonym [cmbx6] [lcbx600] [encoding=t2c]
- \definefontsynonym [cmbx7] [lcbx700] [encoding=t2c]
- \definefontsynonym [cmbx8] [lcbx800] [encoding=t2c]
- \definefontsynonym [cmbx9] [lcbx900] [encoding=t2c]
+ \definefontsynonym [cmbx5] [lcbx0500] [encoding=t2c]
+ \definefontsynonym [cmbx6] [lcbx0600] [encoding=t2c]
+ \definefontsynonym [cmbx7] [lcbx0700] [encoding=t2c]
+ \definefontsynonym [cmbx8] [lcbx0800] [encoding=t2c]
+ \definefontsynonym [cmbx9] [lcbx0900] [encoding=t2c]
\definefontsynonym [cmbxsl10] [lcbl1000] [encoding=t2c]
\definefontsynonym [cmbxti10] [lcbi1000] [encoding=t2c]
\definefontsynonym [cmcsc10] [lccc1000] [encoding=t2c]
\definefontsynonym [cmdunh10] [lcdh1000] [encoding=t2c]
\definefontsynonym [cmff10] [lcff1000] [encoding=t2c]
\definefontsynonym [cmfi10] [lcfi1000] [encoding=t2c]
- \definefontsynonym [cmfib8] [lcfb800] [encoding=t2c]
- %\definefontsynonym [cminch] [lcinch00] [encoding=t2c] % maybe need subst
+ \definefontsynonym [cmfib8] [lcfb0800] [encoding=t2c]
+ %\definefontsynonym [cminch] [lcinch00] [encoding=t2c]
\definefontsynonym [cmitt10] [lcit1000] [encoding=t2c]
\definefontsynonym [cmr10] [lcrm1000] [encoding=t2c]
\definefontsynonym [cmr12] [lcrm1200] [encoding=t2c]
\definefontsynonym [cmr17] [lcrm1700] [encoding=t2c]
- \definefontsynonym [cmr5] [lcrm500] [encoding=t2c]
- \definefontsynonym [cmr6] [lcrm600] [encoding=t2c]
- \definefontsynonym [cmr7] [lcrm700] [encoding=t2c]
- \definefontsynonym [cmr8] [lcrm800] [encoding=t2c]
- \definefontsynonym [cmr9] [lcrm900] [encoding=t2c]
+ \definefontsynonym [cmr5] [lcrm0500] [encoding=t2c]
+ \definefontsynonym [cmr6] [lcrm0600] [encoding=t2c]
+ \definefontsynonym [cmr7] [lcrm0700] [encoding=t2c]
+ \definefontsynonym [cmr8] [lcrm0800] [encoding=t2c]
+ \definefontsynonym [cmr9] [lcrm0900] [encoding=t2c]
\definefontsynonym [cmsl10] [lcsl1000] [encoding=t2c]
\definefontsynonym [cmsl12] [lcsl1200] [encoding=t2c]
- \definefontsynonym [cmsl8] [lcsl800] [encoding=t2c]
- \definefontsynonym [cmsl9] [lcsl900] [encoding=t2c]
+ \definefontsynonym [cmsl8] [lcsl0800] [encoding=t2c]
+ \definefontsynonym [cmsl9] [lcsl0900] [encoding=t2c]
\definefontsynonym [cmsltt10] [lcst1000] [encoding=t2c]
\definefontsynonym [cmss10] [lcss1000] [encoding=t2c]
\definefontsynonym [cmss12] [lcss1200] [encoding=t2c]
\definefontsynonym [cmss17] [lcss1700] [encoding=t2c]
- \definefontsynonym [cmss8] [lcss800] [encoding=t2c]
- \definefontsynonym [cmss9] [lcss900] [encoding=t2c]
+ \definefontsynonym [cmss8] [lcss0800] [encoding=t2c]
+ \definefontsynonym [cmss9] [lcss0900] [encoding=t2c]
\definefontsynonym [cmssbx10] [lcsx1000] [encoding=t2c]
%\definefontsynonym [cmssdc10] [lcssdc1000] [encoding=t2c]
\definefontsynonym [cmssi10] [lcsi1000] [encoding=t2c]
\definefontsynonym [cmssi12] [lcsi1200] [encoding=t2c]
\definefontsynonym [cmssi17] [lcsi1700] [encoding=t2c]
- \definefontsynonym [cmssi8] [lcsi800] [encoding=t2c]
- \definefontsynonym [cmssi9] [lcsi900] [encoding=t2c]
- \definefontsynonym [cmssq8] [lcss800] [encoding=t2c] % ssq->ss
- \definefontsynonym [cmssqi8] [lcsi800] [encoding=t2c] % ssq->ss
+ \definefontsynonym [cmssi8] [lcsi0800] [encoding=t2c]
+ \definefontsynonym [cmssi9] [lcsi0900] [encoding=t2c]
+ \definefontsynonym [cmssq8] [lcss0800] [encoding=t2c]
+ \definefontsynonym [cmssqi8] [lcsi0800] [encoding=t2c]
\definefontsynonym [cmtcsc10] [lctc1000] [encoding=t2c]
\definefontsynonym [cmti10] [lcti1000] [encoding=t2c]
\definefontsynonym [cmti12] [lcti1200] [encoding=t2c]
- \definefontsynonym [cmti7] [lcti700] [encoding=t2c]
- \definefontsynonym [cmti8] [lcti800] [encoding=t2c]
- \definefontsynonym [cmti9] [lcti900] [encoding=t2c]
+ \definefontsynonym [cmti7] [lcti0700] [encoding=t2c]
+ \definefontsynonym [cmti8] [lcti0800] [encoding=t2c]
+ \definefontsynonym [cmti9] [lcti0900] [encoding=t2c]
\definefontsynonym [cmtt10] [lctt1000] [encoding=t2c]
\definefontsynonym [cmtt12] [lctt1200] [encoding=t2c]
- \definefontsynonym [cmtt8] [lctt800] [encoding=t2c]
- \definefontsynonym [cmtt9] [lctt900] [encoding=t2c]
+ \definefontsynonym [cmtt8] [lctt0800] [encoding=t2c]
+ \definefontsynonym [cmtt9] [lctt0900] [encoding=t2c]
\definefontsynonym [cmu10] [lcui1000] [encoding=t2c]
\definefontsynonym [cmvtt10] [lcvt1000] [encoding=t2c]
\stoptypescript
@@ -447,57 +465,57 @@
\definefontsynonym [cmb10] [rxrb1000] [encoding=x2]
\definefontsynonym [cmbx10] [rxbx1000] [encoding=x2]
\definefontsynonym [cmbx12] [rxbx1200] [encoding=x2]
- \definefontsynonym [cmbx5] [rxbx500] [encoding=x2]
- \definefontsynonym [cmbx6] [rxbx600] [encoding=x2]
- \definefontsynonym [cmbx7] [rxbx700] [encoding=x2]
- \definefontsynonym [cmbx8] [rxbx800] [encoding=x2]
- \definefontsynonym [cmbx9] [rxbx900] [encoding=x2]
+ \definefontsynonym [cmbx5] [rxbx0500] [encoding=x2]
+ \definefontsynonym [cmbx6] [rxbx0600] [encoding=x2]
+ \definefontsynonym [cmbx7] [rxbx0700] [encoding=x2]
+ \definefontsynonym [cmbx8] [rxbx0800] [encoding=x2]
+ \definefontsynonym [cmbx9] [rxbx0900] [encoding=x2]
\definefontsynonym [cmbxsl10] [rxbl1000] [encoding=x2]
\definefontsynonym [cmbxti10] [rxbi1000] [encoding=x2]
\definefontsynonym [cmcsc10] [rxcc1000] [encoding=x2]
\definefontsynonym [cmdunh10] [rxdh1000] [encoding=x2]
\definefontsynonym [cmff10] [rxff1000] [encoding=x2]
\definefontsynonym [cmfi10] [rxfi1000] [encoding=x2]
- \definefontsynonym [cmfib8] [rxfb800] [encoding=x2]
- %\definefontsynonym [cminch] [rxinch00] [encoding=x2] % maybe need subst
+ \definefontsynonym [cmfib8] [rxfb0800] [encoding=x2]
+ %\definefontsynonym [cminch] [rxinch00] [encoding=x2]
\definefontsynonym [cmitt10] [rxit1000] [encoding=x2]
\definefontsynonym [cmr10] [rxrm1000] [encoding=x2]
\definefontsynonym [cmr12] [rxrm1200] [encoding=x2]
\definefontsynonym [cmr17] [rxrm1700] [encoding=x2]
- \definefontsynonym [cmr5] [rxrm500] [encoding=x2]
- \definefontsynonym [cmr6] [rxrm600] [encoding=x2]
- \definefontsynonym [cmr7] [rxrm700] [encoding=x2]
- \definefontsynonym [cmr8] [rxrm800] [encoding=x2]
- \definefontsynonym [cmr9] [rxrm900] [encoding=x2]
+ \definefontsynonym [cmr5] [rxrm0500] [encoding=x2]
+ \definefontsynonym [cmr6] [rxrm0600] [encoding=x2]
+ \definefontsynonym [cmr7] [rxrm0700] [encoding=x2]
+ \definefontsynonym [cmr8] [rxrm0800] [encoding=x2]
+ \definefontsynonym [cmr9] [rxrm0900] [encoding=x2]
\definefontsynonym [cmsl10] [rxsl1000] [encoding=x2]
\definefontsynonym [cmsl12] [rxsl1200] [encoding=x2]
- \definefontsynonym [cmsl8] [rxsl800] [encoding=x2]
- \definefontsynonym [cmsl9] [rxsl900] [encoding=x2]
+ \definefontsynonym [cmsl8] [rxsl0800] [encoding=x2]
+ \definefontsynonym [cmsl9] [rxsl0900] [encoding=x2]
\definefontsynonym [cmsltt10] [rxst1000] [encoding=x2]
\definefontsynonym [cmss10] [rxss1000] [encoding=x2]
\definefontsynonym [cmss12] [rxss1200] [encoding=x2]
\definefontsynonym [cmss17] [rxss1700] [encoding=x2]
- \definefontsynonym [cmss8] [rxss800] [encoding=x2]
- \definefontsynonym [cmss9] [rxss900] [encoding=x2]
+ \definefontsynonym [cmss8] [rxss0800] [encoding=x2]
+ \definefontsynonym [cmss9] [rxss0900] [encoding=x2]
\definefontsynonym [cmssbx10] [rxsx1000] [encoding=x2]
%\definefontsynonym [cmssdc10] [rxssdc1000] [encoding=x2]
\definefontsynonym [cmssi10] [rxsi1000] [encoding=x2]
\definefontsynonym [cmssi12] [rxsi1200] [encoding=x2]
\definefontsynonym [cmssi17] [rxsi1700] [encoding=x2]
- \definefontsynonym [cmssi8] [rxsi800] [encoding=x2]
- \definefontsynonym [cmssi9] [rxsi900] [encoding=x2]
- \definefontsynonym [cmssq8] [rxss800] [encoding=x2] % ssq->ss
- \definefontsynonym [cmssqi8] [rxsi800] [encoding=x2] % ssq->ss
+ \definefontsynonym [cmssi8] [rxsi0800] [encoding=x2]
+ \definefontsynonym [cmssi9] [rxsi0900] [encoding=x2]
+ \definefontsynonym [cmssq8] [rxss0800] [encoding=x2]
+ \definefontsynonym [cmssqi8] [rxsi0800] [encoding=x2]
\definefontsynonym [cmtcsc10] [rxtc1000] [encoding=x2]
\definefontsynonym [cmti10] [rxti1000] [encoding=x2]
\definefontsynonym [cmti12] [rxti1200] [encoding=x2]
- \definefontsynonym [cmti7] [rxti700] [encoding=x2]
- \definefontsynonym [cmti8] [rxti800] [encoding=x2]
- \definefontsynonym [cmti9] [rxti900] [encoding=x2]
+ \definefontsynonym [cmti7] [rxti0700] [encoding=x2]
+ \definefontsynonym [cmti8] [rxti0800] [encoding=x2]
+ \definefontsynonym [cmti9] [rxti0900] [encoding=x2]
\definefontsynonym [cmtt10] [rxtt1000] [encoding=x2]
\definefontsynonym [cmtt12] [rxtt1200] [encoding=x2]
- \definefontsynonym [cmtt8] [rxtt800] [encoding=x2]
- \definefontsynonym [cmtt9] [rxtt900] [encoding=x2]
+ \definefontsynonym [cmtt8] [rxtt0800] [encoding=x2]
+ \definefontsynonym [cmtt9] [rxtt0900] [encoding=x2]
\definefontsynonym [cmu10] [rxui1000] [encoding=x2]
\definefontsynonym [cmvtt10] [rxvt1000] [encoding=x2]
\stoptypescript
@@ -565,6 +583,65 @@
\definefontsynonym [cmvtt10] [lhvtt10] [encoding=lcy]
\stoptypescript
+\starttypescript [all] [computer-modern] [ec]
+ \definefontsynonym [cmb10] [ecrb1000] [encoding=ec]
+ \definefontsynonym [cmbx10] [ecbx1000] [encoding=ec]
+ \definefontsynonym [cmbx12] [ecbx1200] [encoding=ec]
+ \definefontsynonym [cmbx5] [ecbx0500] [encoding=ec]
+ \definefontsynonym [cmbx6] [ecbx0600] [encoding=ec]
+ \definefontsynonym [cmbx7] [ecbx0700] [encoding=ec]
+ \definefontsynonym [cmbx8] [ecbx0800] [encoding=ec]
+ \definefontsynonym [cmbx9] [ecbx0900] [encoding=ec]
+ \definefontsynonym [cmbxsl10] [ecbl1000] [encoding=ec]
+ \definefontsynonym [cmbxti10] [ecbi1000] [encoding=ec]
+ \definefontsynonym [cmcsc10] [eccc1000] [encoding=ec]
+ \definefontsynonym [cmdunh10] [ecdh1000] [encoding=ec]
+ \definefontsynonym [cmff10] [ecff1000] [encoding=ec]
+ \definefontsynonym [cmfi10] [ecfi1000] [encoding=ec]
+ \definefontsynonym [cmfib8] [ecfb0800] [encoding=ec]
+ %\definefontsynonym [cminch] [ecinch00] [encoding=ec]
+ \definefontsynonym [cmitt10] [ecit1000] [encoding=ec]
+ \definefontsynonym [cmr10] [ecrm1000] [encoding=ec]
+ \definefontsynonym [cmr12] [ecrm1200] [encoding=ec]
+ \definefontsynonym [cmr17] [ecrm1700] [encoding=ec]
+ \definefontsynonym [cmr5] [ecrm0500] [encoding=ec]
+ \definefontsynonym [cmr6] [ecrm0600] [encoding=ec]
+ \definefontsynonym [cmr7] [ecrm0700] [encoding=ec]
+ \definefontsynonym [cmr8] [ecrm0800] [encoding=ec]
+ \definefontsynonym [cmr9] [ecrm0900] [encoding=ec]
+ \definefontsynonym [cmsl10] [ecsl1000] [encoding=ec]
+ \definefontsynonym [cmsl12] [ecsl1200] [encoding=ec]
+ \definefontsynonym [cmsl8] [ecsl0800] [encoding=ec]
+ \definefontsynonym [cmsl9] [ecsl0900] [encoding=ec]
+ \definefontsynonym [cmsltt10] [ecst1000] [encoding=ec]
+ \definefontsynonym [cmss10] [ecss1000] [encoding=ec]
+ \definefontsynonym [cmss12] [ecss1200] [encoding=ec]
+ \definefontsynonym [cmss17] [ecss1700] [encoding=ec]
+ \definefontsynonym [cmss8] [ecss0800] [encoding=ec]
+ \definefontsynonym [cmss9] [ecss0900] [encoding=ec]
+ \definefontsynonym [cmssbx10] [ecsx1000] [encoding=ec]
+ %\definefontsynonym [cmssdc10] [ecssdc1000] [encoding=ec]
+ \definefontsynonym [cmssi10] [ecsi1000] [encoding=ec]
+ \definefontsynonym [cmssi12] [ecsi1200] [encoding=ec]
+ \definefontsynonym [cmssi17] [ecsi1700] [encoding=ec]
+ \definefontsynonym [cmssi8] [ecsi0800] [encoding=ec]
+ \definefontsynonym [cmssi9] [ecsi0900] [encoding=ec]
+ \definefontsynonym [cmssq8] [ecss0800] [encoding=ec] % ssq->ss
+ \definefontsynonym [cmssqi8] [ecsi0800] [encoding=ec] % ssq->ss
+ \definefontsynonym [cmtcsc10] [ectc1000] [encoding=ec]
+ \definefontsynonym [cmti10] [ecti1000] [encoding=ec]
+ \definefontsynonym [cmti12] [ecti1200] [encoding=ec]
+ \definefontsynonym [cmti7] [ecti0700] [encoding=ec]
+ \definefontsynonym [cmti8] [ecti0800] [encoding=ec]
+ \definefontsynonym [cmti9] [ecti0900] [encoding=ec]
+ \definefontsynonym [cmtt10] [ectt1000] [encoding=ec]
+ \definefontsynonym [cmtt12] [ectt1200] [encoding=ec]
+ \definefontsynonym [cmtt8] [ectt0800] [encoding=ec]
+ \definefontsynonym [cmtt9] [ectt0900] [encoding=ec]
+ \definefontsynonym [cmu10] [ecui1000] [encoding=ec]
+ \definefontsynonym [cmvtt10] [ecvt1000] [encoding=ec]
+\stoptypescript
+
\starttypescript [serif] [computer-modern] [default]
\definefontsynonym [ComputerModern] [cmr10]
\definefontsynonym [ComputerModern-Italic] [cmti10]
@@ -597,7 +674,7 @@
\stoptypescript
\starttypescript [math] [computer-modern] [default]
- % watch the space, it prevents remapping
+ % watch the space, it prevents remapping
\definefontsynonym [ComputerModernMath-Roman] [cmr10 ]
\definefontsynonym [ComputerModernMath-Extension] [cmex10]
\definefontsynonym [ComputerModernMath-Italic] [cmmi10]
diff --git a/tex/context/base/type-ini.tex b/tex/context/base/type-ini.tex
index 145463fb0..9de348af5 100644
--- a/tex/context/base/type-ini.tex
+++ b/tex/context/base/type-ini.tex
@@ -56,8 +56,7 @@
\pushmacro\typescriptthree
\pushmacro\stoptypescript
\typescriptfoundfalse
- \writestatus
- {typescript}
+ \writestatus\m!fonts
{[\@@typescriptone] [\@@typescripttwo] [\@@typescriptthree]}%
\processcommacommand[\typescriptfiles]\dododousetypescript
\firsttypescriptpassfalse % testen
@@ -77,18 +76,12 @@
\popmacro\currenttypefile
\stopreadingfile}
-\def\usetypescriptonce%
+\def\usetypescriptonce
{\dotripleempty\dousetypescriptonce}
-%\def\dousetypescriptonce[#1][#2][#3]%
-% {\doifdefinedelse{@@tso@@#1:#2:#3}
-% {\writestatus{typescript}{(#1) (#2) (#3)}}
-% {\setvalue{@@tso@@#1:#2:#3}{0}%
-% \expanded{\dodousetypescript[#1][#2][#3]}}}
-
\def\dousetypescriptonce[#1][#2][#3]%
{\doifelseflagged{ts:#1:#2:#3}%
- {\writestatus{typescript}{(#1) (#2) (#3)}}
+ {\writestatus\m!fonts{once (#1) (#2) (#3)}}
{\setflag{ts:#1:#2:#3}%
\expanded{\dodousetypescript[#1][#2][#3]}}}
@@ -188,23 +181,59 @@
\def\starttypescript
{\dotripleempty\dostarttypescript}
+% \long\def\dostarttypescript[#1][#2][#3]% #4\stoptypescript
+% {\iffirstargument
+% \let\typescriptone \@@typescriptone
+% \let\typescripttwo \@@typescripttwo
+% \let\typescriptthree\@@typescriptthree
+% \dochecktypescript{#1}\@@typescriptone \typescriptone
+% \ifdone
+% \dochecktypescript{#2}\@@typescripttwo \typescripttwo
+% \ifdone
+% \dochecktypescript{#3}\@@typescriptthree\typescriptthree
+% \ifdone
+% %\debuggerinfo
+% % {typescript}
+% % {\currenttypefile: use=scr (val)
+% % [\@@typescriptone =#1 (\typescriptone)]
+% % [\@@typescripttwo =#2 (\typescripttwo)]
+% % [\@@typescriptthree=#3 (\typescriptthree)]}%
+% \typescriptfoundtrue
+% \let\next\dostarttypescriptA
+% \else
+% \let\next\dostarttypescriptC
+% \fi
+% \else
+% \let\next\dostarttypescriptC
+% \fi
+% \else
+% \let\next\dostarttypescriptC
+% \fi
+% \else\iffirsttypescriptpass
+% \let\next\dostarttypescriptB
+% \else
+% % skip this since it may do unwanted resets, like
+% % setting symbolic font names to unknown, especially
+% % in run time user type scripts
+% \let\next\dostarttypescriptC
+% \fi\fi
+% \next}
+
+\newif\iftracetypescripts
+
\long\def\dostarttypescript[#1][#2][#3]% #4\stoptypescript
- {\iffirstargument
+ {\iftracetypescripts\writestatus\m!fonts{enter [#1] [#2] [#3]}\fi%
+ \iffirstargument
+ \iftracetypescripts\writestatus\m!fonts{check [\@@typescriptone] [\@@typescripttwo] [\@@typescriptthree]}\fi
\let\typescriptone \@@typescriptone
\let\typescripttwo \@@typescripttwo
\let\typescriptthree\@@typescriptthree
- \dochecktypescript{#1}\@@typescriptone \typescriptone
+ \dochecktypescript{#1}\@@typescriptone\typescriptone
\ifdone
- \dochecktypescript{#2}\@@typescripttwo \typescripttwo
+ \dochecktypescript{#2}\@@typescripttwo\typescripttwo
\ifdone
\dochecktypescript{#3}\@@typescriptthree\typescriptthree
\ifdone
- %\debuggerinfo
- % {typescript}
- % {\currenttypefile: use=scr (val)
- % [\@@typescriptone =#1 (\typescriptone)]
- % [\@@typescripttwo =#2 (\typescripttwo)]
- % [\@@typescriptthree=#3 (\typescriptthree)]}%
\typescriptfoundtrue
\let\next\dostarttypescriptA
\else
@@ -216,12 +245,17 @@
\else
\let\next\dostarttypescriptC
\fi
+ \iftracetypescripts
+ \writestatus\m!fonts{\ifdone match\else pass\fi ed}%
+ \fi
\else\iffirsttypescriptpass
+ \iftracetypescripts\writestatus\m!fonts{honored}\fi
\let\next\dostarttypescriptB
\else
% skip this since it may do unwanted resets, like
% setting symbolic font names to unknown, especially
% in run time user type scripts
+ \iftracetypescripts\writestatus\m!fonts{ignored}\fi
\let\next\dostarttypescriptC
\fi\fi
\next}
@@ -354,7 +388,8 @@
\let\typefaceencoding\@@tsencoding
\setcurrentfontclass{#1}
\saverelativefontsize{#2}{\relativefontsize}% fall back
- \writestatus{typeface}{[#1] [#2] [#3] [#4]}
+ %\writestatus{typeface}{[#1] [#2] [#3] [#4]}
+ \writestatus\m!fonts{[#1] [#2] [#3] [#4]}
\usetypescript[map][\typefaceencoding]
\usetypescript[#3][#4][name,default,\typefaceencoding,special]
\usetypescript[#3][#5][size]
diff --git a/tex/context/base/type-pre.tex b/tex/context/base/type-pre.tex
index 21fc3e0d4..76d57b851 100644
--- a/tex/context/base/type-pre.tex
+++ b/tex/context/base/type-pre.tex
@@ -1,8 +1,8 @@
%D \module
%D [ file=type-pre,
-%D version=2001.04.12,
+%D version=2001.04.12,
%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=Compatibility scripts,
+%D subtitle=Compatibility scripts,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -15,11 +15,11 @@
%D Times Roman. In this module, that is loaded by default, we
%D define all relevant alternatives.
-\starttypescript [cmr]
+\starttypescript [cmr]
-\usetypescript [serif,sans,mono,math] [computer-modern] [default,name,size]
+ \usetypescript [serif,sans,mono,math] [computer-modern] [default,name,size]
-\usemathcollection[default]
+ \usemathcollection[default]
\stoptypescript
@@ -28,9 +28,9 @@
\starttypescript [aer]
-\usetypescript [serif,sans,mono,math] [computer-modern] [default,name,size,ec]
+ \usetypescript [serif,sans,mono,math] [computer-modern] [default,name,size,ec]
-\usemathcollection[default]
+ \usemathcollection[default]
\stoptypescript
@@ -39,9 +39,9 @@
\starttypescript [csr]
-\usetypescript [serif,sans,mono,math] [computer-modern] [default,name,size,il2]
+ \usetypescript [serif,sans,mono,math] [computer-modern] [default,name,size,il2]
-\usemathcollection[default]
+ \usemathcollection[default]
\stoptypescript
@@ -50,36 +50,42 @@
\starttypescript [plr]
-\usetypescript [serif,sans,mono,math] [computer-modern] [default,name,size,pl0]
+ \usetypescript [serif,sans,mono,math] [computer-modern] [default,name,size,pl0]
-\usemathcollection[default]
+ \usemathcollection[default]
\stoptypescript
-%D Cyrillic alternatives are available under the symbolic
+%D Cyrillic alternatives are available under the symbolic
%D name \type {cyr}.
\starttypescript [cyr]
-\usetypescript [serif,sans,mono,math] [computer-modern] [default,name,size,cyr]
+ \usetypescript [serif,sans,mono,math] [computer-modern] [default,name,size,cyr]
-\usemathcollection[default]
+ \usemathcollection[default]
\stoptypescript
-\starttypescript [lh-t2a]
+\starttypescript [lh-ec]
-\usetypescript [serif,sans,mono,math] [computer-modern] [default,name,size,t2a]
+ \usetypescript [serif,sans,mono,math] [computer-modern] [default,name,size,ec]
-\usemathcollection[default]
+ \usemathcollection[default]
-\stoptypescript
+\stoptypescript
+
+\starttypescript [lh-t2a]
+
+ \usetypescript [serif,sans,mono,math] [computer-modern] [default,name,size,t2a]
+
+ \usemathcollection[default]
\starttypescript [lh-t2b]
-\usetypescript [serif,sans,mono,math] [computer-modern] [default,name,size,t2b]
+ \usetypescript [serif,sans,mono,math] [computer-modern] [default,name,size,t2b]
-\usemathcollection[default]
+ \usemathcollection[default]
\stoptypescript
@@ -93,17 +99,17 @@
\starttypescript [lh-x2]
-\usetypescript [serif,sans,mono,math] [computer-modern] [default,name,size,x2]
+ \usetypescript [serif,sans,mono,math] [computer-modern] [default,name,size,x2]
-\usemathcollection [default]
+ \usemathcollection [default]
\stoptypescript
\starttypescript [lh-lcy]
-\usetypescript [serif,sans,mono,math] [computer-modern] [default,name,size,lcy]
+ \usetypescript [serif,sans,mono,math] [computer-modern] [default,name,size,lcy]
-\usemathcollection [default]
+ \usemathcollection [default]
\stoptypescript
@@ -113,9 +119,9 @@
\starttypescript [ams]
-\usetypescript [math] [ams] [all]
+ \usetypescript [math] [ams] [all]
-\usemathcollection[ams]
+ \usemathcollection[ams]
\stoptypescript
@@ -124,8 +130,8 @@
\starttypescript [con]
-\usetypescript [serif] [concrete] [all]
-
+ \usetypescript [serif] [concrete] [all]
+
\stoptypescript
%D The Euler Fonts are designed by Herman Zapf and can be
@@ -133,9 +139,9 @@
\starttypescript [eul]
-\usetypescript [math] [euler] [all]
+ \usetypescript [math] [euler] [all]
-\usemathcollection[eul]
+ \usemathcollection[eul]
\stoptypescript
@@ -148,12 +154,12 @@
\starttypescript [lbr]
-\usetypescript [serif,sans,mono,math,handwriting] [lucida] [name,special,\defaultencoding]
-\usetypescript [serif,sans,mono,math,handwriting] [default] [size]
+ \usetypescript [serif,sans,mono,math,handwriting] [lucida] [name,special,\defaultencoding]
+ \usetypescript [serif,sans,mono,math,handwriting] [default] [size]
-\usemathcollection[lbr]
+ \usemathcollection[lbr]
-\usetypescript [map] [\defaultencoding]
+ \usetypescript [map] [\defaultencoding]
\stoptypescript
@@ -164,12 +170,12 @@
\starttypescript [tim]
-\usetypescript [math] [times] [all]
-\usetypescript [math] [default] [size]
+ \usetypescript [math] [times] [all]
+ \usetypescript [math] [default] [size]
-\usemathcollection[tim]
+ \usemathcollection[tim]
-\usetypescript [map] [\defaultencoding]
+ \usetypescript [map] [\defaultencoding]
\stoptypescript
@@ -179,10 +185,10 @@
\starttypescript [ant]
-\usetypescript [serif] [antykwa-torunska] [name,\defaultencoding]
-\usetypescript [serif] [default] [size]
+ \usetypescript [serif] [antykwa-torunska] [name,\defaultencoding]
+ \usetypescript [serif] [default] [size]
-\usetypescript [map] [\defaultencoding]
+ \usetypescript [map] [\defaultencoding]
\stoptypescript
@@ -190,10 +196,10 @@
\starttypescript [pcr]
-\usetypescript [mono] [courier] [name,\defaultencoding]
-\usetypescript [mono] [default] [size]
+ \usetypescript [mono] [courier] [name,\defaultencoding]
+ \usetypescript [mono] [default] [size]
-\usetypescript [map] [\defaultencoding]
+ \usetypescript [map] [\defaultencoding]
\stoptypescript
@@ -201,10 +207,10 @@
\starttypescript [phv]
-\usetypescript [sans] [helvetica] [name,\defaultencoding]
-\usetypescript [sans] [default] [size]
+ \usetypescript [sans] [helvetica] [name,\defaultencoding]
+ \usetypescript [sans] [default] [size]
-\usetypescript [map] [\defaultencoding]
+ \usetypescript [map] [\defaultencoding]
\stoptypescript
@@ -212,10 +218,10 @@
\starttypescript [ptm]
-\usetypescript [serif] [times] [name,\defaultencoding]
-\usetypescript [serif] [default] [size]
+ \usetypescript [serif] [times] [name,\defaultencoding]
+ \usetypescript [serif] [default] [size]
-\usetypescript [map] [\defaultencoding]
+ \usetypescript [map] [\defaultencoding]
\stoptypescript
@@ -224,16 +230,16 @@
\starttypescript [pos]
-\usetypescript [serif] [times] [name,\defaultencoding]
-\usetypescript [sans] [helvetica] [name,\defaultencoding]
-\usetypescript [mono] [courier] [name,\defaultencoding]
+ \usetypescript [serif] [times] [name,\defaultencoding]
+ \usetypescript [sans] [helvetica] [name,\defaultencoding]
+ \usetypescript [mono] [courier] [name,\defaultencoding]
-\usetypescript [serif,sans,mono] [default] [size]
+ \usetypescript [serif,sans,mono] [default] [size]
% \usetypescript [math] [times] [all]
-% \usetypescript [math] [default] [size]
+% \usetypescript [math] [default] [size]
-\usetypescript [map] [\defaultencoding]
+ \usetypescript [map] [\defaultencoding]
\stoptypescript
@@ -241,21 +247,21 @@
\starttypescript [ppl]
-\usetypescript [serif] [palatino] [name,\defaultencoding]
-\usetypescript [serif] [default] [size]
+ \usetypescript [serif] [palatino] [name,\defaultencoding]
+ \usetypescript [serif] [default] [size]
-\usetypescript [map] [\defaultencoding]
+ \usetypescript [map] [\defaultencoding]
\stoptypescript
%D The following scripts fake the old \type {font-ber} and
-%D alike files.
+%D alike files.
\starttypescript[fil]
% fake to prevent loading font-fil.tex and signal 'done'
\stoptypescript
-%D But for old time sake we provide:
+%D But for old time sake we provide:
\starttypescript[ber]
\usetypescript [berry] [ec]
diff --git a/tex/context/base/unic-ini.tex b/tex/context/base/unic-ini.tex
index 3860a7557..68ddd4d48 100644
--- a/tex/context/base/unic-ini.tex
+++ b/tex/context/base/unic-ini.tex
@@ -484,7 +484,7 @@
\def\unidiv{0} \def\unimod{0}
-\chardef\utfunihashmode =0 % 1 = enabled
+\chardef\utfunihashmode=0 % 1 = enabled
\def\utfunifontglyph#1%
{\xdef\unidiv{\number\utfdiv{#1}}%
diff --git a/tex/context/base/x-contml.tex b/tex/context/base/x-contml.tex
index e9dd9418f..cbe356041 100644
--- a/tex/context/base/x-contml.tex
+++ b/tex/context/base/x-contml.tex
@@ -459,3 +459,20 @@
\startstandardmakeup \stopstandardmakeup
\protect \endinput
+
+% TO DO
+
+\defineXMLenvironment [combination] [columns=2,rows=1]
+ {\scratchtoks\emptytoks
+ \expanded{\appendtoks \noexpand \startcombination
+ [\XMLop{columns}*\XMLop{rows}]}\to \scratchtoks}
+ {\appendtoks \stopcombination \to \scratchtoks
+ \the\scratchtoks}
+
+\defineXMLprocess[combinationentry]
+
+\defineXMLpickup [combinationitem]
+ {\appendtoks\bgroup}{\egroup\to\scratchtoks}
+
+\defineXMLpickup [combinationcaption]
+ {\appendtoks\bgroup}{\egroup\to\scratchtoks}
diff --git a/tex/context/base/x-fig-00.tex b/tex/context/base/x-fig-00.tex
index 62b40c4ac..0afc6aea3 100644
--- a/tex/context/base/x-fig-00.tex
+++ b/tex/context/base/x-fig-00.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\readfile{x-res-04} \donothing \donothing \endinput
+% \readfile{x-res-04} \donothing \donothing \endinput
% naast label, ook fig als ref en dan naar fig ref springen
@@ -88,6 +88,8 @@
\unprotect
+\consultutilityfilefalse
+
\startXMLmapping [-] [figbase]
\defineXMLprocess [figurelibrary]
diff --git a/tex/context/base/x-fig-01.tex b/tex/context/base/x-fig-01.tex
index c43b61367..173139a86 100644
--- a/tex/context/base/x-fig-01.tex
+++ b/tex/context/base/x-fig-01.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\readfile {x-res-01} \donothing \donothing \endinput
+% \readfile {x-res-01} \donothing \donothing \endinput
%D See \type {x-fig-00.tex} for more information on how to use
%D and generate figure databases. This file loads the file
diff --git a/tex/context/base/x-fig-02.tex b/tex/context/base/x-fig-02.tex
index 2205fc658..0fec27981 100644
--- a/tex/context/base/x-fig-02.tex
+++ b/tex/context/base/x-fig-02.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\readfile {x-res-02} \donothing \donothing \endinput
+% \readfile {x-res-02} \donothing \donothing \endinput
%D This module enables non||\ConTeXt\ users to access the
%D database. For this, you need to run
diff --git a/tex/context/base/x-res-04.tex b/tex/context/base/x-res-04.tex
index 58b7771f5..37bb6a5b4 100644
--- a/tex/context/base/x-res-04.tex
+++ b/tex/context/base/x-res-04.tex
@@ -101,6 +101,8 @@
\unprotect
+\consultutilityfilefalse
+
% 0 = no loading
% 1 = selective loading
% 2 = full loading
@@ -134,9 +136,9 @@
\doglobal\setflag{rl:#1}
\stopnointerference}}
-\def\figbase@savedata#1#2%
+\def\figbase@savedata#1#2%
{%\writestatus{figbase}{data of #1 loaded}%
- \doglobal\saveXMLdatastructure{rl:#1}{record}{page="#2"}{}{rl:figure}{}}
+ \doglobal\saveXMLdatastructure{rl:rl:#1}{record}{page="#2"}{}{rl:figure}{}}
% locating and if needed loading one figure record
@@ -183,8 +185,8 @@
\xdef\figurefilebase{#1}
\doglobal\newcounter\figurefilepage
\def\askedlabel{#2}
- \doifelseXMLelement{rl:\askedlabel}
- {\enableXMLelements\flushXMLelement{rl:\askedlabel}}
+ \doifelseXMLelement{rl:rl:\askedlabel}
+ {\enableXMLelements\flushXMLelement{rl:rl:\askedlabel}}
{\processcommacommand[\figurepathlist]\dogetfigurefilename}%
\stopXMLmapping
\stopnointerference}
diff --git a/tex/context/base/xtag-mmc.tex b/tex/context/base/xtag-mmc.tex
index 49c81a804..5dcba788f 100644
--- a/tex/context/base/xtag-mmc.tex
+++ b/tex/context/base/xtag-mmc.tex
@@ -553,12 +553,26 @@ complex-cartesian=>\let\next\MMLccartesian,
\remapXMLsingular [root] [CPA] \MMLcROOT
-\def\MMLcROOT#1#2#3\empty%
- {\doifXMLRchildelse{degree}{#3}
- {\root\processXMLRchild{degree}{#3}\of
- {\let\MMLcDEGREE\ignoreXMLRelement
- \MMLcreset\processXMLRchildren{#3}}}
- {\sqrt{\MMLcreset\processXMLRchildren{#3}}}}
+% \def\MMLcROOT#1#2#3\empty
+% {\doifXMLRchildelse{degree}{#3}
+% {\root\processXMLRchild{degree}{#3}\of
+% {\let\MMLcDEGREE\ignoreXMLRelement
+% \MMLcreset\processXMLRchildren{#3}}}
+% {\sqrt{\MMLcreset\processXMLRchildren{#3}}}}
+
+\setupMMLappearance[root][\c!symbool=\v!ja]
+
+\def\MMLcROOT#1#2#3\empty
+ {\doifXMLRchildelse{degree}{#3}\donetrue\donefalse
+ \doif\@@MMLrootsymbool\v!nee\donefalse
+ \ifdone
+ \root\processXMLRchild{degree}{#3}\of
+ {\let\MMLcDEGREE\ignoreXMLRelement
+ \MMLcreset\processXMLRchildren{#3}}%
+ \else
+ \sqrt
+ {\MMLcreset\processXMLRchildren{#3}}%
+ \fi}
\remapXMLsingular [gcd] [CPA] \MMLcGCD