diff options
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 | 
