From c7f924443bf5e21f5cd9210fc76c633a3a77e20e Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Wed, 13 Jul 2005 00:00:00 +0200 Subject: stable 2005.07.13 --- scripts/context/perl/mptopdf.pl | 34 ++-- scripts/context/ruby/base/tex.rb | 10 +- scripts/context/ruby/base/texutil.rb | 8 +- scripts/context/ruby/mpstools.rb | 5 + scripts/context/ruby/newtexutil.rb | 104 ++++++++++-- scripts/context/ruby/texmfstart.rb | 21 +++ tex/context/base/cont-log.tex | 32 ++-- tex/context/base/cont-new.tex | 81 ++++++++++ tex/context/base/cont-sys.ori | 8 + tex/context/base/context.tex | 3 +- tex/context/base/core-itm.tex | 23 +++ tex/context/base/core-lst.tex | 2 +- tex/context/base/core-mis.tex | 2 +- tex/context/base/core-pos.tex | 2 + tex/context/base/core-spa.tex | 10 +- tex/context/base/enco-uc.tex | 2 +- tex/context/base/font-ini.tex | 62 +++++-- tex/context/base/page-imp.tex | 6 - tex/context/base/page-lin.tex | 2 +- tex/context/base/page-mar.tex | 7 +- tex/context/base/prop-lay.tex | 15 +- tex/context/base/s-mod-00.tex | 14 +- tex/context/base/s-mod-02.tex | 305 ++++++++++++++++++----------------- tex/context/base/spec-fdf.tex | 2 +- tex/context/base/supp-box.tex | 25 +++ tex/context/base/supp-mpe.tex | 11 ++ tex/context/base/supp-mps.tex | 6 + tex/context/base/supp-pdf.tex | 35 +++- tex/context/base/supp-ran.tex | 93 ++++++++--- tex/context/base/syst-gen.tex | 2 +- tex/context/base/syst-new.tex | 11 ++ tex/context/base/syst-prm.tex | 13 +- tex/context/base/syst-var.tex | 23 +++ tex/context/base/type-akb.tex | 6 + tex/context/base/type-enc.tex | 2 + tex/context/base/type-exa.tex | 17 +- tex/context/base/type-ini.tex | 52 ++++-- tex/context/base/type-pre.tex | 168 ++++++++++++------- tex/context/base/type-siz.tex | 46 ++---- tex/context/base/x-fo.tex | 8 +- tex/context/interface/cont-cz.xml | 1 + tex/context/interface/cont-de.xml | 1 + tex/context/interface/cont-en.xml | 1 + tex/context/interface/cont-it.xml | 1 + tex/context/interface/cont-nl.xml | 1 + tex/context/interface/cont-ro.xml | 1 + tex/context/interface/keys-cz.xml | 2 +- tex/context/interface/keys-de.xml | 2 +- tex/context/interface/keys-en.xml | 2 +- tex/context/interface/keys-it.xml | 2 +- tex/context/interface/keys-nl.xml | 2 +- tex/context/interface/keys-ro.xml | 2 +- tex/context/user/cont-sys.rme | 8 + 53 files changed, 922 insertions(+), 382 deletions(-) create mode 100644 scripts/context/ruby/mpstools.rb create mode 100644 tex/context/base/syst-var.tex 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 @@ + 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 @@ + 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 @@ + 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 @@ + 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 @@ + 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 @@ + 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 @@ - + 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 @@ - + 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 @@ - + 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 @@ - + 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 @@ - + 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 @@ - + 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: -- cgit v1.2.3