summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2005-07-13 00:00:00 +0200
committerHans Hagen <pragma@wxs.nl>2005-07-13 00:00:00 +0200
commitc7f924443bf5e21f5cd9210fc76c633a3a77e20e (patch)
tree43b35cb107e3c369f19d7b0147a6476a0dcda0cc
parent606ac7d65f5f5974ae7926e84dfb34849ce96db8 (diff)
downloadcontext-c7f924443bf5e21f5cd9210fc76c633a3a77e20e.tar.gz
stable 2005.07.13
-rw-r--r--scripts/context/perl/mptopdf.pl34
-rw-r--r--scripts/context/ruby/base/tex.rb10
-rw-r--r--scripts/context/ruby/base/texutil.rb8
-rw-r--r--scripts/context/ruby/mpstools.rb5
-rw-r--r--scripts/context/ruby/newtexutil.rb104
-rw-r--r--scripts/context/ruby/texmfstart.rb21
-rw-r--r--tex/context/base/cont-log.tex32
-rw-r--r--tex/context/base/cont-new.tex81
-rw-r--r--tex/context/base/cont-sys.ori8
-rw-r--r--tex/context/base/context.tex3
-rw-r--r--tex/context/base/core-itm.tex23
-rw-r--r--tex/context/base/core-lst.tex2
-rw-r--r--tex/context/base/core-mis.tex2
-rw-r--r--tex/context/base/core-pos.tex2
-rw-r--r--tex/context/base/core-spa.tex10
-rw-r--r--tex/context/base/enco-uc.tex2
-rw-r--r--tex/context/base/font-ini.tex62
-rw-r--r--tex/context/base/page-imp.tex6
-rw-r--r--tex/context/base/page-lin.tex2
-rw-r--r--tex/context/base/page-mar.tex7
-rw-r--r--tex/context/base/prop-lay.tex15
-rw-r--r--tex/context/base/s-mod-00.tex14
-rw-r--r--tex/context/base/s-mod-02.tex305
-rw-r--r--tex/context/base/spec-fdf.tex2
-rw-r--r--tex/context/base/supp-box.tex25
-rw-r--r--tex/context/base/supp-mpe.tex11
-rw-r--r--tex/context/base/supp-mps.tex6
-rw-r--r--tex/context/base/supp-pdf.tex35
-rw-r--r--tex/context/base/supp-ran.tex93
-rw-r--r--tex/context/base/syst-gen.tex2
-rw-r--r--tex/context/base/syst-new.tex11
-rw-r--r--tex/context/base/syst-prm.tex13
-rw-r--r--tex/context/base/syst-var.tex23
-rw-r--r--tex/context/base/type-akb.tex6
-rw-r--r--tex/context/base/type-enc.tex2
-rw-r--r--tex/context/base/type-exa.tex17
-rw-r--r--tex/context/base/type-ini.tex52
-rw-r--r--tex/context/base/type-pre.tex168
-rw-r--r--tex/context/base/type-siz.tex46
-rw-r--r--tex/context/base/x-fo.tex8
-rw-r--r--tex/context/interface/cont-cz.xml1
-rw-r--r--tex/context/interface/cont-de.xml1
-rw-r--r--tex/context/interface/cont-en.xml1
-rw-r--r--tex/context/interface/cont-it.xml1
-rw-r--r--tex/context/interface/cont-nl.xml1
-rw-r--r--tex/context/interface/cont-ro.xml1
-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--tex/context/user/cont-sys.rme8
53 files changed, 922 insertions, 382 deletions
diff --git a/scripts/context/perl/mptopdf.pl b/scripts/context/perl/mptopdf.pl
index 0528a4010..5b00d4679 100644
--- a/scripts/context/perl/mptopdf.pl
+++ b/scripts/context/perl/mptopdf.pl
@@ -26,14 +26,15 @@ use strict ;
$Getopt::Long::passthrough = 1 ; # no error message
$Getopt::Long::autoabbrev = 1 ; # partial switch accepted
-my $Help = my $Latex = my $RawMP = 0 ;
+my $Help = my $Latex = my $RawMP = my $MetaFun = 0 ;
my $PassOn = '' ;
&GetOptions
- ( "help" => \$Help ,
- "rawmp" => \$RawMP,
- "passon" => \$PassOn,
- "latex" => \$Latex ) ;
+ ( "help" => \$Help ,
+ "rawmp" => \$RawMP,
+ "metafun" => \$MetaFun,
+ "passon" => \$PassOn,
+ "latex" => \$Latex ) ;
my $program = "MPtoPDF 1.3" ;
my $pattern = $ARGV[0] ;
@@ -70,7 +71,12 @@ elsif ($pattern =~ /\.mp$/io)
if ($RawMP)
{ if ($Latex)
{ $rest .= " $mplatexswitch" }
- $mpbin = 'mpost' }
+ if ($MetaFun) {
+ $mpbin = 'mpost --mem=mpost' ;
+ } else {
+ $mpbin = 'mpost --mem=metafun' ;
+ }
+ }
else
{ if ($Latex)
{ $rest .= " $texlatexswitch" }
@@ -93,19 +99,15 @@ foreach my $file (@files)
{ $_ = $file ;
if (s/\.(\d+|mps)$// && -e $file)
{ if ($miktex)
- { if ($dosish)
- { $command = "pdfetex &mptopdf" }
- else
- { $command = "pdfetex \\&mptopdf" } }
+ { $command = "pdfetex -fmt=mptopdf" }
else
- { if ($dosish)
- { $command = "pdfetex -progname=context &mptopdf" }
- else
- { $command = "pdfetex -progname=context \\&mptopdf" } }
+ { $command = "pdfetex -progname=context -fmt=mptopdf" }
if ($dosish)
- { system ("$command \\relax $file") }
+ { $command = "$command \\relax $file" }
else
- { system ("$command \\\\relax $file") }
+ { $command = "$command \\\\relax $file" }
+ #~ print $command ;
+ system($command) ;
rename ("$_.pdf", "$_-$1.pdf") ;
if (-e "$_.pdf") { CopyFile ("$_.pdf", "$_-$1.pdf") }
if ($done) { $report .= " +" }
diff --git a/scripts/context/ruby/base/tex.rb b/scripts/context/ruby/base/tex.rb
index 1ec2a6ea1..baa70d749 100644
--- a/scripts/context/ruby/base/tex.rb
+++ b/scripts/context/ruby/base/tex.rb
@@ -126,7 +126,7 @@ class TEX
'mpyforce', 'forcempy',
'forcetexutil', 'texutil',
'globalfile', 'autopath',
- 'purge', 'pdfopen', 'simplerun', 'verbose',
+ 'purge', 'autopdf', 'simplerun', 'verbose',
]
@@stringvars = [
'modefile', 'result', 'suffix', 'response', 'path',
@@ -1151,9 +1151,9 @@ class TEX
setvariable('nomprun',true) if orisuffix == 'mpx' # else cylic run
- PDFview.closeall if getvariable('pdfopen')
+ PDFview.closeall if getvariable('autopdf')
- forcexml = jobsuffix === /(xml|fo|fox|rlg|exa|)/io # === returns true|false, =~ returns position
+ forcexml = jobsuffix.match(/^(xml|fo|fox|rlg|exa)$/io) # nil or match
dummyfile = false
@@ -1261,8 +1261,8 @@ class TEX
report("unable to delete stub file")
end
- if ! problems && getvariable('pdfopen') then
- PDFview.open(if resultname.empty? then jobname else resultname end)
+ if ! problems && getvariable('autopdf') then
+ PDFview.open(File.suffixed(if result.empty? then jobname else result end,'pdf'))
end
end
diff --git a/scripts/context/ruby/base/texutil.rb b/scripts/context/ruby/base/texutil.rb
index 2e5fbaaad..8a40627d3 100644
--- a/scripts/context/ruby/base/texutil.rb
+++ b/scripts/context/ruby/base/texutil.rb
@@ -306,13 +306,13 @@ class TeXUtil
def MyExtras::writer(logger,handle)
handle << logger.banner("programs: #{@@programs.size}")
@@programs.each do |p|
- handle << "% #{p} (#{@@programs[p]})\n"
+ handle << "% #{p} (#{@@programs[p.to_i]})\n"
end
end
def MyExtras::processor(logger)
@@programs.each do |p|
- cmd = "texmfstart #{@@programs[p]}"
+ cmd = "texmfstart #{@@programs[p.to_i]}"
logger.report("running #{cmd}")
system(cmd)
end
@@ -741,7 +741,7 @@ class TeXUtil
File.open(File.suffixed(filename,'tui')).each do |line|
case line.chomp
when /^f (.*)$/o then @plugins.reader('MyFiles', $1.splitdata)
- when /^c (.*)$/o then @plugins.reader('MyCommands', $1.splitdata)
+ when /^c (.*)$/o then @plugins.reader('MyCommands', [$1])
when /^e (.*)$/o then @plugins.reader('MyExtras', $1.splitdata)
when /^s (.*)$/o then @plugins.reader('MySynonyms', $1.splitdata)
when /^r (.*)$/o then @plugins.reader('MyRegisters',$1.splitdata)
@@ -751,7 +751,7 @@ class TeXUtil
end
end
rescue
- report("fatal error in parsing file (#{$!})")
+ report("fatal error in parsing #{filename}")
@filename = 'texutil'
else
@filename = filename
diff --git a/scripts/context/ruby/mpstools.rb b/scripts/context/ruby/mpstools.rb
new file mode 100644
index 000000000..6dc0c35ad
--- /dev/null
+++ b/scripts/context/ruby/mpstools.rb
@@ -0,0 +1,5 @@
+# todo
+
+puts("This program is yet unfinished, for the moment it just calls 'mptopdf'.\n\n")
+
+system("texmfstart mptopdf #{ARGV.join(' ')}")
diff --git a/scripts/context/ruby/newtexutil.rb b/scripts/context/ruby/newtexutil.rb
index b8cc99ccf..af003a8e7 100644
--- a/scripts/context/ruby/newtexutil.rb
+++ b/scripts/context/ruby/newtexutil.rb
@@ -1,22 +1,96 @@
+banner = ['TeXUtil ', 'version 9.1.0', '1997-2005', 'PRAGMA ADE/POD']
+
+unless defined? ownpath
+ ownpath = $0.sub(/[\\\/][a-z0-9\-]*?\.rb/i,'')
+ $: << ownpath
+end
+
+require 'base/switch'
require 'base/logger'
+require 'base/file'
require 'base/texutil'
-logger = Logger.new('TeXUtil')
+class Commands
+
+ include CommandBase
+
+ def references
+ filename = @commandline.argument('first')
+ if not filename.empty? and FileTest.file?(File.suffixed(filename,'tuo')) then
+ if tu = TeXUtil::Converter.new(logger) and tu.loaded(filename) then
+ tu.saved if tu.processed
+ end
+ end
+ end
+
+ def main
+ if @commandline.arguments.length>0 then
+ references
+ else
+ help
+ end
+ end
+
+ def purgefiles
+ system("texmfstart ctxtools --purge #{@commandline.argument.join(' ')}")
+ end
-filename = ARGV[0] || 'tuitest'
+ def purgeallfiles
+ system("texmfstart ctxtools --purgeall #{@commandline.argument.join(' ')}")
+ end
+
+ def documentation
+ system("texmfstart ctxtools --document #{@commandline.argument.join(' ')}")
+ end
+
+ def analyzefile
+ system("texmfstart pdftools --analyze #{@commandline.argument.join(' ')}")
+ end
+
+ def filterpages # obsolete
+ system("texmfstart ctxtools --purge #{@commandline.argument.join(' ')}")
+ end
+
+ def figures
+ report("this code is not yet converted from perl to ruby")
+ end
+
+ def logfile
+ report("this code is not yet converted from perl to ruby")
+ end
-if tu = TeXUtil::Converter.new(logger) and tu.loaded(filename) then
- tu.saved if tu.processed
end
-# if ($UnknownOptions ) { ShowHelpInfo } # not yet done
-# elsif ($ProcessReferences) { HandleReferences }
-# elsif ($ProcessFigures ) { HandleFigures }
-# elsif ($ProcessLogFile ) { HandleLogFile }
-# elsif ($PurgeFiles ) { my $args = @ARGV.join(' ') ; system("texmfstart ctxtools --purge $args") }
-# elsif ($PurgeAllFiles ) { my $args = @ARGV.join(' ') ; system("texmfstart ctxtools --purgeall $args") }
-# elsif ($ProcessDocuments ) { my $args = @ARGV.join(' ') ; system("texmfstart ctxtools --document $args") }
-# elsif ($AnalyzeFile ) { my $args = @ARGV.join(' ') ; system("texmfstart pdftools --analyze $args") }
-# elsif ($FilterPages ) { my $args = @ARGV.join(' ') ; system("texmfstart ctxtools --filter $args") }
-# elsif ($ProcessHelp ) { ShowHelpInfo } # redundant
-# else { ShowHelpInfo }
+logger = Logger.new(banner.shift)
+commandline = CommandLine.new
+
+# main feature
+
+commandline.registeraction('references', 'convert tui file into tuo file')
+
+# todo features
+
+commandline.registeraction('figures', 'generate figure dimensions file')
+commandline.registeraction('logfile', 'filter essential log messages')
+
+# backward compatibility features
+
+commandline.registeraction('purgefiles', 'remove most temporary files')
+commandline.registeraction('purgeallfiles', 'remove all temporary files')
+commandline.registeraction('documentation', 'generate documentation file from source')
+commandline.registeraction('analyzefile', 'analyze pdf file')
+
+# old feature, not needed any longer due to extension of pdftex
+
+commandline.registeraction('filterpages')
+
+# generic features
+
+commandline.registeraction('help')
+commandline.registeraction('version')
+
+commandline.registerflag('verbose')
+
+commandline.expand
+
+Commands.new(commandline,logger,banner).send(commandline.action || 'main')
diff --git a/scripts/context/ruby/texmfstart.rb b/scripts/context/ruby/texmfstart.rb
index d791ee1a4..fabcee2f9 100644
--- a/scripts/context/ruby/texmfstart.rb
+++ b/scripts/context/ruby/texmfstart.rb
@@ -63,19 +63,28 @@ $suffixinputs['pdf'] = 'PDFINPUTS'
$predefined['texexec'] = 'texexec.pl'
$predefined['texutil'] = 'texutil.pl'
$predefined['texfont'] = 'texfont.pl'
+$predefined['mptopdf'] = 'mptopdf.pl'
$predefined['examplex'] = 'examplex.rb'
$predefined['concheck'] = 'concheck.rb'
$predefined['textools'] = 'textools.rb'
$predefined['ctxtools'] = 'ctxtools.rb'
$predefined['rlxtools'] = 'rlxtools.rb'
$predefined['pdftools'] = 'pdftools.rb'
+$predefined['mpstools'] = 'mpstools.rb'
$predefined['exatools'] = 'exatools.rb'
$predefined['xmltools'] = 'xmltools.rb'
$predefined['pstopdf'] = 'pstopdf.rb'
+if ENV['TEXMFSTART_MODE'] = 'experimental' then
+ $predefined['texexec'] = 'newtexexec.rb'
+ $predefined['pstopdf'] = 'newpstopdf.rb'
+end
+
$scriptlist = 'rb|pl|py|jar'
$documentlist = 'pdf|ps|eps|htm|html'
+$editor = ENV['EDITOR'] || ENV['editor'] || 'scite'
+
$crossover = true # to other tex tools, else only local
$applications['unknown'] = ''
@@ -381,6 +390,7 @@ def usage
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")
+ print(" texmfstart texmfstart --edit texmf.cnf\n")
end
# somehow registration does not work out (at least not under windows)
@@ -621,6 +631,14 @@ def direct(fullname)
end
end
+def edit(filename)
+ begin
+ return runcommand([$editor,expanded(filename),expanded($arguments)].join(' '))
+ rescue
+ return false
+ end
+end
+
def make(filename,windows=false,linux=false)
basename = filename.dup
basename.sub!(/\.[^.]+?$/, '')
@@ -689,6 +707,7 @@ def execute(arguments)
$filename = $directives['file'] || ''
$program = $directives['program'] || 'context'
$direct = $directives['direct'] || false
+ $edit = $directives['edit'] || false
$page = $directives['page'] || 0
$browser = $directives['browser'] || false
$report = $directives['report'] || false
@@ -755,6 +774,8 @@ def execute(arguments)
process do
if $direct || $filename =~ /^bin\:/ then
direct($filename)
+ elsif $edit && ! $editor.empty? then
+ edit($filename)
else # script: or no prefix
command = find(shortpathname($filename),$program)
register("THREAD",File.dirname(File.expand_path(command)))
diff --git a/tex/context/base/cont-log.tex b/tex/context/base/cont-log.tex
index 6400a15c8..aa1e1ce72 100644
--- a/tex/context/base/cont-log.tex
+++ b/tex/context/base/cont-log.tex
@@ -126,17 +126,23 @@
%D The \METAFONT\ and \METAPOST\ logos adapt themselves to the
%D current fontsize, an ugly but usefull hack.
-\unexpanded\def\setMFPfont
- {\font\logofont=logo%
- \ifnum\fam=\bffam bf\else
- \ifnum\fam=\slfam sl\else
- \ifnum\fam=\itfam sl\else
- \ifnum\fam=\bsfam bf\else
- \ifnum\fam=\bifam bf\else
- \fi\fi\fi\fi\fi
- 10 at \currentfontscale\bodyfontsize
- \logofont}
-
+% rather hard coded
+%
+% \loadmapfile[original-base.map] % \loadmapfile[original-vogel-symbol]
+%
+% \unexpanded\def\setMFPfont
+% {\font\logofont=logo%
+% \ifnum\fam=\bffam\c!bf\else
+% \ifnum\fam=\slfam\c!sl\else
+% \ifnum\fam=\itfam\c!sl\else
+% \ifnum\fam=\bsfam\c!bf\else
+% \ifnum\fam=\bifam\c!bf\else
+% \fi\fi\fi\fi\fi
+% 10 at \currentfontscale\bodyfontsize
+% \logofont}
+%
+% or:
+%
% \definefontsynonym [MetaLogo] [logo10]
% \definefontsynonym [MetaLogoBold] [logobf10]
% \definefontsynonym [MetaLogoSlanted] [logosl10]
@@ -144,10 +150,14 @@
% \definefontsynonym [MetaLogoBoldSlanted] [logobf10]
% \definefontsynonym [MetaLogoBoldtalic] [logobf10]
%
+% \loadmapfile[original-base.map] % \loadmapfile[original-vogel-symbol]
+%
% \def\setMFPfont{\symbolicfont{MetaLogo}}
\let\logofont\nullfont
+\loadmapfile[original-base.map]
+
\unexpanded\def\setMFPfont% more sensitive for low level changes
{\font\logofont=logo%
\ifx\fontalternative\c!bf\else
diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex
index 420f02f59..d23c29afb 100644
--- a/tex/context/base/cont-new.tex
+++ b/tex/context/base/cont-new.tex
@@ -24,8 +24,89 @@
\writestatus{\m!systems}{beware: some patches loaded from cont-new.tex}
+% The following may be a solution for the fact that one cannot
+% change catcodes of characters like : and ; inside an environment.
+
+\appendtoks
+ \enablelanguagespecifics[\currentlanguage]%
+\to \everystarttext
+
+% Peter M\"unster's test case:
+%
+% \defineoverlay[Draft][{\scale[factor=max]{\rotate[rotation=60]{~MY||DRAFT~}}}]
+% \setupbackgrounds[page][background=Draft]
+% \starttext
+% \starttables[|l|]
+% \dorecurse{200}{\NC hallo \NC\AR}
+% \stoptables
+% \stoptext
+%
+% \let\normalactivetilde~
+% \let\normalactivebar |
+%
+% \appendtoks\let~\normalactivetilde\to\everypagebody
+% \appendtoks\let|\normalactivebar \to\everypagebody
+
\let\cs\getvalue
+%D Krzysztof Leszczynski suggested to provide access to the level by
+%D means of a \type {#1}. I decided to pass the more frquently used
+%D level as \type {#1} and the less favoured depth as \type {#2}. The
+%D intended usage is:
+%D
+%D \starttyping
+%D \dorecurse{3}{\definesymbol[test-#1][xx-#1]}
+%D
+%D \def\test{\dorecurse{3}{\definesymbol[test-##1][xx-##1]}} \test
+%D
+%D \symbol[test-1]\quad\symbol[test-2]\quad\symbol[test-3]
+%D \stoptyping
+%D
+%D Since the hashed arguments are expanded, we don't need tricky
+%D expansion here.
+%D
+%D \starttyping
+%D \dorecurse{3}{\expanded{\definesymbol[test-\recurselevel][xx-\recurselevel]}}
+%D \stoptyping
+
+\def\expandrecursecontent
+ {\csname\@@arecurse\recursedepth\@EA\@EA\@EA\endcsname\@EA\@EA\@EA{\@EA\recurselevel\@EA}\@EA{\recursedepth}}
+
+\long\def\xdorecurse#1#2%
+ {\global\advance\outerrecurse \plusone
+ \long\global\@EA\def\csname\@@arecurse\recursedepth\endcsname##1##2{#2}%
+ \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
+ \@EA\dodorecurse\@EA1\@EA{\number#1}}
+
+\long\def\dostepwiserecurse#1#2#3#4% can be made faster by postponing #4
+ {\global\advance\outerrecurse \plusone
+ \long\global\@EA\def\csname\@@arecurse\recursedepth\endcsname##1##2{#4}%
+ \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
+ \ifnum#3>0\relax
+ \ifnum#2<#1\relax
+ \let\nextrecurse\exitstepwiserecurse
+ \else
+ \let\nextrecurse\dodostepwiserecurse
+ \fi
+ \else
+ \ifnum#3<0\relax
+ \ifnum#1<#2\relax
+ \let\nextrecurse\exitstepwiserecurse
+ \else
+ \let\nextrecurse\dodostepwisereverse
+ \fi
+ \else
+ \let\nextrecurse\exitstepwiserecurse
+ \fi
+ \fi\expanded{\nextrecurse{\number#1}{\number#2}{\number#3}}}
+
+\long\def\doloop#1%
+ {\global\advance\outerrecurse \plusone
+ \long\global\@EA\def\csname\@@arecurse\recursedepth\endcsname##1##2{#1}%
+ \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
+ \let\endofloop\dodoloop
+ \dodoloop1} % no \plusone else \recurselevel wrong
+
\ifx\normalcompound\undefined \let\normalcompound=| \fi
% experimental so this may change
diff --git a/tex/context/base/cont-sys.ori b/tex/context/base/cont-sys.ori
index 483f92923..ee54a99b7 100644
--- a/tex/context/base/cont-sys.ori
+++ b/tex/context/base/cont-sys.ori
@@ -17,6 +17,14 @@
%
% \preloadtypescripts
+% If you want another default font:
+%
+% \let\preloadfonts\relax
+% \usetypescript[palatino][\defaultencoding]
+% \setupbodyfont[palatino,rm,12pt]
+%
+% Please make sure that this defines rm, ss, tt and mm.
+
% Occasionally we will support both A4 and letter in
% styles. If you want letter size paper to be the default,
% uncomment:
diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex
index 8a85f9a27..9d1771f4d 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.06.27}
+\def\contextversion{2005.07.13}
%D Welcome to the main module. When this module is ran through
%D \type{initex} or \type {tex -i} or \type {whatevertex} using
@@ -86,6 +86,7 @@
\input syst-ext.tex
\input syst-new.tex
\input syst-con.tex
+\input syst-var.tex
\input math-pln.tex % basic plain math
diff --git a/tex/context/base/core-itm.tex b/tex/context/base/core-itm.tex
index ba6cb4a9f..976daf129 100644
--- a/tex/context/base/core-itm.tex
+++ b/tex/context/base/core-itm.tex
@@ -182,6 +182,7 @@
#2*\v!serried*=>\setitemparameter{#1}\c!factor{-#2},
\v!stopper*=>\setitemparameter{#1}\c!placestopper\v!yes,
\v!unpacked*=>\packeditemsfalse,
+ \v!repeat*=>\settrue\repeatlistitem, % new
\v!standard*=>\dosetupstandarditemgroup{#1}]}
\def\dosetupstandarditemgroup#1%
@@ -654,6 +655,7 @@
\ht8=\strutheight
\dp8=\strutdepth
% so that content differs per run (esp mp graphics afterwards)
+\checkforrepeatedlistitem
\ifdim\dimen2<\zeropoint\relax
\llap{\ifsubitem\llap{+}\fi\box8\hskip\leftmargindistance}%
\else
@@ -684,6 +686,27 @@
\EveryPar{\ignorespaces}%
\ignorespaces}
+% For Frank Grieshaber and Mojca Miklavec:
+
+\newconditional\repeatlistitem
+
+\def\checkforrepeatedlistitem
+ {\ifnum\itemlevel=\plusone \ifnum\itemlevel=\plusone
+ \initializeboxstack{item}%
+ \fi \fi
+ \ifconditional\repeatlistitem
+ \savebox{item}{\itemlevel}{\hbox{\ifnum\itemlevel>\plusone \copy8\else\fi}}%
+ \setbox8\hbox
+ {\setbox\scratchbox\hbox{\foundbox{item}{\itemlevel}}%
+ \ifnum\itemlevel>\plusone
+ \hskip-\wd\scratchbox
+ \ifnum\countervalue{\@@itemcounter\itemlevel}>\plusone
+ \llap{\box\scratchbox}%
+ \fi
+ \fi
+ \box8}%
+ \fi}
+
\chardef\autoitemgroupspacing=2 % 0 = voor/na, 1=tussen als geen voor 2=(prev)tussen=old/normal
\def\complexdoitemgroupitem[#1]%
diff --git a/tex/context/base/core-lst.tex b/tex/context/base/core-lst.tex
index aa1dbea1a..820789fd9 100644
--- a/tex/context/base/core-lst.tex
+++ b/tex/context/base/core-lst.tex
@@ -519,7 +519,7 @@
\def\dodofreevlistelement#1#2#3#4#5#6% % \nointerlineskip needed,
{\dodofreelistelement{#1}{#2}{#3}{#4}{#5}{#6} % otherwise wrong spacing
{\ifvmode\nointerlineskip\fi} % at multi-line lists
- {\nointerlineskip\endgraf\allowbreak}} %
+ {\ifvmode\nointerlineskip\fi\endgraf\allowbreak}} % test is saveguard
% to be documented: align, hang
diff --git a/tex/context/base/core-mis.tex b/tex/context/base/core-mis.tex
index ce1e9b0e7..0e1f43d45 100644
--- a/tex/context/base/core-mis.tex
+++ b/tex/context/base/core-mis.tex
@@ -2179,7 +2179,7 @@
%
% \setuprotate
% [\c!rotation=90,
-% \c!width=\v!fir,
+% \c!width=\v!fit,
% \c!height=\v!fit,
% \c!offset=\v!overlay,
% \c!frame=\v!off]
diff --git a/tex/context/base/core-pos.tex b/tex/context/base/core-pos.tex
index 52bef61b1..0194f2a64 100644
--- a/tex/context/base/core-pos.tex
+++ b/tex/context/base/core-pos.tex
@@ -1666,6 +1666,8 @@
%D The next alternative works in columnsets :
+% \iftracepositions show\else draw\fi_multi_pars ;
+
\startuseMPgraphic{mpos:par:columnset}
\iftracepositions show_multi_pars \else draw_multi_pars \fi ;
\stopuseMPgraphic
diff --git a/tex/context/base/core-spa.tex b/tex/context/base/core-spa.tex
index 24c4f6f1d..c8e7bef69 100644
--- a/tex/context/base/core-spa.tex
+++ b/tex/context/base/core-spa.tex
@@ -1139,8 +1139,8 @@
\def\checknextindentation[#1]%
{\processaction[#1][%\v!keep=>,
- \v!yes=>\doindentation,
- \v!no=>\noindentation,
+ \v!yes=>\doindentation,
+ \v!no=>\noindentation,
\v!auto=>\autoindentation]}
\def\doindentation% too simple
@@ -1836,7 +1836,7 @@
%D Sometimes one needs to freeze the interlinespacing
%D
%D \starttyping
-%D \rm \freezeinterlinespace .... {\ss \frozeninterlinespace .... \endgraf}
+%D \rm \saveinterlinespace .... {\ss \restoreinterlinespace .... \endgraf}
%D \stoptyping
\let\restoreinterlinespace\relax
@@ -3720,7 +3720,7 @@
\newbox\indentationboxA
\newbox\indentationboxB
-\def\pushindentation%
+\def\pushindentation
{\bgroup
\ifhmode
\unskip
@@ -3735,7 +3735,7 @@
\setbox\indentationboxB\box\voidb@x
\fi}
-\def\popindentation%
+\def\popindentation
{\box\indentationboxB\box\indentationboxA % put back the boxes
\egroup}
diff --git a/tex/context/base/enco-uc.tex b/tex/context/base/enco-uc.tex
index ec76607f1..36e611542 100644
--- a/tex/context/base/enco-uc.tex
+++ b/tex/context/base/enco-uc.tex
@@ -70,7 +70,7 @@
\definecharacter ograve {\uchar0{242}}
\definecharacter oacute {\uchar0{243}}
\definecharacter ocircumflex {\uchar0{244}}
-\definecharacter ohungarumlaut {\uchar0{245}}
+\definecharacter otilde {\uchar0{245}}
\definecharacter odiaeresis {\uchar0{246}}
\definecharacter ostroke {\uchar0{248}}
diff --git a/tex/context/base/font-ini.tex b/tex/context/base/font-ini.tex
index 1f1cc11d6..10a0cf6d3 100644
--- a/tex/context/base/font-ini.tex
+++ b/tex/context/base/font-ini.tex
@@ -97,8 +97,8 @@
\newevery \everydefinedfont \relax
\def\dodefinedfont[#1]%
- {\iffirstargument\definefont[\string\definedfont][#1]\fi
- \csname\string\definedfont\endcsname
+ {\iffirstargument\definefont[\string\thedefinedfont][#1]\fi
+ \csname\string\thedefinedfont\endcsname % can be \relax
\the\everydefinedfont}
\unexpanded\def\definedfont
@@ -4171,14 +4171,16 @@
%D Since we know what scaling it to be applied, we can
%D implement a much faster alternative:
+\let\thedefinedfont\relax
+
\def\symbolicscaledfont#1#2%
{\scaledfont\fontbody
\scaledfont#1\scaledfont
- \font\definedfont\truefontname{\glyphfontfile{#2}} at
+ \font\thedefinedfont\truefontname{\glyphfontfile{#2}} at
\currentfontbodyscale\scaledfont
- \definedfont}
+ \thedefinedfont}
-\def\symbolicfont
+\unexpanded\def\symbolicfont
{\symbolicscaledfont\plusone}
\unexpanded\def\getglyph#1#2% slow, faster, much faster
@@ -4192,9 +4194,8 @@
\unexpanded\def\getrawglyph#1#2% for simple symbols
{{\scaledfont\fontbody
- \font\definedfont=#1 at \currentfontbodyscale\scaledfont
- %\definedfont#2}}
- \definedfont\doifnumberelse{#2}\char\donothing#2}}
+ \font\thedefinedfont=#1 at \currentfontbodyscale\scaledfont
+ \thedefinedfont\doifnumberelse{#2}\char\donothing#2}}
%D The last implementation of \type {\getglyph} permits
%D definitions like:
@@ -4666,8 +4667,9 @@
\definefont[tinyfont][Mono at 1ex]
-\protect \endinput
-
+%D \macros
+%D {doiffontpresentelse}
+%D
%D Some unused left||overs:
%D
%D \starttyping
@@ -4680,3 +4682,43 @@
%D \def\abortiffontnotfound#1%
%D {\doiffontpresentelse{#1}{}{\showmessage\m!fonts{10}{\truefontname{#1}}\endinput}}
%D \stoptyping
+%D
+%D We now provide (slow, but sometimes handy):
+%D
+%D \starttyping
+%D \doiffontpresentelse{texnansi-lmr10}{YES}{NO}
+%D \doiffontpresentelse{adam-lindsay-modern-serif}{YES}{NO}
+%D \stoptyping
+
+\beginTEX
+
+\def\doiffontpresentelse#1%
+ {\bgroup
+ \batchmode\font\dummy=\truefontname{#1}\errorstopmode
+ \edef\lastfontname{\fontname\dummy}%
+ \ifx\lastfontname\nullfontname
+ \egroup\expandafter\secondoftwoarguments
+ \else
+ \egroup\expandafter\firstoftwoarguments
+ \fi}
+
+\endTEX
+
+\beginETEX \interactionmode
+
+\def\doiffontpresentelse#1%
+ {\bgroup
+ \scratchcounter\interactionmode
+ \batchmode
+ \font\dummy=\truefontname{#1}\relax
+ \interactionmode\scratchcounter
+ \edef\lastfontname{\fontname\dummy}%
+ \ifx\lastfontname\nullfontname
+ \egroup\expandafter\secondoftwoarguments
+ \else
+ \egroup\expandafter\firstoftwoarguments
+ \fi}
+
+\endETEX
+
+\protect \endinput
diff --git a/tex/context/base/page-imp.tex b/tex/context/base/page-imp.tex
index e36d90777..b54dcfa99 100644
--- a/tex/context/base/page-imp.tex
+++ b/tex/context/base/page-imp.tex
@@ -915,12 +915,6 @@
\processcommalist[#2]\docommando}}%
\egroup}
-\def\dowithrange#1#2% #2 takes number
- {\beforesplitstring#1\at:\to\fromrange
- \aftersplitstring #1\at:\to\torange
- \ifx\torange\empty\let\torange\fromrange\fi
- \dostepwiserecurse\fromrange\torange1{#2{\recurselevel}}}
-
\def\dofilterpage#1#2%
{\hbox to \textwidth
{\ifdubbelzijdig\ifdim\@@ipwidth>\zeropoint\relax\ifodd\realpageno\else
diff --git a/tex/context/base/page-lin.tex b/tex/context/base/page-lin.tex
index 83f8d3608..a7e7baea0 100644
--- a/tex/context/base/page-lin.tex
+++ b/tex/context/base/page-lin.tex
@@ -399,7 +399,7 @@
[\@@phstate]
[\v!start=>\let\showparagraphnumber\doshowparagraphnumberA,
\v!stop=>\let\showparagraphnumber\relax,
- \v!line=>\let\showparagraphnumber\doshowparagraphnumberB,
+ \v!line=>\let\showparagraphnumber\doshowparagraphnumberB,
\v!reset=>\global\internalparagraphnumber\zerocount
\let\showparagraphnumber\doshowparagraphnumberA]}
diff --git a/tex/context/base/page-mar.tex b/tex/context/base/page-mar.tex
index 4537a2920..096ab8277 100644
--- a/tex/context/base/page-mar.tex
+++ b/tex/context/base/page-mar.tex
@@ -106,8 +106,11 @@
\definemarginline[atleftmargin] [\c!location=\v!left, \c!command=\lrlap,\c!width=\zeropoint,\c!distance=\zeropoint,\c!hoffset=\zeropoint]
\definemarginline[atrightmargin][\c!location=\v!right,\c!command=\rllap,\c!width=\zeropoint,\c!distance=\zeropoint,\c!hoffset=\zeropoint]
-\ifx\lrlap\undefined \def\lrlap#1{\llap{\rlap{#1}\hskip\leftskip}} \fi
-\ifx\rllap\undefined \def\rllap#1{\rlap{\hskip\hsize\hskip-\rightskip\llap{#1}}} \fi
+\ifx\lrlap\undefined \def\lrlap#1{\llap{\rlap{#1}}} \fi
+\ifx\rllap\undefined \def\rllap#1{\rlap{\llap{#1}}} \fi
+
+\def\lrlap#1{\llap{\rlap{#1}}}
+\def\rllap#1{\rlap{\hskip\hsize\llap{#1}}}
%D We want to keep things efficient and therefore only handle
%D situations like:
diff --git a/tex/context/base/prop-lay.tex b/tex/context/base/prop-lay.tex
index 1e2726d29..749848fa8 100644
--- a/tex/context/base/prop-lay.tex
+++ b/tex/context/base/prop-lay.tex
@@ -17,13 +17,24 @@
\unprotect
+% \def\checklayerproperty
+% {\dodefineviewerlayer
+% \currentproperty % tag
+% {\checkedpropertyparameter\c!title\currentproperty}%
+% {\checkedpropertyparameter\c!state\v!start}% visible or hidden
+% {0}% type (1=frozen)
+% {0}}% printable
+
\def\checklayerproperty
- {\dodefineviewerlayer
+ {\doifelse{\checkedpropertyparameter\v!printable\currentproperty}\v!no
+ {\def\printviewerlayer{0}}%
+ {\def\printviewerlayer{1}}
+ \dodefineviewerlayer
\currentproperty % tag
{\checkedpropertyparameter\c!title\currentproperty}%
{\checkedpropertyparameter\c!state\v!start}% visible or hidden
{0}% type (1=frozen)
- {0}}% printable
+ {\printviewerlayer}}% 1=printable
\def\startlayerproperty
{\dostartviewerlayer\currentproperty}
diff --git a/tex/context/base/s-mod-00.tex b/tex/context/base/s-mod-00.tex
index ba8e24235..ce260236d 100644
--- a/tex/context/base/s-mod-00.tex
+++ b/tex/context/base/s-mod-00.tex
@@ -20,7 +20,7 @@
\mainlanguage[en] % better not here
-\usemodule[eenheid]
+\usemodule[units]
\enableactivediscretionaries \newprettytrue
@@ -63,7 +63,7 @@
{\startglobal % i.v.m. \bgroup in \startdocumentation
\getrawparameters[Module][#1]
\stopglobal % i.v.m. \bgroup in \startdocumentation
- \moduletitel}
+ \moduletitle}
\def\stopmodule
{\page
@@ -80,7 +80,7 @@
% \startmode[atpragma]
%
-% \def\TitelPagina#1% can be done more efficient
+% \def\TitlePage#1% can be done more efficient
% {\startMPrun
% mpgraph := #1 ;
% input mp-cont ;
@@ -90,7 +90,7 @@
% [\c!height=\vsize,
% \c!width=\hsize]}
%
-% \defineoverlay[titelpagina][\TitelPagina{512}]
+% \defineoverlay[titlepage][\TitlePage{512}]
%
% \stopmode
@@ -135,7 +135,7 @@
\stopuseMPgraphic
\defineoverlay
- [titelpagina]
+ [titlepage]
[\useMPgraphic{titlepage}]
\doifmode{atpragma}{\readfile{s-mod-04.tex}{}{}}
@@ -159,7 +159,7 @@
\c!height=\v!middle,
\c!width=\v!middle]
-\def\moduletitel
+\def\moduletitle
{\setuplayout[titlepage]
\ifx\ModuleNumber\undefined \else
\ifnum\ModuleNumber<10
@@ -169,7 +169,7 @@
\fi\fi
\setupbackgrounds
[\v!page]
- [\c!background=titelpagina]
+ [\c!background=titlepage]
\fi
\startmakeup[\v!standard][\c!headerstate=\v!none,\c!footerstate=\v!none]
\switchtobodyfont[14.4pt,ss]
diff --git a/tex/context/base/s-mod-02.tex b/tex/context/base/s-mod-02.tex
index 09fbca288..b6260ab38 100644
--- a/tex/context/base/s-mod-02.tex
+++ b/tex/context/base/s-mod-02.tex
@@ -20,31 +20,31 @@
% todo: internationalize + setups
-\setuphead[paragraaf][expansie=commando]
+\setuphead[paragraaf][expansion=command]
\def\complexmodule[#1]% redefined
{\startglobal % i.v.m. \bgroup in \startdocumentation
\getparameters[Module][#1]
\stopglobal % i.v.m. \bgroup in \startdocumentation
- \paragraaf{\Modulesubtitle}
- \SchrijfLijstenWeg}
+ \section{\Modulesubtitle}
+ \WriteLists}
-\def\stopmodule% redefined
+\def\stopmodule % redefined
{\page
\determineregistercharacteristics
[index]
- [criterium=paragraaf]
+ [criterium=section]
\ifutilitydone
\pagereference
[index]
\placeregister
[index]
- [balanceren=ja,
- aanduiding=nee,
- criterium=paragraaf]
+ [balance=yes,
+ indicator=no,
+ criterium=section]
\fi}
-\let\StelLijstenSamen=\relax
+\let\ComposeLists=\relax
\newcounter\ModuleNumber
@@ -52,54 +52,56 @@
\def\WriteBatchFile
{\doglobal\increment\ModuleNumber
- \immediate\write\BatchFile{call modu-run \FileName\space \ModuleNumber}}
+% \immediate\write\BatchFile{call modu-run \FileName\space \ModuleNumber}}
+% \immediate\write\BatchFile{texmfstart texutil --modu \FileName}}
+ \immediate\write\BatchFile{texmfstart texexec --pdf --modu \FileName}}
\newif\ifProcessingPublic
-\def\SchrijfLijstenWeg
+\def\WriteLists
{\writetolist[FileNames] {}{\FileName}
\writetolist[GroupItems]{}{\GroupItem}}
-\def\moduletitel{}
+\def\moduletitle{}
\def\TypeZeroModule#1%
- {\paragraaf{[to be extracted: #1]}
+ {\section{[to be extracted: #1]}
{\em This module is not yet split off.}
- \SchrijfLijstenWeg}
+ \WriteLists}
\def\TypeOneModule#1%
- {\paragraaf{[to be documented: #1]}
+ {\section{[to be documented: #1]}
{\em This module is not yet fully documented.}
- \SchrijfLijstenWeg}
+ \WriteLists}
\def\TypeTwoModule#1%
{\ifProcessingPublic
\readfile{#1.ted}{}{}%
\WriteBatchFile
\else
- \paragraaf{[not yet public: #1]}
+ \section{[not yet public: #1]}
{\em This module is documented but not yet public.}
- \SchrijfLijstenWeg
+ \WriteLists
\fi}
\def\TypeThreeModule#1%
{\readfile{#1.ted}{}{}%
\WriteBatchFile}
-\def\verwerkmodule#1#2%
+\def\processmodule#1#2%
{\page
\bgroup
\def\FileName{#1}
\setupreferencing[prefix=#1]
\useexternaldocument[PaperVersion][#1][]
\aftersplitstring#1\at-\to\GroupItem
- \StelLijstenSamen
+ \ComposeLists
\ifcase#2
\TypeZeroModule{#1}
\or
\TypeOneModule{#1}
\or
- \TypeTwoModule{#1} % \TypeThreeModule{#1}
+ \TypeTwoModule{#1}
\or
\TypeThreeModule{#1}
\fi
@@ -107,51 +109,48 @@
\setupreferencing[prefix=]
\egroup}
-\def\ModuleGroep#1#2%
+\def\ModuleGroup#1#2%
{\page
\let\Modulefile=\empty
\setupreferencing[prefix=#1]
\def\FileGroup{#1}
\writetolist[FileGroups]{}{\FileGroup}
- \hoofdstuk[inhoud]{#2}
- \MaakLijstMetItems
- \MaakLijstMetNames
- \MaakLijstMetGroups
- \plaatsinhoud[criterium=hoofdstuk,niveau=paragraaf]}
+ \chapter[content]{#2}
+ \MakeListOfItems
+ \MakeListOfNames
+ \MakeListOfGroups
+ \placecontent[criterium=chapter,level=section]}
% Layout
\setupbodyfont
- [9pt,ams]
-
-\mainlanguage
- [en]
+ [9pt]
\setuppapersize
[S6][S6]
\setuplayout
- [rugwit=72.5pt,
- linkermarge=50pt,
- linkermargeafstand=12.5pt,
- rechtermarge=0pt,
- rechterrand=80pt,
- rechterrandafstand=10pt,
- linkerrand=0pt,
- breedte=430pt,
- kopwit=10pt,
- hoofd=0pt,
- voet=30pt,
- onderafstand=10pt,
- onder=15pt,
- hoogte=410pt,
- letter=\ss]
+ [backspace=72.5pt,
+ leftmargin=50pt,
+ leftmargindistance=12.5pt,
+ rightmargin=0pt,
+ rightedge=80pt,
+ rightedgedistance=10pt,
+ leftedge=0pt,
+ width=430pt,
+ topspace=10pt,
+ header=0pt,
+ footer=30pt,
+ bottomdistance=10pt,
+ bottom=15pt,
+ height=410pt,
+ style=\ss]
\setuptyping
[palet=colorpretty]
\setupsetup
- [verwijzing=3]
+ [reference=3]
\definecolor [AchtergrondKleur] [s=.6]
\definecolor [ButtonKleur] [r=.2,g=.2,b=.6]
@@ -163,83 +162,83 @@
\definecolor [colorprettyfour] [r=.6,g=.6,b=.0] % yellow
\setupinteraction
- [status=start,
- pagina=ja,
- contrastkleur=,
- menu=aan,
- kleur=]
+ [state=start,
+ page=yes,
+ contrastcolor=,
+ menu=on,
+ color=]
\setupbackgrounds
- [pagina]
- [achtergrond=kleur,
- achtergrondkleur=AchtergrondKleur,
+ [page]
+ [background=color,
+ backgroundcolor=AchtergrondKleur,
offset=2.5pt] % this offset influences the menus!
\setupbackgrounds
- [tekst,voet]
- [tekst,linkermarge]
- [achtergrond=kleur,
- achtergrondkleur=wit]
+ [text,footer]
+ [text,leftmargin]
+ [background=color,
+ backgroundcolor=white]
\setupsubpagenumber
- [wijze=perparagraaf,
- status=start]
+ [way=bysection,
+ state=start]
\setupinteractionbar
- [kader=uit,
+ [frame=off,
offset=0pt,
- hoogte=passend]
+ height=fit]
\setupwhitespace
- [groot]
+ [big]
\setuptyping
- [typen]
- [optie=kleur]
+ [typing]
+ [option=color]
\setuptyping
[definition]
- [optie=kleur]
+ [option=color]
\setuptyping
[file]
- [optie=kleur]
+ [option=color]
\setuppagenumbering
- [variant=enkelzijdig,
- wijze=perparagraaf,
- status=geen]
+ [alternative=singlesided,
+ way=bysection,
+ state=none]
\setupinmargin
- [plaats=links]
+ [location=left]
\setupheads
- [variant=inmarge]
+ [alternative=inmargin]
\setuphead
- [hoofdstuk]
- [letter=\ssc,
- pagina=rechts]
+ [chapter]
+ [style=\ssc,
+ page=right]
\setuphead
- [paragraaf]
- [letter=\ssb,
- pagina=rechts]
+ [section]
+ [style=\ssb,
+ page=right]
\setuplist
- [hoofdstuk]
- [letter=vet,
- na=\blank]
+ [chapter]
+ [style=bold,
+ after=\blank]
\setupcontent
- [breedte=2em]
+ [width=2em]
\setupindex
- [balanceren=ja,
- aanduiding=nee]
+ [balance=yes,
+ indicator=no]
\setupcolors
- [status=start]
+ [state=start]
\def\TitelBlad#1%
{\startstandardmakeup
@@ -256,24 +255,25 @@
\vfilll
\midaligned{\KleinFont\setstrut\strut PRAGMA ADE}
\vskip24pt
- \midaligned{\KleinFont\setstrut\strut www.pragma-ade.nl --- \currentdate}
+ \midaligned{\KleinFont\setstrut\strut www.pragma-ade.com --- \currentdate}
\vskip12pt
\stopcolor
\stopstandardmakeup}
-\def\ColofonBlad%
+\def\ColofonBlad
{\startmode[atpragma]
\page
\bgroup
\def\PragmaHoogte {\makeupheight}
\def\PragmaBreedte{\textwidth}
\def\PragmaKopwit {\topspace}
- \def\PragmaRugwit {\rugwit}
+ \def\PragmaRugwit {\backspace}
\def\PragmaMarge {0pt}
\PragmaLijnentrue
\PlaatsPragmaLogo[ADE]
\vfill
- \startnarrower[3*midden]
+ todo: colofon
+ \startnarrower[3*middle]
This is the official documentation of \CONTEXT\ version
\referraldate, a \TEX\ macropackage developed by J.~Hagen
\& A.F.~Otten, who both hold the copyrights.
@@ -282,10 +282,13 @@
\page
\egroup
\stopmode}
+
+\def\ColofonBlad
+ {}
-\newbox\LijstMetItems
-\newbox\LijstMetGroups
-\newbox\LijstMetNames
+\newbox\ListOfItems
+\newbox\ListOfGroups
+\newbox\ListOfNames
\definelist[FileNames] \def\FileName {}
\definelist[FileGroups] \def\FileGroup {}
@@ -293,48 +296,48 @@
\setuplist
[FileNames,FileGroups,FileGroups]
- [expansie=ja,
- paginanummer=nee,
- letter=\ss\bf]
+ [expansion=yes,
+ pagenumber=no,
+ style=\ss\bf]
\setuplist
[FileNames]
- [commando=\FileNameEntry,
- na=\endgraf,
- variant=geen]
+ [command=\FileNameEntry,
+ after=\endgraf,
+ alternative=none] % horizontal
\setuplist
[FileGroups]
- [commando=\FileGroupEntry,
- na=\hss,
- variant=geen]
+ [command=\FileGroupEntry,
+ after=\hss,
+ alternative=horizontal]
\def\FileNameEntry#1#2#3%
{\strut\hbox{#2}\endgraf}
\def\FileGroupEntry#1#2#3%
- {\strut#2\endgraf}
+ {\strut\hbox{#2}\endgraf}
-\def\MaakLijstMetItems
- {\setbox\LijstMetItems=\vbox
+\def\MakeListOfItems
+ {\setbox\ListOfItems=\vbox
{\ss\bf
- \placelist[GroupItems][kleur=ButtonKleur,contrastkleur=wit,criterium=hoofdstuk]}}
+ \placelist[GroupItems][color=ButtonKleur,contrastcolor=white,criterium=chapter]}}
-\def\MaakLijstMetNames
- {\setbox\LijstMetNames=\vbox
+\def\MakeListOfNames
+ {\setbox\ListOfNames=\vbox
{\hsize\rightedgewidth
- \ss\bf\stelinterliniein
- \startsimplecolumns[afstand=10pt]
- \placelist[FileNames][kleur=ButtonKleur,contrastkleur=wit,criterium=hoofdstuk]
+ \ss\bf\setupinterlinespace
+ \startsimplecolumns[distance=10pt]
+ \placelist[FileNames][color=ButtonKleur,contrastcolor=white,criterium=chapter]
\stopsimplecolumns}}
-\def\MaakLijstMetGroups
- {\setbox\LijstMetGroups=\hbox to \textwidth
+\def\MakeListOfGroups
+ {\setbox\ListOfGroups=\hbox to \textwidth
{\ss\bf
- \setupinteraction[kleur=ButtonKleur]%
- \placelist[FileGroups][kleur=ButtonKleur,contrastkleur=wit,criterium=alles]\unskip\unskip}}
+ \setupinteraction[color=ButtonKleur]%
+ \placelist[FileGroups][color=ButtonKleur,contrastcolor=white,criterium=all]\unskip\unskip}}
-\setbox\LijstMetGroups=\hbox{}
+\setbox\ListOfGroups=\hbox{}
%\setupfootertexts
% [rand]
@@ -342,73 +345,73 @@
% [{\interactiebalk[variant=g]}]
\setupinteractionmenu
- [rechts,onder]
- [status=start,
- kader=uit,
- kleur=AchtergrondKleur,
- contrastkleur=wit,
- letter=\ss\bf,
- hoogte=15pt,
+ [right,bottom]
+ [state=start,
+ frame=off,
+ color=AchtergrondKleur,
+ contrastcolor=white,
+ style=\ss\bf,
+ height=15pt,
offset=0pt,
- tussen=\vskip5pt,
- achtergrond=kleur,
- achtergrondkleur=ButtonKleur]
+ inbetween=\vskip5pt,
+ background=color,
+ backgroundcolor=ButtonKleur]
-\startinteractionmenu[rechts]
- \boxofsize \vbox \textheight \voetafstand \voethoogte 5pt
+\startinteractionmenu[right]
+ \boxofsize \vbox \textheight \footerdistance \footerheight 5pt
\bgroup
- \copy\LijstMetNames
+ \copy\ListOfNames
\vfill
- \but [\FileGroup:inhoud] local contents \\
+ \but [\FileGroup:content] local contents \\
\but [\FileName:index] local register \\
\but [PaperVersion::begin] paper version \\
- \but [inhoud] main contents \\
+ \but [content] main contents \\
\but [index] main register \\
- \but [VorigeSprong] previous jump \\
- \but [VerlaatViewer] close document \\
+ \but [PreviousJump] previous jump \\
+ \but [CloseDocument] close document \\
\unskip
\egroup
\stopinteractionmenu
-\startinteractionmenu[onder]
- \unhcopy\LijstMetGroups
+\startinteractionmenu[bottom]
+ \unhcopy\ListOfGroups
\stopinteractionmenu
-\def\plaatsmoduleregister
+\def\placemoduleregister
{\startbackmatter
\setupsubpagenumber[reset]
\title[-:index]{Register}
\placeregister[index]
\stopbackmatter}
-\def\plaatsmoduleinhoud
+\def\placemodulecontent
{\startfrontmatter
- \title[-:inhoud]{Contents}
- \setupinteractionbar[status=stop]
- \placecontent[criterium=tekst,niveau=hoofdstuk]
+ \title[-:content]{Contents}
+ \setupinteractionbar[state=stop]
+ \placecontent[criterium=text,level=chapter]
\stopfrontmatter}
\setupcontent
- [paginanummer=nee,
- niveau=hoofdstuk,
- interactie=alles,
- letter=,
- voor=,
- na=]
+ [pagenumber=no,
+ level=chapter,
+ interaction=all,
+ style=,
+ before=,
+ after=]
\setupfootertexts
- [marge]
+ [margin]
[\tt\Modulefile]
[]
\setupfootertexts
- [tekst]
- [hoofdstuk][paragraaf]
+ [text]
+ [chapter][chapter]
\setupindex
- [symbool=1]
+ [symbol=1]
\setuptolerance
- [zeersoepel]
+ [verytolerant]
\endinput
diff --git a/tex/context/base/spec-fdf.tex b/tex/context/base/spec-fdf.tex
index b54d8cf42..7b565af21 100644
--- a/tex/context/base/spec-fdf.tex
+++ b/tex/context/base/spec-fdf.tex
@@ -3089,7 +3089,7 @@
\ifcase#4 \or
/Intent /Design % disable layer hiding by user
\fi
- \ifcase#5 \or
+ \ifnum#5=\zerocount
/Usage << /Print << /PrintState /OFF >> >> % printable or not
\fi
/Name (#2)}%
diff --git a/tex/context/base/supp-box.tex b/tex/context/base/supp-box.tex
index 741a9cf8e..7680eb6af 100644
--- a/tex/context/base/supp-box.tex
+++ b/tex/context/base/supp-box.tex
@@ -2878,4 +2878,29 @@
\def\getboxllx#1{\executeifdefined{b@@x\number#1}\zeropoint}
\def\getboxlly#1{\executeifdefined{b@@y\number#1}\zeropoint}
+%D \macros
+%D {shownextbox}
+%D
+%D Handy for tracing
+%D
+%D \starttyping
+%D \shownextbox\vbox{test}
+%D \shownextbox\vbox{test\endgraf}
+%D \shownextbox\vbox{test\endgraf\strut\endgraf}
+%D \shownextbox\vbox{test\endgraf\thinrule}
+%D \shownextbox\vbox{\setupwhitespace[big]test\endgraf\thinrule}
+%D \stoptyping
+
+\def\shownextbox
+ {\dowithnextbox
+ {\bgroup
+ \showboxbreadth\maxdimen
+ \showboxdepth \maxdimen
+ \scratchcounter\interactionmode
+ \batchmode
+ \showbox\nextbox
+ \box\nextbox
+ \interactionmode\scratchcounter
+ \egroup}}
+
\protect \endinput
diff --git a/tex/context/base/supp-mpe.tex b/tex/context/base/supp-mpe.tex
index e92191cb5..da1641d3d 100644
--- a/tex/context/base/supp-mpe.tex
+++ b/tex/context/base/supp-mpe.tex
@@ -27,6 +27,17 @@
%D extensions, we will generalize these macro. Some
%D definitions will move to the special drivers.
+%D For usage in plain \TEX, say something:
+%D
+%D \starttyping
+%D \input supp-pdf
+%D \input supp-mpe
+%D
+%D \MPcmykcolorstrue
+%D \MPspotcolorstrue
+%D \chardef\makeMPintoPDFobject\plusone
+%D \stoptyping
+
\writestatus{loading}{MetaPost Special Extensions}
%D We implement extensions by using the \METAPOST\ special
diff --git a/tex/context/base/supp-mps.tex b/tex/context/base/supp-mps.tex
index 2cddcc746..23e6ccc89 100644
--- a/tex/context/base/supp-mps.tex
+++ b/tex/context/base/supp-mps.tex
@@ -1246,6 +1246,12 @@
\catcode`\}=\@@active
\catcode`B=\@@begingroup
\catcode`E=\@@endgroup
+\gdef\keepMPspecials|
+ B\let%\letterpercent|
+ \def[B\noexpand[E|
+ \def]B\noexpand]E|
+ \def{B\noexpand{E|
+ \def}B\noexpand}EE
\gdef\ignoreMPspecials|
B\let%\letterpercent|
\def[BE|
diff --git a/tex/context/base/supp-pdf.tex b/tex/context/base/supp-pdf.tex
index 4ef82cdb7..0ccadb350 100644
--- a/tex/context/base/supp-pdf.tex
+++ b/tex/context/base/supp-pdf.tex
@@ -431,6 +431,9 @@
%D percent characters in a string. So, from now on we have
%D to prefix the following strings with percentages.
+%D Some day I'll figure out a better solution (line by line reading
+%D using \ETEX).
+
\edef \PSBoundingBox {\letterpercent\letterpercent BoundingBox:}
\edef \PSHiResBoundingBox {\letterpercent\letterpercent HiResBoundingBox:}
\edef \PSExactBoundingBox {\letterpercent\letterpercent ExactBoundingBox:}
@@ -571,6 +574,25 @@
\def\octalMPcharacter#1#2#3%
{\char'#1#2#3\relax}
+
+%D curly braces and squarly brackets are stored in the argument stack
+%D as part of strings, for instance in:
+%D
+%D \starttyping
+%D /fshow {exch findfont exch scalefont setfont show}bind def
+%D [3 3 ] 0 setdash
+%D \stoptyping
+%D
+%D but we need to keep them in situation like
+%D
+%D \starttyping
+%D ([bla bla] bla bla) ec-lmr10 9.96265 fshow
+%D ({bla bla} bla bla) ec-lmr10 9.96265 fshow
+%D \stoptyping
+%D
+%D So, when we store the snippets, we keep the special tokens, and
+%D when needed we either ignore or obey them
+
\bgroup
\catcode`\|=\@@comment
\catcode`\%=\@@active
@@ -580,6 +602,12 @@
\catcode`\}=\@@active
\catcode`B=\@@begingroup
\catcode`E=\@@endgroup
+\gdef\keepMPspecials|
+ B\let%\letterpercent|
+ \def[B\noexpand[E|
+ \def]B\noexpand]E|
+ \def{B\noexpand{E|
+ \def}B\noexpand}EE
\gdef\ignoreMPspecials|
B\let%\letterpercent|
\def[BE|
@@ -640,7 +668,7 @@
%D \type{\input} primitive.)
\def\startMPconversion
- {\ignoreMPspecials
+ {\keepMPspecials
\handleMPsequence}
%D Here comes the main loop. Most arguments are numbers. This
@@ -836,6 +864,9 @@
\dimen2=\MPyscale\dimen2
\xdef\MPheight{\the\dimen2}%
\chardef\currentMPboundingbox#1\relax
+ \else
+ \xdef\MPheight{\zeropoint}%
+ \xdef\MPwidth {\zeropoint}%
\fi
\doresetMPstack
\let\handleMPsequence\dohandleMPsequence
@@ -896,6 +927,7 @@
{\bgroup
\setbox\scratchbox\hbox
{\obeyMPspecials
+ \let\ \relax % mp breaks long lines and appends a \
\edef\size{\gMPa\nofMParguments}%
\ifx\size\PSnfont % round font size (to pt)
\advance\nofMParguments \minusone
@@ -996,6 +1028,7 @@
\def\handleMPsetdash
{\bgroup
+ \ignoreMPspecials
\def\somestring{[}%
\scratchcounter\plusone
\loop
diff --git a/tex/context/base/supp-ran.tex b/tex/context/base/supp-ran.tex
index 8c83e6735..c21d677b8 100644
--- a/tex/context/base/supp-ran.tex
+++ b/tex/context/base/supp-ran.tex
@@ -52,16 +52,46 @@
{\writestatus{loading}{Donald Arseneau's 'random.tex' (found)}}
{\writestatus{loading}{Donald Arseneau's 'random.tex' (not found)}}
+ % avoid scratch dimens 0 and 2 (already recoded in third-ran)
+ %
+ % \def\setrandim#1#2#3% dimen register, minimum length, maximum length
+ % {\scratchdimen#2\edef\!!stringa{\number\scratchdimen}%
+ % \scratchdimen#3\edef\!!stringb{\number\scratchdimen}%
+ % \setrannum\ranval\!!stringa\!!stringb
+ % #1\ranval\s!sp\relax}
+
\fi
\ifx\nextrandom\undefined
- \def\setrannum#1#2#3{#1\plusone}
- \def\setrandim#1#2#3{#1\onepoint}
+ \writestatus{loading}{using fake randomizer}
-\else
+ \newcount\randomi
+
+ \def\setrandim#1#2#3{\scratchdimen #2\relax#1\scratchdimen }
+ \def\setrannum#1#2#3{\scratchcounter#2\relax#1\scratchcounter}
- \let\verynormalnextrandom = \nextrandom
+ \let\nextrandom\relax
+
+% \def\getrandomdimen #1#2#3{\scratchdimen #2\relax#1\scratchdimen }
+% \def\getrandomcount #1#2#3{\scratchcounter#2\relax#1\scratchcounter}
+% \def\getrandomnumber#1#2#3{\edef#1{0}}
+% \def\getrandomfloat #1#2#3{\edef#1{0}}
+% \unexpanded\def\setrandomseed #1{}
+% \unexpanded\def\getrandomseed #1{\edef#1{0}}
+
+% \chardef\randomseedfrozen\zerocount
+
+% \def\freezerandomseed {\global\chardef\randomseedfrozen\plusone }
+% \def\defrostrandomseed{\global\chardef\randomseedfrozen\zerocount}
+
+\fi
+
+\ifx\nextrandom\undefined \endinput \fi
+
+\ifx\ptexuniformdeviate\undefined
+
+ \let\verynormalnextrandom\nextrandom
\def\normalnextrandom
{\bgroup
@@ -72,28 +102,45 @@
\verynormalnextrandom
\egroup}
- \chardef\randomseedfrozen\zerocount
+\else
- \def\nextrandom
- {\bgroup
- \normalnextrandom
- \gdef\nextrandom{\ifcase\randomseedfrozen\normalnextrandom\fi}%
- \egroup}
+ % Yet untested.
- % avoid scratch dimens 0 and 2 (already recoded in third-ran
- %
- % \unprotect
- %
- % \def\setrandim#1#2#3% dimen register, minimum length, maximum length
- % {\scratchdimen#2\edef\!!stringa{\number\scratchdimen}%
- % \scratchdimen#3\edef\!!stringb{\number\scratchdimen}%
- % \setrannum\ranval\!!stringa\!!stringb
- % #1\ranval\s!sp\relax}
- %
- % \protect
+ \writestatus{loading}{using tex's built in randomizer (overloading macro)}
+
+ % For the meaning of the magic number, see \type {thrd-ran.tex}.
+
+ % \def\normalnextrandom
+ % {\setrandomseed\randomi
+ % \global\randomi\ptexuniformdeviate2147483647\relax}
+
+ % Taco suggested to use the following alternative because \type
+ % {\ptexuniformdeviate} can return a zero (as expected) while
+ % Donalds's alternative has a minimum of~1.
+
+ \beginTEX
+ \def\nextrandom
+ {\ptexsetrandomseed\randomi
+ \global\randomi\ptexuniformdeviate2147483646%
+ \global\advance\randomi\plusone}
+ \endTEX
+
+ \beginETEX \numexpr
+ \def\nextrandom
+ {\ptexsetrandomseed\randomi
+ \global\randomi\numexpr\ptexuniformdeviate2147483646+1\relax}
+ \endETEX
\fi
+\def\nextrandom
+ {\bgroup
+ \normalnextrandom
+ \gdef\nextrandom{\ifcase\randomseedfrozen\normalnextrandom\fi}%
+ \egroup}
+
+\chardef\randomseedfrozen\zerocount
+
\def\freezerandomseed
{\ifcase\randomseedfrozen
\nextrandom \global\chardef\randomseedfrozen\plusone
@@ -104,8 +151,8 @@
\global\chardef\randomseedfrozen\zerocount \nextrandom
\fi}
-\let\getrandomcount = \setrannum
-\let\getrandomdimen = \setrandim
+\let\getrandomcount\setrannum
+\let\getrandomdimen\setrandim
\def\getrandomnumber#1#2#3%
{\getrandomcount\scratchcounter{#2}{#3}%
diff --git a/tex/context/base/syst-gen.tex b/tex/context/base/syst-gen.tex
index baffb4636..25e5390af 100644
--- a/tex/context/base/syst-gen.tex
+++ b/tex/context/base/syst-gen.tex
@@ -300,7 +300,7 @@
%D \macros
%D {scratchcounter,
%D scratchdimen,scratchskip,scratchmuskip,
-%D scratchbox,globalscratchbox,
+%D scratchbox,
%D scratchtoks,
%D ifdone}
%D
diff --git a/tex/context/base/syst-new.tex b/tex/context/base/syst-new.tex
index 5c2f21c99..0172745bf 100644
--- a/tex/context/base/syst-new.tex
+++ b/tex/context/base/syst-new.tex
@@ -809,4 +809,15 @@
\xdef\globalascii{\globalascii#1}%
\fi}
+%D \macros
+%D {dowithrange}
+%D
+%D This one is for Mojca Miklavec, who made me aware of the fact that
+%D \type {page-imp.tex} was not the best place to hide it.
+
+\def\dowithrange#1#2% #2 takes number
+ {\splitstring#1\at:\to\fromrange\and\torange
+ \ifx\torange\empty\let\torange\fromrange\fi
+ \dostepwiserecurse\fromrange\torange1{#2{\recurselevel}}}
+
\protect \endinput
diff --git a/tex/context/base/syst-prm.tex b/tex/context/base/syst-prm.tex
index 9864dc5d4..f282d0baa 100644
--- a/tex/context/base/syst-prm.tex
+++ b/tex/context/base/syst-prm.tex
@@ -132,10 +132,17 @@
\def\dump{\the\everydump\normaldump}
%D Ligature prevention (for instance, ec encoding has ligatures
-%D in mono spaced fonts).
+%D in mono spaced fonts). Alas, we need to do some testing in order
+%S to get to the ptex'd one.
-\ifx\noligatures\undefined
- \def\noligatures#1{}
+\ifx\ptexnoligatures\undefined
+ \ifx\noligatures\undefined
+ \def\noligatures#1{}
+ \else
+ % let's assume that it takes a font tag as argument
+ \fi
+\else
+ \let\noligatures\ptexnoligatures
\fi
\let\normalnoligatures\noligatures
diff --git a/tex/context/base/syst-var.tex b/tex/context/base/syst-var.tex
new file mode 100644
index 000000000..6dbaae92d
--- /dev/null
+++ b/tex/context/base/syst-var.tex
@@ -0,0 +1,23 @@
+%D \module
+%D [ file=syst-con,
+%D version=2005.07.04, % moved code
+%D title=\CONTEXT\ System Macros,
+%D subtitle=Variables,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{Context System Macro's / Variables}
+
+\ifx\undefined\globalscratchcounter \newcount \globalscratchcounter \fi
+\ifx\undefined\globalscratchdimen \newdimen \globalscratchdimen \fi
+\ifx\undefined\globalscratchskip \newskip \globalscratchskip \fi
+\ifx\undefined\globalscratchmuskip \newmuskip\globalscratchmuskip \fi
+\ifx\undefined\globalscratchbox \newbox \globalscratchbox \fi
+\ifx\undefined\globalscratchtoks \newtoks \globalscratchtoks \fi
+
+\endinput
diff --git a/tex/context/base/type-akb.tex b/tex/context/base/type-akb.tex
index 03829f0fd..b49a8f25f 100644
--- a/tex/context/base/type-akb.tex
+++ b/tex/context/base/type-akb.tex
@@ -33,6 +33,8 @@
\starttypescript [adobekb] [8r]
+\loadmapfile[8r-base.map]
+
\definefontsynonym [8r-utmr8a] [ptmr8r] [encoding=8r]
\definefontsynonym [8r-utmri8a] [ptmri8r] [encoding=8r]
\definefontsynonym [8r-utmb8a] [ptmb8r] [encoding=8r]
@@ -89,6 +91,8 @@
\starttypescript [adobekb] [ec]
+\loadmapfile[ec-base.map]
+
\definefontsynonym [ec-utmr8a] [ptmr8t] [encoding=ec]
\definefontsynonym [ec-utmri8a] [ptmri8t] [encoding=ec]
\definefontsynonym [ec-utmb8a] [ptmb8t] [encoding=ec]
@@ -147,6 +151,8 @@
\starttypescript [adobekb] [texnansi]
+\loadmapfile[texnansi-base.map]
+
\definefontsynonym [texnansi-utmr8a] [ptmr8y] [encoding=texnansi]
\definefontsynonym [texnansi-utmri8a] [ptmri8y] [encoding=texnansi]
\definefontsynonym [texnansi-utmb8a] [ptmb8y] [encoding=texnansi]
diff --git a/tex/context/base/type-enc.tex b/tex/context/base/type-enc.tex
index 3fdb36000..91b57dbe7 100644
--- a/tex/context/base/type-enc.tex
+++ b/tex/context/base/type-enc.tex
@@ -105,6 +105,8 @@
\definefontsynonym [cmvtt10] [\typescriptthree-lmvtt10] [encoding=\typescriptthree]
\definefontsynonym [cmvtti10] [\typescriptthree-lmvtto] [encoding=\typescriptthree]
+ \definefontsynonym [cmtcsc10] [\typescriptthree-lmtcsc10] [encoding=\typescriptthree]
+
\stoptypescript
% \starttypescript [all] [computer-modern] [ec] % will become ae
diff --git a/tex/context/base/type-exa.tex b/tex/context/base/type-exa.tex
index 5da0d0638..2d7821d76 100644
--- a/tex/context/base/type-exa.tex
+++ b/tex/context/base/type-exa.tex
@@ -223,10 +223,19 @@
\starttypescript [optima] [texnansi,ec,qx]
- \definetypeface[optima][ss][sans] [optima-nova][default][encoding=texnansi]
- \definetypeface[optima][rm][serif][palatino] [default][encoding=texnansi]
- \definetypeface[optima][tt][mono] [modern] [default][encoding=texnansi,rscale=1.1]
- \definetypeface[optima][mm][math] [palatino] [default][encoding=texnansi]
+ \definetypeface[optima][ss][sans] [optima-nova][default][encoding=\typescripttwo]
+ \definetypeface[optima][rm][serif][palatino] [default][encoding=\typescripttwo]
+ \definetypeface[optima][tt][mono] [modern] [default][encoding=\typescripttwo,rscale=1.1]
+ \definetypeface[optima][mm][math] [palatino] [default][encoding=\typescripttwo]
+
+\stoptypescript
+
+\starttypescript [antykwa-torunska] [texnansi,ec,8r,uc]
+
+ \definetypeface[antykwa][rm][serif][antykwa-torunska] [default][encoding=\typescripttwo]
+ \definetypeface[antykwa][ss][sans] [modern] [default][encoding=\typescripttwo,rscale=1.05]
+ \definetypeface[antykwa][tt][mono] [modern] [default][encoding=\typescripttwo,rscale=1.1]
+ \definetypeface[antykwa][mm][math] [antykwa-torunska] [default][encoding=\typescripttwo]
\stoptypescript
diff --git a/tex/context/base/type-ini.tex b/tex/context/base/type-ini.tex
index 5b6c4e551..59bdd9093 100644
--- a/tex/context/base/type-ini.tex
+++ b/tex/context/base/type-ini.tex
@@ -630,23 +630,45 @@
\let\normaldoreadfontdefinitionfile\doreadfontdefinitionfile
\fi
+% old and obsolete
+%
+% \def\doreadfontdefinitionfile#1#2% #1 = set/switch state
+% {\ifundefined{\??tf#2\c!default}%
+% \pushmacro\fontclass
+% \setcurrentfontclass\empty
+% \pushmacro\@@typescriptone \edef\@@typescriptone {\truetypescript{#2}}%
+% \pushmacro\@@typescripttwo \let\@@typescripttwo \empty
+% \pushmacro\@@typescriptthree\let\@@typescriptthree\empty
+% \typescriptfoundfalse
+% \dododousetypescript{\f!typeprefix pre}%
+% \popmacro\@@typescriptthree
+% \popmacro\@@typescripttwo
+% \popmacro\@@typescriptone
+% \iftypescriptfound \else
+% \normaldoreadfontdefinitionfile{#1}{#2}%
+% \fi
+% \setcurrentfontclass\empty
+% \popmacro\fontclass
+% \else\ifcase#1\relax
+% \switchtotypeface[#2]%
+% \else
+% \setuptypeface[#2]%
+% \fi\fi}
+%
+% new and obeying fontclasses (but still obsolete)
+
\def\doreadfontdefinitionfile#1#2% #1 = set/switch state
{\ifundefined{\??tf#2\c!default}%
- \pushmacro\fontclass
- \setcurrentfontclass\empty
- \pushmacro\@@typescriptone \edef\@@typescriptone {\truetypescript{#2}}%
- \pushmacro\@@typescripttwo \let\@@typescripttwo \empty
- \pushmacro\@@typescriptthree\let\@@typescriptthree\empty
- \typescriptfoundfalse
- \dododousetypescript{\f!typeprefix pre}%
- \popmacro\@@typescriptthree
- \popmacro\@@typescripttwo
- \popmacro\@@typescriptone
- \iftypescriptfound \else
- \normaldoreadfontdefinitionfile{#1}{#2}%
- \fi
- \setcurrentfontclass\empty
- \popmacro\fontclass
+ \pushmacro\starttypescript
+ \scratchtoks\emptytoks
+ % locate downward compatibility definitions, one argument !
+ \long\def\starttypescript[##1]##2\stoptypescript
+ {\doif{##1}{#2}{\scratchtoks{##2}}}
+ \startreadingfile
+ \readfile{\f!typeprefix pre}\donothing\donothing
+ \stopreadingfile
+ \popmacro\starttypescript
+ \the\scratchtoks
\else\ifcase#1\relax
\switchtotypeface[#2]%
\else
diff --git a/tex/context/base/type-pre.tex b/tex/context/base/type-pre.tex
index a1fa0d1cf..ebf2426ed 100644
--- a/tex/context/base/type-pre.tex
+++ b/tex/context/base/type-pre.tex
@@ -14,7 +14,7 @@
%D This file is obsolete. We now have latin modern and proper
%D typescripts. Forget about this file.
-\endinput
+% alas, i'd love to do: \endinput
%D This file defines some typescripts that simulate the pre-typescript way
%D of defining fonts. This file will not be extended.
@@ -25,41 +25,66 @@
%D Times Roman. In this module, that is loaded by default, we
%D define all relevant alternatives.
+% \starttypescript [cmr]
+% \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size]
+% \usemathcollection[default]
+% \stoptypescript
+
\starttypescript [cmr]
- \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size]
- \usemathcollection[default]
+ \usetypescript[modern][default]
+ \setupbodyfont[modern]
\stoptypescript
%D This script remaps the default Computer Modern Font Files
%D onto the EC ones, so that hyphenations work well. (The proper
%D latin modern ec variants have replaed the ae ones.)
+% \starttypescript [aer]
+% \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size,ec]
+% \usemathcollection[default]
+% \stoptypescript
+
\starttypescript [aer]
- \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size,ec]
- \usemathcollection[default]
+ \usetypescript[modern][ec]
+ \setupbodyfont[modern]
\stoptypescript
%D This script defines the Computer Modern Roman with iso
%D latin 2 encoding, as needed for Czech and other languages.
+% \starttypescript [csr]
+% \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size,il2]
+% \usemathcollection[default]
+% \stoptypescript
+
\starttypescript [csr]
- \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size,il2]
- \usemathcollection[default]
+ \usetypescript[modern][il2]
+ \setupbodyfont[modern]
\stoptypescript
%D This script defines the Computer Modern Roman with a
%D polish encoding, as needed for Czech and other languages.
+% \starttypescript [plr]
+% \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size,pl0]
+% \usemathcollection[default]
+% \stoptypescript
+
\starttypescript [plr]
- \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size,pl0]
- \usemathcollection[default]
+ \usetypescript[modern][qx]
+ \setupbodyfont[modern]
\stoptypescript
%D Vietnamese.
+% \starttypescript [vnr]
+% \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size,t5]
+% \usemathcollection[default]
+% \stoptypescript
+
\starttypescript [vnr]
- \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size,t5]
- \usemathcollection[default]
+ \usetypescript[modern][t5]
+ \setupbodyfont[modern]
\stoptypescript
%D Cyrillic alternatives are available under the symbolic
@@ -104,26 +129,26 @@
%D American Mathematical Society. The names of these symbols
%D can be found in The Joy of \TeX\ by M.~Spivak.
-\starttypescript [ams]
- \usetypescript [math] [ams] [all]
- \usemathcollection[default]
-\stoptypescript
+% \starttypescript [ams]
+% \usetypescript [math] [ams] [all]
+% \usemathcollection[default]
+% \stoptypescript
%D The Concrete Modern Roman is just an alternative Computer
%D Modern Roman.
-\starttypescript [con]
- \usetypescript [serif] [concrete] [all]
- \usemathcollection[default]
-\stoptypescript
+% \starttypescript [con]
+% \usetypescript [serif] [concrete] [all]
+% \usemathcollection[default]
+% \stoptypescript
%D The Euler Fonts are designed by Herman Zapf and can be
%D used with the Concrete Fonts defined elsewhere.
-\starttypescript [eul]
- \usetypescript [math] [euler] [all]
- \usemathcollection[eul]
-\stoptypescript
+% \starttypescript [eul]
+% \usetypescript [math] [euler] [all]
+% \usemathcollection[eul]
+% \stoptypescript
%D The Lucida Bright fonts are both good looking and and
%D complete. These fonts have prebuilt accented characters,
@@ -132,78 +157,113 @@
%D point bodyfont is indeed never that size. The Lucida Bright
%D fonts come in one design size.
+% \starttypescript [lbr]
+% \usetypescript [serif,sans,mono,math,calligraphy,handwriting] [lucida] [name,special,\defaultencoding]
+% \usetypescript [serif,sans,mono,math,calligraphy,handwriting] [default] [size]
+% \usemathcollection[lbr]
+% \usetypescript [all] [lucida] [\defaultencoding]
+% \stoptypescript
+
\starttypescript [lbr]
- \usetypescript [serif,sans,mono,math,calligraphy,handwriting] [lucida] [name,special,\defaultencoding]
- \usetypescript [serif,sans,mono,math,calligraphy,handwriting] [default] [size]
- \usemathcollection[lbr]
- \usetypescript [all] [lucida] [\defaultencoding]
+ \usetypescript[lucida][\defaultencoding]
\stoptypescript
% %D With thanks to Berthold Horn from YandY for providing me
% %D evaluation copies of the MathTimePlus fonts.
-% todo: \starttypescript [mt,tim]
+% \starttypescript [tim]
+% \usetypescript [math] [times] [all]
+% \usetypescript [math] [default] [size]
+% \usemathcollection[tim]
+% \usetypescript [all] [times] [\defaultencoding]
+% \stoptypescript
\starttypescript [tim]
- \usetypescript [math] [times] [all]
- \usetypescript [math] [default] [size]
- \usemathcollection[tim]
- \usetypescript [all] [times] [\defaultencoding]
+ \usetypescript [times] [\defaultencoding]
+ \setupbodyfont [times]
\stoptypescript
%D The Antikwa Torunska font family is a rather nice
%D and subtle one. Although primary meant for the polish
%D language, it can be used for other languages as well.
+% \starttypescript [ant]
+% \usetypescript [serif] [antykwa-torunska] [name,\defaultencoding]
+% \usetypescript [serif] [default] [size]
+% \usetypescript [all] [antykwa-torunska] [\defaultencoding]
+% \stoptypescript
+
\starttypescript [ant]
- \usetypescript [serif] [antykwa-torunska] [name,\defaultencoding]
- \usetypescript [serif] [default] [size]
- \usetypescript [all] [antykwa-torunska] [\defaultencoding]
+ \usetypescript [antykwa-torunska] [\defaultencoding]
+ \setupbodyfont [antykwa,rm]
\stoptypescript
%D This script defines the Standard Adobe Courier fonts.
+% \starttypescript [pcr]
+% \usetypescript [mono] [courier] [name,\defaultencoding]
+% \usetypescript [mono] [default] [size]
+% \usetypescript [all] [courier] [\defaultencoding]
+% \stoptypescript
+
\starttypescript [pcr]
- \usetypescript [mono] [courier] [name,\defaultencoding]
- \usetypescript [mono] [default] [size]
- \usetypescript [all] [courier] [\defaultencoding]
+ \usetypescript [postscript] [\defaultencoding]
+ \setupbodyfont [postscript,tt]
\stoptypescript
%D This script defines the Standard Adobe Helvetica fonts.
+% \starttypescript [phv]
+% \usetypescript [sans] [helvetica] [name,\defaultencoding]
+% \usetypescript [sans] [default] [size]
+% \usetypescript [all] [helvetica] [\defaultencoding]
+% \stoptypescript
+
\starttypescript [phv]
- \usetypescript [sans] [helvetica] [name,\defaultencoding]
- \usetypescript [sans] [default] [size]
- \usetypescript [all] [helvetica] [\defaultencoding]
+ \usetypescript [postscript] [\defaultencoding]
+ \setupbodyfont [postscript,ss]
\stoptypescript
%D This script defines the Standard Adobe Times fonts.
+% \starttypescript [ptm]
+% \usetypescript [serif] [times] [name,\defaultencoding]
+% \usetypescript [serif] [default] [size]
+% \usetypescript [all] [times] [\defaultencoding]
+% \stoptypescript
+
\starttypescript [ptm]
- \usetypescript [serif] [times] [name,\defaultencoding]
- \usetypescript [serif] [default] [size]
- \usetypescript [all] [times] [\defaultencoding]
+ \usetypescript [postscript] [\defaultencoding]
+ \setupbodyfont [postscript,rm]
\stoptypescript
%D This script loads the Adobe Times Roman, Helvetica and
%D Courier.
+% \starttypescript [pos]
+% \usetypescript [serif] [times] [name,\defaultencoding]
+% \usetypescript [sans] [helvetica] [name,\defaultencoding]
+% \usetypescript [mono] [courier] [name,\defaultencoding]
+% \usetypescript [serif,sans,mono] [default] [size]
+% \usetypescript [all] [times,helvetica,courier] [\defaultencoding]
+% \stoptypescript
+
\starttypescript [pos]
- \usetypescript [serif] [times] [name,\defaultencoding]
- \usetypescript [sans] [helvetica] [name,\defaultencoding]
- \usetypescript [mono] [courier] [name,\defaultencoding]
- \usetypescript [serif,sans,mono] [default] [size]
-% \usetypescript [math] [times] [all]
-% \usetypescript [math] [default] [size]
- \usetypescript [all] [times,helvetica,courier] [\defaultencoding]
+ \usetypescript [postscript] [\defaultencoding]
+ \setupbodyfont [postscript]
\stoptypescript
%D This script defines the Palatino font.
+% \starttypescript [ppl]
+% \usetypescript [serif] [palatino] [name,\defaultencoding]
+% \usetypescript [serif] [default] [size]
+% \usetypescript [all] [palatino] [\defaultencoding]
+% \stoptypescript
+
\starttypescript [ppl]
- \usetypescript [serif] [palatino] [name,\defaultencoding]
- \usetypescript [serif] [default] [size]
- \usetypescript [all] [palatino] [\defaultencoding]
+ \usetypescript [palatino] [\defaultencoding]
+ \setupbodyfont [palatino]
\stoptypescript
%D The following scripts fake the old \type {font-ber} and
diff --git a/tex/context/base/type-siz.tex b/tex/context/base/type-siz.tex
index a9ef1b976..f37141b71 100644
--- a/tex/context/base/type-siz.tex
+++ b/tex/context/base/type-siz.tex
@@ -363,52 +363,32 @@
\definebodyfont [12pt] [tt]
[tf=cmtt12,
sl=cmsltt10 at 12pt,
- it=cmitt10 at 12pt]
-
- \definebodyfont [11pt] [tt]
- [tf=cmtt10 at 11pt,
- sl=cmsltt10 at 11pt,
- it=cmitt10 at 11pt]
-
- \definebodyfont [10pt] [tt]
- [tf=cmtt10,
- sl=cmsltt10,
- it=cmitt10]
+ it=cmitt10 at 12pt,
+ sc=cmtcsc10 at 12pt]
\definebodyfont [9pt] [tt]
[tf=cmtt9,
sl=cmsltt10 at 9pt,
- it=cmitt10 at 9pt]
+ it=cmitt10 at 9pt,
+ sc=cmtcsc10 at 9pt]
\definebodyfont [8pt] [tt]
[tf=cmtt8,
sl=cmsltt10 at 8pt,
- it=cmitt10 at 8pt]
-
- \definebodyfont [7pt] [tt]
- [tf=cmtt10 at 7pt,
- sl=cmsltt10 at 7pt,
- it=cmitt10 at 7pt]
+ it=cmitt10 at 8pt,
+ sc=cmtcsc10 at 8pt]
- \definebodyfont [6pt] [tt]
- [tf=cmtt10 at 6pt,
- sl=cmsltt10 at 6pt,
- it=cmitt10 at 6pt]
-
- \definebodyfont [5pt] [tt]
- [tf=cmtt10 at 5pt,
- sl=cmsltt10 at 5pt,
- it=cmitt10 at 5pt]
-
- \definebodyfont [4pt] [tt]
- [tf=cmtt10 at 4pt,
- sl=cmsltt10 at 4pt,
- it=cmitt10 at 4pt]
+ \definebodyfont [11pt,10pt,7pt,6pt,5pt,4pt] [tt]
+ [tf=cmtt10 sa 1,
+ sl=cmsltt10 sa 1,
+ it=cmitt10 sa 1,
+ sc=cmtcsc10 sa 1]
\definebodyfont [14.4pt,17.3pt,20.7pt] [tt]
[tf=cmtt12 sa 1,
sl=cmsltt10 sa 1,
- it=cmitt10 sa 1]
+ it=cmitt10 sa 1,
+ sc=cmtcsc10 sa 1]
\stoptypescript
diff --git a/tex/context/base/x-fo.tex b/tex/context/base/x-fo.tex
index 07ab8e04a..1ce18e509 100644
--- a/tex/context/base/x-fo.tex
+++ b/tex/context/base/x-fo.tex
@@ -3002,8 +3002,12 @@ leader-pattern-width=12pt,
\doifsomething{\XMLop{column-width}}
{%\setlocalhsize
%\FOtableW\localhsize
- \FOtableW\textwidth % hm, we need to set localhsize earlier
- \setpercentdimen\FOtableW{\XMLop{column-width}}
+ \analyzefunction{\XMLop{column-width}}%
+ % hm, we need to set localhsize earlier
+ \doifelse\functionname{proportional-column-width}
+ {\FOtableW\functionA\textwidth}
+ {\FOtableW\textwidth
+ \setpercentdimen\FOtableW{\XMLop{column-width}}}%
\expanded{\setupTABLE[column][\FOtablecolumn][width=\the\FOtableW]}}
\doif{\XMLop{border-style}}{none}
diff --git a/tex/context/interface/cont-cz.xml b/tex/context/interface/cont-cz.xml
index 715ac504a..f9f8686b2 100644
--- a/tex/context/interface/cont-cz.xml
+++ b/tex/context/interface/cont-cz.xml
@@ -6075,6 +6075,7 @@
<cd:constant type="naokraji"/>
<cd:constant type="autouvod"/>
<cd:constant type="uvolnene"/>
+ <cd:constant type="opakovat"/>
<cd:variable type="cd:section"/>
<cd:constant type="dotextu"/>
</cd:keywords>
diff --git a/tex/context/interface/cont-de.xml b/tex/context/interface/cont-de.xml
index 5dfc7e96c..dc5ed372e 100644
--- a/tex/context/interface/cont-de.xml
+++ b/tex/context/interface/cont-de.xml
@@ -6075,6 +6075,7 @@
<cd:constant type="imrand"/>
<cd:constant type="autointro"/>
<cd:constant type="lose"/>
+ <cd:constant type="wiederholen"/>
<cd:variable type="cd:section"/>
<cd:constant type="imtext"/>
</cd:keywords>
diff --git a/tex/context/interface/cont-en.xml b/tex/context/interface/cont-en.xml
index 0b752d9f7..ae91da1fb 100644
--- a/tex/context/interface/cont-en.xml
+++ b/tex/context/interface/cont-en.xml
@@ -6075,6 +6075,7 @@
<cd:constant type="inmargin"/>
<cd:constant type="autointro"/>
<cd:constant type="loose"/>
+ <cd:constant type="repeat"/>
<cd:variable type="cd:section"/>
<cd:constant type="intext"/>
</cd:keywords>
diff --git a/tex/context/interface/cont-it.xml b/tex/context/interface/cont-it.xml
index afd8fd0d9..36d0297d8 100644
--- a/tex/context/interface/cont-it.xml
+++ b/tex/context/interface/cont-it.xml
@@ -6075,6 +6075,7 @@
<cd:constant type="inmargine"/>
<cd:constant type="autointro"/>
<cd:constant type="lento"/>
+ <cd:constant type="ripeti"/>
<cd:variable type="cd:section"/>
<cd:constant type="intesto"/>
</cd:keywords>
diff --git a/tex/context/interface/cont-nl.xml b/tex/context/interface/cont-nl.xml
index 55e3ccc74..4bd03dcb0 100644
--- a/tex/context/interface/cont-nl.xml
+++ b/tex/context/interface/cont-nl.xml
@@ -6075,6 +6075,7 @@
<cd:constant type="inmarge"/>
<cd:constant type="autointro"/>
<cd:constant type="los"/>
+ <cd:constant type="herhaal"/>
<cd:variable type="cd:section"/>
<cd:constant type="intekst"/>
</cd:keywords>
diff --git a/tex/context/interface/cont-ro.xml b/tex/context/interface/cont-ro.xml
index 421d33d13..432d039eb 100644
--- a/tex/context/interface/cont-ro.xml
+++ b/tex/context/interface/cont-ro.xml
@@ -6075,6 +6075,7 @@
<cd:constant type="inmargine"/>
<cd:constant type="autointro"/>
<cd:constant type="larg"/>
+ <cd:constant type="repetat"/>
<cd:variable type="cd:section"/>
<cd:constant type="intext"/>
</cd:keywords>
diff --git a/tex/context/interface/keys-cz.xml b/tex/context/interface/keys-cz.xml
index 096ca9e55..9f03c9c56 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.06.27">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2005.07.13">
<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 3f47235a3..2949a5429 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.06.27">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2005.07.13">
<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 41e2f79ff..934a84212 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.06.27">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2005.07.13">
<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 78ec3c447..827cfa68d 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.06.27">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2005.07.13">
<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 fdd33fe15..a99564f22 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.06.27">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2005.07.13">
<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 db2908a1c..9aa242014 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.06.27">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2005.07.13">
<cd:variables>
<cd:variable name="one" value="unu"/>
diff --git a/tex/context/user/cont-sys.rme b/tex/context/user/cont-sys.rme
index 483f92923..ee54a99b7 100644
--- a/tex/context/user/cont-sys.rme
+++ b/tex/context/user/cont-sys.rme
@@ -17,6 +17,14 @@
%
% \preloadtypescripts
+% If you want another default font:
+%
+% \let\preloadfonts\relax
+% \usetypescript[palatino][\defaultencoding]
+% \setupbodyfont[palatino,rm,12pt]
+%
+% Please make sure that this defines rm, ss, tt and mm.
+
% Occasionally we will support both A4 and letter in
% styles. If you want letter size paper to be the default,
% uncomment: