summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fonts/map/pdftex/context/context-base.map2
-rw-r--r--fonts/map/pdftex/context/original-public-lm.map2
-rw-r--r--fonts/map/pdftex/context/pdftex.map1
-rw-r--r--scripts/context/perl/texexec.pl244
-rw-r--r--scripts/context/ruby/base/tex.rb41
-rw-r--r--scripts/context/ruby/ctxtools.rb154
-rw-r--r--scripts/context/ruby/texmfstart.rb31
-rw-r--r--scripts/context/ruby/textools.rb79
-rw-r--r--tex/context/base/context.tex2
-rw-r--r--tex/context/base/core-ver.tex21
-rw-r--r--tex/context/base/lang-dis.tex6
-rw-r--r--tex/context/base/ppchtex.tex21
-rw-r--r--tex/context/base/spec-dpx.tex5
-rw-r--r--tex/context/base/supp-eps.tex102
-rw-r--r--tex/context/base/symb-ini.tex9
-rw-r--r--tex/context/base/verb-ini.tex4
-rw-r--r--tex/context/interface/cont-cz.xml13
-rw-r--r--tex/context/interface/cont-de.xml13
-rw-r--r--tex/context/interface/cont-en.xml13
-rw-r--r--tex/context/interface/cont-it.xml13
-rw-r--r--tex/context/interface/cont-nl.xml13
-rw-r--r--tex/context/interface/cont-ro.xml13
-rw-r--r--tex/context/interface/keys-cz.xml2
-rw-r--r--tex/context/interface/keys-de.xml2
-rw-r--r--tex/context/interface/keys-en.xml2
-rw-r--r--tex/context/interface/keys-it.xml2
-rw-r--r--tex/context/interface/keys-nl.xml2
-rw-r--r--tex/context/interface/keys-ro.xml2
-rw-r--r--web2c/context.cnf18
29 files changed, 632 insertions, 200 deletions
diff --git a/fonts/map/pdftex/context/context-base.map b/fonts/map/pdftex/context/context-base.map
index 892912003..3e46c647c 100644
--- a/fonts/map/pdftex/context/context-base.map
+++ b/fonts/map/pdftex/context/context-base.map
@@ -145,7 +145,7 @@ eusm10 EUSM10 <eusm10.pfb
cmb10 CMB10 <cmrm.enc <lmb10.pfb
cmbx10 CMBX10 <cmrm.enc <lmbx10.pfb
cmbx12 CMBX12 <cmrm.enc <lmbx12.pfb
-cmbx5 CMBX12 <cmrm.enc <lmbx5.pfb
+cmbx5 CMBX5 <cmrm.enc <lmbx5.pfb
cmbx6 CMBX6 <cmrm.enc <lmbx6.pfb
cmbx7 CMBX7 <cmrm.enc <lmbx7.pfb
cmbx8 CMBX8 <cmrm.enc <lmbx8.pfb
diff --git a/fonts/map/pdftex/context/original-public-lm.map b/fonts/map/pdftex/context/original-public-lm.map
index 1b3aaa3c9..2ba41ba78 100644
--- a/fonts/map/pdftex/context/original-public-lm.map
+++ b/fonts/map/pdftex/context/original-public-lm.map
@@ -68,7 +68,7 @@
cmb10 CMB10 <cmrm.enc <lmb10.pfb
cmbx10 CMBX10 <cmrm.enc <lmbx10.pfb
cmbx12 CMBX12 <cmrm.enc <lmbx12.pfb
-cmbx5 CMBX12 <cmrm.enc <lmbx5.pfb
+cmbx5 CMBX5 <cmrm.enc <lmbx5.pfb
cmbx6 CMBX6 <cmrm.enc <lmbx6.pfb
cmbx7 CMBX7 <cmrm.enc <lmbx7.pfb
cmbx8 CMBX8 <cmrm.enc <lmbx8.pfb
diff --git a/fonts/map/pdftex/context/pdftex.map b/fonts/map/pdftex/context/pdftex.map
new file mode 100644
index 000000000..25e75fa06
--- /dev/null
+++ b/fonts/map/pdftex/context/pdftex.map
@@ -0,0 +1 @@
+% empty file
diff --git a/scripts/context/perl/texexec.pl b/scripts/context/perl/texexec.pl
index 3f11a83cc..263388a4c 100644
--- a/scripts/context/perl/texexec.pl
+++ b/scripts/context/perl/texexec.pl
@@ -52,7 +52,7 @@ use FindBin;
use File::Compare;
use File::Temp;
-use IO::Handle; autoflush STDOUT 1;
+#~ use IO::Handle; autoflush STDOUT 1;
my %ConTeXtInterfaces; # otherwise problems with strict
my %ResponseInterface; # since i dunno how to allocate else
@@ -199,6 +199,7 @@ my $TheEnginePath = 0 ;
my $Paranoid = 0 ;
my $NotParanoid = 0 ;
my $BoxType = '' ;
+my $Local = '' ;
my $TempDir = '' ;
@@ -258,7 +259,9 @@ my $MakeMpy = '';
"autopath" => \$AutoPath,
"pdf" => \$ProducePdfT,
"pdm" => \$ProducePdfM,
+ "dpm" => \$ProducePdfM,
"pdx" => \$ProducePdfX,
+ "dpx" => \$ProducePdfX,
"xtx" => \$ProducePdfXTX,
"pdfarrange" => \$PdfArrange,
"pdfselect" => \$PdfSelect,
@@ -312,6 +315,7 @@ my $MakeMpy = '';
"paranoid" => \$Paranoid,
"notparanoid" => \$NotParanoid,
"boxtype=s" => \$BoxType, # media art crop bleed trim
+ "local" => \$Local,
#### unix is unsafe (symlink viruses)
"tempdir=s" => \$TempDir,
#### experiment
@@ -420,7 +424,7 @@ if ( ( $LogFile ne '' ) && ( $LogFile =~ /\w+\.log$/io ) ) {
*STDERR = *LOGFILE;
}
-my $Program = " TeXExec 5.4.1 - ConTeXt / PRAGMA ADE 1997-2005";
+my $Program = " TeXExec 5.4.2 - ConTeXt / PRAGMA ADE 1997-2005";
print "\n$Program\n\n";
@@ -775,7 +779,7 @@ $SetFile = IniValue( 'SetFile', $SetFile );
if ( ($Verbose) && ( $kpsewhich ne '' ) ) {
print "\n";
my $CnfFile = `$kpsewhich -progname=context texmf.cnf`;
- chomp $CnfFile;
+ chomp($CnfFile);
print " applications will use : $CnfFile\n";
}
@@ -866,16 +870,29 @@ $SetupPath =~ s/\\/\//go;
my %OutputFormats;
-$OutputFormats{pdf} = "pdftex";
-$OutputFormats{pdftex} = "pdftex";
+# the mother of all drivers
+
$OutputFormats{dvips} = "dvips";
-$OutputFormats{dvipsone} = "dvipsone";
+
+# needs an update
+
$OutputFormats{acrobat} = "acrobat";
+
+# the core drivers
+
+$OutputFormats{pdftex} = "pdftex"; $OutputFormats{pdf} = "pdftex";
+$OutputFormats{dvipdfm} = "dvipdfm"; $OutputFormats{dpm} = "dvipdfm";
+$OutputFormats{dvipdfmx} = "dvipdfmx"; $OutputFormats{dpx} = "dvipdfmx";
+$OutputFormats{xetex} = "xetex"; $OutputFormats{xtx} = "xetex";
+
+# kind of obsolete now that yandy is gone
+
+$OutputFormats{dvipsone} = "dvipsone";
$OutputFormats{dviwindo} = "dviwindo";
+
+# it was never finished
+
$OutputFormats{dviview} = "dviview";
-$OutputFormats{dvipdfm} = "dvipdfm";
-$OutputFormats{dvipdfmx} = "dvipdfmx";
-$OutputFormats{xetex} = "xetex";
my @ConTeXtFormats = ( "nl", "en", "de", "cz", "uk", "it", "ro", "xx");
@@ -1075,6 +1092,18 @@ sub System {
system($cmd)
}
+sub Pipe {
+ my $cmd = shift ;
+ unless ( $dosish && ! $escapeshell ) {
+ $cmd =~ s/([^\\])\&/$1\\\&/io ;
+ }
+ if ($Verbose) {
+ print "\n$cmd\n\n" ;
+ }
+ return `$cmd`
+}
+
+
sub RunPerlScript {
my ( $ScriptName, $Options ) = @_;
my $cmd = '';
@@ -1117,9 +1146,7 @@ sub CheckOutputFormat {
}
}
if ( !$Ok ) {
- print $Help{'output'};
- } elsif ($FullFormat) {
- # print OPT "\\setupoutput[$FullFormat]\n";
+ print(" unknown output format : $OutputFormat\n");
}
}
unless ($FullFormat) { $FullFormat = $OutputFormat }
@@ -1656,23 +1683,23 @@ sub isXMLfile {
sub RunConTeXtFile {
my ( $JobName, $JobSuffix ) = @_;
-if ($AutoPath) {
- if ($JobName =~ /^(.*)[\/\\](.*?)$/o) {
- $InpPath = $1 ;
- $JobName = $2 ;
+ if ($AutoPath) {
+ if ($JobName =~ /^(.*)[\/\\](.*?)$/o) {
+ $InpPath = $1 ;
+ $JobName = $2 ;
+ }
}
-}
$JobName =~ s/\\/\//goi;
$InpPath =~ s/\\/\//goi;
my $OriSuffix = $JobSuffix;
-if ($JobSuffix =~ /\_fo$/i) {
- if (! -f $JobName) {
- print "stripping funny suffix : _fo\n";
- $JobName =~ s/\_fo$//io ;
- $JobSuffix =~ s/\_fo$//io ;
- $OriSuffix =~ s/\_fo$//io ;
+ if ($JobSuffix =~ /\_fo$/i) {
+ if (! -f $JobName) {
+ print "stripping funny suffix : _fo\n";
+ $JobName =~ s/\_fo$//io ;
+ $JobSuffix =~ s/\_fo$//io ;
+ $OriSuffix =~ s/\_fo$//io ;
+ }
}
-}
if (($dosish) && ($PdfClose)) {
my $ok = System("pdfclose --file $JobName.pdf") if -e "$JobName.pdf" ;
if (($Result ne '') && (-e "$Result.pdf")) {
@@ -1841,10 +1868,16 @@ if ($JobSuffix =~ /\_fo$/i) {
unlink "$JobName.tup"; # previous tuo file
unlink "$JobName.top"; # runtime option file
if ($ProducePdfX) {
- System("dvipdfmx -f dvipdfmx.map -d 4 $JobName") ;
+ $ENV{'backend'} = $ENV{'progname'} = 'dvipdfm' ;
+ $ENV{'TEXFONTMAPS'} = '.;$TEXMF/fonts/map/{dvipdfm,dvips,}//' ;
+ System("dvipdfmx -d 4 $JobName") ;
} elsif ($ProducePdfM) {
+ $ENV{'backend'} = $ENV{'progname'} = 'dvipdfm' ;
+ $ENV{'TEXFONTMAPS'} = '.;$TEXMF/fonts/map/{dvipdfm,dvips,}//' ;
System("dvipdfm $JobName") ;
} elsif ($ProducePdfXTX) {
+ $ENV{'backend'} = $ENV{'progname'} = 'xetex' ;
+ $ENV{'TEXFONTMAPS'} = '.;$TEXMF/fonts/map/{xetex,pdftex,dvips,}//' ;
System("xdv2pdf $JobName.xdv") ;
}
PopResult($JobName);
@@ -2205,86 +2238,92 @@ sub LocatedFormatPath { # watch out $engine is lowercase in kpse
my $FormatPath = shift;
my $EnginePath = shift;
my $EngineDone = shift;
- if ( ( $FormatPath eq '' ) && ( $kpsewhich ne '' ) ) {
- unless ($EngineDone) {
- my $str = $ENV{"TEXFORMATS"} ;
- $str =~ s/\$engine//io ;
- $ENV{"TEXFORMATS"} = $str ;
- }
- # expanded paths
- print " assuming engine : $EnginePath\n";
- if (($UseEnginePath)&&($EngineDone)) {
- $FormatPath = `$kpsewhich --engine=$EnginePath --show-path=fmt` ;
- } else {
- $FormatPath = `$kpsewhich --show-path=fmt` ;
- }
- chomp $FormatPath ;
- if ( ( $FormatPath ne '' ) && $Verbose ) {
- print "located formatpath (1) : $FormatPath\n";
- }
- # fall back
- if ($FormatPath eq '') {
+ if ($Local) {
+ $FormatPath = '.' ; # for patrick
+ } else {
+ if ( ( $FormatPath eq '' ) && ( $kpsewhich ne '' ) ) {
+ unless ($EngineDone) {
+ my $str = $ENV{"TEXFORMATS"} ;
+ $str =~ s/\$engine//io ;
+ $ENV{"TEXFORMATS"} = $str ;
+ }
+ # expanded paths
+ print " assuming engine : $EnginePath\n";
if (($UseEnginePath)&&($EngineDone)) {
- if ($dosish) {
- $FormatPath = `$kpsewhich --engine=$EnginePath --expand-path=\$TEXFORMATS` ;
- } else {
- $FormatPath = `$kpsewhich --engine=$EnginePath --expand-path=\\\$TEXFORMATS` ;
- }
+ $FormatPath = `$kpsewhich --engine=$EnginePath --show-path=fmt` ;
+ } else {
+ $FormatPath = `$kpsewhich --show-path=fmt` ;
+ }
+ chomp($FormatPath) ;
+ if ( ( $FormatPath ne '' ) && $Verbose ) {
+ print "located formatpath (1) : $FormatPath\n";
}
- # either no enginepath or failed run
+ # fall back
if ($FormatPath eq '') {
- if ($dosish) {
- $FormatPath = `$kpsewhich --expand-path=\$TEXFORMATS` ;
- } else {
- $FormatPath = `$kpsewhich --expand-path=\\\$TEXFORMATS` ;
+ if (($UseEnginePath)&&($EngineDone)) {
+ if ($dosish) {
+ $FormatPath = `$kpsewhich --engine=$EnginePath --expand-path=\$TEXFORMATS` ;
+ } else {
+ $FormatPath = `$kpsewhich --engine=$EnginePath --expand-path=\\\$TEXFORMATS` ;
+ }
+ }
+ chomp($FormatPath) ;
+ # either no enginepath or failed run
+ if ($FormatPath eq '') {
+ if ($dosish) {
+ $FormatPath = `$kpsewhich --expand-path=\$TEXFORMATS` ;
+ } else {
+ $FormatPath = `$kpsewhich --expand-path=\\\$TEXFORMATS` ;
+ }
}
+ chomp $FormatPath ;
}
- }
- chomp $FormatPath ;
- if ( ( $FormatPath ne '' ) && $Verbose ) {
- print "located formatpath (2) : $FormatPath\n";
- }
- $FormatPath =~ s/\\/\//g ;
- if ($FormatPath ne '') {
- my @fpaths ;
- if ($dosish) {
- @fpaths = split(';', $FormatPath) ;
- } else {
- @fpaths = split(':', $FormatPath) ;
+ chomp($FormatPath) ;
+ if ( ( $FormatPath ne '' ) && $Verbose ) {
+ print "located formatpath (2) : $FormatPath\n";
}
- # take first writable unless current
- foreach my $fp (@fpaths) {
- # remove funny patterns
- $fp =~ s/\/+$// ;
- $fp =~ s/^!!// ;
- $fp =~ s/unsetengine/$EnginePath/ ;
- if (($fp ne '') && ($fp ne '.')) {
- # correct if needed
- # append engine unless engine is already there
- $fp =~ "$fp/$EnginePath" if ($fp =~ /[\\\/]$EnginePath[\\\/]*$/) ;
- # path may not yet be present
- # check if usable format path
- my $fpp = $fp ;
- $fpp =~ s/\/*$EnginePath\/*// ;
- if ((-d $fpp) && (-w $fpp)) {
- $FormatPath = $fpp ;
- last ;
+ $FormatPath =~ s/\\/\//g ;
+ if ($FormatPath ne '') {
+ my @fpaths ;
+ if ($dosish) {
+ @fpaths = split(';', $FormatPath) ;
+ } else {
+ @fpaths = split(':', $FormatPath) ;
+ }
+ # take first writable unless current
+ foreach my $fp (@fpaths) {
+ # remove funny patterns
+ $fp =~ s/\/+$// ;
+ $fp =~ s/^!!// ;
+ $fp =~ s/unsetengine/$EnginePath/ ;
+ if (($fp ne '') && ($fp ne '.')) {
+ # correct if needed
+ # append engine unless engine is already there
+ $fp =~ "$fp/$EnginePath" if ($fp =~ /[\\\/]$EnginePath[\\\/]*$/) ;
+ # path may not yet be present
+ # check if usable format path
+ my $fpp = $fp ;
+ $fpp =~ s/\/*$EnginePath\/*// ;
+ if ((-d $fpp) && (-w $fpp)) {
+ $FormatPath = $fpp ;
+ last ;
+ }
}
}
}
+ $FormatPath = '.' if (($FormatPath eq '') || (! -w $FormatPath)) ;
+ if ( ( $FormatPath ne '' ) && $Verbose ) {
+ print "located formatpath (3) : $FormatPath\n";
+ }
+ $FormatPath .= '/';
}
- $FormatPath = '.' if (($FormatPath eq '') || (! -w $FormatPath)) ;
- if ( ( $FormatPath ne '' ) && $Verbose ) {
- print "located formatpath (3) : $FormatPath\n";
- }
- $FormatPath .= '/';
- }
- if ($UseEnginePath && $EngineDone && ($FormatPath ne '') && ($FormatPath !~ /$EnginePath\/$/)) {
- $FormatPath .= $EnginePath ;
- unless (-d $FormatPath) {
- mkdir $FormatPath ;
+ if ($UseEnginePath && $EngineDone && ($FormatPath ne '') && ($FormatPath !~ /$EnginePath\/$/)) {
+ $FormatPath .= $EnginePath ;
+ unless (-d $FormatPath) {
+ mkdir $FormatPath ;
+ }
+ $FormatPath .= '/' ;
}
- $FormatPath .= '/' ;
}
print " using formatpath : $FormatPath\n" if $Verbose ;
return $FormatPath;
@@ -2405,17 +2444,18 @@ sub checktexformatpath {
if ($texformats eq '') {
if ($UseEnginePath) {
if ($dosish) {
- $texformats = `kpsewhich --engine=$TeXExecutable --expand-var=\$TEXFORMATS`.chomp ;
+ $texformats = `kpsewhich --engine=$TeXExecutable --expand-var=\$TEXFORMATS` ;
} else {
- $texformats = `kpsewhich --engine=$TeXExecutable --expand-var=\\\$TEXFORMATS`.chomp ;
+ $texformats = `kpsewhich --engine=$TeXExecutable --expand-var=\\\$TEXFORMATS` ;
}
} else {
if ($dosish) {
- $texformats = `kpsewhich --expand-var=\$TEXFORMATS`.chomp ;
+ $texformats = `kpsewhich --expand-var=\$TEXFORMATS` ;
} else {
- $texformats = `kpsewhich --expand-var=\\\$TEXFORMATS`.chomp ;
+ $texformats = `kpsewhich --expand-var=\\\$TEXFORMATS` ;
}
}
+ chomp($texformats) ;
}
if (($texformats !~ /web2c\/.*$TeXExecutable/) && ($texformats !~ /web2c[\/\\].*\$engine/i)) {
$texformats =~ s/(web2c\/\{)(\,\})/$1\$engine$2/ ; # needed for empty engine flags
@@ -2839,7 +2879,7 @@ sub AnalyzeVersion
my ($texengine,$type) = ('unknown', 'unknown');
open (LOG, "<texvers.log") ;
while (<LOG>)
- { /^\s*This is (.*pdf(|e|x)TeX.*?)$/o and $texengine = $1 ;
+ { /^\s*This is (.*(pdf)?(|e|x)TeX.*?)$/o and $texengine = $1 ;
/^\s*ConTeXt (.*int: ([a-z]+).*?)\s*$/o and $type = $1; }
$type =~ s/ int: ([a-z]+)//;
$texengine =~ s/ Version//;
@@ -2870,16 +2910,16 @@ sub show_version_info {
$EnterBatchMode = 1;
$Format = 'cont-en';
my $cmd = PrepRunTeX("texvers","tex",'') ;
- ($texengine,$type) = AnalyzeVersion(`$cmd`) ;
+ ($texengine,$type) = AnalyzeVersion(Pipe($cmd)) ;
print " tex : $texengine\n" ;
print " context : ver: $contextversion\n" ;
print " cont-en : $type\n" ;
foreach my $a (qw(cz de it nl ro uk xx)) {
- my $test = `$kpsewhich -format='fmt' cont-$a`;
+ my $test = Pipe("$kpsewhich -format='fmt' cont-$a") ;
if (defined $test && $test) {
$Format = 'cont-' . $a;
$cmd = PrepRunTeX("texvers","tex",'');
- ($texengine,$type) = AnalyzeVersion(`$cmd`) ;
+ ($texengine,$type) = AnalyzeVersion(Pipe($cmd)) ;
print " cont-$a : $type\n" ;
}
}
diff --git a/scripts/context/ruby/base/tex.rb b/scripts/context/ruby/base/tex.rb
index e9f66ea8d..cea6662ae 100644
--- a/scripts/context/ruby/base/tex.rb
+++ b/scripts/context/ruby/base/tex.rb
@@ -71,7 +71,7 @@ class TEX
'batchmode', 'nonstopmode', 'fastmode', 'fastdisabled', 'silentmode', 'final',
'paranoid', 'notparanoid', 'nobanner', 'once', 'allpatterrns',
'nompmode', 'nomprun', 'automprun',
- 'nomapfiles',
+ 'nomapfiles', 'local',
'arrange', 'noarrange',
'forcexml', 'foxet',
'mpyforce', 'forcempy',
@@ -236,8 +236,15 @@ class TEX
end
def openedfile(name)
- cleanuplater(name) if f = File.open(name, 'w')
- return f
+ begin
+ f = File.open(name,'w')
+ rescue
+ report("file '#{File.expand_path(name)}' cannot be opened for writing")
+ return nil
+ else
+ cleanuplater(name) if f
+ return f
+ end
end
def prefixed(format,engine)
@@ -395,7 +402,7 @@ class TEX
# generate tex formats
if texformats && texengine && (progname = validprogname(getvariable('progname'),texengine)) then
report("using tex engine #{texengine}")
- texformatpath = Kpse.formatpath(texengine,true)
+ texformatpath = if getvariable('local') then '.' else Kpse.formatpath(texengine,true) end
# can be empty, to do
report("using tex format path #{texformatpath}")
begin
@@ -421,7 +428,7 @@ class TEX
# generate mps formats
if mpsformats && mpsengine && (progname = validprogname(getvariable('progname'),mpsengine)) then
report("using mp engine #{mpsengine}")
- mpsformatpath = Kpse.formatpath(mpsengine,false)
+ mpsformatpath = if getvariable('local') then '.' else Kpse.formatpath(mpsengine,false) end
report("using mps format path #{mpsformatpath}")
begin
Dir.chdir(mpsformatpath)
@@ -998,6 +1005,12 @@ class TEX
Kpse.runscript('texexec',filename,options)
end
+ def fixbackendvars(backend)
+ ENV['backend'] = backend ;
+ ENV['progname'] = backend unless validtexengine(backend)
+ ENV['TEXFONTMAPS'] = ".;\$TEXMF/fonts/map/{#{backend},pdftex,dvips,}//"
+ end
+
def processcontextfile
takeprecautions
@@ -1098,10 +1111,20 @@ class TEX
['tup','top'].each do |s| # previous tuo file / runtime option file
File.silentdelete(File.suffixed(jobname,s))
end
- case validbackend(getvariable('driver'))
- when 'dvipdfmx' then system("dvipdfmx -f dvipdfmx.map -d 4 #{File.unsuffixed(jobname)}")
- when 'xetex' then system("xdv2pdf #{File.suffixed(jobname,'xdv')}")
- when 'dvips' then system("dvips #{File.unsuffixed(jobname)}")
+ case validbackend(getvariable('backend'))
+ when 'dvipdfmx' then
+ fixbackendvars('dvipdfm')
+ system("dvipdfmx -d 4 #{File.unsuffixed(jobname)}")
+ when 'xetex' then
+ fixbackendvars('xetex')
+ system("xdv2pdf #{File.suffixed(jobname,'xdv')}")
+ when 'dvips' then
+ fixbackendvars('dvips')
+ system("dvips #{File.unsuffixed(jobname)}")
+ when 'pdftex' then
+ # no need for postprocessing
+ else
+ report("no postprocessing needed")
end
popresult(jobname,result)
end
diff --git a/scripts/context/ruby/ctxtools.rb b/scripts/context/ruby/ctxtools.rb
index 1a87e298e..4e69d9534 100644
--- a/scripts/context/ruby/ctxtools.rb
+++ b/scripts/context/ruby/ctxtools.rb
@@ -767,26 +767,51 @@ class Language
@remapping.push([from,to])
end
+ # def load(filenames=@filenames)
+ # begin
+ # if filenames then
+ # @filenames = [filenames].flatten
+ # @filenames.each do |filename|
+ # begin
+ # if filename = located(filename) then
+ # data = IO.read(filename)
+ # @data += data.gsub(/\%.*$/, '')
+ # data.gsub!(/(\\patterns|\\hyphenation)\s*\{.*/mo) do '' end
+ # @read += "\n% preamble of file #{filename}\n\n#{data}\n"
+ # else
+ # report("file #{filename} is not found")
+ # end
+ # rescue
+ # report("file #{filename} is not readable")
+ # else
+ # report("file #{filename} is loaded")
+ # end
+ # end
+ # end
+ # rescue
+ # end
+ # end
+
def load(filenames=@filenames)
begin
if filenames then
- @filenames = [filenames].flatten
- @filenames.each do |filename|
- begin
- if filename = located(filename) then
- data = IO.read(filename)
- @data += data.gsub(/\%.*$/, '')
- data.gsub!(/(\\patterns|\\hyphenation)\s*\{.*/mo) do '' end
- @read += "\n% preamble of file #{filename}\n\n#{data}\n"
- else
- report("file #{filename} is not found")
+ @filenames.each do |fileset|
+ [fileset].flatten.each do |filename|
+ begin
+ if filename = located(filename) then
+ data = IO.read(filename)
+ @data += data.gsub(/\%.*$/, '')
+ data.gsub!(/(\\patterns|\\hyphenation)\s*\{.*/mo) do '' end
+ @read += "\n% preamble of file #{filename}\n\n#{data}\n"
+ report("file #{filename} is loaded")
+ break # next fileset
+ else
+ report("file #{filename} is not found")
+ end
+ rescue
+ report("file #{filename} is not readable")
end
- rescue
- report("file #{filename} is not readable")
- else
- report("file #{filename} is loaded")
end
- # @data.gsub!(/\s\\[nc]\{(.*?)\}\s/o) do $1 end
end
end
rescue
@@ -1146,7 +1171,8 @@ class Commands
# ghyphen.readme ghyph31.readme grphyph
@@languagedata['hr' ] = [['hrhyph.tex'], 'ec']
@@languagedata['hu' ] = [['huhyphn.tex'], 'ec']
- @@languagedata['en' ] = [['hyphen.tex'], 'default']
+ @@languagedata['en' ] = [[['ushyph','hyphen.tex']], 'default']
+ @@languagedata['en' ] = [['ushyph.tex'], 'default']
# inhyph.tex
@@languagedata['is' ] = [['ishyph.tex'], 'ec']
@@languagedata['it' ] = [['ithyph.tex'], 'ec']
@@ -1164,7 +1190,95 @@ class Commands
# srhyphc.tex / cyrillic
@@languagedata['sv' ] = [['svhyph.tex'], 'ec']
@@languagedata['tr' ] = [['tkhyph.tex'], 'ec']
- @@languagedata['uk' ] = [['ukhyphen.tex'], 'default']
+ @@languagedata['uk' ] = [[['ukhyph','ukhyphen.tex']], 'default']
+
+end
+
+class Commands
+
+ include CommandBase
+
+ def dpxmapfiles
+
+ force = @commandline.option("force")
+
+ texmfroot = @commandline.argument('first')
+ texmfroot = '.' if texmfroot.empty?
+ maproot = "#{texmfroot}/fonts/map/pdftex/context"
+
+ if File.directory?(maproot) then
+ if files = Dir.glob("#{maproot}/*.map") and files.size > 0 then
+ files.each do |pdffile|
+ next if File.basename(pdffile) == 'pdftex.map'
+ pdffile = File.expand_path(pdffile)
+ dpxfile = File.expand_path(pdffile.sub(/pdftex/i,'dvipdfm'))
+ unless pdffile == dpxfile then
+ begin
+ if data = File.read(pdffile) then
+ report("< #{File.basename(pdffile)} - pdf(e)tex")
+ n = 0
+ data = data.collect do |line|
+ if line =~ /^[\%\#]+/mo then
+ ''
+ else
+ encoding = if line =~ /([a-z0-9\-]+)\.enc/io then $1 else '' end
+ fontfile = if line =~ /([a-z0-9\-]+)\.(pfb|ttf)/io then $1 else nil end
+ metrics = if line =~ /^([a-z0-9\-]+)[\s\<]+/io then $1 else nil end
+ if metrics && encoding && fontfile then
+ n += 1
+ "#{metrics} #{encoding} #{fontfile}"
+ else
+ ''
+ end
+ end
+ end
+ data.delete_if do |line|
+ line.gsub(/\s+/,'').empty?
+ end
+ begin
+ if force then
+ if n > 0 then
+ File.makedirs(File.dirname(dpxfile))
+ if f = File.open(dpxfile,'w') then
+ report("> #{File.basename(dpxfile)} - dvipdfm(x) - #{n}")
+ f.puts(data)
+ f.close
+ else
+ report("? #{File.basename(dpxfile)} - dvipdfm(x)")
+ end
+ else
+ report("- #{File.basename(dpxfile)} - dvipdfm(x)")
+ begin File.delete(dpxname) ; rescue ; end
+ end
+ else
+ report(". #{File.basename(dpxfile)} - dvipdfm(x) - #{n}")
+ end
+ rescue
+ report("error in saving dvipdfm file")
+ end
+ else
+ report("error in loading pdftex file")
+ end
+ rescue
+ report("error in processing pdftex file")
+ end
+ end
+ end
+ if force then
+ begin
+ report("regenerating database for #{texmfroot}")
+ system("mktexlsr #{texmfroot}")
+ rescue
+ end
+ end
+ else
+ report("no mapfiles found in #{maproot}")
+ end
+ else
+ report("provide proper texmfroot")
+ end
+
+ end
end
@@ -1182,12 +1296,14 @@ commandline.registeraction('rawinterface', 'generate raw syntax files [--pipe]')
commandline.registeraction('translateinterface', 'generate interface files (xml) [nl de ..]')
commandline.registeraction('purgefiles', 'remove temporary files [--all] [basename]')
-commandline.registeraction('documentation', 'generate documentation file [--type=] [filename]')
+commandline.registeraction('documentation', 'generate documentation [--type=] [filename]')
commandline.registeraction('filterpages') # no help, hidden temporary feature
commandline.registeraction('purgeallfiles') # no help, compatibility feature
-commandline.registeraction('patternfiles', 'generate pattern files [languagecode|all]')
+commandline.registeraction('patternfiles', 'generate pattern files [--all] [languagecode]')
+
+commandline.registeraction('dpxmapfiles', 'convert pdftex mapfiles to dvipdfmx [--force] [texmfroot]')
commandline.registervalue('type','')
diff --git a/scripts/context/ruby/texmfstart.rb b/scripts/context/ruby/texmfstart.rb
index 82b87a7e9..c082b623d 100644
--- a/scripts/context/ruby/texmfstart.rb
+++ b/scripts/context/ruby/texmfstart.rb
@@ -26,6 +26,8 @@
#
# file: path: bin:
+# texmfstart --exec bin:scite *.tex
+
# we don't depend on other libs
$ownpath = File.expand_path(File.dirname($0)) unless defined? $ownpath
@@ -375,35 +377,30 @@ def usage
print(" texmfstart --page=2 --file=showcase.pdf\n")
print(" texmfstart --program=yourtex yourscript.pl arg-1 arg-2\n")
print(" texmfstart --direct xsltproc kpse:somefile.xsl somefile.xml\n")
- print(" texmfstart bin:xsltproc env:somepreset kpse:somefile.xsl somefile.xml\n")
+ print(" texmfstart bin:xsltproc env:somepreset path:somefile.xsl somefile.xml\n")
print(" texmfstart --iftouched=normal,lowres downsample.rb normal lowres\n")
+ print(" texmfstart texmfstart bin:scite kpse:texmf.cnf\n")
+ print(" texmfstart texmfstart --exec bin:scite *.tex\n")
end
# somehow registration does not work out (at least not under windows)
+def tag(name)
+ if $crossover then "_CTX_K_S_#{name}_" else "TEXMFSTART.#{name}" end
+end
+
def registered?(filename)
- if $crossover then
- return ENV["_CTX_K_S_#{filename}_"] != nil
- else
- return ENV["TEXMFSTART.#{filename}"] != nil
- end
+ return ENV[tag(filename)] != nil
end
def registered(filename)
- if $crossover then
- return ENV["_CTX_K_S_#{filename}_"]
- else
- return ENV["TEXMFSTART.#{filename}"]
- end
+ return ENV[tag(filename)]
end
def register(filename,fullname)
if fullname && ! fullname.empty? then # && FileTest.file?(fullname)
- if $crossover then
- ENV["_CTX_K_S_#{filename}_"] = fullname
- else
- ENV["TEXMFSTART.#{filename}"] = fullname
- end
+ ENV[tag(filename)] = fullname
+ report("registering '#{filename}' as '#{fullname}'")
return true
else
return false
@@ -760,7 +757,7 @@ def execute(arguments)
direct($filename)
else # script: or no prefix
command = find(shortpathname($filename),$program)
- register("THREAD",File.dirname(command))
+ register("THREAD",File.dirname(File.expand_path(command)))
run(command)
end
end
diff --git a/scripts/context/ruby/textools.rb b/scripts/context/ruby/textools.rb
index 7d23c7dbc..9057e318c 100644
--- a/scripts/context/ruby/textools.rb
+++ b/scripts/context/ruby/textools.rb
@@ -13,7 +13,7 @@
# This script will harbor some handy manipulations on tex
# related files.
-banner = ['TeXTools', 'version 1.2.1', '2002/2005', 'PRAGMA ADE/POD']
+banner = ['TeXTools', 'version 1.2.2', '2002/2005', 'PRAGMA ADE/POD']
unless defined? ownpath
ownpath = $0.sub(/[\\\/][a-z0-9\-]*?\.rb/i,'')
@@ -721,6 +721,81 @@ class Commands
end
+ public
+
+ def merge
+
+ nocheck = @commandline.option('nocheck')
+ force = @commandline.option('force')
+ root = @commandline.argument('first')
+ path = @commandline.argument('second')
+
+ if FileTest.directory?(root) then
+ report("scanning #{root}")
+ rootfiles = Dir.glob("#{root}/**/*")
+ else
+ report("provide sourse root")
+ return
+ end
+ if rootfiles.size > 0 then
+ report("#{rootfiles.size} files")
+ else
+ report("no files")
+ return
+ end
+
+ if FileTest.directory?(path) then
+ report("scanning #{path}")
+ pathfiles = Dir.glob("#{path}/**/*")
+ else
+ report("provide destination root")
+ return
+ end
+ if pathfiles.size > 0 then
+ report("#{pathfiles.size} files")
+ else
+ report("no files")
+ return
+ end
+
+ roothash = Hash.new
+ pathhash = Hash.new
+
+ rootfiles.each do |f|
+ if File.file?(f) then
+ fd, fb = File.dirname(f), File.basename(f)
+ roothash[fb] = if roothash.key?(fb) then nil else fd end
+ end
+ end
+
+ pathfiles.each do |f|
+ if File.file?(f) then
+ fd, fb = File.dirname(f), File.basename(f)
+ pathhash[fb] = if pathhash.key?(fb) then nil else fd end
+ end
+ end
+
+ pathhash.keys.each do |f|
+ if pathhash[f] && roothash[f] then
+ p = File.expand_path(File.join(pathhash[f],f))
+ r = File.expand_path(File.join(roothash[f],f))
+ if p != r then
+ if nocheck or File.mtime(p) < File.mtime(r) then
+ report("copying '#{r}' to '#{p}'")
+ begin
+ File.copy(r,p) if force
+ rescue
+ report("copying failed")
+ end
+ else
+ report("skipping '#{r}' to '#{p}'")
+ end
+ end
+ end
+ end
+
+ end
+
end
logger = Logger.new(banner.shift)
@@ -736,6 +811,7 @@ commandline.registeraction('fixafmfiles' , '[pattern] [--recurse]')
commandline.registeraction('mactodos' , '[pattern] [--recurse]')
commandline.registeraction('fixtexmftrees' , '[texmfroot] [--force]')
commandline.registeraction('replace' , 'filename [--force]')
+commandline.registeraction('merge' , 'fromroot toroot [--force --nocheck]')
commandline.registeraction('downcasefilenames', '[--recurse] [--force]') # not yet documented
commandline.registeraction('stripformfeeds' , '[--recurse] [--force]') # not yet documented
commandline.registeraction('showfont' , 'filename')
@@ -745,6 +821,7 @@ commandline.registeraction('version')
commandline.registerflag('recurse')
commandline.registerflag('force')
+commandline.registerflag('nocheck')
commandline.expand
diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex
index ada93c048..8bc75f1ae 100644
--- a/tex/context/base/context.tex
+++ b/tex/context/base/context.tex
@@ -31,7 +31,7 @@
%D 2004.8.30 the low level interface is english. Watch out and adapt
%D your styles an modules.
-\def\contextversion{2005.05.30}
+\def\contextversion{2005.06.03}
%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-ver.tex b/tex/context/base/core-ver.tex
index a73aa1fef..df4baf807 100644
--- a/tex/context/base/core-ver.tex
+++ b/tex/context/base/core-ver.tex
@@ -142,11 +142,17 @@
\def\prettyvariablefont {\getvalue{#1\c!vcommand}}%
\def\prettynaturalfont {\getvalue{#1\c!ccommand}}%
%
- \doifvalue{#1\c!space }\v!on {\def\obeyspaces{\setcontrolspaces}}%
- %doifvalue{#1\c!tab }\v!on {\def\obeytabs {\settabskips}}%
- \doifnotvalue{#1\c!tab}\v!off {\def\obeytabs {\settabskips}}%
- \doifvalue{#1\c!tab }\s!ascii{\chardef\tabskipmode\plustwo}% quit on >127
- \doifvalue{#1\c!page }\v!no {\def\obeypages {\ignorepages}}%
+ \doifvalue{#1\c!space}\v!on
+ {\def\obeyspaces{\setcontrolspaces}}%
+ \doifvalue{#1\c!page }\v!no
+ {\def\obeypages {\ignorepages}}%
+ %
+ \doifelsevalue{#1\c!tab}\v!yes
+ {\def\obeytabs{\settabskips}}%
+ {\doifvalue{#1\c!tab}\s!ascii
+ {\chardef\tabskipmode\plustwo % quit on >127
+ \def\obeytabs{\settabskips}}%
+ {}}
%
\ignorehyphens % default
\ExpandFirstAfter\processaction
@@ -168,6 +174,9 @@
\s!unknown=>\setupprettiesintype{\getvalue{#1\c!option}}%
\let\obeycharacters\setupprettytype
\let\obeytabs\ignoretabs]%
+ \doifnumberelse{\getvalue{#1\c!tab}}
+ {\def\obeytabs{\setfixedtabskips{\getvalue{#1\c!tab}}}}%
+ \donothing
\def\verbatimfont{\getvalue{#1\c!style}}%
\setupverbatimcolor{#1}}
@@ -509,7 +518,7 @@
\c!color=,
\c!style=\tt\tf, % \tttf gives problems with {\tx \type...}
\c!page=\v!no,
- \c!tab=\v!no,
+ \c!tab=\v!yes,
\c!palet=colorpretty,
\c!option=\v!normal]
diff --git a/tex/context/base/lang-dis.tex b/tex/context/base/lang-dis.tex
index 13b6d9193..43a8e015f 100644
--- a/tex/context/base/lang-dis.tex
+++ b/tex/context/base/lang-dis.tex
@@ -22,6 +22,8 @@
%D patterns take precedence. This list will be adapted to
%D the actual situation, given that it's noticed.
+%D The us/uk hyph 1/2 files will go
+
\unprotect
\definefilefallback [lang-ca.pat] [cahyph.tex]
@@ -43,8 +45,8 @@
\definefilefallback [lang-sv.pat] [svhyph.tex,sehyph.tex]
\definefilefallback [lang-tr.pat] [tkhyph.tex,trhyph.tex]
\definefilefallback [lang-ua.pat] [ukrenhyp.tex]
-\definefilefallback [lang-uk.pat] [ukhyph.tex,ukhyph1.tex,ukhyph2.tex,hyphen.tex]
-\definefilefallback [lang-us.pat] [hyphen.tex,ushyph.tex,ushyph1.tex,ushyph2.tex]
+\definefilefallback [lang-uk.pat] [ukhyph.tex,ukhyphmax.tex,ukhyph1.tex,ukhyph2.tex,hyphen.tex]
+\definefilefallback [lang-us.pat] [ushyph.tex,ushyphmax.tex,ushyph1.tex,ushyph2.tex,hyphen.tex]
\definefilefallback [lang-nl.pat] [nehyph96.tex,dutch96.pat,nehyph.tex]
\definefilefallback [lang-cz.pat] [czhyphen.tex,czhyph.pat]
\definefilefallback [lang-sk.pat] [skhyphen.tex,skhyph.pat]
diff --git a/tex/context/base/ppchtex.tex b/tex/context/base/ppchtex.tex
index 390a39250..25037018a 100644
--- a/tex/context/base/ppchtex.tex
+++ b/tex/context/base/ppchtex.tex
@@ -3409,3 +3409,24 @@ RT##3##4##5=>\processchemicaltextelement{RN}{##3##4##5}{#1}{0}{},
\fi}
\protect \endinput
+
+% \startchemical[axis=on,frame=yes]
+% \chemical[SIX,ROT2,B,R36,RZ6][CH_3]
+% \chemical[PB:RZ3,ONE,Z05,SB5,EP37,PE][O,H]
+% \stopchemical
+
+% \startchemical[size=big,scale=small,axis=on,frame=yes,factor=1.5]
+% \chemical[SIX,ROT2,B,R36,RZ6][CH_3]
+% \chemical[PB:RZ3,ONE,Z05,SB5,EP37,PE][O,H]
+% \stopchemical
+
+% \startchemical[size=big,scale=medium,axis=on,frame=yes,factor=1.5]
+% \chemical[SIX,ROT2,B,R36,RZ6][CH_3]
+% \chemical[PB:RZ3,ONE,Z05,SB5,EP37,PE][O,H]
+% \stopchemical
+
+% \startchemical[size=big,scale=big,axis=on,frame=yes,factor=1.5]
+% \chemical[SIX,ROT2,B,R36,RZ6][CH_3]
+% \chemical[PB:RZ3,ONE,Z05,SB5,EP37,PE][O,H]
+% \stopchemical
+
diff --git a/tex/context/base/spec-dpx.tex b/tex/context/base/spec-dpx.tex
index d172489cc..2fc4f08ee 100644
--- a/tex/context/base/spec-dpx.tex
+++ b/tex/context/base/spec-dpx.tex
@@ -37,6 +37,11 @@
\setjobsuffix{pdf}
+%D Map files (experimental)
+
+\definespecial\doloadmapfile#1#2%
+ {\flushatshipout{\special{pdf: mapfile +#2}}}
+
%D DVIPDFMx supports the special command \type{pdf: literal ...}
%D since the version \type{dvipdfmx-20021028}.
%D
diff --git a/tex/context/base/supp-eps.tex b/tex/context/base/supp-eps.tex
index 17d68df4f..b28a55b7d 100644
--- a/tex/context/base/supp-eps.tex
+++ b/tex/context/base/supp-eps.tex
@@ -75,19 +75,21 @@
\def\dogetEPSboundingbox#1#2#3#4#5%
{\bgroup
- \global\chardef\EPSfound 0
- \global\chardef\EPScreator0
- \global\chardef\EPSspecial0
- \global\chardef\EPSstatus 0
+ \global\chardef\EPSfound \zerocount
+ \global\chardef\EPScreator\zerocount
+ \global\chardef\EPSspecial\zerocount
+ \global\chardef\EPSstatus \zerocount
\global\let\EPScreatorstring\empty
\the\extraEPSpreambleresets
\uncatcodespecials
\catcode`\^^M=\@@ignore
\def\doprocessEPSline
- {\expandafter\checkEPSboundingbox\fileline\empty\empty:.:.\end}%
+ {\advance\scratchcounter\plusone
+ \expandafter\checkEPSboundingbox\fileline\empty\empty:.:.\end}%
+ \scratchcounter\zerocount
\doprocessfile\scratchread{#1}\doprocessEPSline
\egroup
- \ifnum\EPSfound>0
+ \ifnum\EPSfound>\zerocount
#2=\EPSllx bp% Using \EPSllx bp instead of
#4=\EPSurx bp% \dimen0=1bp and \EPSllx\dimen0
#3=\EPSlly bp% is more accurate (.005pt).
@@ -95,10 +97,10 @@
\scratchdimen\EPSllx bp\advance#4 -\scratchdimen
\scratchdimen\EPSlly bp\advance#5 -\scratchdimen
\else
- #2=\zeropoint
- #3=\zeropoint
- #4=\zeropoint
- #5=\zeropoint
+ #2\zeropoint
+ #3\zeropoint
+ #4\zeropoint
+ #5\zeropoint
\fi
%\message{[bbox #1: \EPSllx\space\EPSurx\space\EPSlly\space\EPSury]}\wait
\global\let\MPllx\EPSllx \global\let\MPlly\EPSlly
@@ -118,6 +120,15 @@
\let\EPSspecialstring \empty
\let\EPSspecialcontent\empty
+% new metapost construct (hires bb followed by creator + version)
+%
+%!PS
+%%BoundingBox: -71 -1 651 496
+%%HiResBoundingBox: -70.9945 -0.5 650.5 495.24907
+%%Creator: MetaPost 0.901
+%%CreationDate: 2005.06.02:1633
+%%Pages: 1
+
\long\def\checkEPSboundingbox#1#2#3:#4:.#5\end
{\if\string#1\letterpercent
\if\string#2\letterpercent
@@ -127,35 +138,38 @@
\getEPScreatorspec
\else\ifx\EPSspecialstring\EPSboundingboxtag
\getEPSboundingboxspec
- \global\chardef\EPSfound 1
+ \global\chardef\EPSfound\plusone
\else\ifx\EPSspecialstring\EPShiresboundingboxtag
\getEPSboundingboxspec
- \global\chardef\EPSfound 2
- \dofinishEPSfile
+ \global\chardef\EPSfound\plustwo
+ \scratchcounter\zerocount
\else\ifx\EPSspecialstring\EPSexactboundingboxtag
\getEPSboundingboxspec
- \global\chardef\EPSfound 2
- \dofinishEPSfile
+ \global\chardef\EPSfound\plustwo
+ \scratchcounter\zerocount
\else\ifx\EPSspecialstring\EPSmetapostspecialtag % only before finish!
- \global\chardef\EPSspecial 1 % ah, we've met some MP extensions
+ \global\chardef\EPSspecial\plusone % ah, we've met some MP extensions
\else\ifx\EPSspecialstring\EPSmetapostspecialstag % only before finish!
- \global\chardef\EPSspecial 1 % ah, we've met some MP extensions
+ \global\chardef\EPSspecial\plusone % ah, we've met some MP extensions
\else\ifx\EPSspecialstring\EPSpagetag
- \global\chardef\EPSstatus 1 % we passed MP font defs
+ \global\chardef\EPSstatus \plusone % we passed MP font defs
\else
\the\extraEPSpreambleparsers
\fi\fi\fi\fi\fi\fi\fi
\fi
- \else\ifnum\EPSfound>0
- \ifnum\EPScreator=1 % that is, we are dealing with MP output
+ \else\ifnum\EPSfound>\zerocount
+ % bb found
+ \ifnum\EPScreator=\plusone % that is, we are dealing with MP output
\ifcase\EPSstatus
% we've run into MP fontdefs
\or
\dofinishEPSfile
\fi
- \else
+ \else\ifnum\scratchcounter>\plusthree
+ % too late for mps creator (we don't want to run into crap data)
\dofinishEPSfile
- \fi
+ \else
+ \fi\fi
\fi\fi}
\def\getEPSboundingboxspec
@@ -172,19 +186,43 @@
\gdef\EPSury{#4}%
\fi}
+% \def\getEPScreatorspec
+% {\edef\EPSspecialstring{\EPSspecialcontent. . . .}%
+% \expandafter\dogetEPScreatorspec\EPSspecialstring\end}
+
+% \def\dogetEPScreatorspec#1#2 . . #3\end
+% {\edef\EPSspecialstring{#1}%
+% \ifx\EPSspecialstring\empty
+% \dogetEPScreatorspec#2 . . #3\end
+% \else\ifx\EPSspecialstring\space
+% \dogetEPScreatorspec#2 . . #3\end
+% \else
+% \edef\EPScreatorstring{#1#2}%
+% \global\chardef\EPScreator
+% \ifx\EPScreatorstring\EPSmetaposttag\plusone\else\zerocount\fi\relax
+% \fi\fi}
+
+% adapted to new metapost output
+
\def\getEPScreatorspec
- {\edef\EPSspecialstring{\EPSspecialcontent. . .}%
+ {\edef\EPSspecialstring{\EPSspecialcontent\space . .}%
\expandafter\dogetEPScreatorspec\EPSspecialstring\end}
-\def\dogetEPScreatorspec#1#2. . #3\end
- {\edef\EPSspecialstring{#1}%
- \ifx\EPSspecialstring\empty
- \dogetEPScreatorspec#2. . #3\end
- \else
- \edef\EPScreatorstring{#1#2}%
- \global\chardef\EPScreator
- \ifx\EPScreatorstring\EPSmetaposttag1\else0\fi\relax
- \fi}
+% \def\dogetEPScreatorspec#1#2 #3\end
+% {\edef\EPSspecialstring{#1}%
+% \ifx\EPSspecialstring\empty
+% \dogetEPScreatorspec#2 #3\end
+% \else\ifx\EPSspecialstring\space
+% \dogetEPScreatorspec#2 #3\end
+% \else
+% \edef\EPScreatorstring{#1#2}%
+% \global\chardef\EPScreator
+% \ifx\EPScreatorstring\EPSmetaposttag\plusone\else\zerocount\fi\relax
+% \fi\fi}
+
+\def\dogetEPScreatorspec#1#2 #3\end
+ {\edef\EPScreatorstring{#1#2}%
+ \global\chardef\EPScreator\ifx\EPScreatorstring\EPSmetaposttag\plusone\else\zerocount\fi\relax}
\def\dogetEPSpreambledata#1% can be combined with \extraEPSpreambleparsers
{\bgroup
diff --git a/tex/context/base/symb-ini.tex b/tex/context/base/symb-ini.tex
index d5b2e4d16..4cbce60b9 100644
--- a/tex/context/base/symb-ini.tex
+++ b/tex/context/base/symb-ini.tex
@@ -83,12 +83,21 @@
\def\definesymbol
{\dotripleempty\dodefinesymbol}
+% \def\dodefinesymbol[#1][#2][#3]% class name meaning
+% {\ifthirdargument
+% \setvalue{\??ss:#1:#2}{#3}%
+% \doifsomething{#1}{\addvalue{\??ss*#1}{#2}}%
+% \else
+% \setvalue{\??ss:\currentsymboldef:#1}{#2}%
+% \fi}
+
\def\dodefinesymbol[#1][#2][#3]% class name meaning
{\ifthirdargument
\setvalue{\??ss:#1:#2}{#3}%
\doifsomething{#1}{\addvalue{\??ss*#1}{#2}}%
\else
\setvalue{\??ss:\currentsymboldef:#1}{#2}%
+ \addvalue{\??ss*\currentsymboldef}{#1}%
\fi}
\def\doifinsymbolsetelse#1#2{\doifdefinedelse{\??ss:#1:#2}}
diff --git a/tex/context/base/verb-ini.tex b/tex/context/base/verb-ini.tex
index cccd5b2a2..aa04c4c21 100644
--- a/tex/context/base/verb-ini.tex
+++ b/tex/context/base/verb-ini.tex
@@ -195,6 +195,10 @@
\catcode`\^^I\@@active
\let^^I\doprocesstabskip}
+\gdef\setfixedtabskips#1%
+ {\catcode`\^^I\@@active
+ \def^^I{\kern#1\spaceskip}}
+
\egroup
%D \macros
diff --git a/tex/context/interface/cont-cz.xml b/tex/context/interface/cont-cz.xml
index 7844d5922..715ac504a 100644
--- a/tex/context/interface/cont-cz.xml
+++ b/tex/context/interface/cont-cz.xml
@@ -820,6 +820,19 @@
<cd:parameter name="escape">
<cd:constant type="cd:character"/>
</cd:parameter>
+ <cd:parameter name="mezera">
+ <cd:constant type="zap"/>
+ <cd:constant type="vyp"/>
+ </cd:parameter>
+ <cd:parameter name="tab">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="stranka">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
<cd:parameter name="odsadpristi">
<cd:constant type="ano"/>
<cd:constant type="ne"/>
diff --git a/tex/context/interface/cont-de.xml b/tex/context/interface/cont-de.xml
index 70386ec0f..5dfc7e96c 100644
--- a/tex/context/interface/cont-de.xml
+++ b/tex/context/interface/cont-de.xml
@@ -820,6 +820,19 @@
<cd:parameter name="escape">
<cd:constant type="cd:character"/>
</cd:parameter>
+ <cd:parameter name="spatium">
+ <cd:constant type="an"/>
+ <cd:constant type="aus"/>
+ </cd:parameter>
+ <cd:parameter name="tab">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="seite">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
<cd:parameter name="ziehefolgendeein">
<cd:constant type="ja"/>
<cd:constant type="nein"/>
diff --git a/tex/context/interface/cont-en.xml b/tex/context/interface/cont-en.xml
index e2a0c792a..0b752d9f7 100644
--- a/tex/context/interface/cont-en.xml
+++ b/tex/context/interface/cont-en.xml
@@ -820,6 +820,19 @@
<cd:parameter name="escape">
<cd:constant type="cd:character"/>
</cd:parameter>
+ <cd:parameter name="space">
+ <cd:constant type="on"/>
+ <cd:constant type="off"/>
+ </cd:parameter>
+ <cd:parameter name="tab">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="page">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
<cd:parameter name="indentnext">
<cd:constant type="yes"/>
<cd:constant type="no"/>
diff --git a/tex/context/interface/cont-it.xml b/tex/context/interface/cont-it.xml
index 95b663dd4..afd8fd0d9 100644
--- a/tex/context/interface/cont-it.xml
+++ b/tex/context/interface/cont-it.xml
@@ -820,6 +820,19 @@
<cd:parameter name="escape">
<cd:constant type="cd:character"/>
</cd:parameter>
+ <cd:parameter name="spazio">
+ <cd:constant type="attivo"/>
+ <cd:constant type="disattivo"/>
+ </cd:parameter>
+ <cd:parameter name="tab">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="pagina">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
<cd:parameter name="rientrasuccessivo">
<cd:constant type="si"/>
<cd:constant type="no"/>
diff --git a/tex/context/interface/cont-nl.xml b/tex/context/interface/cont-nl.xml
index 16569e16f..55e3ccc74 100644
--- a/tex/context/interface/cont-nl.xml
+++ b/tex/context/interface/cont-nl.xml
@@ -820,6 +820,19 @@
<cd:parameter name="escape">
<cd:constant type="cd:character"/>
</cd:parameter>
+ <cd:parameter name="spatie">
+ <cd:constant type="aan"/>
+ <cd:constant type="uit"/>
+ </cd:parameter>
+ <cd:parameter name="tab">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="pagina">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
<cd:parameter name="springvolgendein">
<cd:constant type="ja"/>
<cd:constant type="nee"/>
diff --git a/tex/context/interface/cont-ro.xml b/tex/context/interface/cont-ro.xml
index d47db9815..421d33d13 100644
--- a/tex/context/interface/cont-ro.xml
+++ b/tex/context/interface/cont-ro.xml
@@ -820,6 +820,19 @@
<cd:parameter name="escape">
<cd:constant type="cd:character"/>
</cd:parameter>
+ <cd:parameter name="spatiu">
+ <cd:constant type="on"/>
+ <cd:constant type="dezactivat"/>
+ </cd:parameter>
+ <cd:parameter name="tab">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="pagina">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
<cd:parameter name="aliniaturmator">
<cd:constant type="da"/>
<cd:constant type="nu"/>
diff --git a/tex/context/interface/keys-cz.xml b/tex/context/interface/keys-cz.xml
index 57e0f56d2..cab46b7c0 100644
--- a/tex/context/interface/keys-cz.xml
+++ b/tex/context/interface/keys-cz.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2005.05.30">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2005.06.03">
<cd:variables>
<cd:variable name="one" value="jedna"/>
diff --git a/tex/context/interface/keys-de.xml b/tex/context/interface/keys-de.xml
index bc2af6ad5..3f8fa46c4 100644
--- a/tex/context/interface/keys-de.xml
+++ b/tex/context/interface/keys-de.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2005.05.30">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2005.06.03">
<cd:variables>
<cd:variable name="one" value="eins"/>
diff --git a/tex/context/interface/keys-en.xml b/tex/context/interface/keys-en.xml
index 3a75ddc70..16791d296 100644
--- a/tex/context/interface/keys-en.xml
+++ b/tex/context/interface/keys-en.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2005.05.30">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2005.06.03">
<cd:variables>
<cd:variable name="one" value="one"/>
diff --git a/tex/context/interface/keys-it.xml b/tex/context/interface/keys-it.xml
index c5d0745b6..393e87259 100644
--- a/tex/context/interface/keys-it.xml
+++ b/tex/context/interface/keys-it.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2005.05.30">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2005.06.03">
<cd:variables>
<cd:variable name="one" value="uno"/>
diff --git a/tex/context/interface/keys-nl.xml b/tex/context/interface/keys-nl.xml
index d5d9031bb..ef03ee44f 100644
--- a/tex/context/interface/keys-nl.xml
+++ b/tex/context/interface/keys-nl.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2005.05.30">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2005.06.03">
<cd:variables>
<cd:variable name="one" value="een"/>
diff --git a/tex/context/interface/keys-ro.xml b/tex/context/interface/keys-ro.xml
index c8789574c..212dde427 100644
--- a/tex/context/interface/keys-ro.xml
+++ b/tex/context/interface/keys-ro.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2005.05.30">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2005.06.03">
<cd:variables>
<cd:variable name="one" value="unu"/>
diff --git a/web2c/context.cnf b/web2c/context.cnf
index b5d582bec..0cf35914a 100644
--- a/web2c/context.cnf
+++ b/web2c/context.cnf
@@ -8,6 +8,10 @@
% the binaries are located elsewhere. In case of multiple
% trees, one can best set the following ones manually.
+progname = unsetprogname
+engine = unsetengine
+backend = unsetbackend
+
TEXMFMAIN = $SELFAUTOPARENT/texmf
TEXMFLOCAL = $SELFAUTOPARENT/texmf-local
TEXMFFONTS = $SELFAUTOPARENT/texmf-fonts
@@ -39,8 +43,15 @@ WEB2C = $TEXMF/web2c
OSFONTDIR =
+TEXFONTMAPS.dvipdfm = .;$TEXMF/fonts/map/{dvipdfm,dvips,}//
+TEXFONTMAPS.dvipdfmx = .;$TEXMF/fonts/map/{dvipdfm,dvips,}//
+TEXFONTMAPS.pdftex = .;$TEXMF/fonts/map/{pdftex,dvips,}//
+TEXFONTMAPS.pdfetex = .;$TEXMF/fonts/map/{pdftex,dvips,}//
+TEXFONTMAPS.xetex = .;$TEXMF/fonts/map/{xetex,pdftex,dvips,}//
+TEXFONTMAPS.dvips = .;$TEXMF/fonts/map/{dvips,pdftex,}//
+
TEXPSHEADERS = .;$TEXMF/{fonts/{enc,map,type1,truetype},dvips,pdftex,tex}//;$TEXMF/{etex,tex,pdftex,dvips,fonts/type1}//
-TEXFONTMAPS = .;$TEXMF/{fonts/map//,fontname};$TEXMF/{pdftex,dvips}/config;$TEXMF/{pdftex,dvips}//
+TEXFONTMAPS = .;$TEXMF/{fonts/map/{$backend,pdftex,dvips,}//,fontname};$TEXMF/{pdftex,dvips}/config;$TEXMF/{pdftex,dvips}//
VFFONTS = .;$TEXMF/fonts/vf//
TFMFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/tfm//
@@ -51,7 +62,8 @@ TTFONTS = .;$TEXMF/fonts/{truetype,ttf}//;$OSFONTDIR
TTF2TFMINPUTS = .;$TEXMF/ttf2pk//
T42FONTS = .;$TEXMF/fonts/type42//
MISCFONTS = .;$TEXMF/fonts/misc//
-ENCFONTS = .;$TEXMF/{fonts/enc,dvips,pdftex}//
+% ENCFONTS = .;$TEXMF/fonts/enc//
+ENCFONTS = .;$TEXMF/{fonts/enc,dvips,pdftex,dvipdfm}//
CMAPFONTS = .;$TEXMF/fonts/cmap//
SFDFONTS = .;$TEXMF/fonts/sfd//
OPENTYPEFONTS = .;$TEXMF/fonts/opentype//;$OSFONTDIR
@@ -84,7 +96,7 @@ MFINPUTS = .;{$MPRESOURCES}//;{$CTXDEVMFPATH}//;$TEXMF/metafont/{contex
TEXCONFIG = .;$TEXMF/{fonts/map,dvips,pdftex,dvipdfmx,dvipdfm}//
PDFTEXCONFIG = .;$TEXMF/pdftex/{$progname,}//
-DVIPDFMINPUTS = .;$TEXMF/{fonts/map,dvips,pdftex,dvipdfmx,dvipdfm}//
+DVIPDFMINPUTS = .;$TEXMF/{fonts/{map,enc,lig}/dvipdfm,fonts/type1,dvips,pdftex,dvipdfmx,dvipdfm}//
% this way we can hook in development paths