summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2003-09-25 00:00:00 +0200
committerHans Hagen <pragma@wxs.nl>2003-09-25 00:00:00 +0200
commit006ade39648b1d3cdc89a4bdc16cbe29882d70d3 (patch)
tree53aba5fd547553e9702ab1a81721a929e57bed50
parent309b7e1b8d2422eb36e584f3c57591d960bcc402 (diff)
downloadcontext-006ade39648b1d3cdc89a4bdc16cbe29882d70d3.tar.gz
stable 2003.09.25
-rw-r--r--context/config/texexec.rme120
-rw-r--r--context/data/cont-cz.tws6
-rw-r--r--context/data/cont-de.tws6
-rw-r--r--context/data/cont-en.tws6
-rw-r--r--context/data/cont-it.tws6
-rw-r--r--context/data/cont-nl.tws6
-rw-r--r--context/data/cont-ro.tws6
-rw-r--r--context/perltk/texexec.pl4402
-rw-r--r--context/perltk/texexec.rme120
-rw-r--r--context/perltk/texfont.pl301
-rw-r--r--context/perltk/texutil.pl89
-rw-r--r--tex/context/base/cont-log.tex72
-rw-r--r--tex/context/base/cont-new.tex274
-rw-r--r--tex/context/base/context.tex2
-rw-r--r--tex/context/base/core-box.tex208
-rw-r--r--tex/context/base/core-des.tex130
-rw-r--r--tex/context/base/core-fig.tex462
-rw-r--r--tex/context/base/core-job.tex81
-rw-r--r--tex/context/base/core-lst.tex104
-rw-r--r--tex/context/base/core-mat.tex693
-rw-r--r--tex/context/base/core-mis.tex217
-rw-r--r--tex/context/base/core-ntb.tex22
-rw-r--r--tex/context/base/core-reg.tex150
-rw-r--r--tex/context/base/core-rul.tex68
-rw-r--r--tex/context/base/core-sec.tex3
-rw-r--r--tex/context/base/core-spa.tex37
-rw-r--r--tex/context/base/core-syn.tex29
-rw-r--r--tex/context/base/core-tbl.tex115
-rw-r--r--tex/context/base/enco-fde.tex52
-rw-r--r--tex/context/base/font-chi.tex32
-rw-r--r--tex/context/base/font-ini.tex243
-rw-r--r--tex/context/base/font-unk.tex72
-rw-r--r--tex/context/base/lang-ger.tex82
-rw-r--r--tex/context/base/math-ams.tex20
-rw-r--r--tex/context/base/math-fou.tex169
-rw-r--r--tex/context/base/meta-dum.tex24
-rw-r--r--tex/context/base/mult-sys.tex39
-rw-r--r--tex/context/base/page-flt.tex30
-rw-r--r--tex/context/base/page-lay.tex13
-rw-r--r--tex/context/base/page-set.tex240
-rw-r--r--tex/context/base/page-sid.tex76
-rw-r--r--tex/context/base/s-mod-00.tex135
-rw-r--r--tex/context/base/setupa.tex71
-rw-r--r--tex/context/base/setupb.tex10
-rw-r--r--tex/context/base/setupe.tex81
-rw-r--r--tex/context/base/supp-num.tex150
-rw-r--r--tex/context/base/symb-eur.tex22
-rw-r--r--tex/context/base/symb-glm.tex10
-rw-r--r--tex/context/base/syst-gen.tex420
-rw-r--r--tex/context/base/syst-omg.tex52
-rw-r--r--tex/context/base/type-enc.tex295
-rw-r--r--tex/context/base/type-exa.tex24
-rw-r--r--tex/context/base/type-map.tex64
-rw-r--r--tex/context/base/type-pre.tex9
-rw-r--r--tex/context/base/type-siz.tex437
-rw-r--r--tex/context/base/type-spe.tex24
-rw-r--r--tex/context/base/type-syn.tex59
-rw-r--r--tex/context/base/x-xml-01.tex40
-rw-r--r--tex/context/base/xtag-ext.tex88
-rw-r--r--tex/context/extra/setup-qr.tex24
60 files changed, 5786 insertions, 5056 deletions
diff --git a/context/config/texexec.rme b/context/config/texexec.rme
index 01c0a4dde..f544f5bbf 100644
--- a/context/config/texexec.rme
+++ b/context/config/texexec.rme
@@ -1,62 +1,62 @@
-% == introduction ==
-%
-% This is 'texexec.ini', the file used by texexec to determine where
-% to find files, what TeX to use, what flags to pass, etc. Although
-% TeXexec tries to locate things itself, a little help is sometimes
-% needed. One can influence texexec by setting some variables. These
-% are only needed when the automatic determined settings fail.
-%
+% == introduction ==
+%
+% This is 'texexec.ini', the file used by texexec to determine where
+% to find files, what TeX to use, what flags to pass, etc. Although
+% TeXexec tries to locate things itself, a little help is sometimes
+% needed. One can influence texexec by setting some variables. These
+% are only needed when the automatic determined settings fail.
+%
% == interfacing ==
-%
+%
% UsedInterfaces nl,en the formats generated with --make
% UserInterface nl the default format used
%
-% == binaries ==
-%
-% TeXExecutable pdfetex the TeX binary to use
-% MpExecutable mpost the MetaPost binary to use
+% == binaries ==
+%
+% TeXExecutable pdfetex the TeX binary to use
+% MpExecutable mpost the MetaPost binary to use
% MpToTeXExecutable mpto the MetaPost to TeX converter
% DviToMpExecutable dvitomp the DVI to MetaPost converter
%
-% == Scripts ==
+% == Scripts ==
%
-% DviSpecialScript dvispec the DVI special filter script
+% DviSpecialScript dvispec the DVI special filter script
%
-% == flags ==
-%
-% TeXFormatFlag & the format introducer
+% == flags ==
+%
+% TeXFormatFlag & the format introducer
% TeXVirginFlag -ini the format generation switch
%
-% == paths ==
+% == paths ==
%
-% TeXFormatPath texmf/... fmt files
+% TeXFormatPath texmf/... fmt files
% ConTeXtPath texmf/tex/context/base sources
% SetupPath texmf/tex/base/user cont-sys/usr file
% TeXScriptsPath texmf/context/perltk scripts
% TeXFontsPath texmf font files
%
-% MpFormatPath TeXFormatPath mem files
+% MpFormatPath TeXFormatPath mem files
%
% == the main shell setting ==
%
-% As shown below, one can define his/her own sections. We default to
-% the teTeX/fpTeX web2c based settings.
+% As shown below, one can define his/her own sections. We default to
+% the teTeX/fpTeX web2c based settings.
-set TeXShell to tetex
-%set TeXShell to fptex
+set TeXShell to tetex
+%set TeXShell to fptex
%set TeXShell to miktex
-%set TeXShell to private
+%set TeXShell to private
% == setting up the variables ==
%
-% Here are some general defaults. They can be overruled later.
+% Here are some general defaults. They can be overruled later.
-set UsedInterfaces to en nl metafun mptopdf
+set UsedInterfaces to en nl metafun mptopdf
set UserInterface to en
-set TeXExecutable to tex
+set TeXExecutable to tex
-set MpExecutable to mpost
+set MpExecutable to mpost
set MpToTeXExecutable to mpto
set DviToMpExecutable to dvitomp
set DviSpecialScript to dvispec
@@ -72,28 +72,32 @@ set TeXFontsPath to l:/tex/texmf;l:/tex/texmf-local;
% For teTeX the next settings will do.
+% -default-translate-file=cp8bit -file-line-error-style
+
for tetex set TeXHashExecutable to mktexlsr
for tetex set TeXExecutable to pdfetex
for tetex set TeXVirginFlag to -ini
-for tetex set TeXPassString to -progname=context
-for tetex set TeXBatchFlag to -int=batchmode
+for tetex set TeXPassString to -progname=context
+for tetex set TeXBatchFlag to -int=batchmode
for tetex set TeXNonStopFlag to -int=nonstopmode
for tetex set MpToTeXExecutable to mpto
-for tetex set MpVirginFlag to -ini
+for tetex set MpVirginFlag to -ini
for tetex set MpPassString to -progname=mpost
-for tetex set MpBatchFlag to -int=batchmode
+for tetex set MpBatchFlag to -int=batchmode
for tetex set MpNonStopFlag to -int=nonstopmode
-% These also apply to fpTeX.
+% These also apply to fpTeX.
+
+% -default-translate-file=cp8bit -file-line-error-style
for fptex set TeXHashExecutable to mktexlsr
for fptex set TeXExecutable to pdfetex
for fptex set TeXVirginFlag to -ini
-for fptex set TeXPassString to -progname=context
-for fptex set TeXBatchFlag to -int=batchmode
+for fptex set TeXPassString to -progname=context
+for fptex set TeXBatchFlag to -int=batchmode
for tetex set TeXNonStopFlag to -int=nonstopmode
for fptex set MpToTeXExecutable to mpto
-for fptex set MpVirginFlag to -ini
+for fptex set MpVirginFlag to -ini
for fptex set MpPassString to -progname=mpost
for fptex set MpBatchFlag to -int=batchmode
for tetex set MpNonStopFlag to -int=nonstopmode
@@ -103,40 +107,40 @@ for tetex set MpNonStopFlag to -int=nonstopmode
for miktex set TeXHashExecutable to initexmf --update-fndb
for miktex set TeXExecutable to pdfetex
for miktex set TeXVirginFlag to --initialize
-for miktex set TeXPassString to --alias=context
-for miktex set TeXBatchFlag to --interaction=batchmode
+for miktex set TeXPassString to --alias=context
+for miktex set TeXBatchFlag to --interaction=batchmode
for miktex set TeXNonStopFlag to --interaction=nonstopmode
for miktex set MpToTeXExecutable to mptotex
for miktex set MpVirginFlag to --initialize
for miktex set MpPassString to --alias=mpost
-for miktex set MpBatchFlag to --interaction=batchmode
+for miktex set MpBatchFlag to --interaction=batchmode
for miktex set MpNonStopFlag to --interaction=nonstopmode
for miktex set TeXFormatFlag to --undump=
for miktex set MpFormatFlag to --undump=
-% These are the settings used on some machines at PRAGMA ADE that
-% don't use the texmf tree. They can serve as an example for local
-% settings. Local settings should either be added to the previous
-% one, or go without the 'for' directives. Consider these
-% settings as an example.
+% These are the settings used on some machines at PRAGMA ADE that
+% don't use the texmf tree. They can serve as an example for local
+% settings. Local settings should either be added to the previous
+% one, or go without the 'for' directives. Consider these
+% settings as an example.
for private set UsedInterfaces to en nl
for private set UserInterface to nl
for private set ConTeXtPath to t:/sources/
-for private set SetupPath to t:/perl/
+for private set SetupPath to t:/perl/
for private set TeXScriptsPath to t:/perl/
-% == read this too ==
+% == read this too ==
%
-% If this file is called 'texexec.rme', copy it to 'texexec.ini',
+% If this file is called 'texexec.rme', copy it to 'texexec.ini',
% check the settings above, change them according to your TeX
-% distribution, and say:
+% distribution, and say:
%
% texexec --verbose
-%
-% When set up properly, you should see your local settings fly by.
-% When these settings are ok, the next call should work:
+%
+% When set up properly, you should see your local settings fly by.
+% When these settings are ok, the next call should work:
%
% texexec --make
%
@@ -145,11 +149,11 @@ for private set TeXScriptsPath to t:/perl/
% texexec filename
%
% See 'mtexexec.pdf' for more information on the flags you can use with
-% 'texexec'. Also make sure you have the 'texutil' script installed in
-% the same path as 'texexec'.
+% 'texexec'. Also make sure you have the 'texutil' script installed in
+% the same path as 'texexec'.
-% Experimental
+% Experimental
%
% set TcXPath to d:/tex/texmf/web2c
-% set FmtLanguage to pl
-% set FmtBodyFont to plr
+% set FmtLanguage to pl
+% set FmtBodyFont to plr
diff --git a/context/data/cont-cz.tws b/context/data/cont-cz.tws
index d80c91eb1..1fa17f085 100644
--- a/context/data/cont-cz.tws
+++ b/context/data/cont-cz.tws
@@ -27,13 +27,13 @@ stopsetup
startsetup
com:jazyk:
typ:val/:
-val:nl,fr,en,uk,de,es,cz,..:nl:
+val:nl,fr,en,uk,de,es,cz,..::
stopsetup
startsetup
com:hlavnijazyk:
typ:val/:
-val:nl,fr,en,uk,de,es,cz,..:nl:
+val:nl,fr,en,uk,de,es,cz,..::
stopsetup
startsetup
@@ -1878,7 +1878,7 @@ stopsetup
startsetup
com:nastavdelitko:
typ:var/:
-var:znak:--,---,-,~,),(,=,/::
+var:znak:--,---,-,~,(,),=,/::
stopsetup
startsetup
diff --git a/context/data/cont-de.tws b/context/data/cont-de.tws
index f63530b65..46aec9df8 100644
--- a/context/data/cont-de.tws
+++ b/context/data/cont-de.tws
@@ -27,13 +27,13 @@ stopsetup
startsetup
com:sprache:
typ:val/:
-val:nl,fr,en,uk,de,es,cz,..:nl:
+val:nl,fr,en,uk,de,es,cz,..::
stopsetup
startsetup
com:hauptsprache:
typ:val/:
-val:nl,fr,en,uk,de,es,cz,..:nl:
+val:nl,fr,en,uk,de,es,cz,..::
stopsetup
startsetup
@@ -1878,7 +1878,7 @@ stopsetup
startsetup
com:stellebindestrichein:
typ:var/:
-var:zeichen:--,---,-,~,),(,=,/::
+var:zeichen:--,---,-,~,(,),=,/::
stopsetup
startsetup
diff --git a/context/data/cont-en.tws b/context/data/cont-en.tws
index f284dd902..18b4defa3 100644
--- a/context/data/cont-en.tws
+++ b/context/data/cont-en.tws
@@ -27,13 +27,13 @@ stopsetup
startsetup
com:language:
typ:val/:
-val:nl,fr,en,uk,de,es,cz,..:nl:
+val:nl,fr,en,uk,de,es,cz,..::
stopsetup
startsetup
com:mainlanguage:
typ:val/:
-val:nl,fr,en,uk,de,es,cz,..:nl:
+val:nl,fr,en,uk,de,es,cz,..::
stopsetup
startsetup
@@ -1878,7 +1878,7 @@ stopsetup
startsetup
com:setuphyphenmark:
typ:var/:
-var:sign:--,---,-,~,),(,=,/::
+var:sign:--,---,-,~,(,),=,/::
stopsetup
startsetup
diff --git a/context/data/cont-it.tws b/context/data/cont-it.tws
index b5a90dc6b..63bc87e2e 100644
--- a/context/data/cont-it.tws
+++ b/context/data/cont-it.tws
@@ -27,13 +27,13 @@ stopsetup
startsetup
com:lingua:
typ:val/:
-val:nl,fr,en,uk,de,es,cz,..:nl:
+val:nl,fr,en,uk,de,es,cz,..::
stopsetup
startsetup
com:linguaprincipale:
typ:val/:
-val:nl,fr,en,uk,de,es,cz,..:nl:
+val:nl,fr,en,uk,de,es,cz,..::
stopsetup
startsetup
@@ -1878,7 +1878,7 @@ stopsetup
startsetup
com:impostasegnosillabazione:
typ:var/:
-var:segno:--,---,-,~,),(,=,/::
+var:segno:--,---,-,~,(,),=,/::
stopsetup
startsetup
diff --git a/context/data/cont-nl.tws b/context/data/cont-nl.tws
index 6a2541761..c22da3f08 100644
--- a/context/data/cont-nl.tws
+++ b/context/data/cont-nl.tws
@@ -27,13 +27,13 @@ stopsetup
startsetup
com:taal:
typ:val/:
-val:nl,fr,en,uk,de,es,cz,..:nl:
+val:nl,fr,en,uk,de,es,cz,..::
stopsetup
startsetup
com:hoofdtaal:
typ:val/:
-val:nl,fr,en,uk,de,es,cz,..:nl:
+val:nl,fr,en,uk,de,es,cz,..::
stopsetup
startsetup
@@ -1878,7 +1878,7 @@ stopsetup
startsetup
com:stelkoppeltekenin:
typ:var/:
-var:teken:--,---,-,~,),(,=,/::
+var:teken:--,---,-,~,(,),=,/::
stopsetup
startsetup
diff --git a/context/data/cont-ro.tws b/context/data/cont-ro.tws
index 8d06df512..d27468f3f 100644
--- a/context/data/cont-ro.tws
+++ b/context/data/cont-ro.tws
@@ -27,13 +27,13 @@ stopsetup
startsetup
com:limba:
typ:val/:
-val:nl,fr,en,uk,de,es,cz,..:nl:
+val:nl,fr,en,uk,de,es,cz,..::
stopsetup
startsetup
com:limbaprincipala:
typ:val/:
-val:nl,fr,en,uk,de,es,cz,..:nl:
+val:nl,fr,en,uk,de,es,cz,..::
stopsetup
startsetup
@@ -1878,7 +1878,7 @@ stopsetup
startsetup
com:seteazaliniesilabe:
typ:var/:
-var:semn:--,---,-,~,),(,=,/::
+var:semn:--,---,-,~,(,),=,/::
stopsetup
startsetup
diff --git a/context/perltk/texexec.pl b/context/perltk/texexec.pl
index cc63f0926..7e5320039 100644
--- a/context/perltk/texexec.pl
+++ b/context/perltk/texexec.pl
@@ -1,14 +1,9 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# todo: second run of checksum of mp file with --nomprun changes
-# todo: warning if no args
-# todo: <<<< in messages
-# todo: cleanup
+eval '(exit $?0)' && eval 'exec perl -w -S $0 ${1+"$@"}' && eval 'exec perl -w -S $0 $argv:q'
+ if 0 ;
#D \module
#D [ file=texexec.pl,
-#D version=2002.05.04,
+#D version=2003.09.16,
#D title=running \ConTeXt,
#D subtitle=\TEXEXEC,
#D author=Hans Hagen,
@@ -19,11 +14,11 @@ eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $
#C therefore copyrighted by \PRAGMA. See licen-en.pdf for
#C details.
-# Thanks to Tobias Burnus for the german translations.
-# Thanks to Thomas Esser for hooking it into web2c
-# Thanks to Taco Hoekwater for suggesting improvements
-# Thanks to Wybo Dekker for the advanced help interface
-# Thanks to Fabrice Popineau for windows path trickery
+# Thanks to Tobias Burnus for the german translations.
+# Thanks to Thomas Esser for hooking it into web2c
+# Thanks to Taco Hoekwater for suggesting improvements
+# Thanks to Wybo Dekker for the advanced help interface and making it strict
+# Thanks to Fabrice Popineau for windows path trickery and fixes
# (I still have to completely understand the help code -)
@@ -31,20 +26,25 @@ eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $
#D expression replaces the unix specific line \type
#D {#!/usr/bin/perl}.
-use Cwd ;
-use Time::Local ;
-use Config ;
-use Getopt::Long ;
-use Class::Struct ; # needed for help subsystem
-#se Data::Dumper ; # needed for help subsystem
-use FindBin ;
+use strict ;
-my %ConTeXtInterfaces ; # otherwise problems with strict
-my %ResponceInterface ; # since i dunno how to allocate else
+# todo: second run of checksum of mp file with --nomprun changes
+# todo: warning if no args
+# todo: <<<< in messages
+# todo: cleanup
+
+use Cwd;
+use Time::Local;
+use Config;
+use Getopt::Long;
+use Class::Struct; # needed for help subsystem
+use FindBin;
+use File::Compare;
-# my %Help ;
+my %ConTeXtInterfaces; # otherwise problems with strict
+my %ResponseInterface; # since i dunno how to allocate else
-# use strict ;
+my %Help;
#D In this script we will launch some programs and other
#D scripts. \TEXEXEC\ uses an ini||file to sort out where
@@ -54,9 +54,9 @@ my %ResponceInterface ; # since i dunno how to allocate else
#D It will be no surprise that Thomas Esser provided me
#D the neccessary code to accomplish this.
-$ENV{"MPXCOMMAND"} = "0" ; # otherwise loop
+$ENV{"MPXCOMMAND"} = "0"; # otherwise loop
-my $TotalTime = time ;
+my $TotalTime = time;
# start random seed hack
#
@@ -64,345 +64,365 @@ my $TotalTime = time ;
# we need to be smaller about 1440 (== 24*60 == tex's max time)
# in which case (david a's) random calculator will overflow.
-my ($sec,$min,$rest) = gmtime ;
-my $RandomSeed = $min*60+$sec ;
-# i have to look up the mod function -)
-if ($RandomSeed>2880) { $RandomSeed -= 2880 }
-if ($RandomSeed>1440) { $RandomSeed -= 1440 }
+# my ( $sec, $min, $rest ) = gmtime;
+# my $RandomSeed = $min * 60 + $sec;
+#
+# # i have to look up the mod function -)
+#
+# if ( $RandomSeed > 2880 ) { $RandomSeed -= 2880 }
+# if ( $RandomSeed > 1440 ) { $RandomSeed -= 1440 }
+
+my ($sec, $min) = gmtime;
+my $RandomSeed = ($min * 60 + $sec) % 1440;
# See usage of $Random and $RandomSeed later on.
#
# end random seed hack
-## $dosish = ($Config{'osname'} =~ /dos|mswin/i) ;
-## $dosish = ($Config{'osname'} =~ /^(ms)?dos|^os\/2|^(ms|cyg)win/i) ;
-my $dosish = ($Config{'osname'} =~ /^(ms)?dos|^os\/2|^mswin/i) ;
-my $escapeshell = ($ENV{'SHELL'} =~ m/sh/i);
-
-my $TeXUtil = 'texutil' ;
-my $TeXExec = 'texexec' ;
-my $DVIspec = 'dvispec' ;
-my $SGMLtoTeX = 'sgml2tex' ;
-my $FDFtoTeX = 'fdf2tex' ;
-
-my $MetaFun = 'metafun' ;
-my $MpToPdf = 'mptopdf' ;
-
-$Getopt::Long::passthrough = 1 ; # no error message
-$Getopt::Long::autoabbrev = 1 ; # partial switch accepted
-
-my $AddEmpty = '' ;
-my $Alone = 0 ;
-my $Optimize = 0 ;
-my $ForceTeXutil = 0 ;
-my $Arrange = 0 ;
-my $BackSpace = '0pt' ;
-my $Background = '' ;
-my $CenterPage = 0 ;
-my $ConTeXtInterface = 'unknown' ;
-my $Convert = '' ;
-my $DoMPTeX = 0 ;
-my $DoMPXTeX = 0 ;
-my $EnterBatchMode = 0 ;
-my $EnterNonStopMode = 0 ;
-my $Environments = '' ;
-my $Modules = '' ;
-my $FastMode = 0 ;
-my $FinalMode = 0 ;
-my $Format = '' ;
-my $MpDoFormat = '' ;
-my $HelpAsked = 0 ;
-my $MainBodyFont = 'standard' ;
-my $MainLanguage = 'standard' ;
-my $MainResponse = 'standard' ;
-my $MakeFormats = 0 ;
-my $Markings = 0 ;
-my $Mode = '' ;
-my $NoArrange = 0 ;
-my $NoDuplex = 0 ;
-my $NOfRuns = 7 ;
-my $NoMPMode = 0 ;
-my $NoMPRun = 0 ;
-my $NoBanner = 0 ;
-my $AutoMPRun = 0 ;
-my $OutputFormat = 'standard' ;
-my $Pages = '' ;
-my $PageScale = '1000' ; # == 1.0
-my $PaperFormat = 'standard' ;
-my $PaperOffset = '0pt' ;
-my $PassOn = '' ;
-my $PdfArrange = 0 ;
-my $PdfSelect = 0 ;
-my $PdfCombine = 0 ;
-my $PrintFormat = 'standard' ;
-my $ProducePdfT = 0 ;
-my $ProducePdfM = 0 ;
-my $ProducePdfX = 0 ;
-my $Input = "" ;
-my $Result = '' ;
-my $Suffix = '' ;
-my $RunOnce = 0 ;
-my $Selection = '' ;
-my $Combination = '2*4' ;
-my $SilentMode = 0 ;
-my $TeXProgram = '' ;
-my $TeXTranslation = '' ;
-my $TextWidth = '0pt' ;
-my $TopSpace = '0pt' ;
-my $TypesetFigures = 0 ;
-my $ForceFullScreen = 0 ;
-my $ScreenSaver = 0 ;
-my $TypesetListing = 0 ;
-my $TypesetModule = 0 ;
-my $UseColor = 0 ;
-my $Verbose = 0 ;
-my $PdfCopy = 0 ;
-my $LogFile = "" ;
-my $MpyForce = 0 ;
-my $RunPath = "" ;
-my $Arguments = "" ;
-my $Pretty = 0 ;
-my $SetFile = "" ;
-my $TeXTree = "" ;
-my $TeXRoot = "" ;
-my $Purge = 0 ;
-my $Separation = "" ;
-my $ModeFile = "" ;
-my $GlobalFile = 0 ;
-my $AllPatterns = 0 ;
-my $ForceXML = 0 ;
-my $Random = 0 ;
-my $Filters = '' ;
+my $dosish = ( $Config{'osname'} =~ /^(ms)?dos|^os\/2|^mswin/i );
+my $escapeshell = ( ($ENV{'SHELL'}) && ($ENV{'SHELL'} =~ m/sh/i ));
+
+my $TeXUtil = 'texutil';
+my $TeXExec = 'texexec';
+my $DVIspec = 'dvispec';
+my $SGMLtoTeX = 'sgml2tex';
+my $FDFtoTeX = 'fdf2tex';
+
+my $MetaFun = 'metafun';
+my $MpToPdf = 'mptopdf';
+
+$Getopt::Long::passthrough = 1; # no error message
+$Getopt::Long::autoabbrev = 1; # partial switch accepted
+
+my $AddEmpty = '';
+my $Alone = 0;
+my $Optimize = 0;
+my $ForceTeXutil = 0;
+my $Arrange = 0;
+my $BackSpace = '0pt';
+my $Background = '';
+my $CenterPage = 0;
+my $ConTeXtInterface = 'unknown';
+my $Convert = '';
+my $DoMPTeX = 0;
+my $DoMPXTeX = 0;
+my $EnterBatchMode = 0;
+my $EnterNonStopMode = 0;
+my $Environments = '';
+my $Modules = '';
+my $FastMode = 0;
+my $FinalMode = 0;
+my $Format = '';
+my $MpDoFormat = '';
+my $HelpAsked = 0;
+my $MainBodyFont = 'standard';
+my $MainLanguage = 'standard';
+my $MainResponse = 'standard';
+my $MakeFormats = 0;
+my $Markings = 0;
+my $Mode = '';
+my $NoArrange = 0;
+my $NoDuplex = 0;
+my $NOfRuns = 7;
+my $NoMPMode = 0;
+my $NoMPRun = 0;
+my $NoBanner = 0;
+my $AutoMPRun = 0;
+my $OutputFormat = 'standard';
+my $Pages = '';
+my $PageScale = '1000'; # == 1.0
+my $PaperFormat = 'standard';
+my $PaperOffset = '0pt';
+my $PassOn = '';
+my $PdfArrange = 0;
+my $PdfSelect = 0;
+my $PdfCombine = 0;
+my $PdfOpen = 0;
+my $PdfClose = 0;
+my $PrintFormat = 'standard';
+my $ProducePdfT = 0;
+my $ProducePdfM = 0;
+my $ProducePdfX = 0;
+my $Input = "";
+my $Result = '';
+my $Suffix = '';
+my $RunOnce = 0;
+my $Selection = '';
+my $Combination = '2*4';
+my $SilentMode = 0;
+my $TeXProgram = '';
+my $TeXTranslation = '';
+my $TextWidth = '0pt';
+my $TopSpace = '0pt';
+my $TypesetFigures = 0;
+my $ForceFullScreen = 0;
+my $ScreenSaver = 0;
+my $TypesetListing = 0;
+my $TypesetModule = 0;
+my $UseColor = 0;
+my $Verbose = 0;
+my $PdfCopy = 0;
+my $LogFile = "";
+my $MpyForce = 0;
+my $RunPath = "";
+my $Arguments = "";
+my $Pretty = 0;
+my $SetFile = "";
+my $TeXTree = "";
+my $TeXRoot = "";
+my $Purge = 0;
+my $Separation = "";
+my $ModeFile = "";
+my $GlobalFile = 0;
+my $AllPatterns = 0;
+my $ForceXML = 0;
+my $Random = 0;
+my $Filters = '';
# makempy :
-my $MakeMpy = '' ;
-
-&GetOptions
- ( "arrange" => \$Arrange ,
- "batch" => \$EnterBatchMode ,
- "nonstop" => \$EnterNonStopMode ,
- "color" => \$UseColor ,
- "centerpage" => \$CenterPage ,
- "convert=s" => \$Convert ,
- "environments=s"=> \$Environments ,
- "usemodules=s" => \$Modules ,
- "xml" => \$ForceXML ,
- "xmlfilters=s" => \$Filters ,
- "fast" => \$FastMode ,
- "final" => \$FinalMode ,
- "format=s" => \$Format ,
- "mpformat=s" => \$MpDoFormat ,
- "help" => \$HelpAsked ,
- "interface=s" => \$ConTeXtInterface ,
- "language=s" => \$MainLanguage ,
- "bodyfont=s" => \$MainBodyFont ,
- "results=s" => \$Result ,
- "response=s" => \$MainResponse ,
- "make" => \$MakeFormats ,
- "mode=s" => \$Mode ,
- "module" => \$TypesetModule ,
- "figures=s" => \$TypesetFigures ,
- "fullscreen" => \$ForceFullScreen ,
- "screensaver" => \$ScreenSaver ,
- "listing" => \$TypesetListing ,
- "mptex" => \$DoMPTeX ,
- "mpxtex" => \$DoMPXTeX ,
- "noarrange" => \$NoArrange ,
- "nomp" => \$NoMPMode ,
- "nomprun" => \$NoMPRun ,
- "nobanner" => \$NoBanner ,
- "automprun" => \$AutoMPRun ,
- "once" => \$RunOnce ,
- "output=s" => \$OutputFormat ,
- "pages=s" => \$Pages ,
- "paper=s" => \$PaperFormat ,
- "passon=s" => \$PassOn ,
- "path=s" => \$RunPath ,
- "pdf" => \$ProducePdfT ,
- "pdm" => \$ProducePdfM ,
- "pdx" => \$ProducePdfX ,
- "pdfarrange" => \$PdfArrange ,
- "pdfselect" => \$PdfSelect ,
- "pdfcombine" => \$PdfCombine ,
- "pdfcopy" => \$PdfCopy ,
- "scale=s" => \$PageScale ,
- "selection=s" => \$Selection ,
- "combination=s" => \$Combination ,
- "noduplex" => \$NoDuplex ,
- "paperoffset=s" => \$PaperOffset ,
- "backspace=s" => \$BackSpace ,
- "topspace=s" => \$TopSpace ,
- "markings" => \$Markings ,
- "textwidth=s" => \$TextWidth ,
- "addempty=s" => \$AddEmpty ,
- "background=s" => \$Background ,
- "logfile=s" => \$LogFile ,
- "print=s" => \$PrintFormat ,
- "suffix=s" => \$Suffix ,
- "runs=s" => \$NOfRuns ,
- "silent" => \$SilentMode ,
- "tex=s" => \$TeXProgram ,
- "verbose" => \$Verbose ,
- "alone" => \$Alone ,
- "optimize" => \$Optimize ,
- "texutil" => \$ForceTeXutil ,
- "mpyforce" => \$MpyForce ,
- "input=s" => \$Input ,
- "arguments=s" => \$Arguments ,
- "pretty" => \$Pretty ,
- "setfile=s" => \$SetFile ,
- "purge" => \$Purge ,
+my $MakeMpy = '';
+
+&GetOptions(
+ "arrange" => \$Arrange,
+ "batch" => \$EnterBatchMode,
+ "nonstop" => \$EnterNonStopMode,
+ "color" => \$UseColor,
+ "centerpage" => \$CenterPage,
+ "convert=s" => \$Convert,
+ "environments=s" => \$Environments,
+ "usemodules=s" => \$Modules,
+ "xml" => \$ForceXML,
+ "xmlfilters=s" => \$Filters,
+ "fast" => \$FastMode,
+ "final" => \$FinalMode,
+ "format=s" => \$Format,
+ "mpformat=s" => \$MpDoFormat,
+ "help" => \$HelpAsked,
+ "interface=s" => \$ConTeXtInterface,
+ "language=s" => \$MainLanguage,
+ "bodyfont=s" => \$MainBodyFont,
+ "results=s" => \$Result,
+ "response=s" => \$MainResponse,
+ "make" => \$MakeFormats,
+ "mode=s" => \$Mode,
+ "module" => \$TypesetModule,
+ "figures=s" => \$TypesetFigures,
+ "fullscreen" => \$ForceFullScreen,
+ "screensaver" => \$ScreenSaver,
+ "listing" => \$TypesetListing,
+ "mptex" => \$DoMPTeX,
+ "mpxtex" => \$DoMPXTeX,
+ "noarrange" => \$NoArrange,
+ "nomp" => \$NoMPMode,
+ "nomprun" => \$NoMPRun,
+ "nobanner" => \$NoBanner,
+ "automprun" => \$AutoMPRun,
+ "once" => \$RunOnce,
+ "output=s" => \$OutputFormat,
+ "pages=s" => \$Pages,
+ "paper=s" => \$PaperFormat,
+ "passon=s" => \$PassOn,
+ "path=s" => \$RunPath,
+ "pdf" => \$ProducePdfT,
+ "pdm" => \$ProducePdfM,
+ "pdx" => \$ProducePdfX,
+ "pdfarrange" => \$PdfArrange,
+ "pdfselect" => \$PdfSelect,
+ "pdfcombine" => \$PdfCombine,
+ "pdfcopy" => \$PdfCopy,
+ "scale=s" => \$PageScale,
+ "selection=s" => \$Selection,
+ "combination=s" => \$Combination,
+ "noduplex" => \$NoDuplex,
+ "paperoffset=s" => \$PaperOffset,
+ "backspace=s" => \$BackSpace,
+ "topspace=s" => \$TopSpace,
+ "markings" => \$Markings,
+ "textwidth=s" => \$TextWidth,
+ "addempty=s" => \$AddEmpty,
+ "background=s" => \$Background,
+ "logfile=s" => \$LogFile,
+ "print=s" => \$PrintFormat,
+ "suffix=s" => \$Suffix,
+ "runs=s" => \$NOfRuns,
+ "silent" => \$SilentMode,
+ "tex=s" => \$TeXProgram,
+ "verbose" => \$Verbose,
+ "alone" => \$Alone,
+ "optimize" => \$Optimize,
+ "texutil" => \$ForceTeXutil,
+ "mpyforce" => \$MpyForce,
+ "input=s" => \$Input,
+ "arguments=s" => \$Arguments,
+ "pretty" => \$Pretty,
+ "setfile=s" => \$SetFile,
+ "purge" => \$Purge,
#### yet undocumented #################
- "random" => \$Random ,
- "makempy=s" => \$MakeMpy ,
- "allpatterns" => \$AllPatterns ,
- "separation=s" => \$Separation ,
- "textree=s" => \$TeXTree ,
- "texroot=s" => \$TeXRoot ,
- "translate=s" => \$TeXTranslation ,
- "modefile=s" => \$ModeFile , # additional modes file
- "globalfile" => \$GlobalFile ) ; # don't check name
+ "random" => \$Random,
+ "makempy=s" => \$MakeMpy,
+ "allpatterns" => \$AllPatterns,
+ "separation=s" => \$Separation,
+ "textree=s" => \$TeXTree,
+ "texroot=s" => \$TeXRoot,
+ "translate=s" => \$TeXTranslation,
+ "pdfclose" => \$PdfClose,
+ "pdfopen" => \$PdfOpen,
+ "modefile=s" => \$ModeFile, # additional modes file
+ "globalfile" => \$GlobalFile
+); # don't check name
# a set file (like blabla.bat) can set paths now
-if ($SetFile ne "")
- { load_set_file ($SetFile,$Verbose) ; $SetFile = "" }
+if ( $SetFile ne "" ) { load_set_file( $SetFile, $Verbose ); $SetFile = "" }
# later we will do a second attempt.
-$SIG{INT} = "IGNORE" ;
-
-if ($ARGV[0] =~ /\.mpx$/io) # catch -tex=.... bug in mpost
- { $TeXProgram = '' ; $DoMPXTeX = 1 ; $NoMPMode = 1 }
-
-if ($ScreenSaver)
- { $ForceFullScreen = 1 ;
- $TypesetFigures = 'c' ;
- $ProducePdfT = 1 ;
- $Purge = 1 }
-
-if ($DoMPTeX||$DoMPXTeX)
- { $RunOnce = 1 ;
- $ProducePdfT = 0 ;
- $ProducePdfX = 0 ;
- $ProducePdfM = 0 }
-
-if ($PdfArrange||$PdfSelect||$PdfCopy||$PdfCombine)
- { $ProducePdfT = 1 ;
- $RunOnce = 1 }
+$SIG{INT} = "IGNORE";
+
+if ( $ARGV[0] && $ARGV[0] =~ /\.mpx$/io ) { # catch -tex=.... bug in mpost
+ $TeXProgram = '';
+ $DoMPXTeX = 1;
+ $NoMPMode = 1;
+}
+
+if ($ScreenSaver) {
+ $ForceFullScreen = 1;
+ $TypesetFigures = 'c';
+ $ProducePdfT = 1;
+ $Purge = 1;
+}
+
+if ( $DoMPTeX || $DoMPXTeX ) {
+ $RunOnce = 1;
+ $ProducePdfT = 0;
+ $ProducePdfX = 0;
+ $ProducePdfM = 0;
+}
+
+if ( $PdfArrange || $PdfSelect || $PdfCopy || $PdfCombine ) {
+ $ProducePdfT = 1;
+ $RunOnce = 1;
+}
if ($ProducePdfT) { $OutputFormat = "pdftex" }
elsif ($ProducePdfM) { $OutputFormat = "dvipdfm" }
elsif ($ProducePdfX) { $OutputFormat = "dvipdfmx" }
-if ($RunOnce||$Pages||$TypesetFigures||$TypesetListing)
- { $NOfRuns = 1 }
+if ( $RunOnce || $Pages || $TypesetFigures || $TypesetListing ) { $NOfRuns = 1 }
-if (($LogFile ne '')&&($LogFile =~ /\w+\.log$/io))
- { open (LOGFILE,">$LogFile") ;
- *STDOUT = *LOGFILE ;
- *STDERR = *LOGFILE }
+if ( ( $LogFile ne '' ) && ( $LogFile =~ /\w+\.log$/io ) ) {
+ open( LOGFILE, ">$LogFile" );
+ *STDOUT = *LOGFILE;
+ *STDERR = *LOGFILE;
+}
-my $Program = " TeXExec 3.3 - ConTeXt / PRAGMA ADE 1997-2003" ;
+my $Program = " TeXExec 4.0 - ConTeXt / PRAGMA ADE 1997-2003";
-print "\n$Program\n\n" ;
+print "\n$Program\n\n";
-if ($Verbose)
- { print " current path : " . cwd . "\n" }
+if ($Verbose) { print " current path : " . cwd . "\n" }
-## $pathslash = '/' ; if ($0 =~ /\\/) { $pathslash = "\\" }
-my $pathslash = '/' ; if ($FindBin::Bin =~ /\\/) { $pathslash = "\\" }
-my $cur_path = ".$pathslash" ;
-
-# $own_path = $0 ; $own_path =~ s/texexec(\.pl|\.bat|)//io ;
-# $own_type = $1 ;
-# $own_stub = "" ;
+my $pathslash = '/';
+if ( $FindBin::Bin =~ /\\/ ) { $pathslash = "\\" }
+my $cur_path = ".$pathslash";
# we need to handle window's "Program Files" path (patch by Fabrice P)
-my $own_path = "$FindBin::Bin/" ;
-my $own_type = $0 ;
-my $own_type = $FindBin::Script ;
-my $own_quote = ($own_path =~ m/^[^\"].* / ? "\"" : "") ;
-my $own_stub = "" ;
-
-if ($own_type =~ /(\.pl|perl)/oi)
- { $own_stub = "perl " }
-
-if ($own_type =~ /(\.(pl|bin|exe))$/io)
- { $own_type = $1 }
-else
- { $own_type = '' }
-
-sub checked_path
- { my $path = shift ;
- if ((defined($path))&&($path ne ''))
- { $path =~ s/[\/\\]/$pathslash/go ;
- $path =~ s/[\/\\]*$//go ;
- $path .= $pathslash }
- else
- { $path = '' }
- return $path }
-
-sub checked_file
- { my $path = shift ;
- if ((defined($path))&&($path ne ''))
- { $path =~ s/[\/\\]/$pathslash/go }
- else
- { $path = '' }
- return $path }
-
-sub CheckPath
- { my ($Key, $Value) = @_ ;
- if (($Value =~ /\//)&&($Value !~ /\;/)) # no multipath test yet
- { $Value = checked_path($Value) ;
- unless (-d $Value)
- { print " error : $Key set to unknown path $Value\n" } } }
+my $own_path = "$FindBin::Bin/";
+my $own_type = $FindBin::Script;
+my $own_quote = ( $own_path =~ m/^[^\"].* / ? "\"" : "" );
+my $own_stub = "";
+
+if ( $own_type =~ /(\.pl|perl)/oi ) { $own_stub = "perl " }
+
+if ( $own_type =~ /(\.(pl|bin|exe))$/io ) { $own_type = $1 }
+else { $own_type = '' }
+
+sub checked_path {
+ my $path = shift;
+ if ( ( defined($path) ) && ( $path ne '' ) ) {
+ $path =~ s/[\/\\]/$pathslash/go;
+ $path =~ s/[\/\\]*$//go;
+ $path .= $pathslash;
+ } else {
+ $path = '';
+ }
+ return $path;
+}
+
+sub checked_file {
+ my $path = shift;
+ if ( ( defined($path) ) && ( $path ne '' ) ) {
+ $path =~ s/[\/\\]/$pathslash/go;
+ } else {
+ $path = '';
+ }
+ return $path;
+}
+
+sub CheckPath {
+ my ( $Key, $Value ) = @_;
+ if ( ( $Value =~ /\// ) && ( $Value !~ /\;/ ) ) # no multipath test yet
+ {
+ $Value = checked_path($Value);
+ unless ( -d $Value ) {
+ print " error : $Key set to unknown path $Value\n";
+ }
+ }
+}
# set <variable> to <value>
# for <script> set <variable> to <value>
# except for <script> set <variable> to <value>
-my $IniPath = '' ;
+my $IniPath = '';
#D The kpsewhich program is not available in all tex distributions, so
#D we have to locate it before running it (as suggested by Thomas).
-my @paths ;
-
-if ($ENV{PATH} =~ /\;/)
- { @paths = split(/\;/,$ENV{PATH}) }
-else
- { @paths = split(/\:/,$ENV{PATH}) }
-
-my $kpsewhich = '' ;
-
-sub found_ini_file
- { my $suffix = shift ;
- # my $IniPath = `$kpsewhich --format="other text files" -progname=context texexec.$suffix` ;
- my $IniPath = `$own_quote$kpsewhich$own_quote --format="other text files" -progname=context texexec.$suffix` ;
- chomp($IniPath) ;
- return $IniPath }
-
-if ($IniPath eq '')
- { foreach (@paths)
- { my $p = checked_path($_) . 'kpsewhich' ;
- if ((-e $p)||(-e $p . '.exe'))
- { $kpsewhich = $p ;
- $IniPath = found_ini_file("ini") ;
- unless (-e $IniPath) { $IniPath = found_ini_file("rme") }
- last } }
- if ($Verbose)
- { if ($kpsewhich eq '')
- { print " locating ini file : kpsewhich not found in path\n" }
- elsif ($IniPath eq '')
- { print " locating ini file : not found by kpsewhich\n" }
- else
- { if ($IniPath =~ /rme/oi)
- { print " locating ini file : not found by kpsewhich, using '.rme' file\n" }
- else
- { print " locating ini file : found by kpsewhich\n" } } } }
+my @paths;
+
+if ( $ENV{PATH} =~ /\;/ ) { @paths = split( /\;/, $ENV{PATH} ) }
+else { @paths = split( /\:/, $ENV{PATH} ) }
+
+my $kpsewhich = '';
+
+sub found_ini_file {
+ my $suffix = shift;
+ my $IniPath = `$kpsewhich --format="other text files" -progname=context texexec.$suffix`;
+ chomp($IniPath);
+ return $IniPath;
+}
+
+if ( $IniPath eq '' ) {
+ foreach (@paths) {
+ my $p = checked_path($_) . 'kpsewhich';
+ if ( ( -e $p ) || ( -e $p . '.exe' ) ) {
+ $kpsewhich = $p;
+ # FP: catch spurious error messages here if there $p has
+ # spaces and $own_quote is not set
+ $kpsewhich = ($kpsewhich =~ m/^[^\"].* / ? "\"$kpsewhich\"" : "$kpsewhich") ;
+ $IniPath = found_ini_file("ini");
+ unless ( -e $IniPath ) { $IniPath = found_ini_file("rme") }
+ last;
+ }
+ }
+ if ($Verbose) {
+ if ( $kpsewhich eq '' ) {
+ print " locating ini file : kpsewhich not found in path\n";
+ } elsif ( $IniPath eq '' ) {
+ print " locating ini file : not found by kpsewhich\n";
+ } else {
+ if ( $IniPath =~ /rme/oi ) {
+ print
+" locating ini file : not found by kpsewhich, using '.rme' file\n";
+ } else {
+ print " locating ini file : found by kpsewhich\n";
+ }
+ }
+ }
+}
#D Now, when we didn't find the \type {kpsewhich}, we have
#D to revert to some other method. We could have said:
@@ -416,491 +436,380 @@ if ($IniPath eq '')
#D providing a module, which can introduce problems with loading, I
#D decided to copy the code of \type {texpath} into this file.
-use File::Find ;
+use File::Find;
# use File::Copy ; no standard in perl
-my ($ReportPath, $ReportName, $ReportFile) = (0,0,1) ;
-my ($FileToLocate, $PathToStartOn) = ('','') ;
-my ($LocatedPath, $LocatedName, $LocatedFile) = ('','','') ;
-
-sub DoLocateFile # we have to keep on pruning
- { if (lc $_ eq $FileToLocate)
- { $LocatedPath = $File::Find::dir ;
- $LocatedName = $_ ;
- $LocatedFile = $File::Find::name }
- if ($LocatedName) { $File::Find::prune = 1 } }
-
-sub LocatedFile
- { $PathToStartOn = shift ;
- $FileToLocate = lc shift ;
- if ($FileToLocate eq '')
- { $FileToLocate = $PathToStartOn ;
- $PathToStartOn = $own_path }
- ($LocatedPath, $LocatedName, $LocatedFile) = ('','','') ;
- if ($FileToLocate ne '')
- { if (-e $cur_path . $FileToLocate)
- { $LocatedPath = $cur_path ;
- $LocatedName = $FileToLocate ;
- $LocatedFile = $cur_path . $FileToLocate }
- else
- { $_ = checked_path($PathToStartOn) ;
- if (-e $_ . $FileToLocate)
- { $LocatedPath = $_ ;
- $LocatedName = $FileToLocate ;
- $LocatedFile = $_ . $FileToLocate }
- else
- { $_ = checked_path($PathToStartOn) ;
- if (/(.*?[\/\\]texmf[\/\\]).*/i)
- { my $SavedRoot = $1 ;
- File::Find::find(\&DoLocateFile, checked_path($1 . 'context/')) ;
- unless ($LocatedFile)
- { File::Find::find(\&DoLocateFile, $SavedRoot) } }
- else
- { $_ = checked_path($_) ;
- File::Find::find(\&DoLocateFile, $_) } } } }
- return ($LocatedPath, $LocatedName, $LocatedFile) }
+my ( $ReportPath, $ReportName, $ReportFile ) = ( 0, 0, 1 );
+my ( $FileToLocate, $PathToStartOn ) = ( '', '' );
+my ( $LocatedPath, $LocatedName, $LocatedFile ) = ( '', '', '' );
+
+sub DoLocateFile { # we have to keep on pruning
+ if ( lc $_ eq $FileToLocate ) {
+ $LocatedPath = $File::Find::dir;
+ $LocatedName = $_;
+ $LocatedFile = $File::Find::name;
+ }
+ if ($LocatedName) { $File::Find::prune = 1 }
+}
+
+sub LocatedFile {
+ $PathToStartOn = shift;
+ $FileToLocate = lc shift;
+ if ( $FileToLocate eq '' ) {
+ $FileToLocate = $PathToStartOn;
+ $PathToStartOn = $own_path;
+ }
+ ( $LocatedPath, $LocatedName, $LocatedFile ) = ( '', '', '' );
+ if ( $FileToLocate ne '' ) {
+ if ( -e $cur_path . $FileToLocate ) {
+ $LocatedPath = $cur_path;
+ $LocatedName = $FileToLocate;
+ $LocatedFile = $cur_path . $FileToLocate;
+ } else {
+ $_ = checked_path($PathToStartOn);
+ if ( -e $_ . $FileToLocate ) {
+ $LocatedPath = $_;
+ $LocatedName = $FileToLocate;
+ $LocatedFile = $_ . $FileToLocate;
+ } else {
+ $_ = checked_path($PathToStartOn);
+ if (/(.*?[\/\\]texmf[\/\\]).*/i) {
+ my $SavedRoot = $1;
+ File::Find::find( \&DoLocateFile,
+ checked_path( $1 . 'context/' ) );
+ unless ($LocatedFile) {
+ File::Find::find( \&DoLocateFile, $SavedRoot );
+ }
+ } else {
+ $_ = checked_path($_);
+ File::Find::find( \&DoLocateFile, $_ );
+ }
+ }
+ }
+ }
+ return ( $LocatedPath, $LocatedName, $LocatedFile );
+}
#D So now we can say:
-unless ($IniPath)
- { ($LocatedPath, $LocatedName, $IniPath) = LocatedFile($own_path,'texexec.ini') ;
- if ($Verbose)
- { if ($IniPath eq '')
- { print " locating ini file : not found by searching\n" }
- else
- { print " locating ini file : found by searching\n" } } }
+unless ($IniPath) {
+ ( $LocatedPath, $LocatedName, $IniPath ) =
+ LocatedFile( $own_path, 'texexec.ini' );
+ if ($Verbose) {
+ if ( $IniPath eq '' ) {
+ print " locating ini file : not found by searching\n";
+ } else {
+ print " locating ini file : found by searching\n";
+ }
+ }
+}
#D The last resorts:
-unless ($IniPath)
- { if ($ENV{TEXEXEC_INI_FILE})
- { $IniPath = checked_path($ENV{TEXEXEC_INI_FILE}) . 'texexec.ini' ;
- unless (-e $IniPath) { $IniPath = '' } }
- if ($Verbose)
- { if ($IniPath eq '')
- { print " locating ini file : no environment variable set\n" }
- else
- { print " locating ini file : found by environment variable\n" } } }
-
-unless ($IniPath)
- { $IniPath = $own_path . 'texexec.ini' ;
- unless (-e $IniPath) { $IniPath = '' }
- if ($Verbose)
- { if ($IniPath eq '')
- { print " locating ini file : not found in own path\n" }
- else
- { print " locating ini file : found in own path\n" } } }
+unless ($IniPath) {
+ if ( $ENV{TEXEXEC_INI_FILE} ) {
+ $IniPath = checked_path( $ENV{TEXEXEC_INI_FILE} ) . 'texexec.ini';
+ unless ( -e $IniPath ) { $IniPath = '' }
+ }
+ if ($Verbose) {
+ if ( $IniPath eq '' ) {
+ print " locating ini file : no environment variable set\n";
+ } else {
+ print " locating ini file : found by environment variable\n";
+ }
+ }
+}
+
+unless ($IniPath) {
+ $IniPath = $own_path . 'texexec.ini';
+ unless ( -e $IniPath ) { $IniPath = '' }
+ if ($Verbose) {
+ if ( $IniPath eq '' ) {
+ print " locating ini file : not found in own path\n";
+ } else {
+ print " locating ini file : found in own path\n";
+ }
+ }
+}
#D Now we're ready for loading the initialization file! We
#D also define some non strict variables. Using \type {$Done}
#D permits assignments.
-my %Done ;
-
-unless ($IniPath)
- { $IniPath = 'texexec.ini' }
-
-if (open(INI, $IniPath))
- { if ($Verbose)
- { print " reading : $IniPath\n" }
- while (<INI>)
- { if (!/^[a-zA-Z\s]/oi)
- { }
- elsif (/except for\s+(\S+)\s+set\s+(\S+)\s*to\s*(.*)\s*/goi)
- { my $one = $1 ; my $two= $2 ; my $three = $3 ;
- if ($one ne $Done{"TeXShell"})
- { $three =~ s/^[\'\"]// ; $three =~ s/[\'\"]$// ; $three =~ s/\s*$// ;
- if ($Verbose)
- { print " setting : '$two' to '$three' except for '$one'\n" }
- $Done{"$two"} = $three ;
- CheckPath ($two, $three) } }
- elsif (/for\s+(\S+)\s+set\s+(\S+)\s*to\s*(.*)\s*/goi)
- { my $one = $1 ; my $two= $2 ; my $three = $3 ; $three =~ s/\s*$// ;
- if ($one eq $Done{"TeXShell"})
- { $three =~ s/^[\'\"]// ; $three =~ s/[\'\"]$// ;
- if ($Verbose)
- { print " setting : '$two' to '$three' for '$one'\n" }
- $Done{"$two"} = $three ;
- CheckPath ($two, $three) } }
- elsif (/set\s+(\S+)\s*to\s*(.*)\s*/goi)
- { my $one = $1 ; my $two= $2 ;
- unless (defined($Done{"$one"}))
- { $two =~ s/^[\'\"]// ; $two =~ s/[\'\"]$// ; $two =~ s/\s*$// ;
- if ($Verbose)
- { print " setting : '$one' to '$two' for 'all'\n" }
- $Done{"$one"} = $two ;
- CheckPath ($one, $two) } } }
- close (INI) ;
- if ($Verbose)
- { print "\n" } }
-elsif ($Verbose)
- { print " warning : $IniPath not found, did you read 'texexec.rme'?\n" ;
- exit 1 }
-else
- { print " warning : $IniPath not found, try 'texexec --verbose'\n" ;
- exit 1 }
-
-sub IniValue
- { my ($Key,$Default) = @_ ;
- if (defined($Done{$Key})) { $Default = $Done{$Key} }
- if ($Verbose)
- { print " used setting : $Key = $Default\n" }
- return $Default }
-
-my $TeXShell = IniValue('TeXShell' , '' ) ;
-my $SetupPath = IniValue('SetupPath' , '' ) ;
-my $UserInterface = IniValue('UserInterface' , 'en' ) ;
-my $UsedInterfaces = IniValue('UsedInterfaces' , 'en' ) ;
-my $TeXFontsPath = IniValue('TeXFontsPath' , '.' ) ;
-my $MpExecutable = IniValue('MpExecutable' , 'mpost' ) ;
-my $MpToTeXExecutable = IniValue('MpToTeXExecutable' , 'mpto' ) ;
-my $DviToMpExecutable = IniValue('DviToMpExecutable' , 'dvitomp' ) ;
-my $TeXProgramPath = IniValue('TeXProgramPath' , '' ) ;
-my $TeXFormatPath = IniValue('TeXFormatPath' , '' ) ;
-my $ConTeXtPath = IniValue('ConTeXtPath' , '' ) ;
-my $TeXScriptsPath = IniValue('TeXScriptsPath' , '' ) ;
-my $TeXHashExecutable = IniValue('TeXHashExecutable' , '' ) ;
-my $TeXExecutable = IniValue('TeXExecutable' , 'tex' ) ;
-my $TeXVirginFlag = IniValue('TeXVirginFlag' , '-ini' ) ;
-my $TeXBatchFlag = IniValue('TeXBatchFlag' , '-int=batchmode' ) ;
-my $TeXNonStopFlag = IniValue('TeXNonStopFlag' , '-int=nonstopmode' ) ;
-my $MpBatchFlag = IniValue('MpBatchFlag' , '-int=batchmode' ) ;
-my $MpNonStopFlag = IniValue('MpNonStopFlag' , '-int=nonstopmode' ) ;
-my $TeXPassString = IniValue('TeXPassString' , '' ) ;
-my $TeXFormatFlag = IniValue('TeXFormatFlag' , '' ) ;
-my $MpFormatFlag = IniValue('MpFormatFlag' , '' ) ;
-my $MpVirginFlag = IniValue('MpVirginFlag' , '-ini' ) ;
-my $MpPassString = IniValue('MpPassString' , '' ) ;
-my $MpFormat = IniValue('MpFormat' , $MetaFun ) ;
-my $MpFormatPath = IniValue('MpFormatPath' , $TeXFormatPath ) ;
-
-my $FmtLanguage = IniValue('FmtLanguage' , '' ) ;
-my $FmtBodyFont = IniValue('FmtBodyFont' , '' ) ;
-my $FmtResponse = IniValue('FmtResponse' , '' ) ;
-my $TcXPath = IniValue('TcXPath' , '' ) ;
-
- $SetFile = IniValue('SetFile' , $SetFile ) ;
-
-if (($Verbose)&&($kpsewhich ne ''))
- { print "\n" ;
- my $CnfFile = `$own_quote$kpsewhich$own_quote -progname=context texmf.cnf` ;
- chomp $CnfFile ;
- print " applications will use : $CnfFile\n" }
-
-if (($FmtLanguage)&&($MainLanguage eq 'standard'))
- { $MainLanguage = $FmtLanguage }
-if (($FmtBodyFont)&&($MainBodyFont eq 'standard'))
- { $MainBodyFont = $FmtBodyFont }
-if (($FmtResponse)&&($MainResponse eq 'standard'))
- { $MainResponse = $FmtResponse }
-
-if ($TeXFormatFlag eq "" )
- { $TeXFormatFlag = "&" }
-
-if ($MpFormatFlag eq "")
- { $MpFormatFlag = "&" }
-
-unless ($dosish && !$escapeshell)
- { if ($TeXFormatFlag == "&") { $TeXFormatFlag = "\\&" }
- if ($MpFormatFlag == "&") { $MpFormatFlag = "\\&" } }
-
-if ($TeXProgram)
- { $TeXExecutable = $TeXProgram }
-
-my $fmtutil = '' ;
-
-if ($MakeFormats||$Verbose)
- { if ($Alone)
- { if ($Verbose)
- { print " generating format : not using fmtutil\n" } }
- elsif ($TeXShell =~ /tetex|fptex/i)
- { foreach (@paths)
- { my $p = checked_path($_) . 'fmtutil' ;
- if (-e $p)
- { $fmtutil = $p ; last }
- elsif (-e $p . '.exe')
- { $fmtutil = $p . '.exe' ; last } }
- if ($Verbose)
- { if ($fmtutil eq '')
- { print " locating fmtutil : not found in path\n" }
- else
- { print " locating fmtutil : $fmtutil\n" } } } }
+my %Done;
+
+unless ($IniPath) { $IniPath = 'texexec.ini' }
+
+if ( open( INI, $IniPath ) ) {
+ if ($Verbose) { print " reading : $IniPath\n" }
+ while (<INI>) {
+ if ( !/^[a-zA-Z\s]/oi ) { }
+ elsif (/except for\s+(\S+)\s+set\s+(\S+)\s*to\s*(.*)\s*/goi) {
+ my $one = $1;
+ my $two = $2;
+ my $three = $3;
+ if ( $one ne $Done{"TeXShell"} ) {
+ $three =~ s/^[\'\"]//;
+ $three =~ s/[\'\"]$//;
+ $three =~ s/\s*$//;
+ if ($Verbose) {
+ print
+" setting : '$two' to '$three' except for '$one'\n";
+ }
+ $Done{"$two"} = $three;
+ CheckPath( $two, $three );
+ }
+ } elsif (/for\s+(\S+)\s+set\s+(\S+)\s*to\s*(.*)\s*/goi) {
+ my $one = $1;
+ my $two = $2;
+ my $three = $3;
+ $three =~ s/\s*$//;
+ if ( $one eq $Done{"TeXShell"} ) {
+ $three =~ s/^[\'\"]//;
+ $three =~ s/[\'\"]$//;
+ if ($Verbose) {
+ print
+" setting : '$two' to '$three' for '$one'\n";
+ }
+ $Done{"$two"} = $three;
+ CheckPath( $two, $three );
+ }
+ } elsif (/set\s+(\S+)\s*to\s*(.*)\s*/goi) {
+ my $one = $1;
+ my $two = $2;
+ unless ( defined( $Done{"$one"} ) ) {
+ $two =~ s/^[\'\"]//;
+ $two =~ s/[\'\"]$//;
+ $two =~ s/\s*$//;
+ if ($Verbose) {
+ print
+ " setting : '$one' to '$two' for 'all'\n";
+ }
+ $Done{"$one"} = $two;
+ CheckPath( $one, $two );
+ }
+ }
+ }
+ close(INI);
+ if ($Verbose) { print "\n" }
+} elsif ($Verbose) {
+ print
+" warning : $IniPath not found, did you read 'texexec.rme'?\n";
+ exit 1;
+} else {
+ print
+ " warning : $IniPath not found, try 'texexec --verbose'\n";
+ exit 1;
+}
+
+sub IniValue {
+ my ( $Key, $Default ) = @_;
+ if ( defined( $Done{$Key} ) ) { $Default = $Done{$Key} }
+ if ($Verbose) { print " used setting : $Key = $Default\n" }
+ return $Default;
+}
+
+my $TeXShell = IniValue( 'TeXShell', '' );
+my $SetupPath = IniValue( 'SetupPath', '' );
+my $UserInterface = IniValue( 'UserInterface', 'en' );
+my $UsedInterfaces = IniValue( 'UsedInterfaces', 'en' );
+my $TeXFontsPath = IniValue( 'TeXFontsPath', '.' );
+my $MpExecutable = IniValue( 'MpExecutable', 'mpost' );
+my $MpToTeXExecutable = IniValue( 'MpToTeXExecutable', 'mpto' );
+my $DviToMpExecutable = IniValue( 'DviToMpExecutable', 'dvitomp' );
+my $TeXProgramPath = IniValue( 'TeXProgramPath', '' );
+my $TeXFormatPath = IniValue( 'TeXFormatPath', '' );
+my $ConTeXtPath = IniValue( 'ConTeXtPath', '' );
+my $TeXScriptsPath = IniValue( 'TeXScriptsPath', '' );
+my $TeXHashExecutable = IniValue( 'TeXHashExecutable', '' );
+my $TeXExecutable = IniValue( 'TeXExecutable', 'tex' );
+my $TeXVirginFlag = IniValue( 'TeXVirginFlag', '-ini' );
+my $TeXBatchFlag = IniValue( 'TeXBatchFlag', '-int=batchmode' );
+my $TeXNonStopFlag = IniValue( 'TeXNonStopFlag', '-int=nonstopmode' );
+my $MpBatchFlag = IniValue( 'MpBatchFlag', '-int=batchmode' );
+my $MpNonStopFlag = IniValue( 'MpNonStopFlag', '-int=nonstopmode' );
+my $TeXPassString = IniValue( 'TeXPassString', '' );
+my $TeXFormatFlag = IniValue( 'TeXFormatFlag', '' );
+my $MpFormatFlag = IniValue( 'MpFormatFlag', '' );
+my $MpVirginFlag = IniValue( 'MpVirginFlag', '-ini' );
+my $MpPassString = IniValue( 'MpPassString', '' );
+my $MpFormat = IniValue( 'MpFormat', $MetaFun );
+my $MpFormatPath = IniValue( 'MpFormatPath', $TeXFormatPath );
+
+my $FmtLanguage = IniValue( 'FmtLanguage', '' );
+my $FmtBodyFont = IniValue( 'FmtBodyFont', '' );
+my $FmtResponse = IniValue( 'FmtResponse', '' );
+my $TcXPath = IniValue( 'TcXPath', '' );
+
+$SetFile = IniValue( 'SetFile', $SetFile );
+
+if ( ($Verbose) && ( $kpsewhich ne '' ) ) {
+ print "\n";
+ my $CnfFile = `$kpsewhich -progname=context texmf.cnf`;
+ chomp $CnfFile;
+ print " applications will use : $CnfFile\n";
+}
+
+if ( ($FmtLanguage) && ( $MainLanguage eq 'standard' ) ) {
+ $MainLanguage = $FmtLanguage;
+}
+if ( ($FmtBodyFont) && ( $MainBodyFont eq 'standard' ) ) {
+ $MainBodyFont = $FmtBodyFont;
+}
+if ( ($FmtResponse) && ( $MainResponse eq 'standard' ) ) {
+ $MainResponse = $FmtResponse;
+}
+
+if ( $TeXFormatFlag eq "" ) { $TeXFormatFlag = "&" }
+
+if ( $MpFormatFlag eq "" ) { $MpFormatFlag = "&" }
+
+unless ( $dosish && !$escapeshell ) {
+ if ( $TeXFormatFlag eq "&" ) { $TeXFormatFlag = "\\&" }
+ if ( $MpFormatFlag eq "&" ) { $MpFormatFlag = "\\&" }
+}
+
+if ($TeXProgram) { $TeXExecutable = $TeXProgram }
+
+my $fmtutil = '';
+
+if ( $MakeFormats || $Verbose ) {
+ if ($Alone) {
+ if ($Verbose) { print " generating format : not using fmtutil\n" }
+ } elsif ( $TeXShell =~ /tetex|fptex/i ) {
+ foreach (@paths) {
+ my $p = checked_path($_) . 'fmtutil';
+ if ( -e $p ) { $fmtutil = $p; last }
+ elsif ( -e $p . '.exe' ) { $fmtutil = $p . '.exe'; last }
+ }
+ $fmtutil = ($fmtutil =~ m/^[^\"].* / ? "\"$fmtutil\"" : "$fmtutil") ;
+ if ($Verbose) {
+ if ( $fmtutil eq '' ) {
+ print " locating fmtutil : not found in path\n";
+ } else {
+ print " locating fmtutil : $fmtutil\n";
+ }
+ }
+ }
+}
if ($Verbose) { print "\n" }
-unless ($TeXScriptsPath)
- { $TeXScriptsPath = $own_path }
-
-unless ($ConTeXtPath)
- { $ConTeXtPath = $TeXScriptsPath }
-
-if ($ENV{"HOME"})
- { if ($SetupPath) { $SetupPath .= "," }
- $SetupPath .= $ENV{"HOME"} }
-
-if ($TeXFormatPath) { $TeXFormatPath =~ s/[\/\\]$// ; $TeXFormatPath .= '/' }
-if ($MpFormatPath) { $MpFormatPath =~ s/[\/\\]$// ; $MpFormatPath .= '/' }
-if ($ConTeXtPath) { $ConTeXtPath =~ s/[\/\\]$// ; $ConTeXtPath .= '/' }
-if ($SetupPath) { $SetupPath =~ s/[\/\\]$// ; $SetupPath .= '/' }
-if ($TeXScriptsPath) { $TeXScriptsPath =~ s/[\/\\]$// ; $TeXScriptsPath .= '/' }
-
-$SetupPath =~ s/\\/\//go ;
-
-my %OutputFormats ;
-
-$OutputFormats{pdf} = "pdftex" ;
-$OutputFormats{pdftex} = "pdftex" ;
-$OutputFormats{dvips} = "dvips" ;
-$OutputFormats{dvipsone} = "dvipsone" ;
-$OutputFormats{acrobat} = "acrobat" ;
-$OutputFormats{dviwindo} = "dviwindo" ;
-$OutputFormats{dviview} = "dviview" ;
-$OutputFormats{dvipdfm} = "dvipdfm" ;
-$OutputFormats{dvipdfmx} = "dvipdfmx" ;
-
-my @ConTeXtFormats = ("nl", "en", "de", "cz", "uk", "it", "ro", "xx") ;
-
-sub SetInterfaces
- { my ($short,$long,$full) = @_ ;
- $ConTeXtInterfaces{$short} = $short ;
- $ConTeXtInterfaces{$long} = $short ;
- $ResponseInterface{$short} = $full ;
- $ResponseInterface{$long} = $full }
+unless ($TeXScriptsPath) { $TeXScriptsPath = $own_path }
+
+unless ($ConTeXtPath) { $ConTeXtPath = $TeXScriptsPath }
+
+if ( $ENV{"HOME"} ) {
+ if ($SetupPath) { $SetupPath .= "," }
+# my $home = $ENV{"HOME"};
+# $home = ($home =~ m/^[^\"].* / ? "\"$home\"" : "$home") ;
+# $SetupPath .= $home;
+ $SetupPath .= $ENV{"HOME"};
+}
+
+if ($TeXFormatPath) { $TeXFormatPath =~ s/[\/\\]$//; $TeXFormatPath .= '/' }
+if ($MpFormatPath) { $MpFormatPath =~ s/[\/\\]$//; $MpFormatPath .= '/' }
+if ($ConTeXtPath) { $ConTeXtPath =~ s/[\/\\]$//; $ConTeXtPath .= '/' }
+if ($SetupPath) { $SetupPath =~ s/[\/\\]$//; $SetupPath .= '/' }
+if ($TeXScriptsPath) { $TeXScriptsPath =~ s/[\/\\]$//; $TeXScriptsPath .= '/' }
+
+sub QuotePath {
+ my ($path) = @_;
+ my @l = split(",", $path);
+ map { my $e = $_; $e = ($e =~ m/^[^\"].* / ? "\"$e\"" : "$e"); $_ = $e ;} @l;
+ return join(",", @l);
+}
+
+$SetupPath = &QuotePath($SetupPath);
+
+$SetupPath =~ s/\\/\//go;
+
+my %OutputFormats;
+
+$OutputFormats{pdf} = "pdftex";
+$OutputFormats{pdftex} = "pdftex";
+$OutputFormats{dvips} = "dvips";
+$OutputFormats{dvipsone} = "dvipsone";
+$OutputFormats{acrobat} = "acrobat";
+$OutputFormats{dviwindo} = "dviwindo";
+$OutputFormats{dviview} = "dviview";
+$OutputFormats{dvipdfm} = "dvipdfm";
+$OutputFormats{dvipdfmx} = "dvipdfmx";
+
+my @ConTeXtFormats = ( "nl", "en", "de", "cz", "uk", "it", "ro", "xx" );
+
+sub SetInterfaces {
+ my ( $short, $long, $full ) = @_;
+ $ConTeXtInterfaces{$short} = $short;
+ $ConTeXtInterfaces{$long} = $short;
+ $ResponseInterface{$short} = $full;
+ $ResponseInterface{$long} = $full;
+}
#SetInterfaces ( "en" , "unknown" , "english" ) ;
-SetInterfaces ( "nl" , "dutch" , "dutch" ) ;
-SetInterfaces ( "en" , "english" , "english" ) ;
-SetInterfaces ( "de" , "german" , "german" ) ;
-SetInterfaces ( "cz" , "czech" , "czech" ) ;
-SetInterfaces ( "uk" , "brittish" , "english" ) ;
-SetInterfaces ( "it" , "italian" , "italian" ) ;
-SetInterfaces ( "no" , "norwegian" , "norwegian" ) ;
-SetInterfaces ( "ro" , "romanian" , "romanian" ) ;
-SetInterfaces ( "xx" , "experimental" , "english" ) ;
-
-#### old help system
-
-# $Help{ARRANGE} = " --arrange process and arrange\n" ;
-# $Help{BATCH} = " --batch run in batch mode (don't pause)\n" ;
-# $Help{NONSTOP} = " --nonstop run in non stop mode (don't pause)\n" ;
-# $Help{CENTERPAGE} = " --centerpage center the page on the paper\n" ;
-# $Help{COLOR} = " --color enable color (when not yet enabled)\n" ;
-# $Help{USEMODULE} = " --usemodule load some modules first\n" ;
-# $Help{usemodule} =
-# $Help{USEMODULE} . " =name : list of modules\n" ;
-# $Help{XMLFILTER} = " --xmlfilter apply XML filter\n" ;
-# $Help{xmlfilter} =
-# $Help{XMLFILTER} . " =name : list of filters\n" ;
-# $Help{ENVIRONMENT} = " --environment load some environments first\n" ;
-# $Help{environment} =
-# $Help{ENVIRONMENT} . " =name : list of environments\n" ;
-# $Help{FAST} = " --fast skip as much as possible\n" ;
-# $Help{FIGURES} = " --figures typeset figure directory\n" ;
-# $Help{figures} =
-# $Help{FIGURES} . " =a : room for corrections\n"
-# . " =b : just graphics\n"
-# . " =c : one (cropped) per page\n"
-# . " --paperoffset room left at paper border\n" ;
-# $Help{FINAL} = " --final add a final run without skipping\n" ;
-# $Help{FORMAT} = " --format fmt file\n" ;
-# $Help{format} =
-# $Help{FORMAT} . " =name : format file (memory dump) \n" ;
-# $Help{MPFORMAT} = " --mpformat mem file\n" ;
-# $Help{mpformat} =
-# $Help{MPFORMAT} . " =name : format file (memory dump) \n" ;
-# $Help{INTERFACE} = " --interface user interface\n" ;
-# $Help{interface} =
-# $Help{INTERFACE} . " =en : English\n"
-# . " =nl : Dutch\n"
-# . " =de : German\n"
-# . " =cz : Czech\n"
-# . " =uk : Brittish\n"
-# . " =it : Italian\n" ;
-# $Help{LANGUAGE} = " --language main hyphenation language \n" ;
-# $Help{language} =
-# $Help{LANGUAGE} . " =xx : standard abbreviation \n" ;
-# $Help{LISTING} = " --listing produce a verbatim listing\n" ;
-# $Help{listing} =
-# $Help{LISTING} . " --backspace inner margin of the page\n" .
-# " --topspace top/bottom margin of the page\n" .
-# " --pretty enable pretty printing\n" .
-# " --color use color for pretty printing\n" ;
-# $Help{MAKE} = " --make build format files \n" ;
-# $Help{make} =
-# $Help{MAKE} . " --language patterns to include\n" .
-# " --bodyfont bodyfont to preload\n" .
-# " --response response interface language\n" .
-# " --format TeX format\n" .
-# " --mpformat MetaPost format\n" .
-# " --program TeX program\n" ;
-# $Help{MODE} = " --mode running mode \n" ;
-# $Help{mode} =
-# $Help{MODE} . " =list : modes to set\n" ;
-# $Help{MODULE} = " --module typeset tex/pl/mp module\n" ;
-# $Help{MPTEX} = " --mptex run an MetaPost plus btex-etex cycle\n" ;
-# $Help{MPXTEX} = " --mpxtex generatet an MetaPostmpx file\n" ;
-# $Help{NOARRANGE} = " --noarrange process but ignore arrange\n" ;
-# $Help{NOMP} = " --nomp don't run MetaPost at all\n" ;
-# $Help{NOMPRUN} = " --nomprun don't run MetaPost at runtime\n" ;
-# $Help{AUTOMPRUN} = " --automprun MetaPost at runtime when needed\n" ;
-# $Help{ONCE} = " --once run TeX only once (no TeXUtil either)\n" ;
-# $Help{OUTPUT} = " --output specials to use\n" ;
-# $Help{output} =
-# $Help{OUTPUT} . " =pdftex\n"
-# . " =dvips\n"
-# . " =dvipsone\n"
-# . " =dviwindo\n"
-# . " =dviview\n"
-# . " =dvipdfm\n" ;
-# . " =dvipdfmx\n" ;
-# $Help{PASSON} = ' --passon switches to pass to TeX ("--src" for MikTeX)' . "\n" ;
-# $Help{PAGES} = " --pages pages to output\n" ;
-# $Help{pages} =
-# $Help{PAGES} . " =odd : odd pages\n" .
-# " =even : even pages\n" .
-# " =x,y:z : pages x and y to z\n" ;
-# $Help{PAPER} = " --paper paper input and output format\n" ;
-# $Help{paper} =
-# $Help{PAPER} . " =a4a3 : A4 printed on A3\n" .
-# " =a5a4 : A5 printed on A4\n" ;
-# $Help{PATH} = " --path document source path\n" ;
-# $Help{path} =
-# $Help{PATH} . " =string : path\n" ;
-# $Help{PDF} = " --pdf produce PDF directly using pdf(e)tex\n" ;
-# $Help{PDFARRANGE} = " --pdfarrange arrange pdf pages\n" ;
-# $Help{pdfarrange} =
-# $Help{PDFARRANGE} . " --paperoffset room left at paper border\n" .
-# " --paper paper format\n" .
-# " --noduplex single sided\n" .
-# " --backspace inner margin of the page\n" .
-# " --topspace top/bottom margin of the page\n" .
-# " --markings add cutmarks\n" .
-# " --background =background graphic\n" .
-# " --addempty add empty page after\n" .
-# " --textwidth width of the original (one sided) text\n" ;
-# $Help{PDFCOMBINE} = " --pdfcombine combine pages to one page\n" ;
-# $Help{pdfcombine} =
-# $Help{PDFCOMBINE} . " --paperformat paper format\n" .
-# " --combination n*m pages per page\n" .
-# " --paperoffset room left at paper border\n" ;
-# $Help{PDFCOPY} = " --pdfcopy scale pages down/up\n" ;
-# $Help{pdfcopy} =
-# $Help{PDFCOPY} . " --scale new page scale\n" .
-# " --paperoffset room left at paper border\n" .
-# " --markings add cutmarks\n" .
-# " --background =background graphic\n" ;
-# $Help{PDFSELECT} = " --pdfselect select pdf pages\n" ;
-# $Help{pdfselect} =
-# $Help{PDFSELECT} . " --selection pages to select\n" .
-# " =odd : odd pages\n" .
-# " =even : even pages\n" .
-# " =x,y:z : pages x and y to z\n" .
-# " --paperoffset room left at paper border\n" .
-# " --paperformat paper format\n" .
-# " --backspace inner margin of the page\n" .
-# " --topspace top/bottom margin of the page\n" .
-# " --markings add cutmarks\n" .
-# " --background =background graphic\n" .
-# " --addempty add empty page after\n" .
-# " --textwidth width of the original (one sided) text\n" ;
-# $Help{PRINT} = " --print page imposition scheme\n" ;
-# $Help{print} =
-# $Help{PRINT} . " =up : 2 pages per sheet doublesided \n" .
-# " =down : 2 rotated pages per sheet doublesided \n" ;
-# $Help{RESULT} = " --result resulting file \n" ;
-# $Help{result} =
-# $Help{RESULT} . " =name : filename \n" ;
-# $Help{INPUT} = " --input input file (if used)\n" ;
-# $Help{input} =
-# $Help{INPUT} . " =name : filename \n" ;
-# $Help{SUFFIX} = " --suffix resulting file suffix\n" ;
-# $Help{suffix} =
-# $Help{SUFFIX} . " =string : suffix \n" ;
-# $Help{RUNS} = " --runs maximum number of TeX runs \n" ;
-# $Help{runs} =
-# $Help{RUNS} . " =n : number of runs\n" ;
-# $Help{SILENT} = " --silent minimize (status) messages\n" ;
-# $Help{TEX} = " --tex TeX binary \n" ;
-# $Help{tex} =
-# $Help{TEX} . " =name : binary of executable \n" ;
-# $Help{VERBOSE} = " --verbose shows some additional info \n" ;
-# $Help{HELP} = " --help show this or more, e.g. '--help interface'\n" ;
-#
-# $Help{ALONE} = " --alone bypass utilities (e.g. fmtutil for non-standard fmt's)\n" ;
-# $Help{TEXUTIL} = " --texutil force TeXUtil run\n" ;
-# $Help{SETFILE} = " --setfile load environment (batch) file\n" ;
-#
-# if ($HelpAsked)
-# { if (@ARGV)
-# { foreach (@ARGV) { s/\-//go ; print "$Help{$_}\n" } }
-# else
-# { print $Help{ARRANGE} ;
-# print $Help{BATCH} ;
-# print $Help{NONSTOP} ;
-# print $Help{CENTERPAGE} ;
-# print $Help{COLOR} ;
-# # print $Help{CONVERT} ;
-# print $Help{INPUT} ;
-# print $Help{USEMODULE} ;
-# print $Help{XMLFILTER} ;
-# print $Help{ENVIRONMENT} ;
-# print $Help{FAST} ;
-# print $Help{FIGURES} ;
-# print $Help{FINAL} ;
-# print $Help{FORMAT} ;
-# print $Help{INTERFACE} ;
-# print $Help{LISTING} ;
-# print $Help{LANGUAGE} ;
-# print $Help{MAKE} ;
-# print $Help{MODE} ;
-# print $Help{MODULE} ;
-# print $Help{MPTEX} ;
-# print $Help{MPXTEX} ;
-# print $Help{NOARRANGE} ;
-# print $Help{NOMP} ;
-# print $Help{NOMPRUN} ;
-# print $Help{AUTOMPRUN} ;
-# print $Help{ONCE} ;
-# print $Help{OUTPUT} ;
-# print $Help{PAGES} ;
-# print $Help{PAPER} ;
-# print $Help{PASSON} ;
-# print $Help{PATH} ;
-# print $Help{PDFARRANGE} ;
-# print $Help{PDFCOMBINE} ;
-# print $Help{PDFCOPY} ;
-# print $Help{PDFSELECT} ;
-# print $Help{PDF} ;
-# print $Help{PRINT} ;
-# print $Help{RESULT} ;
-# print $Help{SUFFIX} ;
-# print $Help{RUNS} ;
-# print $Help{SILENT} ;
-# print $Help{TEX} ;
-# print $Help{VERBOSE} ;
-# print $Help{ALONE} ;
-# print $Help{TEXUTIL} ;
-# print $Help{SETFILE} ;
-# print "\n" ;
-# print $Help{HELP} ;
-# print "\n" }
-# exit 0 }
-
-#### new help system, written by Wybo Dekker
+SetInterfaces( "nl", "dutch", "dutch" );
+SetInterfaces( "en", "english", "english" );
+SetInterfaces( "de", "german", "german" );
+SetInterfaces( "cz", "czech", "czech" );
+SetInterfaces( "uk", "brittish", "english" );
+SetInterfaces( "it", "italian", "italian" );
+SetInterfaces( "no", "norwegian", "norwegian" );
+SetInterfaces( "ro", "romanian", "romanian" );
+SetInterfaces( "xx", "experimental", "english" );
# Sub-option
-struct Subopt =>
- { desc => '$' , # description
- vals => '%' } ; # assignable values
+struct Subopt => {
+ desc => '$', # description
+ vals => '%' # assignable values
+};
# Main option
-struct Opt =>
- { desc => '$' , # desciption
- vals => '%' , # assignable values
- subs => '%' } ; # suboptions
+struct Opt => {
+ desc => '$', # desciption
+ vals => '%', # assignable values
+ subs => '%' # suboptions
+};
+
+my $helpdone = 0;
+
+sub print_subopt {
+ my ( $k, $opt ) = @_;
+ $~ = 'H3';
+ write;
+ for $k ( sort keys %{ $opt->vals } ) {
+ print_val( $k, ${ $opt->vals }{$k} );
+ }
+ format H3 =
+@>>>>>>>>>>>>>>>>>>>>> @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+"--$k",$opt->desc
+.
+}
+
+sub print_val {
+ my ( $k, $opt ) = @_;
+ $~ = 'H2';
+ write;
+ format H2 =
+ @<<<<<<<< : @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+$k,$opt
+.
+}
+
+# read all options
+
+my $recurse = -1 ;
+my $shorthelp;
+my @help;
+my @opts = <DATA>;
+while (@opts) {
+ $_ = shift @opts;
+ last if /^--+/;
+ my ( $k, $v ) = split( /\s+/, $_, 2 ); # was \t
+ $Help{$k} = read_options($v);
+}
# read a main option plus its
# description,
@@ -909,696 +818,734 @@ struct Opt =>
# description and
# assignable values
-sub read_options
- { $recurse++ ;
+sub read_options {
+ $recurse++;
my $v = shift;
- chomp ;
- my $opt = $recurse ? Subopt->new() : Opt->new() ;
- $opt->desc($v) ;
-
- while(@opts)
- { $_ = shift @opts ;
- if (/^--+/)
- { unshift @opts, $_ if $recurse ; last }
- if ($recurse && !/^=/)
- { unshift @opts, $_ ; last }
- chomp ;
- my ($kk,$vv) = split(/\s+/,$_,2); # was \t
- $vv||='' ;
- if (/^=/)
- { $opt->vals($kk,$vv) }
- elsif (!$recurse)
- { $opt->subs($kk,read_options($vv)) } }
- $recurse-- ;
- $opt }
-
-my $helpdone = 0 ;
-
-sub print_opt
- { my ($k,$opt)=@_ ;
- if ($helpdone) { $shorthelp or print "\n" } $helpdone = 1 ; # hh
- $~ = 'H1' ;
- write ;
- return if $shorthelp<0 ;
- for $k (sort keys %{$opt->vals}) {print_val($k,${$opt->vals}{$k}) }
- return if $shorthelp>0 ;
- for $k (sort keys %{$opt->subs}) {print_subopt($k,${$opt->subs}{$k}) }
-format H1 =
-@>>>>>>>>>>>>>>>>>>>>> @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-"--$k",$opt->desc
-.
- }
-
-sub print_subopt
- { my ($k,$opt) = @_ ;
- $~ = 'H3' ;
- write ;
- for $k (sort keys %{$opt->vals})
- {print_val($k,${$opt->vals}{$k}) }
-format H3 =
+ chomp;
+ my $opt = $recurse ? Subopt->new() : Opt->new();
+ $opt->desc($v);
+
+ while (@opts) {
+ $_ = shift @opts;
+ if (/^--+/) { unshift @opts, $_ if $recurse; last }
+ if ( $recurse && !/^=/ ) { unshift @opts, $_; last }
+ chomp;
+ my ( $kk, $vv ) = split( /\s+/, $_, 2 ); # was \t
+ $vv ||= '';
+ if (/^=/) { $opt->vals( $kk, $vv ) }
+ elsif ( !$recurse ) { $opt->subs( $kk, read_options($vv) ) }
+ }
+ $recurse--;
+ $opt;
+}
+
+sub print_opt {
+ my ( $k, $opt ) = @_;
+ if ($helpdone) { $shorthelp or print "\n" }
+ $helpdone = 1; # hh
+ $~ = 'H1';
+ write;
+ return if $shorthelp < 0;
+ for $k ( sort keys %{ $opt->vals } ) {
+ print_val( $k, ${ $opt->vals }{$k} );
+ }
+ return if $shorthelp > 0;
+
+ for $k ( sort keys %{ $opt->subs } ) {
+ print_subopt( $k, ${ $opt->subs }{$k} );
+ }
+ format H1 =
@>>>>>>>>>>>>>>>>>>>>> @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
"--$k",$opt->desc
.
- }
-
-sub print_val
- { my ($k,$opt) = @_ ;
- $~ = 'H2' ; write ;
-format H2 =
- @<<<<<<<< : @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-$k,$opt
-.
- }
-
-# read all options
-
-$recurse-- ;
-@opts = <DATA> ;
-while(@opts)
- { $_ = shift @opts ;
- last if /^--+/ ;
- my ($k,$v) = split(/\s+/,$_,2); # was \t
- $Help{$k} = read_options($v) }
+}
# help to help
-sub show_help_options
- { print # "\n" .
- " --help overview of all options and their values\n" .
- " --help all all about all options\n" .
- " --help short just the main options\n" .
- " --help mode ... pdf all about a few options\n" .
- " --help '*.pdf' all about options containing 'pdf'\n" } ;
+sub show_help_options {
+ print # "\n" .
+ " --help overview of all options and their values\n"
+ . " --help all all about all options\n"
+ . " --help short just the main options\n"
+ . " --help mode ... pdf all about a few options\n"
+ . " --help '*.pdf' all about options containing 'pdf'\n";
+}
# determine what user wants to see
-if ($HelpAsked)
- { $shorthelp = 0 ;
- @help = (sort keys %Help) ;
- if ("@ARGV" eq "all")
- { # everything
- }
- elsif ("@ARGV" eq "short")
- { # nearly everything
- $shorthelp-- }
- elsif ("@ARGV" eq "help")
- { # help on help
- show_help_options ;
- exit }
- elsif (@ARGV)
- { # one or a few options, completely
- my @h=@ARGV ;
- @help = () ;
- for (@h)
- { # print "testing $_\n";
- # next if (/^[\*\?]/) ; # HH, else error
- if (/^[\*\?]/) { $_ = ".$_" } # HH, else error
- $Help{$_} and push(@help,$_) or do
- { my $unknown = $_ ;
- for (keys %Help)
- { /$unknown/ and push(@help,$_) } } } }
- else
- { # all main option and their assignable values
- $shorthelp++ } }
-
-sub show_help_info
- { map { print_opt($_,$Help{$_}) } @help }
+if ($HelpAsked) {
+ $shorthelp = 0;
+ @help = ( sort keys %Help );
+ if ( "@ARGV" eq "all" ) { # everything
+ } elsif ( "@ARGV" eq "short" ) { # nearly everything
+ $shorthelp--;
+ } elsif ( "@ARGV" eq "help" ) { # help on help
+ show_help_options;
+ exit;
+ } elsif (@ARGV) { # one or a few options, completely
+ my @h = @ARGV;
+ @help = ();
+ for (@h) { # print "testing $_\n";
+ # next if (/^[\*\?]/) ; # HH, else error
+ if (/^[\*\?]/) { $_ = ".$_" } # HH, else error
+ $Help{$_} and push( @help, $_ ) or do {
+ my $unknown = $_;
+ for ( keys %Help ) { /$unknown/ and push( @help, $_ ) }
+ }
+ }
+ } else { # all main option and their assignable values
+ $shorthelp++;
+ }
+}
+
+sub show_help_info {
+ map { print_opt( $_, $Help{$_} ) } @help;
+}
# uncomment this to see the structure of a Help element:
# print Dumper($Help{pdfselect});
#### end of help system
-my $FinalRunNeeded = 0 ;
-
-sub MPJobName
- { my $JobName = shift ;
- my $MPfile = shift ;
- my $MPJobName = '' ;
- if (-s "$JobName-$MPfile.mp">100)
- { $MPJobName = "$JobName-$MPfile.mp" }
- elsif (-s "$MPfile.mp">100)
- { $MPJobName = "$MPfile.mp" }
- else
- { $MPJobName = "" }
- return $MPJobName }
-
-sub RunPerlScript
- { my ($ScriptName, $Options) = @_ ;
- my $cmd = '' ;
- if ($dosish)
- { if (-e "own_path$ScriptName$own_type")
- { $cmd = "$own_stub$own_quote$own_path$ScriptName$own_type$own_quote $Options" }
- elsif (-e "$TeXScriptsPath$ScriptName$own_type")
- { $cmd = "$own_stub$own_quote$TeXScriptsPath$ScriptName$own_type$own_quote $Options" }
- else
- { $cmd = "" } }
- else
- { $cmd = "$ScriptName $Options" }
- unless ($cmd eq "") { system($cmd) } }
-
-sub ConvertXMLFile
- { my $FileName = shift ; RunPerlScript($SGMLtoTeX, "$FileName.xml") }
-
-sub ConvertSGMLFile
- { my $FileName = shift ; RunPerlScript($SGMLtoTeX, "$FileName.sgm") }
-
-my $FullFormat = '' ;
-
-sub CheckOutputFormat
- { my $Ok = 1 ;
- if ($OutputFormat ne 'standard')
- { my @OutputFormat = split(/,/,$OutputFormat) ;
- foreach my $F (@OutputFormat)
- { if (defined($OutputFormats{lc $F}))
- { my $OF = $OutputFormats{lc $F} ;
- next if (",$FullFormat," =~ /\,$OF\,/) ;
+my $FinalRunNeeded = 0;
+
+sub MPJobName {
+ my $JobName = shift;
+ my $MPfile = shift;
+ my $MPJobName = '';
+ if ( -e "$JobName-$MPfile.mp" && -s "$JobName-$MPfile.mp" > 100 ) {
+ $MPJobName = "$JobName-$MPfile.mp"
+ } elsif ( -e "$MPfile.mp" && -s "$MPfile.mp" > 100 ) {
+ $MPJobName = "$MPfile.mp"
+ } else { $MPJobName = "" }
+ return $MPJobName;
+}
+
+sub RunPerlScript {
+ my ( $ScriptName, $Options ) = @_;
+ my $cmd = '';
+ $own_quote = ($own_path =~ m/^[^\"].* / ? "\"" : "") ;
+ if ($dosish) {
+ if ( -e "own_path$ScriptName$own_type" ) {
+ $cmd =
+"$own_stub$own_quote$own_path$ScriptName$own_type$own_quote $Options";
+ } elsif ( -e "$TeXScriptsPath$ScriptName$own_type" ) {
+ $cmd =
+"$own_stub$own_quote$TeXScriptsPath$ScriptName$own_type$own_quote $Options";
+ } else {
+ $cmd = "";
+ }
+ } else {
+ $cmd = "$ScriptName $Options";
+ }
+ unless ( $cmd eq "" ) { system($cmd) }
+}
+
+sub ConvertXMLFile {
+ my $FileName = shift;
+ RunPerlScript( $SGMLtoTeX, "$FileName.xml" );
+}
+
+sub ConvertSGMLFile {
+ my $FileName = shift;
+ RunPerlScript( $SGMLtoTeX, "$FileName.sgm" );
+}
+
+my $FullFormat = '';
+
+sub CheckOutputFormat {
+ my $Ok = 1;
+ if ( $OutputFormat ne 'standard' ) {
+ my @OutputFormat = split( /,/, $OutputFormat );
+ foreach my $F (@OutputFormat) {
+ if ( defined( $OutputFormats{ lc $F } ) ) {
+ my $OF = $OutputFormats{ lc $F };
+ next if ( ",$FullFormat," =~ /\,$OF\,/ );
if ($FullFormat) { $FullFormat .= "," }
- $FullFormat .= "$OutputFormats{lc $F}" }
- else
- { $Ok = 0 } }
- if (!$Ok)
- { print $Help{output} }
- elsif ($FullFormat)
- { print OPT "\\setupoutput[$FullFormat]\n" } }
- unless ($FullFormat)
- { $FullFormat = $OutputFormat } } # 'standard' to terminal
-
-sub MakeOptionFile
- { my ($FinalRun, $FastDisabled, $JobName, $JobSuffix, $KindOfRun) = @_ ;
- open (OPT, ">$JobName.top") ;
- print OPT "\% $JobName.top\n" ;
- print OPT "\\unprotect\n" ;
- if ($ModeFile ne '')
- { print OPT "\\readlocfile{$ModeFile}{}{}" }
- if ($Result ne '')
- { print OPT "\\setupsystem[file=$Result]\n" }
- elsif ($Suffix)
- { print OPT "\\setupsystem[file=$JobName$Suffix]\n" }
- if ($RunPath ne "")
- { $RunPath =~ s/\\/\//go ;
- $RunPath =~ s/\/$//go ;
- print OPT "\\usepath[$RunPath]\n" }
- $MainLanguage = lc $MainLanguage ;
- unless ($MainLanguage eq "standard")
- { print OPT "\\setuplanguage[$MainLanguage]\n" }
+ $FullFormat .= "$OutputFormats{lc $F}";
+ } else {
+ $Ok = 0;
+ }
+ }
+ if ( !$Ok ) {
+ print $Help{'output'};
+ } elsif ($FullFormat) {
+ print OPT "\\setupoutput[$FullFormat]\n";
+ }
+ }
+ unless ($FullFormat) { $FullFormat = $OutputFormat }
+} # 'standard' to terminal
+
+sub MakeOptionFile {
+ my ( $FinalRun, $FastDisabled, $JobName, $JobSuffix, $KindOfRun ) = @_;
+ open( OPT, ">$JobName.top" );
+ print OPT "\% $JobName.top\n";
+ print OPT "\\unprotect\n";
+ if ( $ModeFile ne '' ) { print OPT "\\readlocfile{$ModeFile}{}{}" }
+ if ( $Result ne '' ) { print OPT "\\setupsystem[file=$Result]\n" }
+ elsif ($Suffix) { print OPT "\\setupsystem[file=$JobName$Suffix]\n" }
+ if ( $RunPath ne "" ) {
+ $RunPath =~ s/\\/\//go;
+ $RunPath =~ s/\/$//go;
+ print OPT "\\usepath[$RunPath]\n";
+ }
+ $MainLanguage = lc $MainLanguage;
+ unless ( $MainLanguage eq "standard" ) {
+ print OPT "\\setuplanguage[$MainLanguage]\n";
+ }
# can best become : \use...[mik] / [web]
- if ($TeXShell =~ /MikTeX/io)
- { print OPT "\\def\\MPOSTbatchswitch \{$MpBatchFlag\}" ;
- print OPT "\\def\\MPOSTnonstopswitch \{$MpNonStopFlag\}" ;
- print OPT "\\def\\MPOSTformatswitch \{$MpPassString $MpFormatFlag\}" }
+ if ( $TeXShell =~ /MikTeX/io ) {
+ print OPT "\\def\\MPOSTbatchswitch \{$MpBatchFlag\}";
+ print OPT "\\def\\MPOSTnonstopswitch \{$MpNonStopFlag\}";
+ print OPT "\\def\\MPOSTformatswitch \{$MpPassString $MpFormatFlag\}";
+ }
#
- if ($FullFormat ne 'standard')
- { print OPT "\\setupoutput[$FullFormat]\n" }
- if ($EnterBatchMode)
- { print OPT "\\batchmode\n" }
- if ($EnterNonStopMode)
- { print OPT "\\nonstopmode\n" }
- if ($UseColor)
- { print OPT "\\setupcolors[\\c!status=\\v!start]\n" }
- if ($NoMPMode||$NoMPRun||$AutoMPRun)
- { print OPT "\\runMPgraphicsfalse\n" }
- if (($FastMode)&&(!$FastDisabled))
- { print OPT "\\fastmode\n" }
- if ($SilentMode)
- { print OPT "\\silentmode\n" }
- if ($Separation ne "")
- { print OPT "\\setupcolors[\\c!splitsen=$Separation]\n" }
- if ($SetupPath)
- { print OPT "\\setupsystem[\\c!gebied=\{$SetupPath\}]\n" }
- print OPT "\\setupsystem[\\c!n=$KindOfRun]\n" ;
- $_ = $PaperFormat ;
- #unless (($PdfArrange)||($PdfSelect)||($PdfCombine)||($PdfCopy))
- unless (($PdfSelect)||($PdfCombine)||($PdfCopy))
- { if (/.4.3/goi)
- { print OPT "\\setuppapersize[A4][A3]\n" }
- elsif (/.5.4/goi)
- { print OPT "\\setuppapersize[A5][A4]\n" }
- elsif (!/standard/)
- { s/x/\*/io ;
+ if ( $FullFormat ne 'standard' ) {
+ print OPT "\\setupoutput[$FullFormat]\n";
+ }
+ if ($EnterBatchMode) { print OPT "\\batchmode\n" }
+ if ($EnterNonStopMode) { print OPT "\\nonstopmode\n" }
+ if ($UseColor) { print OPT "\\setupcolors[\\c!status=\\v!start]\n" }
+ if ( $NoMPMode || $NoMPRun || $AutoMPRun ) {
+ print OPT "\\runMPgraphicsfalse\n";
+ }
+ if ( ($FastMode) && ( !$FastDisabled ) ) { print OPT "\\fastmode\n" }
+ if ($SilentMode) { print OPT "\\silentmode\n" }
+ if ( $Separation ne "" ) {
+ print OPT "\\setupcolors[\\c!splitsen=$Separation]\n";
+ }
+ if ($SetupPath) { print OPT "\\setupsystem[\\c!gebied=\{$SetupPath\}]\n" }
+ print OPT "\\setupsystem[\\c!n=$KindOfRun]\n";
+ $_ = $PaperFormat;
+ #unless (($PdfArrange)||($PdfSelect)||($PdfCombine)||($PdfCopy))
+ unless ( ($PdfSelect) || ($PdfCombine) || ($PdfCopy) ) {
+ if (/.4.3/goi) { print OPT "\\setuppapersize[A4][A3]\n" }
+ elsif (/.5.4/goi) { print OPT "\\setuppapersize[A5][A4]\n" }
+ elsif ( !/standard/ ) {
+ s/x/\*/io;
if (/\w+\d+/) { $_ = uc $_ }
- my ($from,$to) = split (/\*/) ;
- if ($to eq "") { $to = $from }
- print OPT "\\setuppapersize[$from][$to]\n" } }
- if (($PdfSelect||$PdfCombine||$PdfCopy||$PdfArrange)&&($Background ne ''))
- { print " background graphic : $Background\n" ;
- print OPT "\\defineoverlay[whatever][{\\externalfigure[$Background][\\c!factor=\\v!max]}]\n" ;
- print OPT "\\setupbackgrounds[\\v!pagina][\\c!achtergrond=whatever]\n" }
- if ($CenterPage)
- { print OPT "\\setuplayout[\\c!plaats=\\v!midden,\\c!markering=\\v!aan]\n" }
- if ($NoArrange)
- { print OPT "\\setuparranging[\\v!blokkeer]\n" }
- elsif ($Arrange||$PdfArrange)
- { $FinalRunNeeded = 1 ;
- if ($FinalRun)
- { if ($NoDuplex)
- {$DupStr = "" }
- else
- {$DupStr = ",\\v!dubbelzijdig" }
- if ($PrintFormat == '')
- { print OPT "\\setuparranging[\\v!normaal]\n" }
- elsif ($PrintFormat =~ /.*up/goi)
- { print OPT "\\setuparranging[2UP,\\v!geroteerd$DupStr]\n" }
- elsif ($PrintFormat =~ /.*down/goi)
- { print OPT "\\setuparranging[2DOWN,\\v!geroteerd$DupStr]\n" }
- elsif ($PrintFormat =~ /.*side/goi)
- { print OPT "\\setuparranging[2SIDE,\\v!geroteerd$DupStr]\n" }
- else
- { print OPT "\\setuparranging[$PrintFormat]\n" } }
- else
- { print OPT "\\setuparranging[\\v!blokkeer]\n" } }
- if ($Arguments)
- { print OPT "\\setupenv[$Arguments]\n" }
- if ($Input)
- { print OPT "\\setupsystem[inputfile=$Input]\n" }
- else
- { print OPT "\\setupsystem[inputfile=$JobName.$JobSuffix]\n" }
- if ($Random)
- { print OPT "\\setupsystem[\\c!willekeur=$RandomSeed]\n" }
- if ($Mode)
- { print OPT "\\enablemode[$Mode]\n" }
- if ($Pages)
- { if (lc $Pages eq "odd")
- { print OPT "\\chardef\\whichpagetoshipout=1\n" }
- elsif (lc $Pages eq "even")
- { print OPT "\\chardef\\whichpagetoshipout=2\n" }
- else
- { my @Pages = split (/\,/,$Pages) ;
- $Pages = '' ;
- foreach my $page (@Pages)
- { if ($page =~ /\:/)
- { my ($from,$to) = split (/\:/,$page) ;
- foreach (my $i=$from;$i<=$to;$i++)
- { $Pages .= $i . ',' } }
- else
- { $Pages .= $page . ',' } }
- chop $Pages ;
- print OPT "\\def\\pagestoshipout\{$Pages\}\n" } }
- print OPT "\\protect\n" ;
- if ($Filters ne "")
- { foreach my $F (split(/,/,$Filters)) { print OPT "\\useXMLfilter[$F]\n" } }
- if ($Modules ne "")
- { foreach my $M (split(/,/,$Modules)) { print OPT "\\usemodule[$M]\n" } }
- if ($Environments ne "")
- { foreach my $E (split(/,/,$Environments)) { print OPT "\\environment $E\n" } }
- close (OPT) }
-
-my $UserFileOk = 0 ;
-my @MainLanguages ;
-my $AllLanguages = '' ;
-
-sub MakeUserFile
- { $UserFileOk = 0 ;
- if ($AllPatterns)
- { open (USR, ">cont-fmt.tex") ;
- print USR "\\preloadallpatterns\n" }
- else
- { return if (($MainLanguage eq 'standard')&&
- ($MainBodyFont eq 'standard')) ;
- print " preparing user file : cont-fmt.tex\n" ;
- open (USR, ">cont-fmt.tex") ;
- print USR "\\unprotect\n" ;
- $AllLanguages = $MainLanguage ;
- if ($MainLanguage ne 'standard')
- { @MainLanguages = split (/\,/,$MainLanguage) ;
- foreach (@MainLanguages)
- { print USR "\\installlanguage[\\s!$_][\\c!status=\\v!start]\n" }
- $MainLanguage = $MainLanguages[0] ;
- print USR "\\setupcurrentlanguage[\\s!$MainLanguage]\n" }
- if ($MainBodyFont ne 'standard')
- { print USR "\\definetypescriptsynonym[cmr][$MainBodyFont]" ;
- print USR "\\definefilesynonym[font-cmr][font-$MainBodyFont]\n" }
- print USR "\\protect\n" }
- print USR "\\endinput\n" ;
- close (USR) ;
- ReportUserFile () ;
- print "\n" ;
- $UserFileOk = 1 }
-
-sub RemoveResponseFile
- { unlink "mult-def.tex" }
-
-sub MakeResponseFile
- { if ($MainResponse eq 'standard')
- { RemoveResponseFile() }
- elsif (! defined ($ResponseInterface{$MainResponse}))
- { RemoveResponseFile() }
- else
- { my $MR = $ResponseInterface{$MainResponse} ;
- print " preparing interface file : mult-def.tex\n" ;
- print " response language : $MR\n" ;
- open (DEF, ">mult-def.tex") ;
- print DEF "\\def\\currentresponses\{$MR\}\n\\endinput\n" ;
- close (DEF) } }
-
-sub RestoreUserFile
- { unlink "cont-fmt.log" ;
- rename "cont-fmt.tex", "cont-fmt.log" ;
- ReportUserFile () }
-
-sub ReportUserFile
- { return unless ($UserFileOk) ;
- print "\n" ;
- if ($MainLanguage ne 'standard')
- { print " additional patterns : $AllLanguages\n" ;
- print " default language : $MainLanguage\n" }
- if ($MainBodyFont ne 'standard')
- { print " default bodyfont : $MainBodyFont\n" } }
-
-sub CompareFiles # 2 = tuo
- { my ($File1, $File2) = @_ ;
- my $Str1 = my $Str2 = '' ;
- if ( ((-s $File1) eq (-s $File2))&&
- (open(TUO1,$File1)) &&
- (open(TUO2,$File2)) )
- { while (1)
- { $Str1 = <TUO1> ; chomp $Str1 ;
- $Str2 = <TUO2> ; chomp $Str2 ;
- if ($Str1 eq $Str2)
- { unless ($Str1) { close(TUO1) ; close(TUO2) ; return 1 } }
- else
- { close(TUO1) ; close(TUO2) ; return 0 } } }
- else
- { return 0 } }
-
-#sub CheckPositions
-# { return if ($DVIspec eq '') || ($OutputFormat eq 'pdftex') ;
-# my $JobName = shift ; my $TuoName = "$JobName.tuo" ;
-# if (open(POS,"$TuoName"))
-# { seek POS, (-s $TuoName) - 5000, 0 ;
-# while (<POS>)
-# { if (/\% *position commands *\: *(\d*) *\(unresolved\)/io)
-# { if ($1)
-# { print " dvi positions : $1 ($DVIspec ." ;
-# close (POS) ;
-# open(POS,">>$TuoName") ;
-# $ENV{uc "$DVIspec.TEXFONTSDIR"} = $TeXFontsPath ;
-# print POS "\%\n\% extracted from dvi file by $DVIspec:\n\%\n" ;
-# close(POS) ;
-# print "." ;
-# RunPerlScript ($DVIspec, "$JobName >> $TuoName") ;
-# print ".)\n" }
-# last } }
-# close (POS) } }
-
-sub CheckPositions
- { }
-
-# my @ExtraPrograms = () ;
-#
-# sub CheckExtraPrograms
-# { my $JobName = shift ; my $TuoName = "$JobName.tuo" ;
-# if (open(PRO,"$TuoName"))
-# { seek PRO, (-s $TuoName) - 5000, 0 ;
-# while (<PRO>)
-# { if (/\%\s*extra\s*program\s*\:\s*(.*)\s*$/io)
-# { push @ExtraPrograms, $1 } }
-# close (PRO) }
-# foreach my $EP (@ExtraPrograms)
-# { if ($EP =~ /(.+)\s*(.*)/o)
-# { print "\n extra program : $1\n" ;
-# system($EP) ;
-# print "\n" } } }
-
-my $ConTeXtVersion = "unknown" ;
-my $ConTeXtModes = '' ;
-
-sub ScanPreamble
- { my ($FileName) = @_ ;
- open (TEX, $FileName) ;
- while (<TEX>)
- { chomp ;
- if (/^\%.*/)
- { if (/tex=([a-z]*)/goi) { $TeXExecutable = $1 }
- if (/translat.*?=([\:\/0-9\-a-z]*)/goi) { $TeXTranslation = $1 }
- if (/program=([a-z]*)/goi) { $TeXExecutable = $1 }
- if (/output=([a-z\,\-]*)/goi) { $OutputFormat = $1 }
- if (/modes=([a-z\,\-]*)/goi) { $ConTeXtModes = $1 }
- if (/textree=([a-z\-]*)/goi) { $TeXTree = $1 }
- if (/texroot=([a-z\-]*)/goi) { $TeXRoot = $1 }
- if ($ConTeXtInterface eq "unknown")
- { if (/format=([a-z]*)/goi) { $ConTeXtInterface = $ConTeXtInterfaces{$1} }
- if (/interface=([a-z]*)/goi) { $ConTeXtInterface = $ConTeXtInterfaces{"$1"} } }
- if (/version=([a-z]*)/goi) { $ConTeXtVersion = $1 } }
- else
- { last } }
- close(TEX) }
-
-sub ScanContent
- { my ($ConTeXtInput) = @_ ;
- open (TEX, $ConTeXtInput) ;
- while (<TEX>)
- { if (/\\(starttekst|stoptekst|startonderdeel|startdocument|startoverzicht)/o)
- { $ConTeXtInterface = "nl" ; last }
- elsif (/\\(stelle|verwende|umgebung|benutze)/o)
- { $ConTeXtInterface = "de" ; last }
- elsif (/\\(stel|gebruik|omgeving)/o)
- { $ConTeXtInterface = "nl" ; last }
- elsif (/\\(use|setup|environment)/o)
- { $ConTeXtInterface = "en" ; last }
- elsif (/\\(usa|imposta|ambiente)/o)
- { $ConTeXtInterface = "it" ; last }
- elsif (/(height|width|style)=/o)
- { $ConTeXtInterface = "en" ; last }
- elsif (/(hoehe|breite|schrift)=/o)
- { $ConTeXtInterface = "de" ; last }
+ my ( $from, $to ) = split(/\*/);
+ if ( $to eq "" ) { $to = $from }
+ print OPT "\\setuppapersize[$from][$to]\n";
+ }
+ }
+ if ( ( $PdfSelect || $PdfCombine || $PdfCopy || $PdfArrange )
+ && ( $Background ne '' ) )
+ {
+ print " background graphic : $Background\n";
+ print OPT
+"\\defineoverlay[whatever][{\\externalfigure[$Background][\\c!factor=\\v!max]}]\n";
+ print OPT "\\setupbackgrounds[\\v!pagina][\\c!achtergrond=whatever]\n";
+ }
+ if ($CenterPage) {
+ print OPT
+ "\\setuplayout[\\c!plaats=\\v!midden,\\c!markering=\\v!aan]\n";
+ }
+ if ($NoArrange) { print OPT "\\setuparranging[\\v!blokkeer]\n" }
+ elsif ( $Arrange || $PdfArrange ) {
+ $FinalRunNeeded = 1;
+ if ($FinalRun) {
+ my $DupStr;
+ if ($NoDuplex) { $DupStr = "" }
+ else { $DupStr = ",\\v!dubbelzijdig" }
+ if ( $PrintFormat == '' ) {
+ print OPT "\\setuparranging[\\v!normaal]\n";
+ } elsif ( $PrintFormat =~ /.*up/goi ) {
+ print OPT "\\setuparranging[2UP,\\v!geroteerd$DupStr]\n";
+ } elsif ( $PrintFormat =~ /.*down/goi ) {
+ print OPT "\\setuparranging[2DOWN,\\v!geroteerd$DupStr]\n";
+ } elsif ( $PrintFormat =~ /.*side/goi ) {
+ print OPT "\\setuparranging[2SIDE,\\v!geroteerd$DupStr]\n";
+ } else {
+ print OPT "\\setuparranging[$PrintFormat]\n";
+ }
+ } else {
+ print OPT "\\setuparranging[\\v!blokkeer]\n";
+ }
+ }
+ if ($Arguments) { print OPT "\\setupenv[$Arguments]\n" }
+ if ($Input) { print OPT "\\setupsystem[inputfile=$Input]\n" }
+ else { print OPT "\\setupsystem[inputfile=$JobName.$JobSuffix]\n" }
+ if ($Random) { print OPT "\\setupsystem[\\c!willekeur=$RandomSeed]\n" }
+ if ($Mode) { print OPT "\\enablemode[$Mode]\n" }
+ if ($Pages) {
+ if ( lc $Pages eq "odd" ) {
+ print OPT "\\chardef\\whichpagetoshipout=1\n";
+ } elsif ( lc $Pages eq "even" ) {
+ print OPT "\\chardef\\whichpagetoshipout=2\n";
+ } else {
+ my @Pages = split( /\,/, $Pages );
+ $Pages = '';
+ foreach my $page (@Pages) {
+ if ( $page =~ /\:/ ) {
+ my ( $from, $to ) = split( /\:/, $page );
+ foreach ( my $i = $from ; $i <= $to ; $i++ ) {
+ $Pages .= $i . ',';
+ }
+ } else {
+ $Pages .= $page . ',';
+ }
+ }
+ chop $Pages;
+ print OPT "\\def\\pagestoshipout\{$Pages\}\n";
+ }
+ }
+ print OPT "\\protect\n";
+ if ( $Filters ne "" ) {
+ foreach my $F ( split( /,/, $Filters ) ) {
+ print OPT "\\useXMLfilter[$F]\n";
+ }
+ }
+ if ( $Modules ne "" ) {
+ foreach my $M ( split( /,/, $Modules ) ) {
+ print OPT "\\usemodule[$M]\n";
+ }
+ }
+ if ( $Environments ne "" ) {
+ foreach my $E ( split( /,/, $Environments ) ) {
+ print OPT "\\environment $E\n";
+ }
+ }
+ close(OPT);
+}
+
+my $UserFileOk = 0;
+my @MainLanguages;
+my $AllLanguages = '';
+
+sub MakeUserFile {
+ $UserFileOk = 0;
+ if ($AllPatterns) {
+ open( USR, ">cont-fmt.tex" );
+ print USR "\\preloadallpatterns\n";
+ } else {
+ return
+ if ( ( $MainLanguage eq 'standard' )
+ && ( $MainBodyFont eq 'standard' ) );
+ print " preparing user file : cont-fmt.tex\n";
+ open( USR, ">cont-fmt.tex" );
+ print USR "\\unprotect\n";
+ $AllLanguages = $MainLanguage;
+ if ( $MainLanguage ne 'standard' ) {
+ @MainLanguages = split( /\,/, $MainLanguage );
+ foreach (@MainLanguages) {
+ print USR "\\installlanguage[\\s!$_][\\c!status=\\v!start]\n";
+ }
+ $MainLanguage = $MainLanguages[0];
+ print USR "\\setupcurrentlanguage[\\s!$MainLanguage]\n";
+ }
+ if ( $MainBodyFont ne 'standard' ) {
+ print USR "\\definetypescriptsynonym[cmr][$MainBodyFont]";
+ print USR "\\definefilesynonym[font-cmr][font-$MainBodyFont]\n";
+ }
+ print USR "\\protect\n";
+ }
+ print USR "\\endinput\n";
+ close(USR);
+ ReportUserFile();
+ print "\n";
+ $UserFileOk = 1;
+}
+
+sub RemoveResponseFile { unlink "mult-def.tex" }
+
+sub MakeResponseFile {
+ if ( $MainResponse eq 'standard' ) { RemoveResponseFile() }
+ elsif ( !defined( $ResponseInterface{$MainResponse} ) ) {
+ RemoveResponseFile();
+ } else {
+ my $MR = $ResponseInterface{$MainResponse};
+ print " preparing interface file : mult-def.tex\n";
+ print " response language : $MR\n";
+ open( DEF, ">mult-def.tex" );
+ print DEF "\\def\\currentresponses\{$MR\}\n\\endinput\n";
+ close(DEF);
+ }
+}
+
+sub RestoreUserFile {
+ unlink "cont-fmt.log";
+ rename "cont-fmt.tex", "cont-fmt.log";
+ ReportUserFile();
+}
+
+sub ReportUserFile {
+ return unless ($UserFileOk);
+ print "\n";
+ if ( $MainLanguage ne 'standard' ) {
+ print " additional patterns : $AllLanguages\n";
+ print " default language : $MainLanguage\n";
+ }
+ if ( $MainBodyFont ne 'standard' ) {
+ print " default bodyfont : $MainBodyFont\n";
+ }
+}
+
+sub CheckPositions { }
+
+my $ConTeXtVersion = "unknown";
+my $ConTeXtModes = '';
+
+sub ScanPreamble {
+ my ($FileName) = @_;
+ open( TEX, $FileName );
+ while (<TEX>) {
+ chomp;
+ if (/^\%.*/) {
+ if (/tex=([a-z]*)/goi) { $TeXExecutable = $1 }
+ if (/translat.*?=([\:\/0-9\-a-z]*)/goi) { $TeXTranslation = $1 }
+ if (/program=([a-z]*)/goi) { $TeXExecutable = $1 }
+ if (/output=([a-z\,\-]*)/goi) { $OutputFormat = $1 }
+ if (/modes=([a-z\,\-]*)/goi) { $ConTeXtModes = $1 }
+ if (/textree=([a-z\-]*)/goi) { $TeXTree = $1 }
+ if (/texroot=([a-z\-]*)/goi) { $TeXRoot = $1 }
+ if ( $ConTeXtInterface eq "unknown" ) {
+
+ if (/format=([a-z]*)/goi) {
+ $ConTeXtInterface = $ConTeXtInterfaces{$1};
+ }
+ if (/interface=([a-z]*)/goi) {
+ $ConTeXtInterface = $ConTeXtInterfaces{"$1"};
+ }
+ }
+ if (/version=([a-z]*)/goi) { $ConTeXtVersion = $1 }
+ } else {
+ last;
+ }
+ }
+ close(TEX);
+}
+
+sub ScanContent {
+ my ($ConTeXtInput) = @_;
+ open( TEX, $ConTeXtInput );
+ while (<TEX>) {
+ if (
+/\\(starttekst|stoptekst|startonderdeel|startdocument|startoverzicht)/
+ )
+ {
+ $ConTeXtInterface = "nl";
+ last;
+ } elsif (/\\(stelle|verwende|umgebung|benutze)/) {
+ $ConTeXtInterface = "de";
+ last;
+ } elsif (/\\(stel|gebruik|omgeving)/) {
+ $ConTeXtInterface = "nl";
+ last;
+ } elsif (/\\(use|setup|environment)/) {
+ $ConTeXtInterface = "en";
+ last;
+ } elsif (/\\(usa|imposta|ambiente)/) {
+ $ConTeXtInterface = "it";
+ last;
+ } elsif (/(height|width|style)=/) {
+ $ConTeXtInterface = "en";
+ last;
+ } elsif (/(hoehe|breite|schrift)=/) {
+ $ConTeXtInterface = "de";
+ last;
+ }
# brr, can be \c!
- elsif (/(hoogte|breedte|letter)=/o)
- { $ConTeXtInterface = "nl" ; last }
- elsif (/(altezza|ampiezza|stile)=/o)
- { $ConTeXtInterface = "it" ; last }
- elsif (/externfiguur/o)
- { $ConTeXtInterface = "nl" ; last }
- elsif (/externalfigure/o)
- { $ConTeXtInterface = "en" ; last }
- elsif (/externeabbildung/o)
- { $ConTeXtInterface = "de" ; last }
- elsif (/figuraesterna/o)
- { $ConTeXtInterface = "it" ; last } }
- close (TEX) }
-
-if ($ConTeXtInterfaces{$ConTeXtInterface})
- { $ConTeXtInterface = $ConTeXtInterfaces{$ConTeXtInterface} }
-
-my $Problems = my $Ok = 0 ;
-
-sub RunTeX
- { my ($JobName,$JobSuffix) = @_ ;
- my $StartTime = time ;
- my $cmd ;
- my $TeXProgNameFlag ;
- if (!$dosish) # we assume tetex on linux
- { $TeXProgramPath = '' ;
- $TeXFormatPath = '' ;
- if (!$TeXProgNameFlag &&
- ($Format =~ /^cont/) &&
- ($TeXPassString !~ /progname/io))
- { $TeXProgNameFlag = "-progname=context" } }
- $cmd = "$own_quote$TeXProgramPath$TeXExecutable$own_quote $TeXProgNameFlag " .
- "$TeXPassString $PassOn " ;
- #$cmd .= " -kpathsea-debug=62536 " ;
- if ($EnterBatchMode)
- { $cmd .= "$TeXBatchFlag " }
- if ($EnterNonStopMode)
- { $cmd .= "$TeXNonStopFlag " }
- if ($TeXTranslation ne '')
- { $cmd .= "-translate-file=$TeXTranslation " }
- $cmd .= "$TeXFormatFlag$TeXFormatPath$Format $JobName.$JobSuffix" ;
- if ($Verbose) { print "\n$cmd\n\n" }
- if ($EnterBatchMode)
-# { $Problems = system("$cmd 1>batch.log 2>batch.err") ;
-# unlink "texexec.nul" }
- { $Problems = system("$cmd") }
- else
- { $Problems = system ("$cmd") }
- my $StopTime = time - $StartTime ;
- print "\n return code : $Problems" ;
- print "\n run time : $StopTime seconds\n" ;
- return $Problems }
-
-sub PushResult
- { my $File = shift ; $File =~ s/\..*$//o ; $Result =~ s/\..*$//o ;
- if (($Result ne '') && ($Result ne $File))
- { print " outputfile : $Result\n" ;
- unlink "texexec.tuo" ; rename "$File.tuo", "texexec.tuo" ;
- unlink "texexec.log" ; rename "$File.log", "texexec.log" ;
- unlink "texexec.dvi" ; rename "$File.dvi", "texexec.dvi" ;
- unlink "texexec.pdf" ; rename "$File.pdf", "texexec.pdf" ;
- if (-e "$Result.tuo")
- { unlink "$File.tuo" ;
- rename "$Result.tuo", "$File.tuo" } }
- if ($Optimize)
- { unlink "$File.tuo" } }
-
-sub PopResult
- { my $File = shift ; $File =~ s/\..*$//o ; $Result =~ s/\..*$//o ;
- if (($Result ne '') && ($Result ne $File))
- { print " renaming : $File to $Result\n" ;
- unlink "$Result.tuo" ; rename "$File.tuo", "$Result.tuo" ;
- unlink "$Result.log" ; rename "$File.log", "$Result.log" ;
- unlink "$Result.dvi" ; rename "$File.dvi", "$Result.dvi" ;
- if (-e "$File.dvi") { CopyFile("$File.dvi", "$Result.dvi") }
- unlink "$Result.pdf" ; rename "$File.pdf", "$Result.pdf" ;
- if (-e "$File.pdf") { CopyFile("$File.pdf", "$Result.pdf") }
- return if ($File ne "texexec") ;
- rename "texexec.tuo", "$File.tuo" ;
- rename "texexec.log", "$File.log" ;
- rename "texexec.dvi", "$File.dvi" ;
- rename "texexec.pdf", "$File.pdf" } }
-
-sub RunTeXutil
- { my $StopRunning ;
- my $JobName = shift ;
- unlink "$JobName.tup" ;
- rename "$JobName.tuo", "$JobName.tup" ;
- print " sorting and checking : running texutil\n" ;
- my $TcXSwitch = '' ;
- if ($TcXPath ne '') { $TcXSwitch = "--tcxpath=$TcXPath" }
- RunPerlScript
- ($TeXUtil, "--ref --ij --high $TcXPath $JobName" );
- if (-e "$JobName.tuo")
- { CheckPositions ($JobName) ;
- # CheckExtraPrograms($JobName) ;
- $StopRunning = CompareFiles("$JobName.tup", "$JobName.tuo") }
- else
- { $StopRunning = 1 } # otherwise potential loop
- if (!$StopRunning)
- { print "\n utility file analysis : another run needed\n" }
- return $StopRunning }
-
-sub PurgeFiles
- { my $JobName = shift ;
- print "\n purging files : $JobName\n" ;
- RunPerlScript($TeXUtil, "--purge $JobName" ) ;
- unlink($Result . '.log') if (-f $Result . '.log') }
-
-sub RunTeXMP
- { my $JobName = shift ;
- my $MPfile = shift ;
- my $MPrundone = 0 ;
- my $MPJobName = MPJobName($JobName,$MPfile) ;
- my $MPFoundJobName = "" ;
- if ($MPJobName ne "")
- { if (open(MP, "$MPJobName"))
- { $_ = <MP> ; chomp ; # we should handle the prefix as well
- if (/^\%\s+translate.*?\=([\w\d\-]+)/io)
- { $TeXTranslation = $1 }
- if (/collected graphics of job \"(.+)\"/i)
- { $MPFoundJobName = $1 }
- close(MP) ;
- if ($MPFoundJobName ne "")
- { if ($JobName =~ /$MPFoundJobName$/i)
- { if ($MpExecutable ne '')
- { print " generating graphics : metaposting $MPJobName\n" ;
- my $ForceMpy = "" ;
+ elsif (/(hoogte|breedte|letter)=/) { $ConTeXtInterface = "nl"; last }
+ elsif (/(altezza|ampiezza|stile)=/) { $ConTeXtInterface = "it"; last }
+ elsif (/externfiguur/) { $ConTeXtInterface = "nl"; last }
+ elsif (/externalfigure/) { $ConTeXtInterface = "en"; last }
+ elsif (/externeabbildung/) { $ConTeXtInterface = "de"; last }
+ elsif (/figuraesterna/) { $ConTeXtInterface = "it"; last }
+ }
+ close(TEX);
+}
+
+if ( $ConTeXtInterfaces{$ConTeXtInterface} ) {
+ $ConTeXtInterface = $ConTeXtInterfaces{$ConTeXtInterface};
+}
+
+my $Problems = my $Ok = 0;
+
+sub RunTeX {
+ my ( $JobName, $JobSuffix ) = @_;
+ my $StartTime = time;
+ my $cmd;
+ my $TeXProgNameFlag = '';
+ if ( !$dosish ) # we assume tetex on linux
+ {
+ $TeXProgramPath = '';
+ $TeXFormatPath = '';
+ if ( !$TeXProgNameFlag
+ && ( $Format =~ /^cont/ )
+ && ( $TeXPassString !~ /progname/io ) )
+ {
+ $TeXProgNameFlag = "-progname=context";
+ }
+ }
+ $own_quote = ($TeXProgramPath =~ m/^[^\"].* / ? "\"" : "") ;
+ $cmd = join( ' ',
+ "$own_quote$TeXProgramPath$TeXExecutable$own_quote",
+ $TeXProgNameFlag, $TeXPassString, $PassOn, "" );
+ if ($EnterBatchMode) { $cmd .= "$TeXBatchFlag " }
+ if ($EnterNonStopMode) { $cmd .= "$TeXNonStopFlag " }
+ if ( $TeXTranslation ne '' ) { $cmd .= "-translate-file=$TeXTranslation " }
+ $cmd .= "$TeXFormatFlag$TeXFormatPath$Format $JobName.$JobSuffix";
+ if ($Verbose) { print "\n$cmd\n\n" }
+ if ($EnterBatchMode) {
+ $Problems = system("$cmd");
+ } else {
+ $Problems = system("$cmd");
+ }
+ my $StopTime = time - $StartTime;
+ print "\n return code : $Problems";
+ print "\n run time : $StopTime seconds\n";
+ return $Problems;
+}
+
+sub PushResult {
+ my $File = shift;
+ $File =~ s/\..*$//o;
+ $Result =~ s/\..*$//o;
+ if ( ( $Result ne '' ) && ( $Result ne $File ) ) {
+ print " outputfile : $Result\n";
+ unlink "texexec.tuo";
+ rename "$File.tuo", "texexec.tuo";
+ unlink "texexec.log";
+ rename "$File.log", "texexec.log";
+ unlink "texexec.dvi";
+ rename "$File.dvi", "texexec.dvi";
+ unlink "texexec.pdf";
+ rename "$File.pdf", "texexec.pdf";
+
+ if ( -e "$Result.tuo" ) {
+ unlink "$File.tuo";
+ rename "$Result.tuo", "$File.tuo";
+ }
+ }
+ if ($Optimize) { unlink "$File.tuo" }
+}
+
+sub PopResult {
+ my $File = shift;
+ $File =~ s/\..*$//o;
+ $Result =~ s/\..*$//o;
+ if ( ( $Result ne '' ) && ( $Result ne $File ) ) {
+ print " renaming : $File to $Result\n";
+ unlink "$Result.tuo";
+ rename "$File.tuo", "$Result.tuo";
+ unlink "$Result.log";
+ rename "$File.log", "$Result.log";
+ unlink "$Result.dvi";
+ rename "$File.dvi", "$Result.dvi";
+ if ( -e "$File.dvi" ) { CopyFile( "$File.dvi", "$Result.dvi" ) }
+ unlink "$Result.pdf";
+ rename "$File.pdf", "$Result.pdf";
+ if ( -e "$File.pdf" ) { CopyFile( "$File.pdf", "$Result.pdf" ) }
+ return if ( $File ne "texexec" );
+ rename "texexec.tuo", "$File.tuo";
+ rename "texexec.log", "$File.log";
+ rename "texexec.dvi", "$File.dvi";
+ rename "texexec.pdf", "$File.pdf";
+ }
+}
+
+sub RunTeXutil {
+ my $StopRunning;
+ my $JobName = shift;
+ unlink "$JobName.tup";
+ rename "$JobName.tuo", "$JobName.tup";
+ print " sorting and checking : running texutil\n";
+ my $TcXSwitch = '';
+ if ( $TcXPath ne '' ) { $TcXSwitch = "--tcxpath=$TcXPath" }
+ RunPerlScript( $TeXUtil, "--ref --ij --high $TcXPath $JobName" );
+
+ if ( -e "$JobName.tuo" ) {
+ CheckPositions($JobName);
+ $StopRunning = !compare( "$JobName.tup", "$JobName.tuo" );
+ } else {
+ $StopRunning = 1;
+ } # otherwise potential loop
+ if ( !$StopRunning ) {
+ print "\n utility file analysis : another run needed\n";
+ }
+ return $StopRunning;
+}
+
+sub PurgeFiles {
+ my $JobName = shift;
+ print "\n purging files : $JobName\n";
+ RunPerlScript( $TeXUtil, "--purge $JobName" );
+ unlink( $Result . '.log' ) if ( -f $Result . '.log' );
+}
+
+sub RunTeXMP {
+ my $JobName = shift;
+ my $MPfile = shift;
+ my $MPrundone = 0;
+ my $MPJobName = MPJobName( $JobName, $MPfile );
+ my $MPFoundJobName = "";
+ if ( $MPJobName ne "" ) {
+ if ( open( MP, "$MPJobName" ) ) {
+ $_ = <MP>;
+ chomp; # we should handle the prefix as well
+ if (/^\%\s+translate.*?\=([\w\d\-]+)/io) { $TeXTranslation = $1 }
+ if (/collected graphics of job \"(.+)\"/i) { $MPFoundJobName = $1 }
+ close(MP);
+ if ( $MPFoundJobName ne "" ) {
+ if ( $JobName =~ /$MPFoundJobName$/i ) {
+ if ( $MpExecutable ne '' ) {
+ print
+ " generating graphics : metaposting $MPJobName\n";
+ my $ForceMpy = "";
if ($MpyForce) { $ForceMpy = "--mpyforce" }
- my $ForceTCX = '' ;
- if ($TeXTranslation ne '')
- { $ForceTCX = "--translate=$TeXTranslation " }
- if ($EnterBatchMode)
- { RunPerlScript ($TeXExec,"$ForceTCX $ForceMpy --mptex --nomp --batch $MPJobName") }
- elsif ($EnterNonStopMode)
- { RunPerlScript ($TeXExec,"$ForceTCX $ForceMpy --mptex --nomp --nonstop $MPJobName") }
- else
- { RunPerlScript ($TeXExec,"$ForceTCX $ForceMpy --mptex --nomp $MPJobName") } }
- else
- { print " generating graphics : metapost cannot be run\n" }
- $MPrundone = 1 } } } }
- return $MPrundone }
-
-sub CopyFile # agressive copy, works for open files like in gs
- { my ($From,$To) = @_ ;
- return unless open(INP,"<$From") ; binmode INP ;
- return unless open(OUT,">$To") ; binmode OUT ;
+ my $ForceTCX = '';
+ if ( $TeXTranslation ne '' ) {
+ $ForceTCX = "--translate=$TeXTranslation ";
+ }
+ if ($EnterBatchMode) {
+ RunPerlScript( $TeXExec,
+"$ForceTCX $ForceMpy --mptex --nomp --batch $MPJobName"
+ );
+ } elsif ($EnterNonStopMode) {
+ RunPerlScript( $TeXExec,
+"$ForceTCX $ForceMpy --mptex --nomp --nonstop $MPJobName"
+ );
+ } else {
+ RunPerlScript( $TeXExec,
+ "$ForceTCX $ForceMpy --mptex --nomp $MPJobName"
+ );
+ }
+ } else {
+ print
+ " generating graphics : metapost cannot be run\n";
+ }
+ $MPrundone = 1;
+ }
+ }
+ }
+ }
+ return $MPrundone;
+}
+
+sub CopyFile { # agressive copy, works for open files like in gs
+ my ( $From, $To ) = @_;
+ return unless open( INP, "<$From" );
+ binmode INP;
+ return unless open( OUT, ">$To" );
+ binmode OUT;
while (<INP>) { print OUT $_ }
- close (INP) ;
- close (OUT) }
-
-sub CheckChanges # also tub
- { my $JobName = shift ;
- my $checksum = 0 ;
- my $MPJobName = MPJobName($JobName,"mpgraph") ;
- if (open(MP, $MPJobName))
- { while (<MP>)
- { unless (/random/oi)
- { $checksum += do { unpack("%32C*",<MP>) % 65535 } } }
- close (MP) }
- $MPJobName = MPJobName($JobName,"mprun") ;
- if (open(MP, $MPJobName))
- { while (<MP>)
- { unless (/random/oi)
- { $checksum += do { unpack("%32C*",<MP>) % 65535 } } }
- close(MP) }
- return $checksum }
-
-my $DummyFile = 0 ;
-
-sub isXMLfile
- { my $Name = shift ;
- if (($ForceXML)||($name =~ /\.xml$/io))
- { return 1 }
- else
- { open(XML,$Name) ;
- my $str = <XML> ;
- close(XML) ;
- return ($str =~ /\<\?xml /io) } }
-
-sub RunConTeXtFile
- { my ($JobName, $JobSuffix) = @_ ;
- $JobName =~ s/\\/\//goi ;
- $RunPath =~ s/\\/\//goi ;
- my $OriSuffix = $JobSuffix ;
- if (-e "$JobName.$JobSuffix")
- { $DummyFile = (($ForceXML)||($JobSuffix =~ /xml/io)) }
+ close(INP);
+ close(OUT);
+}
+
+sub CheckChanges { # also tub
+ my $JobName = shift;
+ my $checksum = 0;
+ my $MPJobName = MPJobName( $JobName, "mpgraph" );
+ if ( open( MP, $MPJobName ) ) {
+ while (<MP>) {
+ unless (/random/oi) {
+ $checksum += do { unpack( "%32C*", <MP> ) % 65535 }
+ }
+ }
+ close(MP);
+ }
+ $MPJobName = MPJobName( $JobName, "mprun" );
+ if ( open( MP, $MPJobName ) ) {
+ while (<MP>) {
+ unless (/random/oi) {
+ $checksum += do { unpack( "%32C*", <MP> ) % 65535 }
+ }
+ }
+ close(MP);
+ }
+ return $checksum;
+}
+
+my $DummyFile = 0;
+
+sub isXMLfile {
+ my $Name = shift;
+ if ( ($ForceXML) || ( $Name =~ /\.xml$/io ) ) { return 1 }
+ else {
+ open( XML, $Name );
+ my $str = <XML>;
+ close(XML);
+ return ( $str =~ /\<\?xml /io );
+ }
+}
+
+sub RunConTeXtFile {
+ my ( $JobName, $JobSuffix ) = @_;
+ $JobName =~ s/\\/\//goi;
+ $RunPath =~ s/\\/\//goi;
+ my $OriSuffix = $JobSuffix;
+ if (($dosish) && ($PdfClose)) {
+ my $ok = 0 ;
+ if ($Result ne '') {
+ $ok = system("pdfclose --file $Result.pdf")
+ } else {
+ $ok = system("pdfclose --file $JobName.pdf")
+ }
+ unless ($ok) {
+ system("pdfclose --all")
+ }
+ }
+ if ( -e "$JobName.$JobSuffix" ) {
+ $DummyFile = ( ($ForceXML) || ( $JobSuffix =~ /xml/io ) );
+ }
# to be considered :
# { $DummyFile = isXMLfile("$JobName.$JobSuffix") }
- elsif ($RunPath ne "")
- { my @RunPaths = split(/,/,$RunPath) ;
- foreach my $rp (@RunPaths)
- { if (-e "$rp/$JobName.$JobSuffix")
- { $DummyFile = 1 ; last } } }
- if ($DummyFile)
- { open (TMP,">$JobName.run") ;
- if (($JobSuffix =~ /xml/io)||$ForceXML)
- { if ($Filters ne "")
- { print " using xml filters : $Filters\n" }
- print TMP "\\starttext\n" ;
- print TMP "\\processXMLfilegrouped{$JobName.$JobSuffix}\n" ;
- print TMP "\\stoptext\n" }
- else
- { print TMP "\\starttext\n" ;
- print TMP "\\processfile{$JobName.$JobSuffix}\n" ;
- print TMP "\\stoptext\n" }
- close (TMP) ;
- $JobSuffix = "run" }
- if ((-e "$JobName.$JobSuffix")||($GlobalFile))
- { unless ($Dummy) # we don't need this for xml
- { ScanPreamble ("$JobName.$JobSuffix") ;
- if ($ConTeXtInterface eq "unknown")
- { ScanContent ("$JobName.$JobSuffix") } }
- if ($ConTeXtInterface eq "unknown")
- { $ConTeXtInterface = $UserInterface }
- if ($ConTeXtInterface eq "unknown")
- { $ConTeXtInterface = "en" }
- if ($ConTeXtInterface eq "")
- { $ConTeXtInterface = "en" }
- CheckOutputFormat ;
- my $StopRunning = 0 ;
- my $MPrundone = 0 ;
- if ($Format eq '')
- { $Format = "cont-$ConTeXtInterface" }
- print " executable : $TeXProgramPath$TeXExecutable\n" ;
- print " format : $TeXFormatPath$Format\n" ;
- if ($RunPath)
- { print " source path : $RunPath\n" }
- if ($DummyFile)
- { print " dummy file : $JobName.$JobSuffix\n" }
- print " inputfile : $JobName\n" ;
- print " output : $FullFormat\n" ;
- print " interface : $ConTeXtInterface\n" ;
- if ($TeXTranslation ne '')
- { print " translation : $TeXTranslation\n" }
- my $Options = '' ;
+ elsif ( $RunPath ne "" ) {
+ my @RunPaths = split( /,/, $RunPath );
+ foreach my $rp (@RunPaths) {
+ if ( -e "$rp/$JobName.$JobSuffix" ) { $DummyFile = 1; last }
+ }
+ }
+ if ($DummyFile) {
+ open( TMP, ">$JobName.run" );
+ if ( ( $JobSuffix =~ /xml/io ) || $ForceXML ) {
+ if ( $Filters ne "" ) {
+ print " using xml filters : $Filters\n";
+ }
+ print TMP "\\starttext\n";
+ print TMP "\\processXMLfilegrouped{$JobName.$JobSuffix}\n";
+ print TMP "\\stoptext\n";
+ } else {
+ print TMP "\\starttext\n";
+ print TMP "\\processfile{$JobName.$JobSuffix}\n";
+ print TMP "\\stoptext\n";
+ }
+ close(TMP);
+ $JobSuffix = "run";
+ }
+ if ( ( -e "$JobName.$JobSuffix" ) || ($GlobalFile) ) {
+ unless ($DummyFile) # we don't need this for xml
+ {
+ ScanPreamble("$JobName.$JobSuffix");
+ if ( $ConTeXtInterface eq "unknown" ) {
+ ScanContent("$JobName.$JobSuffix");
+ }
+ }
+ if ( $ConTeXtInterface eq "unknown" ) {
+ $ConTeXtInterface = $UserInterface;
+ }
+ if ( $ConTeXtInterface eq "unknown" ) { $ConTeXtInterface = "en" }
+ if ( $ConTeXtInterface eq "" ) { $ConTeXtInterface = "en" }
+ CheckOutputFormat;
+ my $StopRunning = 0;
+ my $MPrundone = 0;
+ if ( $Format eq '' ) { $Format = "cont-$ConTeXtInterface" }
+ print " executable : $TeXProgramPath$TeXExecutable\n";
+ print " format : $TeXFormatPath$Format\n";
+ if ($RunPath) { print " source path : $RunPath\n" }
+
+ if ($DummyFile) {
+ print " dummy file : $JobName.$JobSuffix\n";
+ }
+ print " inputfile : $JobName\n";
+ print " output : $FullFormat\n";
+ print " interface : $ConTeXtInterface\n";
+ if ( $TeXTranslation ne '' ) {
+ print " translation : $TeXTranslation\n";
+ }
+ my $Options = '';
if ($Random) { $Options .= " random" }
if ($FastMode) { $Options .= " fast" }
if ($FinalMode) { $Options .= " final" }
@@ -1615,734 +1562,790 @@ sub RunConTeXtFile
if ($CenterPage) { $Options .= " center" }
if ($Arrange) { $Options .= " arrange" }
if ($NoArrange) { $Options .= " no-arrange" }
- if ($Options)
- { print " options :$Options\n" }
- if ($ConTeXtModes)
- { print " possible modes : $ConTeXtModes\n" }
- if ($Mode)
- { print " current mode : $Mode\n" }
- else
- { print " current mode : none\n" }
- if ($Arguments)
- { print " arguments : $Arguments\n" }
- if ($Modules)
- { print " modules : $Modules\n" }
- if ($Environments)
- { print " environments : $Environments\n" }
- if ($Suffix)
- { $Result = "$JobName$Suffix" }
- PushResult($JobName) ;
- $Problems = 0 ;
- my $TeXRuns = 0 ;
- if (($PdfArrange)||($PdfSelect)||($RunOnce))
- { MakeOptionFile (1, 1, $JobName, $OriSuffix, 3) ;
- print "\n" ;
- $Problems = RunTeX($JobName, $JobSuffix) ;
- if ($ForceTeXutil)
- { $Ok = RunTeXutil ($JobName) }
- CopyFile("$JobName.top","$JobName.tmp") ;
- unlink "$JobName.top" ; # runtime option file
- PopResult($JobName) }
- else
- { while (!$StopRunning&&($TeXRuns<$NOfRuns)&&(!$Problems))
- { ++$TeXRuns ;
- if ($TeXRuns==1)
- { MakeOptionFile (0, 0, $JobName, $OriSuffix, 1) }
- else
- { MakeOptionFile (0, 0, $JobName, $OriSuffix, 2) }
- print " TeX run : $TeXRuns\n\n" ;
- my $mpchecksumbefore = $mpchecksumafter = 0 ;
- if ($AutoMPRun) { $mpchecksumbefore = CheckChanges($JobName) }
- $Problems = RunTeX($JobName,$JobSuffix) ;
- if ($AutoMPRun) { $mpchecksumafter = CheckChanges($JobName) }
- if ((!$Problems)&&($NOfRuns>1))
- { if (!$NoMPMode)
- { $MPrundone = RunTeXMP ($JobName, "mpgraph") ;
- $MPrundone = RunTeXMP ($JobName, "mprun") }
- $StopRunning = RunTeXutil ($JobName) ;
- if ($AutoMPRun)
- { $StopRunning = ($StopRunning &&
- ($mpchecksumafter==$mpchecksumbefore)) }
- } }
- if (($NOfRuns==1)&&$ForceTeXutil)
- { $Ok = RunTeXutil ($JobName) }
- if ((!$Problems)&&(($FinalMode||$FinalRunNeeded))&&($NOfRuns>1))
- { MakeOptionFile (1, $FinalMode, $JobName, $OriSuffix, 4) ;
- print " final TeX run : $TeXRuns\n\n" ;
- $Problems = RunTeX($JobName, $JobSuffix) }
- CopyFile("$JobName.top","$JobName.tmp") ;
- unlink "$JobName.tup" ; # previous tuo file
- unlink "$JobName.top" ; # runtime option file
- PopResult($JobName) }
- if ($Purge)
- { PurgeFiles($JobName) }
- if ($DummyFile) # $JobSuffix == run
- { unlink "$JobName.$JobSuffix" } } }
-
-sub RunSomeTeXFile
- { my ($JobName, $JobSuffix) = @_ ;
- if (-e "$JobName.$JobSuffix")
- { PushResult($JobName) ;
- print " executable : $TeXProgramPath$TeXExecutable\n" ;
- print " format : $TeXFormatPath$Format\n" ;
- print " inputfile : $JobName.$JobSuffix\n" ;
- $Problems = RunTeX($JobName,$JobSuffix) ;
- PopResult($JobName) } }
-
-my $ModuleFile = "texexec" ;
-my $ListingFile = "texexec" ;
-my $FiguresFile = "texexec" ;
-my $ArrangeFile = "texexec" ;
-my $SelectFile = "texexec" ;
-my $CopyFile = "texexec" ;
-my $CombineFile = "texexec" ;
-
-sub RunModule
- { my @FileNames = sort @_ ;
- unless (-e $FileNames[0])
- { my $Name = $FileNames[0] ;
- @FileNames = ("$Name.tex", "$Name.mp", "$Name.pl", "$Name.pm") }
- foreach $FileName (@FileNames)
- { next unless -e $FileName ;
- my ($Name, $Suffix) = split (/\./,$FileName) ;
- next unless $Suffix =~ /(tex|mp|pl|pm)/io ;
- DoRunModule($Name, $Suffix) } }
+ if ($Options) { print " options :$Options\n" }
+ if ($ConTeXtModes) { print " possible modes : $ConTeXtModes\n" }
+ if ($Mode) { print " current mode : $Mode\n" }
+ else { print " current mode : none\n" }
+ if ($Arguments) { print " arguments : $Arguments\n" }
+ if ($Modules) { print " modules : $Modules\n" }
+ if ($Environments) { print " environments : $Environments\n" }
+ if ($Suffix) { $Result = "$JobName$Suffix" }
+ PushResult($JobName);
+ $Problems = 0;
+ my $TeXRuns = 0;
+
+ if ( ($PdfArrange) || ($PdfSelect) || ($RunOnce) ) {
+ MakeOptionFile( 1, 1, $JobName, $OriSuffix, 3 );
+ print "\n";
+ $Problems = RunTeX( $JobName, $JobSuffix );
+ if ($ForceTeXutil) { $Ok = RunTeXutil($JobName) }
+ CopyFile( "$JobName.top", "$JobName.tmp" );
+ unlink "$JobName.top"; # runtime option file
+ PopResult($JobName);
+ } else {
+ while ( !$StopRunning && ( $TeXRuns < $NOfRuns ) && ( !$Problems ) )
+ {
+ ++$TeXRuns;
+ if ( $TeXRuns == 1 ) {
+ MakeOptionFile( 0, 0, $JobName, $OriSuffix, 1 );
+ } else {
+ MakeOptionFile( 0, 0, $JobName, $OriSuffix, 2 );
+ }
+ print " TeX run : $TeXRuns\n\n";
+ my ( $mpchecksumbefore, $mpchecksumafter ) = ( 0, 0 );
+ if ($AutoMPRun) { $mpchecksumbefore = CheckChanges($JobName) }
+ $Problems = RunTeX( $JobName, $JobSuffix );
+ if ($AutoMPRun) { $mpchecksumafter = CheckChanges($JobName) }
+ if ( ( !$Problems ) && ( $NOfRuns > 1 ) ) {
+ if ( !$NoMPMode ) {
+ $MPrundone = RunTeXMP( $JobName, "mpgraph" );
+ $MPrundone = RunTeXMP( $JobName, "mprun" );
+ }
+ $StopRunning = RunTeXutil($JobName);
+ if ($AutoMPRun) {
+ $StopRunning =
+ ( $StopRunning
+ && ( $mpchecksumafter == $mpchecksumbefore ) );
+ }
+ }
+ }
+ if ( ( $NOfRuns == 1 ) && $ForceTeXutil ) {
+ $Ok = RunTeXutil($JobName);
+ }
+ if ( ( !$Problems )
+ && ( ( $FinalMode || $FinalRunNeeded ) )
+ && ( $NOfRuns > 1 ) )
+ {
+ MakeOptionFile( 1, $FinalMode, $JobName, $OriSuffix, 4 );
+ print " final TeX run : $TeXRuns\n\n";
+ $Problems = RunTeX( $JobName, $JobSuffix );
+ }
+ CopyFile( "$JobName.top", "$JobName.tmp" );
+ unlink "$JobName.tup"; # previous tuo file
+ unlink "$JobName.top"; # runtime option file
+ PopResult($JobName);
+ }
+ if ($Purge) { PurgeFiles($JobName) }
+ if ($DummyFile) # $JobSuffix == run
+ {
+ unlink "$JobName.$JobSuffix";
+ }
+ if (($dosish) && (!$Problems) && ($PdfOpen)) {
+ if ($Result ne '') {
+ system("pdfopen --file $Result.pdf")
+ } else {
+ system("pdfopen --file $JobName.pdf")
+ }
+ }
+ }
+}
+
+sub RunSomeTeXFile {
+ my ( $JobName, $JobSuffix ) = @_;
+ if ( -e "$JobName.$JobSuffix" ) {
+ PushResult($JobName);
+ print " executable : $TeXProgramPath$TeXExecutable\n";
+ print " format : $TeXFormatPath$Format\n";
+ print " inputfile : $JobName.$JobSuffix\n";
+ $Problems = RunTeX( $JobName, $JobSuffix );
+ PopResult($JobName);
+ }
+}
+
+my $ModuleFile = "texexec";
+my $ListingFile = "texexec";
+my $FiguresFile = "texexec";
+my $ArrangeFile = "texexec";
+my $SelectFile = "texexec";
+my $CopyFile = "texexec";
+my $CombineFile = "texexec";
+
+sub RunModule {
+ my @FileNames = sort @_;
+ unless ( -e $FileNames[0] ) {
+ my $Name = $FileNames[0];
+ @FileNames = ( "$Name.tex", "$Name.mp", "$Name.pl", "$Name.pm" );
+ }
+ foreach my $FileName (@FileNames) {
+ next unless -e $FileName;
+ my ( $Name, $Suffix ) = split( /\./, $FileName );
+ next unless $Suffix =~ /(tex|mp|pl|pm)/io;
+ DoRunModule( $Name, $Suffix );
+ }
+}
# the next one can be more efficient: directly process ted
# file a la --use=abr-01,mod-01
-sub DoRunModule
- { my ($FileName,$FileSuffix) = @_ ;
- RunPerlScript ($TeXUtil, "--documents $FileName.$FileSuffix" ) ;
- print " module : $FileName\n\n" ;
- open (MOD, ">$ModuleFile.tex") ;
+sub DoRunModule {
+ my ( $FileName, $FileSuffix ) = @_;
+ RunPerlScript( $TeXUtil, "--documents $FileName.$FileSuffix" );
+ print " module : $FileName\n\n";
+ open( MOD, ">$ModuleFile.tex" );
# we need to signal to texexec what interface to use
- open(TED, "$FileName.ted") ; my $firstline = <TED> ; close (TED) ;
- if ($firstline =~ /interface=en/)
- { print MOD $firstline }
- else
- { print MOD "% interface=nl\n" }
+ open( TED, "$FileName.ted" );
+ my $firstline = <TED>;
+ close(TED);
+ if ( $firstline =~ /interface=en/ ) { print MOD $firstline }
+ else { print MOD "% interface=nl\n" }
# so far
- print MOD "\\usemodule[abr-01,mod-01]\n" ;
- print MOD "\\def\\ModuleNumber{1}\n" ;
- print MOD "\\starttekst\n" ;
- print MOD "\\readlocfile{$FileName.ted}{}{}\n" ;
- print MOD "\\stoptekst\n" ;
- close (MOD) ;
- RunConTeXtFile($ModuleFile, "tex") ;
- if ($FileName ne $ModuleFile)
- { foreach my $FileSuffix ("dvi", "pdf", "tui", "tuo", "log")
- { unlink ("$FileName.$FileSuffix") ;
- rename ("$ModuleFile.$FileSuffix", "$FileName.$FileSuffix") } }
- unlink ("$ModuleFile.tex") }
-
-sub RunFigures
- { my @Files = @_ ;
- $TypesetFigures = lc $TypesetFigures ;
- return unless ($TypesetFigures =~ /[abcd]/o) ;
- unlink "$FiguresFile.pdf" ;
- if (@Files) { RunPerlScript ($TeXUtil, "--figures @Files" ) }
- open (FIG, ">$FiguresFile.tex") ;
- print FIG "% format=english\n" ;
- print FIG "\\setuplayout\n" ;
- print FIG " [topspace=1.5cm,backspace=1.5cm,\n" ;
- print FIG " header=1.5cm,footer=0pt,\n" ;
- print FIG " width=middle,height=middle]\n" ;
- if ($ForceFullScreen)
- { print FIG "\\setupinteraction\n" ;
- print FIG " [state=start]\n" ;
- print FIG "\\setupinteractionscreen\n" ;
- print FIG " [option=max]\n" }
- print FIG "\\starttext\n" ;
- print FIG "\\showexternalfigures[alternative=$TypesetFigures,offset=$PaperOffset]\n" ;
- print FIG "\\stoptext\n" ;
- close(FIG) ;
- $ConTeXtInterface = "en" ;
- RunConTeXtFile($FiguresFile, "tex") ;
- unlink ('texutil.tuf') if (-f 'texutil.tuf') }
-
-# sub RunGetXMLFigures
-# { return if (($Label eq "") or ($Base eq "") ;
-# unlink "$FiguresFile.pdf" ;
-# open (FIG, ">$FiguresFile.tex") ;
-# print FIG "% format=english\n" ;
-# print FIG "\\starttext\n" ;
-# print FIG "\\usefigurebase[$Base]\n" ;
-# print FIG "\\pagefigure[$Label]\n" ;
-# print FIG "\\stoptext\n" ;
-# close(FIG) ;
-# $ConTeXtInterface = "en" ;
-# RunConTeXtFile($FiguresFile, "tex") }
-
-sub CleanTeXFileName
- { my $str = shift ;
- $str =~ s/([\$\_\#])/\\$1/go ;
- $str =~ s/([\~])/\\string$1/go ;
- return $str }
-
-sub RunListing
- { my $FileName = my $CleanFileName = shift ;
- my @FileNames = glob $FileName ;
- return unless -f $FileNames[0] ;
- print " input file : $FileName\n" ;
- if ($BackSpace eq "0pt")
- { $BackSpace="1.5cm" }
- else
- { print " backspace : $BackSpace\n" }
- if ($TopSpace eq "0pt")
- { $TopSpace="1.5cm" }
- else
- { print " topspace : $TopSpace\n" }
- open (LIS, ">$ListingFile.tex") ;
- print LIS "% format=english\n" ;
- print LIS "\\setupbodyfont[11pt,tt]\n" ;
- print LIS "\\setuplayout\n" ;
- print LIS " [topspace=$TopSpace,backspace=$BackSpace,\n" ;
- print LIS " header=0cm,footer=1.5cm,\n" ;
- print LIS " width=middle,height=middle]\n" ;
- print LIS "\\setuptyping[lines=yes]\n" ;
- if ($Pretty)
- { print LIS "\\setuptyping[option=color]\n" }
- print LIS "\\starttext\n" ;
- foreach $FileName (@FileNames)
- { $CleanFileName = lc CleanTeXFileName($FileName) ;
- print LIS "\\page\n" ;
- print LIS "\\setupfootertexts[$CleanFileName][pagenumber]\n" ;
- print LIS "\\typefile\{$FileName\}\n" }
- print LIS "\\stoptext\n" ;
- close(LIS) ;
- $ConTeXtInterface = "en" ;
- RunConTeXtFile($ListingFile, "tex") }
-
-# sub DetermineNOfPdfPages
-# { my $FileName = shift ;
-# my $NOfPages = 0 ;
-# if (($FileName =~ /\.pdf$/io)&&(open(PDF,$FileName)))
-# { binmode PDF ;
-# my $PagesFound = 0 ;
-# while (<PDF>)
-# { if (/\/Type \/Pages/o)
-# { $PagesFound = 1 }
-# if ($PagesFound)
-# { if (/\/Count\s*(\d*)/o)
-# { if ($1>$NOfPages) { $NOfPages = $1 } }
-# elsif (/endobj/o)
-# { $PagesFound = 0 } } }
-# close ( PDF ) }
-# return $NOfPages }
-
-sub RunArrange
- { my @files = @_ ;
- print " backspace : $BackSpace\n" ;
- print " topspace : $TopSpace\n" ;
- print " paperoffset : $PaperOffset\n" ;
- if ($AddEmpty eq '')
- { print " empty pages added : none\n" }
- else
- { print " empty pages added : $AddEmpty\n" }
- if ($TextWidth eq '0pt')
- { print " textwidth : unknown\n" }
- else
- { print " textwidth : $TextWidth\n" }
- open (ARR, ">$ArrangeFile.tex") ;
- print ARR "% format=english\n" ;
-# if ($PaperFormat ne 'standard')
-# { print " paperformat : $PaperFormat\n" ;
-# print ARR "\\setuppapersize[$PaperFormat][$PaperFormat]\n" }
- print ARR "\\definepapersize\n" ;
+ print MOD "\\usemodule[abr-01,mod-01]\n";
+ print MOD "\\def\\ModuleNumber{1}\n";
+ print MOD "\\starttekst\n";
+ print MOD "\\readlocfile{$FileName.ted}{}{}\n";
+ print MOD "\\stoptekst\n";
+ close(MOD);
+ RunConTeXtFile( $ModuleFile, "tex" );
+
+ if ( $FileName ne $ModuleFile ) {
+ foreach my $FileSuffix ( "dvi", "pdf", "tui", "tuo", "log" ) {
+ unlink("$FileName.$FileSuffix");
+ rename( "$ModuleFile.$FileSuffix", "$FileName.$FileSuffix" );
+ }
+ }
+ unlink("$ModuleFile.tex");
+}
+
+sub RunFigures {
+ my @Files = @_;
+ $TypesetFigures = lc $TypesetFigures;
+ return unless ( $TypesetFigures =~ /[abcd]/o );
+ unlink "$FiguresFile.pdf";
+ if (@Files) { RunPerlScript( $TeXUtil, "--figures @Files" ) }
+ open( FIG, ">$FiguresFile.tex" );
+ print FIG "% format=english\n";
+ print FIG "\\setuplayout\n";
+ print FIG " [topspace=1.5cm,backspace=1.5cm,\n";
+ print FIG " header=1.5cm,footer=0pt,\n";
+ print FIG " width=middle,height=middle]\n";
+
+ if ($ForceFullScreen) {
+ print FIG "\\setupinteraction\n";
+ print FIG " [state=start]\n";
+ print FIG "\\setupinteractionscreen\n";
+ print FIG " [option=max]\n";
+ }
+ print FIG "\\starttext\n";
+ print FIG
+"\\showexternalfigures[alternative=$TypesetFigures,offset=$PaperOffset]\n";
+ print FIG "\\stoptext\n";
+ close(FIG);
+ $ConTeXtInterface = "en";
+ RunConTeXtFile( $FiguresFile, "tex" );
+ unlink('texutil.tuf') if ( -f 'texutil.tuf' );
+}
+
+sub CleanTeXFileName {
+ my $str = shift;
+ $str =~ s/([\$\_\#])/\\$1/go;
+ $str =~ s/([\~])/\\string$1/go;
+ return $str;
+}
+
+sub RunListing {
+ my $FileName = my $CleanFileName = shift;
+ my @FileNames = glob $FileName;
+ return unless -f $FileNames[0];
+ print " input file : $FileName\n";
+ if ( $BackSpace eq "0pt" ) { $BackSpace = "1.5cm" }
+ else { print " backspace : $BackSpace\n" }
+ if ( $TopSpace eq "0pt" ) { $TopSpace = "1.5cm" }
+ else { print " topspace : $TopSpace\n" }
+ open( LIS, ">$ListingFile.tex" );
+ print LIS "% format=english\n";
+ print LIS "\\setupbodyfont[11pt,tt]\n";
+ print LIS "\\setuplayout\n";
+ print LIS " [topspace=$TopSpace,backspace=$BackSpace,\n";
+ print LIS " header=0cm,footer=1.5cm,\n";
+ print LIS " width=middle,height=middle]\n";
+ print LIS "\\setuptyping[lines=yes]\n";
+ if ($Pretty) { print LIS "\\setuptyping[option=color]\n" }
+ print LIS "\\starttext\n";
+
+ foreach $FileName (@FileNames) {
+ $CleanFileName = lc CleanTeXFileName($FileName);
+ print LIS "\\page\n";
+ print LIS "\\setupfootertexts[$CleanFileName][pagenumber]\n";
+ print LIS "\\typefile\{$FileName\}\n";
+ }
+ print LIS "\\stoptext\n";
+ close(LIS);
+ $ConTeXtInterface = "en";
+ RunConTeXtFile( $ListingFile, "tex" );
+}
+
+sub RunArrange {
+ my @files = @_;
+ print " backspace : $BackSpace\n";
+ print " topspace : $TopSpace\n";
+ print " paperoffset : $PaperOffset\n";
+ if ( $AddEmpty eq '' ) { print " empty pages added : none\n" }
+ else { print " empty pages added : $AddEmpty\n" }
+ if ( $TextWidth eq '0pt' ) { print " textwidth : unknown\n" }
+ else { print " textwidth : $TextWidth\n" }
+ open( ARR, ">$ArrangeFile.tex" );
+ print ARR "% format=english\n";
+ print ARR "\\definepapersize\n";
print ARR " [offset=$PaperOffset]\n";
- print ARR "\\setuplayout\n" ;
- print ARR " [backspace=$BackSpace,\n" ;
- print ARR " topspace=$TopSpace,\n" ;
- if ($Markings)
- { print ARR " marking=on,\n" ;
- print " cutmarkings : on\n" }
- print ARR " width=middle,\n" ;
- print ARR " height=middle,\n" ;
- print ARR " location=middle,\n" ;
- print ARR " header=0pt,\n" ;
- print ARR " footer=0pt]\n" ;
- if ($NoDuplex)
- { print " duplex : off\n" }
- else
- { print " duplex : on\n" ;
- print ARR "\\setuppagenumbering\n" ;
- print ARR " [alternative=doublesided]\n" }
- print ARR "\\starttext\n" ;
- foreach my $FileName (@files)
- { print " pdffile : $FileName\n" ;
- print ARR "\\insertpages\n [$FileName]" ;
- if ($AddEmpty ne '') { print ARR "[$AddEmpty]" }
- print ARR "[width=$TextWidth]\n" }
- print ARR "\\stoptext\n" ;
- close (ARR) ;
- $ConTeXtInterface = "en" ;
- RunConTeXtFile($ModuleFile, "tex") }
-
-sub RunSelect
- { my $FileName = shift ;
- print " pdffile : $FileName\n" ;
- print " backspace : $BackSpace\n" ;
- print " topspace : $TopSpace\n" ;
- print " paperoffset : $PaperOffset\n" ;
- if ($TextWidth eq '0pt')
- { print " textwidth : unknown\n" }
- else
- { print " textwidth : $TextWidth\n" }
- open (SEL, ">$SelectFile.tex") ;
- print SEL "% format=english\n" ;
- if ($PaperFormat ne 'standard')
-# { print " papersize : $PaperFormat\n" ;
-# print SEL "\\setuppapersize[$PaperFormat][$PaperFormat]\n" }
-#
- { $_ = $PaperFormat ; # NO UPPERCASE !
- s/x/\*/io ; my ($from,$to) = split (/\*/) ;
- if ($to eq "") { $to = $from }
- print " papersize : $PaperFormat\n" ;
- print SEL "\\setuppapersize[$from][$to]\n" }
-#
- print SEL "\\definepapersize\n" ;
+ print ARR "\\setuplayout\n";
+ print ARR " [backspace=$BackSpace,\n";
+ print ARR " topspace=$TopSpace,\n";
+
+ if ($Markings) {
+ print ARR " marking=on,\n";
+ print " cutmarkings : on\n";
+ }
+ print ARR " width=middle,\n";
+ print ARR " height=middle,\n";
+ print ARR " location=middle,\n";
+ print ARR " header=0pt,\n";
+ print ARR " footer=0pt]\n";
+ if ($NoDuplex) { print " duplex : off\n" }
+ else {
+ print " duplex : on\n";
+ print ARR "\\setuppagenumbering\n";
+ print ARR " [alternative=doublesided]\n";
+ }
+ print ARR "\\starttext\n";
+ foreach my $FileName (@files) {
+ print " pdffile : $FileName\n";
+ print ARR "\\insertpages\n [$FileName]";
+ if ( $AddEmpty ne '' ) { print ARR "[$AddEmpty]" }
+ print ARR "[width=$TextWidth]\n";
+ }
+ print ARR "\\stoptext\n";
+ close(ARR);
+ $ConTeXtInterface = "en";
+ RunConTeXtFile( $ModuleFile, "tex" );
+}
+
+sub RunSelect {
+ my $FileName = shift;
+ print " pdffile : $FileName\n";
+ print " backspace : $BackSpace\n";
+ print " topspace : $TopSpace\n";
+ print " paperoffset : $PaperOffset\n";
+ if ( $TextWidth eq '0pt' ) { print " textwidth : unknown\n" }
+ else { print " textwidth : $TextWidth\n" }
+ open( SEL, ">$SelectFile.tex" );
+ print SEL "% format=english\n";
+
+ if ( $PaperFormat ne 'standard' ) {
+ $_ = $PaperFormat; # NO UPPERCASE !
+ s/x/\*/io;
+ my ( $from, $to ) = split(/\*/);
+ if ( $to eq "" ) { $to = $from }
+ print " papersize : $PaperFormat\n";
+ print SEL "\\setuppapersize[$from][$to]\n";
+ }
+ #
+ print SEL "\\definepapersize\n";
print SEL " [offset=$PaperOffset]\n";
- print SEL "\\setuplayout\n" ;
- print SEL " [backspace=$BackSpace,\n" ;
- print SEL " topspace=$TopSpace,\n" ;
- if ($Markings)
- { print SEL " marking=on,\n" ;
- print " cutmarkings : on\n" }
- print SEL " width=middle,\n" ;
- print SEL " height=middle,\n" ;
- print SEL " location=middle,\n" ;
- print SEL " header=0pt,\n" ;
- print SEL " footer=0pt]\n" ;
- print SEL "\\setupexternalfigures\n" ;
- print SEL " [directory=]\n" ;
- print SEL "\\starttext\n" ;
- if ($Selection ne '')
- { print SEL "\\filterpages\n" ;
- print SEL " [$FileName][$Selection][width=$TextWidth]\n" }
- print SEL "\\stoptext\n" ;
- close (SEL) ;
- $ConTeXtInterface = "en" ;
- RunConTeXtFile($SelectFile, "tex") }
-
-sub RunCopy
- { my $FileName = shift ;
- print " pdffile : $FileName\n" ;
- if ($PageScale==1000)
- { print " offset : $PaperOffset\n" }
- else
- { print " scale : $PageScale\n" ;
- if ($PageScale<10) { $PageScale = int($PageScale*1000) } }
- open (COP, ">$CopyFile.tex") ;
- print COP "% format=english\n" ;
- print COP "\\getfiguredimensions\n" ;
- print COP " [$FileName][page=1]\n" ;
- print COP "\\definepapersize\n" ;
- print COP " [copy]\n" ;
- print COP " [width=\\naturalfigurewidth,\n" ;
- print COP " height=\\naturalfigureheight]\n" ;
- print COP "\\setuppapersize\n" ;
- print COP " [copy][copy]\n" ;
- print COP "\\setuplayout\n" ;
- print COP " [location=middle,\n" ;
- print COP " topspace=0pt,\n" ;
- print COP " backspace=0pt,\n" ;
- print COP " header=0pt,\n" ;
- print COP " footer=0pt,\n" ;
- print COP " width=middle,\n" ;
- print COP " height=middle]\n" ;
- print COP "\\setupexternalfigures\n" ;
- print COP " [directory=]\n" ;
- print COP "\\starttext\n" ;
- print COP "\\copypages\n" ;
- print COP " [$FileName]\n" ;
- print COP " [scale=$PageScale,\n" ;
- if ($Markings)
- { print COP " marking=on,\n" ;
- print " cutmarkings : on\n" }
- print COP " offset=$PaperOffset]\n" ;
- print COP "\\stoptext\n" ;
- close (COP) ;
- $ConTeXtInterface = "en" ;
- RunConTeXtFile($CopyFile, "tex") }
-
-sub RunCombine
- { my @Files = @_ ;
- $Combination =~ s/x/\*/io ; my ($nx,$ny) = split (/\*/,$Combination,2) ;
- return unless ($nx&&$ny) ;
- print " combination : $Combination\n" ;
- open (COM, ">$CombineFile.tex") ;
- print COM "% format=english\n" ;
- if ($PaperFormat ne 'standard')
-# { print " papersize : $PaperFormat\n" ;
-# print COM "\\setuppapersize\n" ;
-# print COM " [$PaperFormat][$PaperFormat]\n" }
-# see RunSelect
- { $_ = $PaperFormat ; # NO UPPERCASE !
- s/x/\*/io ; my ($from,$to) = split (/\*/) ;
- if ($to eq "") { $to = $from }
- print " papersize : $PaperFormat\n" ;
- print COM "\\setuppapersize[$from][$to]\n" }
-#
- if ($PaperOffset eq '0pt')
- { $PaperOffset = '1cm' }
- print " paper offset : $PaperOffset\n" ;
- print COM "\\setuplayout\n" ;
- print COM " [topspace=$PaperOffset,\n" ;
- print COM " backspace=$PaperOffset,\n" ;
- print COM " header=0pt,\n" ;
- print COM " footer=1cm,\n" ;
- print COM " width=middle,\n" ;
- print COM " height=middle]\n" ;
- if ($NoBanner)
- { print COM "\\setuplayout\n" ;
- print COM " [footer=0cm]\n" }
- print COM "\\setupexternalfigures\n" ;
- print COM " [directory=]\n" ;
- print COM "\\starttext\n" ;
- for $FileName (@Files)
- { next if ($FileName =~ /^texexec/io) ;
- next if ($FileName =~ /^$Result/i) ;
- print " pdffile : $FileName\n" ;
- my $CleanFileName = CleanTeXFileName($FileName) ;
- print COM "\\setupfootertexts\n" ;
- print COM " [$CleanFileName\\space---\\space\\currentdate\\space---\\space\\pagenumber]\n" ;
- print COM "\\combinepages[$FileName][nx=$nx,ny=$ny]\n" ;
- print COM "\\page" }
- print COM "\\stoptext\n" ;
- close (COM) ;
- $ConTeXtInterface = "en" ;
- RunConTeXtFile($CombineFile, "tex") }
-
-sub LocatedFormatPath
- { my $FormatPath = shift ;
- if (($FormatPath eq '')&&($kpsewhich ne ''))
- { $FormatPath = `$own_quote$kpsewhich$own_quote --show-path=fmt` ;
- chomp $FormatPath ;
- $FormatPath =~ s/\.+\;//o ; # should be a sub
- $FormatPath =~ s/\;.*//o ;
- $FormatPath =~ s/\!//go ;
- $FormatPath =~ s/\/\//\//go ;
- $FormatPath =~ s/\\\\/\//go ;
- $FormatPath =~ s/[\/\\]$// ;
- $FormatPath .= '/' ;
- if (($FormatPath ne '')&&$Verbose)
- { print " located formatpath : $FormatPath\n" } }
- return $FormatPath }
-
-sub RunOneFormat
- { my ($FormatName) = @_ ;
- my @TeXFormatPath ;
- my $TeXPrefix = "" ;
- if (($fmtutil ne "")&&($FormatName !~ /metafun|mptopdf/io))
- { my $cmd = "$own_quote$fmtutil$own_quote --byfmt $FormatName" ;
+ print SEL "\\setuplayout\n";
+ print SEL " [backspace=$BackSpace,\n";
+ print SEL " topspace=$TopSpace,\n";
+ if ($Markings) {
+ print SEL " marking=on,\n";
+ print " cutmarkings : on\n";
+ }
+ print SEL " width=middle,\n";
+ print SEL " height=middle,\n";
+ print SEL " location=middle,\n";
+ print SEL " header=0pt,\n";
+ print SEL " footer=0pt]\n";
+ print SEL "\\setupexternalfigures\n";
+ print SEL " [directory=]\n";
+ print SEL "\\starttext\n";
+
+ if ( $Selection ne '' ) {
+ print SEL "\\filterpages\n";
+ print SEL " [$FileName][$Selection][width=$TextWidth]\n";
+ }
+ print SEL "\\stoptext\n";
+ close(SEL);
+ $ConTeXtInterface = "en";
+ RunConTeXtFile( $SelectFile, "tex" );
+}
+
+sub RunCopy {
+ my $FileName = shift;
+ print " pdffile : $FileName\n";
+ if ( $PageScale == 1000 ) {
+ print " offset : $PaperOffset\n";
+ } else {
+ print " scale : $PageScale\n";
+ if ( $PageScale < 10 ) { $PageScale = int( $PageScale * 1000 ) }
+ }
+ open( COP, ">$CopyFile.tex" );
+ print COP "% format=english\n";
+ print COP "\\getfiguredimensions\n";
+ print COP " [$FileName][page=1]\n";
+ print COP "\\definepapersize\n";
+ print COP " [copy]\n";
+ print COP " [width=\\naturalfigurewidth,\n";
+ print COP " height=\\naturalfigureheight]\n";
+ print COP "\\setuppapersize\n";
+ print COP " [copy][copy]\n";
+ print COP "\\setuplayout\n";
+ print COP " [location=middle,\n";
+ print COP " topspace=0pt,\n";
+ print COP " backspace=0pt,\n";
+ print COP " header=0pt,\n";
+ print COP " footer=0pt,\n";
+ print COP " width=middle,\n";
+ print COP " height=middle]\n";
+ print COP "\\setupexternalfigures\n";
+ print COP " [directory=]\n";
+ print COP "\\starttext\n";
+ print COP "\\copypages\n";
+ print COP " [$FileName]\n";
+ print COP " [scale=$PageScale,\n";
+
+ if ($Markings) {
+ print COP " marking=on,\n";
+ print " cutmarkings : on\n";
+ }
+ print COP " offset=$PaperOffset]\n";
+ print COP "\\stoptext\n";
+ close(COP);
+ $ConTeXtInterface = "en";
+ RunConTeXtFile( $CopyFile, "tex" );
+}
+
+sub RunCombine {
+ my @Files = @_;
+ $Combination =~ s/x/\*/io;
+ my ( $nx, $ny ) = split( /\*/, $Combination, 2 );
+ return unless ( $nx && $ny );
+ print " combination : $Combination\n";
+ open( COM, ">$CombineFile.tex" );
+ print COM "% format=english\n";
+ if ( $PaperFormat ne 'standard' ) {
+ $_ = $PaperFormat; # NO UPPERCASE !
+ s/x/\*/io;
+ my ( $from, $to ) = split(/\*/);
+ if ( $to eq "" ) { $to = $from }
+ print " papersize : $PaperFormat\n";
+ print COM "\\setuppapersize[$from][$to]\n";
+ }
+ #
+ if ( $PaperOffset eq '0pt' ) { $PaperOffset = '1cm' }
+ print " paper offset : $PaperOffset\n";
+ print COM "\\setuplayout\n";
+ print COM " [topspace=$PaperOffset,\n";
+ print COM " backspace=$PaperOffset,\n";
+ print COM " header=0pt,\n";
+ print COM " footer=1cm,\n";
+ print COM " width=middle,\n";
+ print COM " height=middle]\n";
+
+ if ($NoBanner) {
+ print COM "\\setuplayout\n";
+ print COM " [footer=0cm]\n";
+ }
+ print COM "\\setupexternalfigures\n";
+ print COM " [directory=]\n";
+ print COM "\\starttext\n";
+ for my $FileName (@Files) {
+ next if ( $FileName =~ /^texexec/io );
+ next if (($Result ne '') && ( $FileName =~ /^$Result/i ));
+ print " pdffile : $FileName\n";
+ my $CleanFileName = CleanTeXFileName($FileName);
+ print COM "\\setupfootertexts\n";
+ print COM " [$CleanFileName\\space---\\space\\currentdate\\space---\\space\\pagenumber]\n";
+ print COM "\\combinepages[$FileName][nx=$nx,ny=$ny]\n";
+ print COM "\\page\n";
+ }
+ print COM "\\stoptext\n";
+ close(COM);
+ $ConTeXtInterface = "en";
+ RunConTeXtFile( $CombineFile, "tex" );
+}
+
+sub LocatedFormatPath {
+ my $FormatPath = shift;
+ if ( ( $FormatPath eq '' ) && ( $kpsewhich ne '' ) ) {
+ $FormatPath = `$kpsewhich --show-path=fmt`;
+ chomp $FormatPath;
+ $FormatPath =~ s/\.+\;//o; # should be a sub
+ $FormatPath =~ s/\;.*//o;
+ $FormatPath =~ s/\!//go;
+ $FormatPath =~ s/\/\//\//go;
+ $FormatPath =~ s/\\\\/\//go;
+ $FormatPath =~ s/[\/\\]$//;
+ $FormatPath .= '/';
+
+ if ( ( $FormatPath ne '' ) && $Verbose ) {
+ print " located formatpath : $FormatPath\n";
+ }
+ }
+ return $FormatPath;
+}
+
+sub RunOneFormat {
+ my ($FormatName) = @_;
+ my @TeXFormatPath;
+ my $TeXPrefix = "";
+ if ( ( $fmtutil ne "" ) && ( $FormatName !~ /metafun|mptopdf/io ) ) {
+ my $cmd = "$fmtutil --byfmt $FormatName";
if ($Verbose) { print "\n$cmd\n\n" }
- MakeUserFile ; # this works only when the path is kept
- MakeResponseFile ;
- $Problems = system ( "$cmd" ) ;
- RemoveResponseFile ;
- RestoreUserFile }
- else
- { $Problems = 1 }
- if ($Problems)
- { $Problems = 0 ;
- if ($TeXExecutable =~ /etex|eetex|pdfetex|pdfeetex|eomega/io)
- {$TeXPrefix = "*" }
- my $CurrentPath = cwd() ;
- $TeXFormatPath = LocatedFormatPath($TeXFormatPath) ;
- if ($TeXFormatPath ne '')
- { chdir $TeXFormatPath }
- MakeUserFile ;
- MakeResponseFile ;
- my $cmd = "$TeXProgramPath$TeXExecutable $TeXVirginFlag " .
- "$TeXPassString $PassOn ${TeXPrefix}$FormatName" ;
+ MakeUserFile; # this works only when the path is kept
+ MakeResponseFile;
+ $Problems = system("$cmd");
+ RemoveResponseFile;
+ RestoreUserFile;
+ } else {
+ $Problems = 1;
+ }
+ if ($Problems) {
+ $Problems = 0;
+ if ( $TeXExecutable =~ /etex|eetex|pdfetex|pdfeetex|eomega/io ) {
+ $TeXPrefix = "*";
+ }
+ my $CurrentPath = cwd();
+ $TeXFormatPath = LocatedFormatPath($TeXFormatPath);
+ if ( $TeXFormatPath ne '' ) { chdir $TeXFormatPath }
+ MakeUserFile;
+ MakeResponseFile;
+ $own_quote = ($TeXProgramPath =~ m/^[^\"].* / ? "\"" : "") ;
+ my $cmd =
+ "$own_quote$TeXProgramPath$TeXExecutable$own_quote $TeXVirginFlag "
+ . "$TeXPassString $PassOn ${TeXPrefix}$FormatName";
if ($Verbose) { print "\n$cmd\n\n" }
- $Problems = system ($cmd) ;
- RemoveResponseFile ;
- RestoreUserFile ;
- if (($TeXFormatPath ne '')&&($CurrentPath ne ''))
- { chdir $CurrentPath } } }
-
-sub RunFormats
- { my $ConTeXtFormatsPrefix ; my $MetaFunDone = 0 ;
- if (@ARGV)
- { @ConTeXtFormats = @ARGV }
- elsif ($UsedInterfaces ne '')
- { @ConTeXtFormats = split /[\,\s]/,$UsedInterfaces }
- if ($Format)
- { @ConTeXtFormats = $Format; $ConTeXtFormatsPrefix='' ; }
- else
- { $ConTeXtFormatsPrefix="cont-" ; }
- if ($TeXHashExecutable ne '')
- { my $cmd = "$TeXProgramPath$TeXHashExecutable" ;
- print "\n" ;
- print " TeX hash binary : $TeXProgramPath$TeXHashExecutable\n" ;
- print " comment : hashing may take a while ...\n" ;
+ $Problems = system($cmd) ;
+ RemoveResponseFile;
+ RestoreUserFile;
+
+ if ( ( $TeXFormatPath ne '' ) && ( $CurrentPath ne '' ) ) {
+ chdir $CurrentPath;
+ }
+ }
+}
+
+sub RunFormats {
+ my $ConTeXtFormatsPrefix;
+ my $MetaFunDone = 0;
+ if (@ARGV) { @ConTeXtFormats = @ARGV }
+ elsif ( $UsedInterfaces ne '' ) {
+ @ConTeXtFormats = split /[\,\s]/, $UsedInterfaces;
+ }
+ if ($Format) { @ConTeXtFormats = $Format; $ConTeXtFormatsPrefix = ''; }
+ else { $ConTeXtFormatsPrefix = "cont-"; }
+ if ( $TeXHashExecutable ne '' ) {
+ $own_quote = ($TeXProgramPath =~ m/^[^\"].* / ? "\"" : "") ;
+ my $cmd = "$own_quote$TeXProgramPath$TeXHashExecutable$own_quote";
+ print "\n";
+ print " TeX hash binary : $TeXProgramPath$TeXHashExecutable\n";
+ print " comment : hashing may take a while ...\n";
if ($Verbose) { print "\n$cmd\n\n" }
- system ($cmd) }
- foreach my $Interface (@ConTeXtFormats)
- { if ($Interface eq $MetaFun)
- { RunMpFormat ($MetaFun) ; $MetaFunDone = 1 }
- elsif ($Interface eq $MpToPdf)
- { if ($TeXExecutable =~ /pdf/io) { RunOneFormat ("$MpToPdf") } }
- else
- { RunOneFormat ("$ConTeXtFormatsPrefix$Interface") } }
- #
- # this will be default in a few months, or maybe better:
- # add it as interface (fake -) in texexec.ini
- #
- # if (($ConTeXtFormatsPrefix ne "")&&(!$MetaFunDone))
- # { RunMpFormat ($MetaFun) } }
- #
- print "\n" ;
- print " TeX binary : $TeXProgramPath$TeXExecutable\n" ;
- print " format(s) : @ConTeXtFormats\n\n" }
-
-sub RunMpFormat
- { my $MpFormat = shift ;
- return if ($MpFormat eq '') ;
- my $CurrentPath = cwd() ;
- $MpFormatPath = LocatedFormatPath($MpFormatPath) ;
- if ($MpFormatPath ne '') { chdir "$MpFormatPath" }
- my $cmd = "$own_quote$MpExecutable$own_quote $MpVirginFlag $MpPassString $MpFormat" ;
+ system($cmd);
+ }
+ foreach my $Interface (@ConTeXtFormats) {
+ if ( $Interface eq $MetaFun ) {
+ RunMpFormat($MetaFun);
+ $MetaFunDone = 1;
+ } elsif ( $Interface eq $MpToPdf ) {
+ if ( $TeXExecutable =~ /pdf/io ) { RunOneFormat("$MpToPdf") }
+ } else {
+ RunOneFormat("$ConTeXtFormatsPrefix$Interface");
+ }
+ }
+ print "\n";
+ print " TeX binary : $TeXProgramPath$TeXExecutable\n";
+ print " format(s) : @ConTeXtFormats\n\n";
+}
+
+sub RunMpFormat {
+ my $MpFormat = shift;
+ return if ( $MpFormat eq '' );
+ my $CurrentPath = cwd();
+ $MpFormatPath = LocatedFormatPath($MpFormatPath);
+ if ( $MpFormatPath ne '' ) { chdir "$MpFormatPath" }
+ $own_quote = ($MpExecutable =~ m/^[^\"].* / ? "\"" : "") ;
+ my $cmd =
+ "$own_quote$MpExecutable$own_quote $MpVirginFlag $MpPassString $MpFormat";
if ($Verbose) { print "\n$cmd\n\n" }
- system ( $cmd ) ;
- if (($MpFormatPath ne '')&&($CurrentPath ne ''))
- { chdir $CurrentPath } }
-
-sub RunFiles
- { if ($PdfArrange)
- { my @arrangedfiles = () ;
- foreach my $JobName (@ARGV)
- { unless ($JobName =~ /.*\.pdf$/oi)
- { if (-f "$JobName.pdf")
- { $JobName .= ".pdf" }
- else
- { $JobName .= ".PDF" } }
- push @arrangedfiles, $JobName }
- if (@arrangedfiles)
- { RunArrange (@arrangedfiles) } }
- elsif (($PdfSelect)||($PdfCopy)||($PdfCombine))
- { my $JobName = $ARGV[0] ;
- if ($JobName ne '')
- { unless ($JobName =~ /.*\.pdf$/oi)
- { if (-f "$JobName.pdf")
- { $JobName .= ".pdf" }
- else
- { $JobName .= ".PDF" } }
- if ($PdfSelect)
- { RunSelect ($JobName) }
- elsif ($PdfCopy)
- { RunCopy ($JobName) }
- else
-# { RunCombine ($JobName) } } }
- { RunCombine (@ARGV) } } }
- elsif ($TypesetModule)
- { RunModule (@ARGV) }
- else
- { my $JobSuffix = "tex" ;
- foreach my $JobName (@ARGV)
- { if ($JobName =~ s/\.(\w+)$//io)
- { $JobSuffix = $1 }
- if (($Format eq '')||($Format =~ /^cont.*/io))
- { RunConTeXtFile ($JobName, $JobSuffix) }
- else
- { RunSomeTeXFile ($JobName, $JobSuffix) }
- unless (-s "$JobName.log") { unlink ("$JobName.log") }
- unless (-s "$JobName.tui") { unlink ("$JobName.tui") } } } }
-
-my $MpTmp = "tmpgraph" ; # todo: prefix met jobname
-my $MpKep = "$MpTmp.kep" ; # sub => MpTmp("kep")
-my $MpLog = "$MpTmp.log" ;
-my $MpBck = "$MpTmp.bck" ;
-my $MpTex = "$MpTmp.tex" ;
-my $MpDvi = "$MpTmp.dvi" ;
-
-my %mpbetex ;
-
-sub RunMP ###########
- { if (($MpExecutable)&&($MpToTeXExecutable)&&($DviToMpExecutable))
- { foreach my $RawMpName (@ARGV)
- { my ($MpName, $Rest) = split (/\./, $RawMpName, 2) ;
- my $MpFile = "$MpName.mp" ;
- if (-e $MpFile and (-s $MpFile>25)) # texunlink makes empty file
- { unlink "$MpName.mpt" ;
- doRunMP($MpName,0) ;
+ system($cmd ) ;
+
+ if ( ( $MpFormatPath ne '' ) && ( $CurrentPath ne '' ) ) {
+ chdir $CurrentPath;
+ }
+}
+
+sub RunFiles {
+ if ($PdfArrange) {
+ my @arrangedfiles = ();
+ foreach my $JobName (@ARGV) {
+ unless ( $JobName =~ /.*\.pdf$/oi ) {
+ if ( -f "$JobName.pdf" ) { $JobName .= ".pdf" }
+ else { $JobName .= ".PDF" }
+ }
+ push @arrangedfiles, $JobName;
+ }
+ if (@arrangedfiles) { RunArrange(@arrangedfiles) }
+ } elsif ( ($PdfSelect) || ($PdfCopy) || ($PdfCombine) ) {
+ my $JobName = $ARGV[0];
+ if ( $JobName ne '' ) {
+ unless ( $JobName =~ /.*\.pdf$/oi ) {
+ if ( -f "$JobName.pdf" ) { $JobName .= ".pdf" }
+ else { $JobName .= ".PDF" }
+ }
+ if ($PdfSelect) { RunSelect($JobName) }
+ elsif ($PdfCopy) { RunCopy($JobName) }
+ else {
+ # RunCombine ($JobName) ;
+ RunCombine(@ARGV);
+ }
+ }
+ } elsif ($TypesetModule) {
+ RunModule(@ARGV);
+ } else {
+ my $JobSuffix = "tex";
+ foreach my $JobName (@ARGV) {
+ if ( $JobName =~ s/\.(\w+)$//io ) { $JobSuffix = $1 }
+ if ( ( $Format eq '' ) || ( $Format =~ /^cont.*/io ) ) {
+ RunConTeXtFile( $JobName, $JobSuffix );
+ } else {
+ RunSomeTeXFile( $JobName, $JobSuffix );
+ }
+ unless ( -s "$JobName.log" ) { unlink("$JobName.log") }
+ unless ( -s "$JobName.tui" ) { unlink("$JobName.tui") }
+ }
+ }
+}
+
+my $MpTmp = "tmpgraph"; # todo: prefix met jobname
+my $MpKep = "$MpTmp.kep"; # sub => MpTmp("kep")
+my $MpLog = "$MpTmp.log";
+my $MpBck = "$MpTmp.bck";
+my $MpTex = "$MpTmp.tex";
+my $MpDvi = "$MpTmp.dvi";
+
+my %mpbetex;
+
+sub RunMP { ###########
+ if ( ($MpExecutable) && ($MpToTeXExecutable) && ($DviToMpExecutable) ) {
+ foreach my $RawMpName (@ARGV) {
+ my ( $MpName, $Rest ) = split( /\./, $RawMpName, 2 );
+ my $MpFile = "$MpName.mp";
+ if ( -e $MpFile
+ and ( -s $MpFile > 25 ) ) # texunlink makes empty file
+ {
+ unlink "$MpName.mpt";
+ doRunMP( $MpName, 0 );
# test for graphics, new per 14/12/2000
- my $mpgraphics = checkMPgraphics($MpName) ;
+ my $mpgraphics = checkMPgraphics($MpName);
# test for labels
- my $mplabels = checkMPlabels($MpName) ;
- if ($mpgraphics||$mplabels)
- { doRunMP($MpName,$mplabels) } } } } }
-
-my $mpochecksum = 0 ;
-
-sub checkMPgraphics # also see makempy
- { my $MpName = shift ;
- if ($MakeMpy != '')
- { $MpName .= " --$MakeMpy " } # extra switches
- if ($MpyForce)
- { $MpName .= " --force " } # dirty
- else
- { return 0 unless -s "$MpName.mpo" > 32 ;
- return 0 unless (open (MPO,"$MpName.mpo")) ;
- $mpochecksum = do { local $/ ; unpack("%32C*",<MPO>) % 65535 } ;
- close (MPO) ;
- if (open (MPY,"$MpName.mpy"))
- { my $str = <MPY> ; chomp $str ; close (MPY) ;
- if ($str =~ /^\%\s*mpochecksum\s*\:\s*(\d+)/o)
- { return 0 if (($mpochecksum eq $1)&&($mpochecksum ne 0)) } } }
- RunPerlScript("makempy", "$MpName") ;
- print " second MP run needed : text graphics found\n" ;
- return 1 }
-
-sub checkMPlabels
- { my $MpName = shift ;
- return 0 unless (-s "$MpName.mpt" > 10) ;
- return 0 unless open(MP, "$MpName.mpt") ;
- my $n = 0 ;
- while (<MP>)
- { if (/% figure (\d+) : (.*)/o)
- { $mpbetex{$1} .= "$2\n" ; ++$n } }
- close (MP) ;
- print " second MP run needed : $n tex labels found\n" if $n ;
- return $n }
-
-sub doRunMP ###########
- { my ($MpName, $MergeBE) = @_ ;
- my $TexFound = 0 ;
- my $MpFile = "$MpName.mp" ;
- if (open(MP, $MpFile))
- { # fails with %
- # local $/ = "\0777" ; $_ = <MP> ; close(MP) ;
-
- my $MPdata = "" ;
- while (<MP>) { unless (/^\%/) { $MPdata .= $_ } }
- $_ = $MPdata ;
- close (MP) ;
+ my $mplabels = checkMPlabels($MpName);
+ if ( $mpgraphics || $mplabels ) {
+ doRunMP( $MpName, $mplabels );
+ }
+ }
+ }
+ }
+}
+
+my $mpochecksum = 0;
+
+sub checkMPgraphics { # also see makempy
+ my $MpName = shift;
+ if ( $MakeMpy != '' ) { $MpName .= " --$MakeMpy " } # extra switches
+ if ($MpyForce) { $MpName .= " --force " } # dirty
+ else {
+ return 0 unless -s "$MpName.mpo" > 32;
+ return 0 unless ( open( MPO, "$MpName.mpo" ) );
+ $mpochecksum = do { local $/; unpack( "%32C*", <MPO> ) % 65535 };
+ close(MPO);
+ if ( open( MPY, "$MpName.mpy" ) ) {
+ my $str = <MPY>;
+ chomp $str;
+ close(MPY);
+ if ( $str =~ /^\%\s*mpochecksum\s*\:\s*(\d+)/o ) {
+ return 0 if ( ( $mpochecksum eq $1 ) && ( $mpochecksum ne 0 ) );
+ }
+ }
+ }
+ RunPerlScript( "makempy", "$MpName" );
+ print " second MP run needed : text graphics found\n";
+ return 1;
+}
+
+sub checkMPlabels {
+ my $MpName = shift;
+ return 0 unless ( -s "$MpName.mpt" > 10 );
+ return 0 unless open( MP, "$MpName.mpt" );
+ my $n = 0;
+ while (<MP>) {
+ if (/% figure (\d+) : (.*)/o) { $mpbetex{$1} .= "$2\n"; ++$n }
+ }
+ close(MP);
+ print " second MP run needed : $n tex labels found\n" if $n;
+ return $n;
+}
+
+sub doRunMP { ###########
+ my ( $MpName, $MergeBE ) = @_;
+ my $TexFound = 0;
+ my $MpFile = "$MpName.mp";
+ if ( open( MP, $MpFile ) ) { # fails with %
+ my $MPdata = "";
+ while (<MP>) {
+ unless (/^\%/) { $MPdata .= $_ }
+ }
+ $_ = $MPdata;
+ close(MP);
# save old file
- unlink ($MpKep) ;
- return if (-e $MpKep) ;
- rename ($MpFile, $MpKep) ;
+ unlink($MpKep);
+ return if ( -e $MpKep );
+ rename( $MpFile, $MpKep );
# check for tex stuff
- # $TexFound = $MergeBE || /(btex|etex|verbatimtex)/o ;
- # verbatim tex can be there due to an environment belonging to
- # mpy (not really, but about)
- # $TexFound = $MergeBE || /(btex|etex)/o ;
-
- $TexFound = $MergeBE || /btex .*? etex/o ;
+ $TexFound = $MergeBE || /btex .*? etex/o;
# shorten lines into new file if okay
- unless (-e $MpFile)
- { open(MP, ">$MpFile") ;
- s/(btex.*?)\;(.*?etex)/$1\@\@\@$2/gmois ;
- s/\;/\;\n/gmois ;
- s/\n\n/\n/gmois ;
- s/(btex.*?)\@\@\@(.*?etex)/$1\;$2/gmois ;
+ unless ( -e $MpFile ) {
+ open( MP, ">$MpFile" );
+ s/(btex.*?)\;(.*?etex)/$1\@\@\@$2/gmois;
+ s/\;/\;\n/gmois;
+ s/\n\n/\n/gmois;
+ s/(btex.*?)\@\@\@(.*?etex)/$1\;$2/gmois;
# merge labels
- if ($MergeBE)
- { s/beginfig\s*\((\d+)\)\s*\;/beginfig($1)\;\n$mpbetex{$1}\n/goims }
+ if ($MergeBE) {
+s/beginfig\s*\((\d+)\)\s*\;/beginfig($1)\;\n$mpbetex{$1}\n/goims;
+ }
# flush
- unless (/beginfig\s*\(\s*0\s*\)/gmois)
- { print MP $mpbetex{0} }
- print MP $_ ;
- print MP "\n" . "end" . "\n" ;
- close(MP) }
- if ($TexFound)
- { print " metapost to tex : $MpName\n" ;
- $Problems = system ("$own_quote$MpToTeXExecutable$own_quote $MpFile > $MpTex" ) ;
- if (-e $MpTex && !$Problems)
- { open (TMP,">>$MpTex") ;
- print TMP "\\end\{document\}\n" ; # to be sure
- close (TMP) ;
- if (($Format eq '')||($Format =~ /^cont.*/io))
- { $OutputFormat = "dvips" ;
- RunConTeXtFile ($MpTmp, "tex") }
- else
- { RunSomeTeXFile ($MpTmp, "tex") }
- if (-e $MpDvi && !$Problems)
- { print " dvi to metapost : $MpName\n" ;
- $Problems = system ("$own_quote$DviToMpExecutable$own_quote $MpDvi $MpName.mpx") }
- # $Problems = system ("dvicopy $MpDvi texexec.dvi") ;
- # $Problems = system ("$own_quote$DviToMpExecutable$own_quote texexec.dvi $MpName.mpx") }
- unlink $MpBck ;
- rename $MpTex, $MpBck ;
- unlink $MpDvi } }
- print " metapost : $MpName\n" ;
- my $cmd = "$own_quote$MpExecutable$own_quote" ;
- if ($EnterBatchMode)
- { $cmd .= " $MpBatchFlag " }
- if ($EnterNonStopMode)
- { $cmd .= " $MpNonStopFlag " }
- if (($MpFormat ne '')&&($MpFormat !~ /(plain|mpost)/oi))
- { print " format : $MpFormat\n" ;
- $cmd .= " $MpPassString $MpFormatFlag$MpFormat " }
-# prevent nameclash, experimental
-my $MpMpName = "$MpName" ;
-#my $MpMpName = "./$MpName" ; $MpMpName =~ s/\.\/\.\//\.\//o ;
-$Problems = system ("$cmd $MpMpName" ) ;
-# $Problems = system ("$cmd $MpName" ) ;
- open (MPL,"$MpName.log") ;
- while (<MPL>) # can be one big line unix under win
- { while (/^l\.(\d+)\s/gmois)
- { print " error in metapost run : $MpName.mp:$1\n" } }
- unlink "mptrace.tmp" ; rename ($MpFile, "mptrace.tmp") ;
- if (-e $MpKep)
- { unlink ($MpFile) ;
- rename ($MpKep, $MpFile) } } }
-
-sub RunMPX
- { my $MpName = shift ; $MpName =~ s/\..*$//o ;
- my $MpFile = $MpName . ".mp" ;
- if (($MpToTeXExecutable)&&($DviToMpExecutable)&&
- (-e $MpFile)&&(-s $MpFile>5)&&open(MP, $MpFile))
- { local $/ = "\0777" ; $_ = <MP> ; close(MP) ;
- if (/(btex|etex|verbatimtex)/o)
- { print " generating mpx file : $MpName\n" ;
- $Problems = system ("$own_quote$MpToTeXExecutable$own_quote $MpFile > $MpTex" ) ;
- if (-e $MpTex && !$Problems)
- { open (TMP,">>$MpTex") ;
- print TMP "\\end\n" ; # to be sure
- close (TMP) ;
- if (($Format eq '')||($Format =~ /^cont.*/io))
- { RunConTeXtFile ($MpTmp, "tex") }
- else
- { RunSomeTeXFile ($MpTmp, "tex") }
- if (-e $MpDvi && !$Problems)
- { $Problems = system ("$own_quote$DviToMpExecutable$own_quote $MpDvi $MpName.mpx") }
- unlink $MpTex ;
- unlink $MpDvi } } } }
-
-sub load_set_file
- { my %new ; my %old ;
- my ($file, $trace) = @_ ;
- if (open(BAT,$file))
- { while (<BAT>)
- { chomp ;
- if (/\s*SET\s+(.+?)\=(.+)\s*/io)
- { my ($var,$val) = ($1, $2) ;
- $val =~ s/\%(.+?)\%/$ENV{$1}/goi ;
- unless (defined($old{$var}))
- { if (defined($ENV{$var}))
- { $old{$var} = $ENV{$var} }
- else
- { $old{$var} = "" } }
- $ENV{$var} = $new{$var} = $val } }
- close (BAT) }
- if ($trace)
- { foreach my $key (sort keys %new)
- { if ($old{$key} ne $new{$key})
- { print " changing env variable : '$key' from '$old{$key}' to '$new{$key}'\n" }
- elsif ($old{$key} eq "")
- { print " setting env variable : '$key' to '$new{$key}'\n" }
- else
- { print " keeping env variable : '$key' at '$new{$key}'\n" } }
- print "\n" } }
-
-if ($SetFile ne "")
- { load_set_file ($SetFile,$Verbose) }
+ unless (/beginfig\s*\(\s*0\s*\)/gmois) { print MP $mpbetex{0} }
+ print MP $_;
+ print MP "\n" . "end" . "\n";
+ close(MP);
+ }
+ if ($TexFound) {
+ print " metapost to tex : $MpName\n";
+ $own_quote = ($MpToTeXExecutable =~ m/^[^\"].* / ? "\"" : "") ;
+ $Problems =
+ system("$own_quote$MpToTeXExecutable$own_quote $MpFile > $MpTex");
+ if ( -e $MpTex && !$Problems ) {
+ open( TMP, ">>$MpTex" );
+ print TMP "\\end\{document\}\n"; # to be sure
+ close(TMP);
+ if ( ( $Format eq '' ) || ( $Format =~ /^cont.*/io ) ) {
+ $OutputFormat = "dvips";
+ RunConTeXtFile( $MpTmp, "tex" );
+ } else {
+ RunSomeTeXFile( $MpTmp, "tex" );
+ }
+ if ( -e $MpDvi && !$Problems ) {
+ print " dvi to metapost : $MpName\n";
+ $own_quote = ($DviToMpExecutable =~ m/^[^\"].* / ? "\"" : "") ;
+ $Problems = system("$own_quote$DviToMpExecutable$own_quote $MpDvi $MpName.mpx");
+ }
+ unlink $MpBck;
+ rename $MpTex, $MpBck;
+ unlink $MpDvi;
+ }
+ }
+ print " metapost : $MpName\n";
+ $own_quote = ($MpExecutable =~ m/^[^\"].* / ? "\"" : "") ;
+ my $cmd = "$own_quote$MpExecutable$own_quote";
+ if ($EnterBatchMode) { $cmd .= " $MpBatchFlag " }
+ if ($EnterNonStopMode) { $cmd .= " $MpNonStopFlag " }
+ if ( ( $MpFormat ne '' ) && ( $MpFormat !~ /(plain|mpost)/oi ) ) {
+ print " format : $MpFormat\n";
+ $cmd .= " $MpPassString $MpFormatFlag$MpFormat ";
+ }
+ # prevent nameclash, experimental
+ my $MpMpName = "$MpName";
+ $Problems = system("$cmd $MpMpName");
+ open( MPL, "$MpName.log" );
+ while (<MPL>) # can be one big line unix under win
+ {
+ while (/^l\.(\d+)\s/gmois) {
+ print " error in metapost run : $MpName.mp:$1\n";
+ }
+ }
+ unlink "mptrace.tmp";
+ rename( $MpFile, "mptrace.tmp" );
+ if ( -e $MpKep ) {
+ unlink($MpFile);
+ rename( $MpKep, $MpFile );
+ }
+ }
+}
+
+sub RunMPX {
+ my $MpName = shift;
+ $MpName =~ s/\..*$//o;
+ my $MpFile = $MpName . ".mp";
+ if ( ($MpToTeXExecutable)
+ && ($DviToMpExecutable)
+ && ( -e $MpFile )
+ && ( -s $MpFile > 5 )
+ && open( MP, $MpFile ) )
+ {
+ local $/ = "\0777";
+ $_ = <MP>;
+ close(MP);
+ if (/(btex|etex|verbatimtex)/o) {
+ print " generating mpx file : $MpName\n";
+ $own_quote = ($MpToTeXExecutable =~ m/^[^\"].* / ? "\"" : "") ;
+ $Problems =
+ system("$own_quote$MpToTeXExecutable$own_quote $MpFile > $MpTex");
+ if ( -e $MpTex && !$Problems ) {
+ open( TMP, ">>$MpTex" );
+ print TMP "\\end\n"; # to be sure
+ close(TMP);
+ if ( ( $Format eq '' ) || ( $Format =~ /^cont.*/io ) ) {
+ RunConTeXtFile( $MpTmp, "tex" );
+ } else {
+ RunSomeTeXFile( $MpTmp, "tex" );
+ }
+ if ( -e $MpDvi && !$Problems ) {
+ $own_quote = ($DviToMpExecutable =~ m/^[^\"].* / ? "\"" : "") ;
+ $Problems =
+ system("$own_quote$DviToMpExecutable$own_quote $MpDvi $MpName.mpx");
+ }
+ unlink $MpTex;
+ unlink $MpDvi;
+ }
+ }
+ }
+}
+
+sub load_set_file {
+ my %new;
+ my %old;
+ my ( $file, $trace ) = @_;
+ if ( open( BAT, $file ) ) {
+ while (<BAT>) {
+ chomp;
+ if (/\s*SET\s+(.+?)\=(.+)\s*/io) {
+ my ( $var, $val ) = ( $1, $2 );
+ $val =~ s/\%(.+?)\%/$ENV{$1}/goi;
+ unless ( defined( $old{$var} ) ) {
+ if ( defined( $ENV{$var} ) ) { $old{$var} = $ENV{$var} }
+ else { $old{$var} = "" }
+ }
+ $ENV{$var} = $new{$var} = $val;
+ }
+ }
+ close(BAT);
+ }
+ if ($trace) {
+ foreach my $key ( sort keys %new ) {
+ if ( $old{$key} ne $new{$key} ) {
+ print " changing env variable : '$key' from '$old{$key}' to '$new{$key}'\n";
+ } elsif ( $old{$key} eq "" ) {
+ print " setting env variable : '$key' to '$new{$key}'\n";
+ } else {
+ print " keeping env variable : '$key' at '$new{$key}'\n";
+ }
+ }
+ print "\n";
+ }
+}
+
+if ( $SetFile ne "" ) { load_set_file( $SetFile, $Verbose ) }
# todo : more consistent argv handling
#
@@ -2383,52 +2386,45 @@ if ($SetFile ne "")
# else
# { print " invalid texmf tree : $tree \n" } }
-sub check_texmf_root {}
-sub check_texmf_tree {}
+sub check_texmf_root { }
+sub check_texmf_tree { }
# the main thing
- if ($HelpAsked)
- { show_help_info }
-elsif ($TypesetListing)
- { check_texmf_root ;
- check_texmf_tree ;
- RunListing (@ARGV) }
-elsif ($TypesetFigures)
- { check_texmf_root ;
- check_texmf_tree ;
- RunFigures (@ARGV) }
-elsif ($DoMPTeX)
- { check_texmf_root ;
- check_texmf_tree ;
- RunMP }
-elsif ($DoMPXTeX)
- { check_texmf_root ;
- check_texmf_tree ;
- RunMPX ($ARGV[0]) }
-elsif ($MakeFormats)
- { check_texmf_root ;
- check_texmf_tree ;
- if ($MpDoFormat ne '')
- { RunMpFormat($MpDoFormat) }
- else
- { RunFormats } }
-elsif (@ARGV)
- { check_texmf_root ;
- check_texmf_tree ;
- @ARGV = <@ARGV> ;
- RunFiles }
-
-# else
-# { # print $Help{HELP} ;
-# # unless ($Verbose) { print $Help{VERBOSE} } }
-elsif (!$HelpAsked)
- { show_help_options }
-
-$TotalTime = time - $TotalTime ;
-
-unless ($HelpAsked)
- { print "\n total run time : $TotalTime seconds\n" }
+if ($HelpAsked) { show_help_info }
+elsif ($TypesetListing) {
+ check_texmf_root;
+ check_texmf_tree;
+ RunListing(@ARGV);
+} elsif ($TypesetFigures) {
+ check_texmf_root;
+ check_texmf_tree;
+ RunFigures(@ARGV);
+} elsif ($DoMPTeX) {
+ check_texmf_root;
+ check_texmf_tree;
+ RunMP;
+} elsif ($DoMPXTeX) {
+ check_texmf_root;
+ check_texmf_tree;
+ RunMPX( $ARGV[0] );
+} elsif ($MakeFormats) {
+ check_texmf_root;
+ check_texmf_tree;
+ if ( $MpDoFormat ne '' ) { RunMpFormat($MpDoFormat) }
+ else { RunFormats }
+} elsif (@ARGV) {
+ check_texmf_root;
+ check_texmf_tree;
+ @ARGV = <@ARGV>;
+ RunFiles;
+} elsif ( !$HelpAsked ) {
+ show_help_options;
+}
+
+$TotalTime = time - $TotalTime;
+
+unless ($HelpAsked) { print "\n total run time : $TotalTime seconds\n" }
if ($Problems) { exit 1 }
@@ -2614,4 +2610,4 @@ alone bypass utilities (e.g. fmtutil for non-standard fmt's)
-----------
texutil force TeXUtil run
-----------
-setfile load environment (batch) file
+setfile load environment (batch) file \ No newline at end of file
diff --git a/context/perltk/texexec.rme b/context/perltk/texexec.rme
index 01c0a4dde..f544f5bbf 100644
--- a/context/perltk/texexec.rme
+++ b/context/perltk/texexec.rme
@@ -1,62 +1,62 @@
-% == introduction ==
-%
-% This is 'texexec.ini', the file used by texexec to determine where
-% to find files, what TeX to use, what flags to pass, etc. Although
-% TeXexec tries to locate things itself, a little help is sometimes
-% needed. One can influence texexec by setting some variables. These
-% are only needed when the automatic determined settings fail.
-%
+% == introduction ==
+%
+% This is 'texexec.ini', the file used by texexec to determine where
+% to find files, what TeX to use, what flags to pass, etc. Although
+% TeXexec tries to locate things itself, a little help is sometimes
+% needed. One can influence texexec by setting some variables. These
+% are only needed when the automatic determined settings fail.
+%
% == interfacing ==
-%
+%
% UsedInterfaces nl,en the formats generated with --make
% UserInterface nl the default format used
%
-% == binaries ==
-%
-% TeXExecutable pdfetex the TeX binary to use
-% MpExecutable mpost the MetaPost binary to use
+% == binaries ==
+%
+% TeXExecutable pdfetex the TeX binary to use
+% MpExecutable mpost the MetaPost binary to use
% MpToTeXExecutable mpto the MetaPost to TeX converter
% DviToMpExecutable dvitomp the DVI to MetaPost converter
%
-% == Scripts ==
+% == Scripts ==
%
-% DviSpecialScript dvispec the DVI special filter script
+% DviSpecialScript dvispec the DVI special filter script
%
-% == flags ==
-%
-% TeXFormatFlag & the format introducer
+% == flags ==
+%
+% TeXFormatFlag & the format introducer
% TeXVirginFlag -ini the format generation switch
%
-% == paths ==
+% == paths ==
%
-% TeXFormatPath texmf/... fmt files
+% TeXFormatPath texmf/... fmt files
% ConTeXtPath texmf/tex/context/base sources
% SetupPath texmf/tex/base/user cont-sys/usr file
% TeXScriptsPath texmf/context/perltk scripts
% TeXFontsPath texmf font files
%
-% MpFormatPath TeXFormatPath mem files
+% MpFormatPath TeXFormatPath mem files
%
% == the main shell setting ==
%
-% As shown below, one can define his/her own sections. We default to
-% the teTeX/fpTeX web2c based settings.
+% As shown below, one can define his/her own sections. We default to
+% the teTeX/fpTeX web2c based settings.
-set TeXShell to tetex
-%set TeXShell to fptex
+set TeXShell to tetex
+%set TeXShell to fptex
%set TeXShell to miktex
-%set TeXShell to private
+%set TeXShell to private
% == setting up the variables ==
%
-% Here are some general defaults. They can be overruled later.
+% Here are some general defaults. They can be overruled later.
-set UsedInterfaces to en nl metafun mptopdf
+set UsedInterfaces to en nl metafun mptopdf
set UserInterface to en
-set TeXExecutable to tex
+set TeXExecutable to tex
-set MpExecutable to mpost
+set MpExecutable to mpost
set MpToTeXExecutable to mpto
set DviToMpExecutable to dvitomp
set DviSpecialScript to dvispec
@@ -72,28 +72,32 @@ set TeXFontsPath to l:/tex/texmf;l:/tex/texmf-local;
% For teTeX the next settings will do.
+% -default-translate-file=cp8bit -file-line-error-style
+
for tetex set TeXHashExecutable to mktexlsr
for tetex set TeXExecutable to pdfetex
for tetex set TeXVirginFlag to -ini
-for tetex set TeXPassString to -progname=context
-for tetex set TeXBatchFlag to -int=batchmode
+for tetex set TeXPassString to -progname=context
+for tetex set TeXBatchFlag to -int=batchmode
for tetex set TeXNonStopFlag to -int=nonstopmode
for tetex set MpToTeXExecutable to mpto
-for tetex set MpVirginFlag to -ini
+for tetex set MpVirginFlag to -ini
for tetex set MpPassString to -progname=mpost
-for tetex set MpBatchFlag to -int=batchmode
+for tetex set MpBatchFlag to -int=batchmode
for tetex set MpNonStopFlag to -int=nonstopmode
-% These also apply to fpTeX.
+% These also apply to fpTeX.
+
+% -default-translate-file=cp8bit -file-line-error-style
for fptex set TeXHashExecutable to mktexlsr
for fptex set TeXExecutable to pdfetex
for fptex set TeXVirginFlag to -ini
-for fptex set TeXPassString to -progname=context
-for fptex set TeXBatchFlag to -int=batchmode
+for fptex set TeXPassString to -progname=context
+for fptex set TeXBatchFlag to -int=batchmode
for tetex set TeXNonStopFlag to -int=nonstopmode
for fptex set MpToTeXExecutable to mpto
-for fptex set MpVirginFlag to -ini
+for fptex set MpVirginFlag to -ini
for fptex set MpPassString to -progname=mpost
for fptex set MpBatchFlag to -int=batchmode
for tetex set MpNonStopFlag to -int=nonstopmode
@@ -103,40 +107,40 @@ for tetex set MpNonStopFlag to -int=nonstopmode
for miktex set TeXHashExecutable to initexmf --update-fndb
for miktex set TeXExecutable to pdfetex
for miktex set TeXVirginFlag to --initialize
-for miktex set TeXPassString to --alias=context
-for miktex set TeXBatchFlag to --interaction=batchmode
+for miktex set TeXPassString to --alias=context
+for miktex set TeXBatchFlag to --interaction=batchmode
for miktex set TeXNonStopFlag to --interaction=nonstopmode
for miktex set MpToTeXExecutable to mptotex
for miktex set MpVirginFlag to --initialize
for miktex set MpPassString to --alias=mpost
-for miktex set MpBatchFlag to --interaction=batchmode
+for miktex set MpBatchFlag to --interaction=batchmode
for miktex set MpNonStopFlag to --interaction=nonstopmode
for miktex set TeXFormatFlag to --undump=
for miktex set MpFormatFlag to --undump=
-% These are the settings used on some machines at PRAGMA ADE that
-% don't use the texmf tree. They can serve as an example for local
-% settings. Local settings should either be added to the previous
-% one, or go without the 'for' directives. Consider these
-% settings as an example.
+% These are the settings used on some machines at PRAGMA ADE that
+% don't use the texmf tree. They can serve as an example for local
+% settings. Local settings should either be added to the previous
+% one, or go without the 'for' directives. Consider these
+% settings as an example.
for private set UsedInterfaces to en nl
for private set UserInterface to nl
for private set ConTeXtPath to t:/sources/
-for private set SetupPath to t:/perl/
+for private set SetupPath to t:/perl/
for private set TeXScriptsPath to t:/perl/
-% == read this too ==
+% == read this too ==
%
-% If this file is called 'texexec.rme', copy it to 'texexec.ini',
+% If this file is called 'texexec.rme', copy it to 'texexec.ini',
% check the settings above, change them according to your TeX
-% distribution, and say:
+% distribution, and say:
%
% texexec --verbose
-%
-% When set up properly, you should see your local settings fly by.
-% When these settings are ok, the next call should work:
+%
+% When set up properly, you should see your local settings fly by.
+% When these settings are ok, the next call should work:
%
% texexec --make
%
@@ -145,11 +149,11 @@ for private set TeXScriptsPath to t:/perl/
% texexec filename
%
% See 'mtexexec.pdf' for more information on the flags you can use with
-% 'texexec'. Also make sure you have the 'texutil' script installed in
-% the same path as 'texexec'.
+% 'texexec'. Also make sure you have the 'texutil' script installed in
+% the same path as 'texexec'.
-% Experimental
+% Experimental
%
% set TcXPath to d:/tex/texmf/web2c
-% set FmtLanguage to pl
-% set FmtBodyFont to plr
+% set FmtLanguage to pl
+% set FmtBodyFont to plr
diff --git a/context/perltk/texfont.pl b/context/perltk/texfont.pl
index ffab32280..44abd3cbb 100644
--- a/context/perltk/texfont.pl
+++ b/context/perltk/texfont.pl
@@ -1,10 +1,10 @@
eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $argv:q'
if 0;
-# This is an example of a crappy unstructured file but once
-# I know what should happen exactly, I will clean it up.
+# This is an example of a crappy unstructured file but once
+# I know what should happen exactly, I will clean it up.
-# todo : ttf (partially doen already)
+# todo : ttf (partially doen already)
#D \module
#D [ file=texfont.pl,
@@ -22,11 +22,11 @@ eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $
#D For usage information, see \type {mfonts.pdf}.
#D Todo : copy afm/pfb from main to local files to ensure metrics
-#D Todo : Wybo's help system
+#D Todo : Wybo's help system
#D Todo : list of encodings [texnansi, ec, textext]
-#D Thanks to George N. White III for solving a couple of bugs.
-#D Thanks to Adam T. Lindsay for adding Open Type support.
+#D Thanks to George N. White III for solving a couple of bugs.
+#D Thanks to Adam T. Lindsay for adding Open Type support.
use strict ;
@@ -40,26 +40,48 @@ use Getopt::Long ;
$Getopt::Long::passthrough = 1 ; # no error message
$Getopt::Long::autoabbrev = 1 ; # partial switch accepted
-# Unless a user has specified an installation path, we take
+# Unless a user has specified an installation path, we take
# the dedicated font path or the local path.
## $dosish = ($Config{'osname'} =~ /dos|mswin/i) ;
my $dosish = ($Config{'osname'} =~ /^(ms)?dos|^os\/2|^(ms|cyg)win/i) ;
-my $installpath = "" ; my @searchpaths = () ;
+my $IsWin32 = ($^O =~ /MSWin32/i);
+
+BEGIN {
+ $IsWin32 = ($^O =~ /MSWin32/i);
+
+ if ($IsWin32) {
+ require Win32::API; import Win32::API;
+ }
+}
+
+
+sub GetShortPathName {
+ my ($filename) = @_;
+ return $filename unless ($IsWin32) ;
+ my $GetShortPathName = new Win32::API('kernel32', 'GetShortPathName', 'PPN', 'N');
+ if(not defined $GetShortPathName) {
+ die "Can't import API GetShortPathName: $!\n";
+ }
+ my $buffer = " " x 260;
+ my $len = $GetShortPathName->Call($filename, $buffer, 260);
+ return substr($buffer, 0, $len); }
+
+my $installpath = "" ; my @searchpaths = () ;
if (defined($ENV{TEXMFLOCAL})) { $installpath = "TEXMFLOCAL" }
if (defined($ENV{TEXMFFONTS})) { $installpath = "TEXMFFONTS" }
-# ($installpath eq "") { $installpath = "TEXMFFONTS" } # redundant
-if ($installpath eq "") { $installpath = "TEXMFLOCAL" } # redundant
+# ($installpath eq "") { $installpath = "TEXMFFONTS" } # redundant
+if ($installpath eq "") { $installpath = "TEXMFLOCAL" } # redundant
@searchpaths = ('TEXMFFONTS','TEXMFLOCAL','TEXMFMAIN') ;
my $encoding = "texnansi" ;
my $vendor = "" ;
my $collection = "" ;
-my $fontroot = "" ; #/usr/people/gwhite/texmf-fonts" ;
+my $fontroot = "" ; #/usr/people/gwhite/texmf-fonts" ;
my $help = 0 ;
my $makepath = 0 ;
my $show = 0 ;
@@ -76,15 +98,15 @@ my $virtual = 0 ;
my $novirtual = 0 ;
my $listing = 0 ;
my $remove = 0 ;
-my $expert = 0 ;
+my $expert = 0 ;
my $fontsuffix = "" ;
my $namesuffix = "" ;
my $batch = "" ;
-my $weight = "" ;
-my $width = "" ;
+my $weight = "" ;
+my $width = "" ;
my $preproc = 0 ; # atl: formerly OpenType switch
my $variant = "" ; # atl: encoding variant
@@ -124,24 +146,24 @@ my $lcdf = "" ; # atl: trigger for lcdf otftotfm
"weight=s" => \$weight,
"width=s" => \$width,
"expert" => \$expert,
- "preproc" => \$preproc, # atl: trigger conversion to pfb
+ "preproc" => \$preproc, # atl: trigger conversion to pfb
"lcdf" => \$lcdf ) ; # atl: trigger use of lcdf fonttoools
-# for/from Fabrice:
+# for/from Fabrice:
my $own_path = "$FindBin::Bin/" ;
$FindBin::RealScript =~ m/([^\.]*)(\.pl|\.bat|\.exe|)/io ;
my $own_name = $1 ;
my $own_type = $2 ;
-my $own_stub = "" ;
-if ($own_type =~ /pl/oi) { $own_stub = "perl " }
+my $own_stub = "" ;
+if ($own_type =~ /pl/oi) { $own_stub = "perl " }
-# so we can use both combined
+# so we can use both combined
if ($lcdf) { $novirtual = 1 }
-if (!$novirtual) { $virtual = 1 }
+if (!$novirtual) { $virtual = 1 }
-# A couple of routines.
+# A couple of routines.
sub report
{ my $str = shift ;
@@ -156,62 +178,65 @@ sub error
report "--help : show some more info" ;
exit }
-# The banner.
+# The banner.
print "\n" ;
report ("TeXFont 1.8 - ConTeXt / PRAGMA ADE 2000-2003") ;
print "\n" ;
-# Handy for scripts: one can provide a preferred path, if it
+# Handy for scripts: one can provide a preferred path, if it
# does not exist, the current path is taken.
-
+
if (!(-d $sourcepath)&&($sourcepath ne 'auto')) { $sourcepath = "." }
-# Let's make multiple masters if requested.
+# Let's make multiple masters if requested.
-sub create_mm_font
- { my ($name,$weight,$width) = @_ ; my $flag = my $args = my $tags = "" ;
- if ($name ne "")
+sub create_mm_font
+ { my ($name,$weight,$width) = @_ ; my $flag = my $args = my $tags = "" ;
+ my $ok ;
+ if ($name ne "")
{ report ("mm source file : $name") }
else
{ error ("missing mm source file") }
- if ($weight ne "")
+ if ($weight ne "")
{ report ("weight : $weight") ;
- $flag .= " --weight=$weight " ;
+ $flag .= " --weight=$weight " ;
$tags .= "-weight-$weight" }
- if ($width ne "")
+ if ($width ne "")
{ report ("width : $width") ;
- $flag .= " --width=$width " ;
+ $flag .= " --width=$width " ;
$tags .= "-width-$width" }
- error ("no specification given") if ($tags eq "") ;
- error ("no amfm file found") unless (-f "$sourcepath/$name.amfm") ;
- error ("no pfb file found") unless (-f "$sourcepath/$name.pfb") ;
- $args = "$flag --precision=5 --kern-precision=0 --output=$sourcepath/$name$tags.afm" ;
- my $ok = `mmafm $args $sourcepath/$name.amfm` ; chomp $ok ;
- if ($ok ne "") { report ("warning $ok") }
- $args = "$flag --precision=5 --output=$sourcepath/$name$tags.pfb" ;
- my $ok = `mmpfb $args $sourcepath/$name.pfb` ; chomp $ok ;
- if ($ok ne "") { report ("warning $ok") }
+ error ("no specification given") if ($tags eq "") ;
+ error ("no amfm file found") unless (-f "$sourcepath/$name.amfm") ;
+ error ("no pfb file found") unless (-f "$sourcepath/$name.pfb") ;
+ $args = "$flag --precision=5 --kern-precision=0 --output=$sourcepath/$name$tags.afm" ;
+ $ok = `mmafm $args $sourcepath/$name.amfm` ; chomp $ok ;
+ if ($ok ne "") { report ("warning $ok") }
+ $args = "$flag --precision=5 --output=$sourcepath/$name$tags.pfb" ;
+ $ok = `mmpfb $args $sourcepath/$name.pfb` ; chomp $ok ;
+ if ($ok ne "") { report ("warning $ok") }
report ("mm result file : $name$tags") }
if (($weight ne "")||($width ne ""))
{ create_mm_font($ARGV[0],$weight,$width) ;
- exit }
+ exit }
-# go on
+# go on
-if (($listing||$remove)&&($sourcepath eq "."))
- { $sourcepath = "auto" }
+if (($listing||$remove)&&($sourcepath eq "."))
+ { $sourcepath = "auto" }
if ($fontroot eq "")
- { if ($dosish)
+ { if ($dosish)
{ $fontroot = `kpsewhich --expand-path=\$$installpath` }
- else
+ else
{ $fontroot = `kpsewhich --expand-path=\\\$$installpath` }
chomp $fontroot }
-if ($test)
- { $vendor = $collection = "test" ;
+$fontroot = &GetShortPathName($fontroot);
+
+if ($test)
+ { $vendor = $collection = "test" ;
$install = 1 }
if (($slant ne "") && ($slant !~ /\d/)) { $slant = "0.167" }
@@ -227,7 +252,7 @@ if ($encoding =~ /default/oi) { $encoding = "texnansi" }
my $lcfontroot = lc $fontroot ;
-# Test for help asked.
+# Test for help asked.
if ($help)
{ report "--fontroot=path : texmf font root (default: $lcfontroot)" ;
@@ -253,17 +278,17 @@ if ($help)
report "--show : run tex on texfont.tex" ;
print "\n" ;
report "--batch : process given batch file" ;
- print "\n" ;
- report "--weight : multiple master weight" ;
- report "--width : multiple master width" ;
- print "\n" ;
- report "--expert : also handle expert fonts" ;
+ print "\n" ;
+ report "--weight : multiple master weight" ;
+ report "--width : multiple master width" ;
+ print "\n" ;
+ report "--expert : also handle expert fonts" ;
print "\n" ;
report "--preproc : pre-process ttf/otf, converting them to pfb" ;
report "--lcdf : use lcdf fonttools to create virtual encoding" ;
exit }
-if (($batch)||($ARGV[0] =~ /.+\.dat$/io))
+if (($batch)||(($ARGV[0]) && ($ARGV[0] =~ /.+\.dat$/io)))
{ my $batchfile = $ARGV[0] ;
unless (-f $batchfile)
{ if ($batchfile !~ /\.dat$/io) { $batchfile .= ".dat" } }
@@ -274,18 +299,18 @@ if (($batch)||($ARGV[0] =~ /.+\.dat$/io))
error ("unknown batch file $batchfile") unless -e $batchfile ;
report ("processing batch file : $batchfile") ;
my $select = (($vendor ne "")||($collection ne "")) ;
- my $selecting = 0 ;
+ my $selecting = 0 ;
if (open(BAT, $batchfile))
{ while (<BAT>)
{ chomp ;
next if (/^\s*$/io) ;
- if ($select)
- { if ($selecting)
+ if ($select)
+ { if ($selecting)
{ if (/^\s*[\#\%]/io) { if (!/\-\-/o) { last } else { next } } }
- elsif ((/^\s*[\#\%]/io)&&(/$vendor/i)&&(/$collection/i))
- { $selecting = 1 ; next }
- else
- { next } }
+ elsif ((/^\s*[\#\%]/io)&&(/$vendor/i)&&(/$collection/i))
+ { $selecting = 1 ; next }
+ else
+ { next } }
else
{ next if (/^\s*[\#\%]/io) ;
next unless (/\-\-/oi) }
@@ -293,7 +318,8 @@ if (($batch)||($ARGV[0] =~ /.+\.dat$/io))
s/(--en.*\=)\?/$1$encoding/io ;
report ("batch line : $_") ;
# system ("perl $0 --fontroot=$fontroot $_") }
- system ("$own_stub$own_path$own_name$own_type --fontroot=$fontroot $_") }
+ my $own_quote = ( $own_path =~ m/^[^\"].* / ? "\"" : "" );
+ system ("$own_stub$own_quote$own_path$own_name$own_type$own_quote --fontroot=$fontroot $_") }
close (BAT) }
exit }
@@ -311,13 +337,13 @@ if ($varlabel ne "")
my $identifier = "$encoding$varlabel-$vendor-$collection" ;
-my $outlinepath = $sourcepath ; my $path = "" ;
+my $outlinepath = $sourcepath ; my $path = "" ;
if ($sourcepath eq "auto")
{ foreach my $root (@searchpaths)
- { if ($dosish)
+ { if ($dosish)
{ $path = `kpsewhich -expand-path=\$$root` }
- else
+ else
{ $path = `kpsewhich -expand-path=\\\$$root` }
chomp $path ;
if ($preproc)
@@ -335,8 +361,8 @@ if ($sourcepath eq "auto")
{ # $install = 0 ; # no copy needed
$makepath = 1 ; # make on local if needed
my @files = glob("$sourcepath/*.afm") ;
- if ($preproc)
- { @files = glob("$sourcepath/*.otf") ;
+ if ($preproc)
+ { @files = glob("$sourcepath/*.otf") ;
report("locating : otf files") }
unless (@files)
{ @files = glob("$sourcepath/*.ttf") ;
@@ -373,12 +399,12 @@ if ($sourcepath eq "auto")
{ report ("removing : $encoding$varlabel$typ-$file.$sub") ;
unlink $nam } } } }
my $nam = "$encoding$varlabel-$vendor-$collection.tex" ;
- if (-e $nam)
+ if (-e $nam)
{ report ("removing : $nam") ;
unlink "$nam" }
- my $mapfile = "$encoding$varlabel-$vendor-$collection" ;
+ my $mapfile = "$encoding$varlabel-$vendor-$collection" ;
my $maproot = "$fontroot/pdftex/config/";
- if (-e "$maproot$mapfile.map")
+ if (-e "$maproot$mapfile.map")
{ report ("renaming : $mapfile.map -> $mapfile.bak") ;
unlink "$maproot$mapfile.bak" ;
rename "$maproot$mapfile.map", "$maproot$mapfile.bak" }
@@ -400,11 +426,12 @@ my $encpath = "$fontroot/dvips/local" ;
# are not on local path ! ! ! !
-foreach my $path ($afmpath, $pfbpath)
- { my @gzipped = <$path/*.gz> ;
- foreach my $file (@gzipped)
- { system ("gzip -d $file") }
- system ("mktexlsr $fontroot") } # needed ?
+foreach my $path ($afmpath, $pfbpath)
+ { my @gzipped = <$path/*.gz> ;
+ foreach my $file (@gzipped)
+ { print "file = $file\n";
+ system ("gzip -d $file") } }
+system ("mktexlsr $fontroot"); # needed ?
sub do_make_path
{ my $str = shift ; mkdir $str, 0755 unless -d $str }
@@ -442,7 +469,7 @@ my $bakfile = "$identifier.bak" ;
my $texfile = "$identifier.tex" ;
report "encoding vector : $encoding" ;
-if ($variant) { report "encoding variant : $variant" }
+if ($variant) { report "encoding variant : $variant" }
report "vendor name : $vendor" ;
report " source path : $sourcepath" ;
report "font collection : $collection" ;
@@ -458,7 +485,7 @@ my $runpath = $sourcepath ;
my @files ;
sub globafmfiles
- { my ($runpath, $pattern) = @_ ;
+ { my ($runpath, $pattern) = @_ ;
my @files = glob("$runpath/$pattern.afm") ;
if ($preproc && !$lcdf)
{ @files = glob("$runpath/$pattern.*tf") ;
@@ -468,17 +495,17 @@ sub globafmfiles
report("locating ttf files : using pattern $pattern") }
# if ($lcdf) { $extension = "otf" }
}
- if (@files) # also elsewhere
+ if (@files) # also elsewhere
{ report("locating afm files : using pattern $pattern") }
else
{ @files = glob("$runpath/$pattern.ttf") ;
if (@files)
- { report("locating afm files : using ttf files") ;
+ { report("locating afm files : using ttf files") ;
$extension = "ttf" ;
- foreach my $file (@files)
- { $file =~ s/\.ttf$//io ;
- report ("generating afm file : $file.afm") ;
- system("ttf2afm $file.ttf -o $file.afm") }
+ foreach my $file (@files)
+ { $file =~ s/\.ttf$//io ;
+ report ("generating afm file : $file.afm") ;
+ system("ttf2afm $file.ttf -o $file.afm") }
@files = glob("$runpath/$pattern.afm") }
else # try doing the pre-processing earlier
{ report("locating afm files : using otf files") ;
@@ -487,7 +514,7 @@ sub globafmfiles
foreach my $file (@files)
{ $file =~ s/\.otf$//io ;
report ("generating afm file : $file.afm") ;
- preprocess_font("$file.otf", "$file.bdf") ;
+ preprocess_font("$file.otf", "$file.bdf") ;
if ($preproc)
{ system("cfftot1 --output=$file.pfb $file.otf") ;
report("converting : $file.otf to $file.pfb") ;
@@ -498,7 +525,7 @@ sub globafmfiles
else
{ @files = glob("$runpath/$pattern.afm") }
}
- }
+ }
return @files }
@@ -527,12 +554,12 @@ sub copy_files
if ($install)
{ copy_files("afm",$sourcepath,$afmpath) ;
-# copy_files("tfm",$sourcepath,$tfmpath) ; # raw supplied names
+# copy_files("tfm",$sourcepath,$tfmpath) ; # raw supplied names
copy_files("pfb",$outlinepath,$pfbpath) ;
- if ($extension eq "ttf")
+ if ($extension eq "ttf")
{ make_path("truetype") ;
copy_files("ttf",$sourcepath,$ttfpath) }
- if ($extension eq "otf")
+ if ($extension eq "otf")
{ make_path("truetype") ;
copy_files("otf",$sourcepath,$ttfpath) } }
@@ -583,8 +610,8 @@ if ($tex)
print TEX "\\loadmapfile[$mapfile]\n" ;
print TEX "\n" ;
print TEX "\\starttext\n" }
- else
- { print TEX "$texdata" ;
+ else
+ { print TEX "$texdata" ;
print TEX "\n\%appended section\n\n\\page\n\n" } }
my $shape = "" ;
@@ -649,7 +676,7 @@ $use = "$encoding$varlabel-" ; $raw = $use . "raw-" ;
my $encfil = "" ;
-if ($encoding ne "") # evt -progname=context
+if ($encoding ne "") # evt -progname=context
{ $encfil = `kpsewhich -progname=pdftex $encoding$varlabel.enc` ;
chomp $encfil ; if ($encfil eq "") { $encfil = "$encoding$varlabel.enc" } }
@@ -667,19 +694,19 @@ sub preprocess_font
foreach my $file (@files)
{ my $option = my $slant = my $extend = my $vfstr = my $encstr = "" ;
- my $strange = "" ;
- $file = $file ;
+ my $strange = "" ; my ($rawfont,$cleanfont,$restfont) ;
+ $file = $file ;
my $ok = $file =~ /(.*)\/(.+?)\.(.*)/ ;
my ($path,$name,$suffix) = ($1,$2,$3) ;
# remove trailing _'s
my $fontname = $name ;
- my $cleanname = $fontname ;
+ my $cleanname = $fontname ;
$cleanname =~ s/\_//gio ;
# atl: pre-process an opentype or truetype file by converting to pfb
if ($preproc && !$lcdf)
{ unless (-f "$afmpath/$cleanname.afm" && -f "$pfbpath/$cleanname.pfb")
- { preprocess_font("$path/$name.$suffix", "$pfbpath/$cleanname.pfb") ;
- rename("$pfbpath/$cleanname.afm", "$afmpath/$cleanname.afm")
+ { preprocess_font("$path/$name.$suffix", "$pfbpath/$cleanname.pfb") ;
+ rename("$pfbpath/$cleanname.afm", "$afmpath/$cleanname.afm")
|| error("couldn't move afm product of pre-process.") }
$path = $afmpath ;
$file = "$afmpath/$cleanname.afm" }
@@ -688,7 +715,7 @@ foreach my $file (@files)
{ unlink "$raw$cleanname$fontsuffix.$suf" ;
unlink "$use$cleanname$fontsuffix.$suf" }
unlink "texfont.log" ;
- # set switches
+ # set switches
if ($encoding ne "")
{ $encstr = " -T $encfil" }
if ($caps ne "")
@@ -703,13 +730,13 @@ foreach my $file (@files)
unlink $fileafm }
else
{ $font = `afm2tfm $file -p texnansi.enc texfont.tfm` }
- unlink "texfont.tfm" ;
- if ($font =~ /(math|expert)/io) { $strange = lc $1 }
- my ($rawfont,$cleanfont,$restfont) = split(/\s/,$font) ;
+ unlink "texfont.tfm" ;
+ if ($font =~ /(math|expert)/io) { $strange = lc $1 }
+ ($rawfont,$cleanfont,$restfont) = split(/\s/,$font) ;
$cleanfont =~ s/\_/\-/goi ;
$cleanfont =~ s/\-+$//goi ;
- print "\n" ;
- if (($strange eq "expert")&&($expert))
+ print "\n" ;
+ if (($strange eq "expert")&&($expert))
{ report ("font identifier : $cleanfont$namesuffix -> $strange -> tfm") }
elsif ($strange ne "")
{ report ("font identifier : $cleanfont$namesuffix -> $strange -> skipping") }
@@ -717,8 +744,8 @@ foreach my $file (@files)
{ report ("font identifier : $cleanfont$namesuffix -> text -> tfm + vf") }
else
{ report ("font identifier : $cleanfont$namesuffix -> text -> tfm") }
- # don't handle strange fonts
- if ($strange eq "")
+ # don't handle strange fonts
+ if ($strange eq "")
{ # atl: experimental support for lcdf otftotfm
if ($lcdf && $extension eq "otf")
{ # no vf, bypass afm, use otftotfm to get encoding and tfm
@@ -736,13 +763,13 @@ foreach my $file (@files)
{ report ("renaming : $encout -> $use$cleanfont.bak") ;
unlink "$encpath/$use$cleanfont.bak" ;
rename $encout, "$encpath/$use$cleanfont.bak" }
- unlink "texfont.map" ;
+ unlink "texfont.map" ;
$tfmout = "$use$cleanfont" ;
my $otfcommand = "otftotfm -a $varstr $encstr $shape --name=\'$tfmout\' --encoding-dir=\'$encpath/\' --tfm-dir=\'$tfmpath/\' --vf-dir=\'$vfpath/\' --no-type1 --map-file=./texfont.map \'$file\'" ;
print "$otfcommand\n" ;
system("$otfcommand") ;
# $namesuffix = "--base" ; #atl: lcdf currently appends --base to the filename...sometimes
- $encfil = $encout }
+ $encfil = $encout }
else
{ # generate tfm and vpl, $file is on afm path
report "generating raw tfm/vpl : $raw$cleanname$fontsuffix (from $cleanname)" ;
@@ -757,25 +784,25 @@ foreach my $file (@files)
if ($virtual)
{ report "generating new vf : $use$cleanname$fontsuffix (from $raw$cleanname)" ;
my $ok = `vptovf $raw$cleanname$fontsuffix.vpl $use$cleanname$fontsuffix.vf $use$cleanname$fontsuffix.tfm ` }
- else
+ else
{ report "generating new tfm : $use$cleanname$fontsuffix (from $raw$cleanname)" ;
my $ok = `pltotf $raw$cleanname$fontsuffix.vpl $use$cleanname$fontsuffix.tfm ` } } }
- elsif (-e "$sourcepath/$cleanname.tfm" )
+ elsif (-e "$sourcepath/$cleanname.tfm" )
{ report "using existing tfm : $cleanname.tfm" }
- elsif (($strange eq "expert")&&($expert))
+ elsif (($strange eq "expert")&&($expert))
{ report "creating tfm file : $cleanname.tfm" ;
- my $font = `afm2tfm $file $cleanname.tfm` }
- else
+ my $font = `afm2tfm $file $cleanname.tfm` }
+ else
{ report "use supplied tfm : $cleanname" }
# report results
- my ($rawfont,$cleanfont,$restfont) = split(/\s/,$font) ;
+ ($rawfont,$cleanfont,$restfont) = split(/\s/,$font) ;
$cleanfont =~ s/\_/\-/goi ;
$cleanfont =~ s/\-+$//goi ;
# copy files
my $usename = "$use$cleanname$fontsuffix" ;
my $rawname = "$raw$cleanname$fontsuffix" ;
if ($lcdf eq "")
- { if ($strange ne "")
+ { if ($strange ne "")
{ unlink "$vfpath/$cleanname.vf", "$tfmpath/$cleanname.tfm" ;
copy ("$cleanname.tfm","$tfmpath/$cleanname.tfm") ;
# or when available, use vendor one :
@@ -788,10 +815,10 @@ foreach my $file (@files)
copy ("$usename.tfm","$tfmpath/$usename.tfm") }
else
{ unlink "$vfpath/$usename.vf", "$tfmpath/$usename.tfm" ;
- # slow but prevents conflicting vf's
- my $rubish = `kpsewhich $usename.vf` ; chomp $rubish ;
+ # slow but prevents conflicting vf's
+ my $rubish = `kpsewhich $usename.vf` ; chomp $rubish ;
if ($rubish ne "") { unlink $rubish }
- #
+ #
copy ("$usename.tfm","$tfmpath/$usename.tfm") } }
# cleanup
foreach my $suf ("tfm", "vf", "vpl")
@@ -806,16 +833,16 @@ foreach my $file (@files)
{ $option = "\"$option\" 4" }
else
{ $option = "4" }
- # adding cleanfont is kind of dangerous
- my $thename = my $str = my $theencoding = "" ;
- if ($strange ne "")
+ # adding cleanfont is kind of dangerous
+ my $thename = my $str = my $theencoding = "" ;
+ if ($strange ne "")
{ $thename = $cleanname ; $theencoding = "" ; }
elsif ($lcdf)
{ $thename = $usename ; $theencoding = " $encoding$varlabel-$cleanname.enc" }
- elsif ($virtual)
- { $thename = $rawname ; $theencoding = " $encoding$varlabel.enc" }
- else
- { $thename = $usename ; $theencoding = " $encoding$varlabel.enc" }
+ elsif ($virtual)
+ { $thename = $rawname ; $theencoding = " $encoding$varlabel.enc" }
+ else
+ { $thename = $usename ; $theencoding = " $encoding$varlabel.enc" }
# quit rest if no type 1 file
my $pfb_sourcepath = $sourcepath ;
$pfb_sourcepath =~ s@/afm/@/type1/@ ;
@@ -825,8 +852,8 @@ foreach my $file (@files)
(-e "$ttfpath/$fontname.$extension"))
{ if ($tex) { $report .= "missing file: \\type \{$fontname.pfb\}\n" }
report ("missing pfb file : $fontname.pfb") }
- # now add entry to map
- if ($strange eq "")
+ # now add entry to map
+ if ($strange eq "")
{ if ($extension eq "otf")
{ if ($lcdf)
{ my $mapline = "";
@@ -838,7 +865,7 @@ foreach my $file (@files)
{ $mapline = $_ ; last } }
close(ALTMAP) }
else
- { report("no mapfile from otftotfm : texfont.map") }
+ { report("no mapfile from otftotfm : texfont.map") }
if ($preproc)
{ $mapline =~ s/^(\S+)/$1 </;
$mapline =~ s/<<(\S+)\.otf$// }
@@ -858,27 +885,27 @@ foreach my $file (@files)
{ $str = "$thename $cleanfont < $fontname.$extension\n" }
if ($map) # check for redundant entries
{ $mapdata =~ s/^$thename\s.*?$//gmis ;
- $maplist .= $str ;
+ $maplist .= $str ;
$mapdata .= $str }
# write lines to tex file
- if (($strange eq "expert")&&($expert))
+ if (($strange eq "expert")&&($expert))
{ $fntlist .= "\\definefontsynonym[$cleanfont$namesuffix][$cleanname] \% expert\n" }
- elsif ($strange ne "")
+ elsif ($strange ne "")
{ $fntlist .= "\%definefontsynonym[$cleanfont$namesuffix][$cleanname]\n" }
else
{ $fntlist .= "\\definefontsynonym[$cleanfont$namesuffix][$usename][encoding=$encoding]\n" }
next unless $tex ;
- if (($strange eq "expert")&&($expert))
+ if (($strange eq "expert")&&($expert))
{ $texlist .= "\\ShowFont[$cleanfont$namesuffix][$cleanname]\n" }
- elsif ($strange ne "")
+ elsif ($strange ne "")
{ $texlist .= "\%ShowFont[$cleanfont$namesuffix][$cleanname]\n" }
else
{ $texlist .= "\\ShowFont[$cleanfont$namesuffix][$usename][$encoding]\n" } }
-if ($map)
+if ($map)
{ report ("updating map file : $mapfile") ;
- while ($mapdata =~ s/\n\n+/\n/mois) {} ;
- $mapdata =~ s/^\s*//gmois ;
+ while ($mapdata =~ s/\n\n+/\n/mois) {} ;
+ $mapdata =~ s/^\s*//gmois ;
print MAP $mapdata }
if ($tex)
@@ -925,7 +952,7 @@ print "\n" ; report ("generating : ls-r databases") ;
print "\n" ; system ("mktexlsr $fontroot") ; print "\n" ;
-# Process the test file.
+# Process the test file.
if ($show) { system ("texexec --once --silent $texfile") }
diff --git a/context/perltk/texutil.pl b/context/perltk/texutil.pl
index 79c9979ec..142ff4cd9 100644
--- a/context/perltk/texutil.pl
+++ b/context/perltk/texutil.pl
@@ -1,13 +1,9 @@
eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $argv:q'
if 0;
-#D We started with a hack provided by Thomas Esser. This
-#D expression replaces the unix specific line \type
-#D {#!/usr/bin/perl}.
-
#D \module
#D [ file=texutil.pl,
-#D version=1999.03.14, % 1999.11.05
+#D version=2003.09.16,
#D title=pre- and postprocessing utilities,
#D subtitle=\TEXUTIL,
#D author=Hans Hagen,
@@ -25,6 +21,10 @@ eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $
# Thanks to Sebastian Rahtz for the eps to PDF method
# Thanks to Fabrice Popineau for windows bin code
+#D We started with a hack provided by Thomas Esser. This
+#D expression replaces the unix specific line \type
+#D {#!/usr/bin/perl}.
+
# undocumented:
#
# --analyze file.pdf : reports some statistics
@@ -40,7 +40,7 @@ eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $
#D binary version, like scanning illustrations other than \EPS.
#D I would suggest to keep an eye on the version number:
-$Program = "TeXUtil 7.5 - ConTeXt / PRAGMA ADE 1992-2003" ;
+$Program = "TeXUtil 8.0 - ConTeXt / PRAGMA ADE 1992-2003" ;
#D By the way, this is my first \PERL\ script, which means
#D that it will be improved as soon as I find new and/or more
@@ -125,6 +125,7 @@ my $dosish = ($Config{'osname'} =~ /^(ms)?dos|^os\/2|^(ms|cyg)win/i) ;
"purgeall" => \$PurgeAllFiles,
"analyze" => \$AnalyzeFile,
"filter" => \$FilterPages,
+ "sciteapi" => \$SciteApi,
"help" => \$ProcessHelp,
"silent" => \$ProcessSilent,
"verbose" => \$ProcessVerbose,
@@ -800,6 +801,7 @@ sub InitializeKeys
{ my $p = checked_path($_) . 'kpsewhich' ;
if ((-e $p)||(-e $p . '.exe'))
{ $kpsewhich = $p ; last } } }
+ $kpsewhich = "\"$kpsewhich\"" if ($kpsewhich =~ m/^[^\"].* /) ;
while (<TEX>)
{ chomp ;
my $Filter ;
@@ -2690,12 +2692,12 @@ my @texonlysuffixes =
my @texnonesuffixes =
("tuo","tub","top") ;
-if ($PurgeAllFiles)
- { push @forsuresuffixes, @texnonesuffixes ; @texnonesuffixes = [] }
+if ($PurgeAllFiles)
+ { push @forsuresuffixes, @texnonesuffixes ; @texnonesuffixes = [] }
sub PurgeFiles # no my in foreach
{ my $pattern = $ARGV[0] ; my $strippedname ;
- my @files = () ;
+ my @files = () ;
if ($pattern eq '')
{ $pattern = "*.*" ;
@files = glob $pattern }
@@ -2704,7 +2706,7 @@ sub PurgeFiles # no my in foreach
@files = glob $pattern ;
$pattern = $ARGV[0] . ".*" ;
push(@files,glob $pattern) }
- @files = sort @files ;
+ @files = sort @files ;
print " purging files : $pattern\n\n" ;
foreach $file (@dontaskprefixes)
{ if (-e $file)
@@ -2773,21 +2775,63 @@ sub AnalyzeFile
print " links : $Link ($Named named / $Script scripts / $Cross files)\n" ;
print " widgets : $Widget\n" }
-sub FilterPages # temp feature / no reporting
+sub FilterPages # temp feature / no reporting
{ my $filename = $ARGV[0] ;
- return unless "$filename.pdf" || -f "$filename.pdf" ;
- $old = '' ; $num = 0 ;
- if (open(PDF,"<$filename.pdf") && open(TUO,">>$filename.tuo"))
- { binmode PDF ;
- while (<PDF>)
- { chomp ;
- if (($_ eq '/Type /Page') && ($old =~ /^(\d+)\s+0\s+obj/o))
- { ++$n ; $p = $1 ;
+ return unless -f "$filename.pdf" ;
+ $old = '' ; $num = 0 ;
+ if (open(PDF,"<$filename.pdf") && open(TUO,">>$filename.tuo"))
+ { binmode PDF ;
+ while (<PDF>)
+ { chomp ;
+ if (($_ eq '/Type /Page') && ($old =~ /^(\d+)\s+0\s+obj/o))
+ { ++$n ; $p = $1 ;
print TUO "\\objectreference{PDFP}{$n}{$p}{$n}\n" }
else
- { $old = $_ } }
- close(PDF) ;
- close(TUO) } }
+ { $old = $_ } }
+ close(PDF) ;
+ close(TUO) } }
+
+sub GenerateSciteApi # ugly, not generic, but fast
+ { my $filename = $ARGV[0] ;
+ my $commands = 0 ;
+ my $environments = 0 ;
+ my %collection ;
+ return unless -f "$filename.xml" ;
+ print " scite api file : $filename-scite.api\n" ;
+ print " scite lexer file : $filename-scite.properties\n" ;
+ if (open(XML,"<$filename.xml"))
+ { while (<XML>)
+ { chomp ;
+ if (/\<cd\:command\s+name=\"(.*?)\"\s+type=\"environment\".*?\>/o)
+ { $environments++ ;
+ $collection{"start$1"} = '' ;
+ $collection{"stop$1"} = '' }
+ elsif (/\<cd\:command\s+name=\"(.*?)\".*?\>/o)
+ { $commands++ ;
+ $collection{"$1"} = '' } }
+ close(XML) ;
+ if (open(API,">$filename-scite.api"))
+ { foreach $name (keys %collection)
+ { print API "\\$name\n" }
+ print API "\n" ;
+ close(API) }
+ if (open(API,">$filename-scite.properties"))
+ { my $i = 0 ;
+ my $interface = 'en' ;
+ if ($filename =~ /cont\-(..)/o)
+ { $interface = $1 }
+ print API "keywordclass.macros.context.$interface=" ;
+ foreach $name (keys %collection)
+ { if ($i==0)
+ { print API "\\\n " ;
+ $i = 5 }
+ else
+ { $i-- }
+ print API "$name " }
+ print API "\n" ;
+ close(API) } }
+ print " commands : $commands\n" ;
+ print " environments : $environments\n" }
#D We're done! All this actions and options are organized in
#D one large conditional:
@@ -2807,6 +2851,7 @@ elsif ($PurgeFiles ) { PurgeFiles }
elsif ($PurgeAllFiles ) { PurgeFiles }
elsif ($AnalyzeFile ) { AnalyzeFile }
elsif ($FilterPages ) { FilterPages }
+elsif ($SciteApi ) { GenerateSciteApi }
elsif ($ProcessHelp ) { ShowHelpInfo } # redundant
else { ShowHelpInfo }
diff --git a/tex/context/base/cont-log.tex b/tex/context/base/cont-log.tex
index e2f61e819..07b208b2f 100644
--- a/tex/context/base/cont-log.tex
+++ b/tex/context/base/cont-log.tex
@@ -8,16 +8,16 @@
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
\writestatus{loading}{Context TeX Logos}
%D The system that is used to typeset this text is called \TEX,
%D typeset with an lowered~E. From te beginning of \TEX,
%D authors of macro packages adapted this raising and lowering
-%D style. In this module we define some of those logos.
-%D Watch the \type{cmr} detection hack.
+%D style. In this module we define some of those logos.
+%D Watch the \type{cmr} detection hack.
\unprotect
@@ -33,7 +33,7 @@
{\doifCMRfontelse{\kern}{\scratchdimen=}}
% \def\TeX
-% {T%
+% {T%
% \kern-.1667em\lower.5ex\hbox{E}%
% \kern-.125emX}
@@ -41,7 +41,7 @@
{{\setbox\scratchbox\hbox{M}\kern#1\wd\scratchbox}}
\def\TeX
- {T%
+ {T%
\Mkern{-.1667}\lower.5ex\hbox{E}%
\Mkern{-.125}X}
@@ -64,7 +64,7 @@
% \kern-.30em\raise.3ex\hbox{\txx A}%
% \kern-.18em\TeX}
-\def\LaTeX % requested by erik frambach
+\def\LaTeX % requested by erik frambach
{{\setbox\scratchbox\hbox{L}%
\scratchdimen\ht\scratchbox
\setbox\scratchbox\hbox{\txx A}%
@@ -79,7 +79,7 @@
\kern-.1em\lower.5ex\hbox{L}%
\kern-.075emE}
-\def\PiCTeX%
+\def\PiCTeX
{P%
\kern-.12em\lower.5ex\hbox{I}%
\kern-.075em C%
@@ -88,27 +88,41 @@
\def\AMSswitch#1%
{$\fam2\ifdim\korpsgrootte>1.1em\scriptstyle\fi#1$}
-\def\AmSTeX%
+\def\AmSTeX
{\AMSswitch A%
\kern-.1667em\lower.5ex\hbox{\AMSswitch M}%
\kern-.125em\AMSswitch S%
-\TeX}
-\def\LamSTeX%
+\def\LamSTeX
{L%
\kern-.4em\raise.3ex\hbox{\AMSswitch A}%
\kern-.25em\lower.4ex\hbox{\AMSswitch M}%
\kern-.1em{\AMSswitch S}%
-\TeX}
-\def\AmSLaTeX%
+\def\AmSLaTeX
{\AMSswitch A%
\kern-.1667em\lower.5ex\hbox{\AMSswitch M}%
\kern-.125em\AMSswitch S%
-\LaTeX}
+%D Alternative \CONTEXT\ logo, first Idris S.~Hamid's version:
+%D
+%D
+%D \def\Context
+%D {{\sc C\kern -.0667emo\kern -.0667emn\kern -.0549emt\kern
+%D -.1667em\lower.5ex\hbox {e}\kern -.125emx\kern -.0549emt}}
+%D
+%D I changed this into one that adapts itself:
+
+\def\Context
+ {{C\kern -.0667em\getscaledglyph{.8}\empty{O\kern -.0667emN\kern
+ -.0549emT\doifitalicelse{\kern-.1em}{\kern-.1667em}\lower.5ex\hbox
+ {E}\doifitalicelse\empty{\kern-.11em}X\kern-.055emT}}}
+
%D The \METAFONT\ and \METAPOST\ logos adapt themselves to the
-%D current fontsize, an ugly but usefull hack.
+%D current fontsize, an ugly but usefull hack.
\unexpanded\def\setMFPfont%
{\font\logofont=logo%
@@ -132,8 +146,8 @@
\let\logofont\nullfont
-\unexpanded\def\setMFPfont% more sensitive for low level changes
- {\font\logofont=logo%
+\unexpanded\def\setMFPfont% more sensitive for low level changes
+ {\font\logofont=logo%
\ifx\fontalternative\c!bf\else
\ifx\fontalternative\c!sl\else
\ifx\fontalternative\c!sl\else
@@ -143,34 +157,34 @@
10 at \currentfontscale\bodyfontsize
\logofont}
-%\unexpanded\def\MetaFont%
+%\unexpanded\def\MetaFont%
% {\hbox{\setMFPfont METAFONT}}
%
-%\unexpanded\def\MetaPost%
+%\unexpanded\def\MetaPost%
% {\hbox{\setMFPfont METAPOST}}
-\def\MetaHyphen% there is no hyphenchar in this font
+\def\MetaHyphen% there is no hyphenchar in this font
{\discretionary{\vrule\!!height.33em\!!depth-.27em\!!width.33em}{}{}}
-\unexpanded\def\MetaFont%
+\unexpanded\def\MetaFont%
{{\setMFPfont META\MetaHyphen FONT}}
-\unexpanded\def\MetaPost%
+\unexpanded\def\MetaPost%
{{\setMFPfont META\MetaHyphen POST}}
-\unexpanded\def\MetaFun%
+\unexpanded\def\MetaFun%
{MetaFun}
%D \macros
%D {TEX, METAFONT, METAPOST, METAFUN,
-%D PICTEX, TABLE,
-%D CONTEXT, PPCHTEX,
+%D PICTEX, TABLE,
+%D CONTEXT, PPCHTEX,
%D AMSTEX, LATEX, LAMSTEX}
-%D
-%D We define the funny written ones as well as th eless
-%D error prone upper case names (in \CONTEXT\ we tend to
-%D write all user defined commands, like abbreviations, in
-%D uppercase.)
+%D
+%D We define the funny written ones as well as th eless
+%D error prone upper case names (in \CONTEXT\ we tend to
+%D write all user defined commands, like abbreviations, in
+%D uppercase.)
\def\METAFONT {\MetaFont}
\def\METAPOST {\MetaPost}
@@ -189,7 +203,7 @@
%D \PiCTeX, \TaBlE, \ConTeXt, \PPCHTeX, \AmSTeX, \LaTeX,
%D \LamSTeX. We also define some logos for the programs that
%D we wrote and use at \PRAGMA: \TeX EDIT, \TeX FORM, \TeX
-%D ADRES, \TeX SPELL, \TeX UTIL and \TeX.
+%D ADRES, \TeX SPELL, \TeX UTIL and \TeX.
\def\TEXEDIT {\TeX edit}
\def\TEXFORM {\TeX form}
@@ -198,7 +212,7 @@
\def\TEXUTIL {\TeX util}
\def\TEXEXEC {\TeX exec}
-%D Some placeholders:
+%D Some placeholders:
\def\eTeX {\mathematics{\varepsilon}-\TeX}
\def\pdfTeX {pdf\TeX}
diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex
index 897d269d2..35a2aae12 100644
--- a/tex/context/base/cont-new.tex
+++ b/tex/context/base/cont-new.tex
@@ -17,6 +17,276 @@
\unprotect
+\newbox\nestednextbox \prependtoks \let\nextbox\nestednextbox \to \everybeforepagebody
+
+\def\dostartcolumnsetspan[#1][#2][#3]% [#3] gobbles space
+ {\endgraf % else rubish output if forgotten
+ \vskip \zeropoint % make sure otr is done, otherwise last line problems
+ \bgroup
+ \forgetall
+ \ifnum\columnsetlevel>\zerocount\else
+ % of course we needed a one-column fall back for tm
+ \columnsetspanhsize\hsize
+ \nofcolumns\plusone
+ \mofcolumns\plusone
+ \fi
+ \setupframedtexts[cs:#1]
+ [\c!breedte=\columnsetspanhsize,
+ \c!regelcorrectie=\v!uit,
+ \c!dieptecorrectie=\v!uit,
+ #2]%
+ % determine widths
+ \!!countc\framedtextparameter{cs:#1}\c!n
+ % \!!countd\numexpr(\nofcolumns-\mofcolumns+\plusone)%
+ \!!countd\nofcolumns
+ % n <= n of columns
+ \ifnum\!!countc>\!!countd \!!countc\!!countd \fi
+ \advance\!!countd -\mofcolumns
+ \advance\!!countd \plusone
+ % n <= n of available columns (alternative a)
+ \doif{\framedtextparameter{cs:#1}\c!variant}\v!a
+ {\ifnum\!!countc>\!!countd \!!countc\!!countd \fi}%
+ % here it all starts
+ \setcolumnsetspanhsize\mofcolumns\!!countc % a/b used
+ \hsize\columnsetspanhsize
+ \setbox\scratchbox\vbox\bgroup
+ \dostartframedtext[cs:#1][\v!geen]% geen nils placement
+ \vskip-\struttotal\par\verticalstrut\par
+ \ifnum\columnsetlevel>\zerocount
+ \framedtextparameter{cs:#1}\c!voor
+ \fi
+ \def\stopcolumnsetspan{\dostopcolumnsetspan{#1}}}
+
+\def\dostopcolumnsetspan#1%
+ {\par
+ \verticalstrut
+ \kern-2\struttotal
+ \verticalstrut
+ \ifnum\columnsetlevel>\zerocount
+ \doifsomething{\framedtextparameter{cs:#1}\c!na}
+ {\framedtextparameter{cs:#1}\c!na
+ \kern\zeropoint}% otherwise blanks disappear, better be a switch
+ \else
+ \endgraf
+ \fi
+ \dostopframedtext
+ \egroup
+ % frozen keeps grid snapping okay
+ \setbox\scratchbox\frozenhbox to \hsize
+ {\dontcomplain
+ \alignedline{\framedtextparameter{cs:#1}\c!plaats}\v!midden
+ {\lower\strutdepth\box\scratchbox}}%
+ \dp\scratchbox\zeropoint % else wrong snap insidefloat
+%
+% to be tested first:
+%
+% \setbox\scratchbox\frozenhbox to \hsize
+% {\dontcomplain
+% \chardef\alignstrutmode\zerocount
+% \alignedline{\framedtextparameter{cs:#1}\c!plaats}\v!midden
+% {\box\scratchbox}}%
+%
+ \ifinsidefloat
+ \box\scratchbox
+ \else\ifnum\columnsetlevel>\zerocount
+ % we only set \columnsetspacing when asked for, else bottom problems
+ % don't change this any more (test naw)
+ \chardef\columnslotspacing\framedtextparameter{cs:#1}\c!nregels\relax
+ % todo: nboven/onder & \chardef\columnslotlocation2
+ %\OTRSETstoreincolumnslotHERE\scratchbox
+ \edef\floatmethod{\framedtextparameter{cs:#1}\c!default}%
+ \@EA\uppercasestring\floatmethod\to\floatmethod
+ % todo : \v!hier -> here enzovoorts
+ \OTRSETstoreincolumnslot\floatmethod\scratchbox
+ % watch out: no \dochecknextindentation{tag}
+ \checknextindentation[\framedtextparameter{cs:#1}\c!springvolgendein]
+ \else
+ % of course we needed a one-column fall back for tm; brrr, the box has now too
+ % much height (try \ruledvbox); don't change this without testing techniek
+ \scratchdimen\ht\scratchbox
+ \advance\scratchdimen-\strutdp
+ \ht\scratchbox\scratchdimen
+ \framedtextparameter{cs:#1}\c!voor
+ \snaptogrid\vbox{\box\scratchbox}%
+ \framedtextparameter{cs:#1}\c!na
+ \fi\fi
+ \egroup
+ \endgraf}
+
+% will be a MyWay
+%
+% \setuplayout[grid=yes] \setupcaption[figure][inbetween=] \useMPlibrary[dum] \setupcolors[state=start]
+%
+% \starttext \showgrid \showstruts
+%
+% \input ward \placefigure{}{\externalfigure[dummy][width=.5\hsize,lines=1.4,grid=yes]}
+% \input ward \placefigure{}{\externalfigure[dummy][width=.5\hsize,lines=1.4,grid=fit]}
+% \input ward \placefigure{}{\externalfigure[dummy][width=.5\hsize,lines=1.4,grid=height]}
+% \input ward
+% \page
+% \input ward \placefigure{}{\externalfigure[dummy][width=.5\hsize,lines=1.5,grid=yes]}
+% \input ward \placefigure{}{\externalfigure[dummy][width=.5\hsize,lines=1.5,grid=fit]}
+% \input ward \placefigure{}{\externalfigure[dummy][width=.5\hsize,lines=1.5,grid=height]}
+% \input ward
+% \page
+% \input ward \placefigure{}{\externalfigure[dummy][width=.5\hsize,lines=1.6,grid=yes]}
+% \input ward \placefigure{}{\externalfigure[dummy][width=.5\hsize,lines=1.6,grid=fit]}
+% \input ward \placefigure{}{\externalfigure[dummy][width=.5\hsize,lines=1.6,grid=height]}
+% \input ward
+% \page
+% \input ward \placefigure[none]{}{\externalfigure[dummy][width=.5\hsize,lines=1.4,grid=yes]}
+% \input ward \placefigure[none]{}{\externalfigure[dummy][width=.5\hsize,lines=1.4,grid=fit]}
+% \input ward \placefigure[none]{}{\externalfigure[dummy][width=.5\hsize,lines=1.4,grid=height]}
+% \input ward
+% \page
+% \input ward \placefigure[none]{}{\externalfigure[dummy][width=.5\hsize,lines=1.5,grid=yes]}
+% \input ward \placefigure[none]{}{\externalfigure[dummy][width=.5\hsize,lines=1.5,grid=fit]}
+% \input ward \placefigure[none]{}{\externalfigure[dummy][width=.5\hsize,lines=1.5,grid=height]}
+% \input ward
+% \page
+% \input ward \placefigure[none]{}{\externalfigure[dummy][width=.5\hsize,lines=1.6,grid=yes]}
+% \input ward \placefigure[none]{}{\externalfigure[dummy][width=.5\hsize,lines=1.6,grid=fit]}
+% \input ward \placefigure[none]{}{\externalfigure[dummy][width=.5\hsize,lines=1.6,grid=height]}
+% \input ward
+%
+% \stoptext
+
+\let\@@efgrid\empty
+
+\def\dosetdimensionfiguresize#1#2#3%
+ {#1\relax
+ \doifsomething\@@efmaxbreedte
+ {\ifdim\figwid>\@@efmaxbreedte\global\figwid\@@efmaxbreedte#2\relax\fi}%
+ \doifsomething\@@efmaxhoogte
+ {\ifdim\fighei>\@@efmaxhoogte \global\fighei\@@efmaxhoogte #3\relax\fi}%
+ \processaction
+ [\@@efgrid]
+ [ \v!ja=>\getnoflines\fighei
+ \global\fighei\noflines\lineheight,
+ \v!hoogte=>\getrawnoflines\fighei
+ \global\fighei\noflines\lineheight
+ \global\advance\fighei\strutdepth,
+ \v!passend=>\getrawnoflines\fighei
+ \global\fighei\noflines\lineheight]}
+
+\def\splittblbox#1% #1 <> 0/2
+ {\ifinsidefloat
+ \unvbox#1%
+ \else
+ % spacing between rows gets lost in split
+ \setbox4\vbox
+ {\doifsomething\tbltbltussenwit{\blank[\tbltbltussenwit]}}%
+ \setbox2\vbox
+ {}%
+ \dorecurse\noftblheadlines
+ {\setbox0\vsplit#1 to \lineheight
+ \setbox2\vbox{\unvcopy2\unvcopy0}}%
+ \ifcase\noftblheadlines\else\unvcopy2\fi
+ \donefalse
+ \doloop
+ {\setbox0\vsplit#1 to \lineheight
+ \ifdim\pagegoal<\maxdimen
+ \setbox0\vbox{\unvbox0}%
+ \dimen0\ht0
+ \advance\dimen0\ht4
+ \advance\dimen0\pagetotal
+ \ifdim\dimen0>\pagegoal
+ \bgroup \pagina \egroup % make sure that local vars are kept
+ \ifcase\noftblheadlines\else\unvcopy2\fi
+ \fi
+ \fi
+ \ifdone
+ \doifsomething\tbltbltussenwit{\blank[\tbltbltussenwit]}%
+ \fi
+ \unvbox0
+ %\allowbreak
+ \bgroup
+ \scratchcounter\recurselevel
+ \advance\scratchcounter\noftblheadlines
+ \setupTBLcell{\number\scratchcounter}1
+ \ifx\@@tblsplitafter\relax
+ \allowbreak
+ \else
+ \doifelsenothing\@@tblsplitafter
+ \allowbreak
+ {\scratchcounter\realpageno
+ \@@tblsplitafter
+ \ifnum\scratchcounter<\realpageno
+ \ifcase\noftblheadlines\else\unvcopy2\fi
+ \fi}%
+ \fi
+ \egroup
+ \ifvoid#1 \exitloop \else \donetrue \fi}%
+ \fi}
+
+% \bTABLE[split=repeat]
+% \bTABLEhead
+% \bTR \bTH lxxxeft \eTH\bTD right \eTD\eTR
+% \eTABLEhead
+% \bTABLEbody
+% \dorecurse{100}{\bTR[after={\pagina[bigpreference]}] \bTD left \eTD\bTD right \eTD\eTR}
+% \dorecurse{100}{\bTR\bTD left \eTD\bTD right \eTD\eTR}
+% \eTABLEbody
+% \eTABLE
+
+% new, continuous blocks, \som \par \startdoorlopendblok ...
+
+\def\startdoorlopendblok % fo rspecial cases, don't change it too much
+ {\ifhmode\endgraf\nobreak\fi % don't remove the \nobreak
+ \dowithnextboxcontent
+ {\setlocalhsize \hsize\localhsize \forgetall}
+ {\bgroup
+ \forgeteverypar
+ \forgetparskip
+ \scratchdimen\nextboxht
+ \advance\scratchdimen\nextboxdp
+ \getnoflines\scratchdimen
+ \advance\scratchdimen-\strutheight
+ \setbox\nextbox\hbox{\lower\scratchdimen\box\nextbox}%
+ \ht\nextbox\strutheight
+ \dp\nextbox\strutdepth
+\setbox\nextbox\vbox
+ {\indent\box\nextbox
+ \endgraf
+ \nobreak
+ \advance\noflines\minusone
+ \dorecurse\noflines{\crlf\nobreak}}%
+\verticalstrut
+\endgraf
+\nobreak
+\offinterlineskip
+\kern-2\lineheight
+\nobreak
+\unvbox\nextbox
+ \prevdepth\strutdepth
+ % evt (eerst testen) een signal zodat een direct volgend blok goed gaat)
+ \egroup}
+ \vbox\bgroup
+ \insidefloattrue
+ \inhibitblank}
+
+\def\stopdoorlopendblok
+ {\egroup}
+
+\def\disablelanguagespecifics{\def\installcompoundcharacter##1 ##2{}}
+
+\appendtoks
+ \disablelanguagespecifics
+\to \everyenableXML
+
+\installoutput\discardpage
+ {\setbox\scratchbox\box\normalpagebox}
+
+\unexpanded\def\referencepagenumber[#1]%
+ {\doifelsenothing{#1}{?}% \prepare had got lost
+ {\preparepaginaprefix\??rf\paginaprefix\??rf[#1]\translatednumber[#1]}}
+
+\def\defineXMLstore {\doquadrupleargument\dodefineXMLstore[\saveXMLasdata]}
+\def\defineXMLgstore{\doquadrupleargument\dodefineXMLstore[\gsaveXMLasdata]}
+
+\def\dodefineXMLstore[#1][#2][#3][#4]% element attribute prefix % will become faster
+ {\defineXMLargument[#2][#3=\s!dummy]{#1{#4:\XMLop{#3}}}}
+
\def\OTRONEsometopsfloat[#1]%
{\ifdim\topinserted=\zeropoint
\topofinserttrue
@@ -914,7 +1184,7 @@
%D To be documented, \type {\includemenu[menu]}.
%D To be documented, \type {\emphbf} cum suis.
-
+
%D A prelude to strategies. Note for myself: overloads
%D previous stuff from local pragma test files.
@@ -1069,4 +1339,4 @@
\readfile {cont-loc} {} {}
-\endinput
+\endinput \ No newline at end of file
diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex
index cd6ab7dab..a6a049ad4 100644
--- a/tex/context/base/context.tex
+++ b/tex/context/base/context.tex
@@ -15,7 +15,7 @@
\catcode`\{=1 \catcode`\}=2
-\def\contextversion{2003.8.21}
+\def\contextversion{2003.9.25}
%D Welcome to the main module. When this module is ran through
%D \type{initex} or \type{tex -i} or \type{whatevertex} using
diff --git a/tex/context/base/core-box.tex b/tex/context/base/core-box.tex
index be7b7fb0e..7b2f4b624 100644
--- a/tex/context/base/core-box.tex
+++ b/tex/context/base/core-box.tex
@@ -11,20 +11,20 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-%D This module contains all kind of macros for moving content
-%D around. Many macros here come from other modules, but
-%D depencies made it more clear to isolate them.
+%D This module contains all kind of macros for moving content
+%D around. Many macros here come from other modules, but
+%D depencies made it more clear to isolate them.
-% \placeornament
+% \placeornament
-\unprotect
+\unprotect
% \definelayer[\v!tekst-2][\c!positie=\v!ja]
% \definelayer[\v!tekst-1][\c!positie=\v!ja]
% \definelayer[\v!tekst+1][\c!positie=\v!ja]
% \definelayer[\v!tekst+2][\c!positie=\v!ja]
-% we need to set the size, else we get dimensions depending
+% we need to set the size, else we get dimensions depending
% on the content, which in itsel fis ok, but can lead to loops
% due to rounding errors (happened in demo-obv)
@@ -34,7 +34,7 @@
\definelayer[\v!tekst+2][\c!positie=\v!ja,\c!breedte=\overlaywidth,\c!hoogte=\overlayheight]
\def\internaltextoverlay#1% will become more generic and installable
- {\startoverlay % i.e. probably an overlay by itself
+ {\startoverlay % i.e. probably an overlay by itself
{\positionoverlay{\v!tekst#1}} % see later
{\composedlayer {\v!tekst#1}}
\stopoverlay}
@@ -43,11 +43,11 @@
% {\hbox to \zeropoint{\positionoverlay{\v!tekst#1}\hss}%
% \composedlayer{\v!tekst#1}}
-% todo: share info, so that tuo will be smaller
+% todo: share info, so that tuo will be smaller
\defineoverlay[\v!tekst-2][\internaltextoverlay{-2}]
\defineoverlay[\v!tekst-1][\internaltextoverlay{-1}]
-\defineoverlay[\v!tekst+1][\internaltextoverlay{+1}]
+\defineoverlay[\v!tekst+1][\internaltextoverlay{+1}]
\defineoverlay[\v!tekst+2][\internaltextoverlay{+2}]
% to be documented
@@ -90,7 +90,7 @@
\c!hoogte=\ht\scratchbox,
\c!offset=\!!zeropoint,
#2,#3]
- {\setlayer[#1]{\flushnextbox}}%
+ {\setlayer[#1]{\flushnextbox}}%
\framed
[#2,
\c!achtergrond=anchor,
@@ -133,7 +133,7 @@
[#1]
[\c!status=\v!start,
\c!x=\!!zeropoint,\c!y=\!!zeropoint,
- \c!offset=\!!zeropoint,\c!rotatie=, % geen 0 !
+ \c!offset=\!!zeropoint,\c!rotatie=, % geen 0 !
\c!hoffset=\!!zeropoint,\c!voffset=\!!zeropoint,
\c!plaats=rb,\c!hoek=,#2]}
@@ -151,7 +151,7 @@
{\bgroup
\forgetall
\dontcomplain
- \dowithnextbox
+ \dowithnextbox
{\ifundefined{\@@collectorbox#1}%
\writestatus{collector}{unknown layer #1}%
\else
@@ -162,7 +162,7 @@
\def\collectorparameter#1{\csname\??cb\currentcollector#1\endcsname}
-\def\dodosetcollector[#1][#2]% todo: keep reference point
+\def\dodosetcollector[#1][#2]% todo: keep reference point
{\def\currentcollector{#1}%
\chardef\collectorbox\csname\@@collectorbox#1\endcsname
\getparameters[\??cb#1][#2]%
@@ -198,7 +198,7 @@
\fi}}%
\setbox\nextbox\hbox
{\alignedbox[\collectorparameter\c!plaats]\vbox{\flushnextbox}}%
- \boxmaxdepth\zeropoint % really needed, nice example
+ \boxmaxdepth\zeropoint % really needed, nice example
\global\advance\boxhdisplacement\@@layerxpos
\ifdim\boxhdisplacement<\zeropoint
\global\setbox\collectorbox\hbox
@@ -230,9 +230,9 @@
% combine height and depth into depth only (later flushed as height)
\global\setbox\collectorbox\hbox
{\lower\ht\collectorbox\box\collectorbox}%
- % just to be sure
+ % just to be sure
\ifdim\wd\collectorbox<\@@layerxsiz
- \global\wd\collectorbox\@@layerxsiz
+ \global\wd\collectorbox\@@layerxsiz
\fi}
\def\flushcollector[#1]%
@@ -251,19 +251,19 @@
\def\composedcollector#1{\flushcollector[#1]}
\def\resetcollector[#1]%
- {\ifundefined{\@@collectorbox#1}\else
+ {\ifundefined{\@@collectorbox#1}\else
\global\setbox\csname\@@collectorbox#1\endcsname\emptybox
\fi}
\def\adaptcollector
{\dodoubleargument\doadaptcollector}
-\def\doadaptcollector[#1][#2]%
+\def\doadaptcollector[#1][#2]%
{\bgroup
\def\currentcollector{#1}%
\chardef\collectorbox\csname\@@collectorbox#1\endcsname
\getparameters
- [\??cb#1][\c!voffset=\zeropoint,\c!hoffset=\zeropoint,#2]%
+ [\??cb#1][\c!voffset=\zeropoint,\c!hoffset=\zeropoint,#2]%
\scratchdimen\wd\collectorbox
\advance\scratchdimen\collectorparameter\c!hoffset
\global\wd\collectorbox\scratchdimen
@@ -291,14 +291,14 @@
\def\docollectedtext[#1][#2]#3%
{\bgroup
\dowithnextbox
- {\setcollector
+ {\setcollector
[caption]
{\flushnextbox}%
- \setcollector
+ \setcollector
[caption][#1]
{\getparameters[\??du][#2]%
\dosetfontattribute\??du\c!letter\setupinterlinespace
- \framed % watch the special setting of kader/overlay
+ \framed % watch the special setting of kader/overlay
[\c!kader=\v!overlay,#2]
{\doattributes\??du\c!letter\c!kleur{#3}}}%
\composedcollector{caption}%
@@ -310,13 +310,13 @@
% [background=color,backgroundcolor=white,offset=0pt]
% {gans}
% {\externalfigure[koe][width=3cm]}
-%
+%
% \collectedtext
% [rotation=90,corner={right,bottom},location={right,top}]
% [frame=on,offset=0pt]
% {gans}
% {\externalfigure[koe][width=3cm]}
-%
+%
% \collectedtext
% [rotation=90,corner={left,bottom},location={left,top}]
% [frame=on,offset=0pt]
@@ -362,13 +362,13 @@
% [background=color,backgroundcolor=white,offset=0pt]
% {gans}
% {\externalfigure[koe][width=3cm]}
-%
+%
% \layeredtext
% [rotation=90,corner={right,bottom},location={right,top}]
% [frame=on,offset=0pt]
% {gans}
% {\externalfigure[koe][width=3cm]}
-%
+%
% \layeredtext
% [rotation=90,corner={left,bottom},location={left,top}]
% [frame=on,offset=0pt]
@@ -399,36 +399,36 @@
% [rotation=90,corner={right,bottom},location={right,top},
% hoffset=-.25ex]
% [frame=on,background=color,backgroundcolor=red,offset=0pt]
-%
+%
% \ruledhbox{\affiliation{gans}{\externalfigure[koe][width=3cm]}}
-%
+%
% \defineornament
% [affiliation]
% [rotation=90,corner={right,bottom},location={right,top},
% hoffset=-.25ex,alternative=b]
% [frame=on,background=color,backgroundcolor=red,offset=0pt]
-%
+%
% \ruledhbox{\affiliation{gans}{\externalfigure[koe][width=3cm]}}
-%
+%
% \defineornament
% [affiliation]
% [rotation=90,corner={right,bottom},location={left,top},
% hoffset=.25ex,voffset=.25ex,alternative=a]
% [background=color,style=\ss\tfxx,backgroundcolor=white,offset=0pt]
-%
+%
% \affiliation{photo}{\externalfigure[molen][width=3cm]}
-%
+%
% \defineornament
% [affiliation]
% [rotation=90,corner={right,bottom},location={left,top},
% hoffset=.25ex,voffset=.25ex,alternative=b]
% [background=color,style=\ss\tfxx,backgroundcolor=white,offset=0pt]
-%
+%
% \affiliation{drawing}{\externalfigure[hakker][width=3cm]}
-% pas op: aanpassen aan nieuwe layer hoek ankers en columnset
+% pas op: aanpassen aan nieuwe layer hoek ankers en columnset
-\newcounter\nofbleeds % per pag
+\newcounter\nofbleeds % per pag
\def\setupbleeding
{\dodoubleempty\getparameters[\??bg]}
@@ -451,30 +451,30 @@
\def\bleedheight{\the\vsize}%
\def\dobleed[#1]#2%
- {\hbox\bgroup
+ {\hbox\bgroup
\xdef\bleedwidth {\the\hsize}%
\xdef\bleedheight{\the\vsize}%
\doglobal\increment\nofbleeds
\getparameters[\??bg][#1]%
\!!doneafalse % left
- \!!donebfalse % right
+ \!!donebfalse % right
\!!donecfalse % top
- \!!donedfalse % bottom
+ \!!donedfalse % bottom
% replace this part ! todo: default location
\processaction
[\@@bgplaats]
- [ t=>\!!donectrue\let\@@bghoffset\!!zeropoint,
+ [ t=>\!!donectrue\let\@@bghoffset\!!zeropoint,
b=>\!!donedtrue\let\@@bghoffset\!!zeropoint,
- l=>\!!doneatrue\let\@@bgvoffset\!!zeropoint,
+ l=>\!!doneatrue\let\@@bgvoffset\!!zeropoint,
r=>\!!donebtrue\let\@@bgvoffset\!!zeropoint,
- bl=>\!!doneatrue\!!donedtrue,
- lb=>\!!doneatrue\!!donedtrue,
- br=>\!!donebtrue\!!donedtrue,
- rb=>\!!donebtrue\!!donedtrue,
- tl=>\!!doneatrue\!!donectrue,
- lt=>\!!doneatrue\!!donectrue,
- tr=>\!!donebtrue\!!donectrue,
- rt=>\!!donebtrue\!!donectrue]%
+ bl=>\!!doneatrue\!!donedtrue,
+ lb=>\!!doneatrue\!!donedtrue,
+ br=>\!!donebtrue\!!donedtrue,
+ rb=>\!!donebtrue\!!donedtrue,
+ tl=>\!!doneatrue\!!donectrue,
+ lt=>\!!doneatrue\!!donectrue,
+ tr=>\!!donebtrue\!!donectrue,
+ rt=>\!!donebtrue\!!donectrue]%
\doifelse\@@bgrek\v!ja\donetrue\donefalse
\scratchdimen\@@bgbreedte
\ifdone
@@ -505,7 +505,7 @@
{\setbox\scratchbox\topskippedbox{\box\scratchbox}}%
\setbox\scratchbox\hbox to \@@bgbreedte
{\if!!donea\hss\fi\box\scratchbox\if!!doneb\hss\fi}%
- \if!!doned
+ \if!!doned
\setbox\scratchbox\hbox
{\lower\bleedheight\hbox{\raise\@@bghoogte\box\scratchbox}}%
\fi
@@ -525,24 +525,24 @@
% \placefigure[left]{none}
% {\bleed[width=5cm,height=3cm,location=lt]{\externalfigure[koe][bleed]}}
-%
-% \input tufte
-%
+%
+% \input tufte
+%
% \placefigure[left]{none}
% {\bleed[width=5cm,height=3cm,location=l]{\externalfigure[koe][bleed]}}
-%
-% \input tufte
-%
+%
+% \input tufte
+%
% \placefigure[right]{none}
% {\bleed[width=5cm,height=3cm,location=r]{\externalfigure[koe][bleed]}}
-%
-% \input tufte
-%
+%
+% \input tufte
+%
% \placesomefloat[right]{none}
% {\bleed[width=5cm,height=3cm,location=rb]{\externalfigure[koe][bleed]}}
-%
-% \input tufte
-%
+%
+% \input tufte
+%
% \placefigure
% [top,none]
% {} % no caption
@@ -551,7 +551,7 @@
% voffset=3mm,
% width=0cm,
% height=6\lineheight,
-% page=yes, % correct for topskip
+% page=yes, % correct for topskip
% location=lt]
% {\externalfigure[koe][bleed][frame=on]}}
@@ -605,49 +605,61 @@
% \setupbackgrounds
% [page]
% [background=pagefigures]
-%
+%
% \definelayer
% [pagefigures]
% [x=-2mm,
% y=-2mm,
% width=\paperwidth,
% height=\paperheight]
-%
+%
% \definelayerpreset [lefttop] [corner={left,top},location={right,bottom}]
% \definelayerpreset [righttop] [corner={right,top},location={left,bottom}]
% \definelayerpreset [leftbottom] [corner={left,bottom},location={right,top}]
% \definelayerpreset [rightbottom] [corner={right,bottom},location={left,top}]
% \definelayerpreset [middle] [corner=middle,location=middle]
-%
+%
% \setlayer[pagefigures][preset=lefttop]
% \setlayer[pagefigures][preset=righttop]
% \setlayer[pagefigures][preset=leftbottom]
% \setlayer[pagefigures][preset=rightbottom]
-\definelayerpreset
+\definelayerpreset
[\v!links\v!boven]
- [\c!hoek={\v!links,\v!boven},%
- \c!plaats={\v!rechts,\v!onder}]
+ [\c!hoek={\v!links,\v!boven},\c!plaats={\v!rechts,\v!onder}]
-\definelayerpreset
+\definelayerpreset
[\v!rechts\v!boven]
- [\c!hoek={\v!rechts,\v!boven},%
- \c!plaats={\v!links,\v!onder}]
+ [\c!hoek={\v!rechts,\v!boven},\c!plaats={\v!links,\v!onder}]
-\definelayerpreset
+\definelayerpreset
[\v!links\v!onder]
- [\c!hoek={\v!links,\v!onder},%
- \c!plaats={\v!rechts,\v!boven}]
+ [\c!hoek={\v!links,\v!onder},\c!plaats={\v!rechts,\v!boven}]
-\definelayerpreset
- [\v!rechts\v!onder]
- [\c!hoek={\v!rechts,\v!onder},%
- \c!plaats={\v!links,\v!boven}]
+\definelayerpreset
+ [\v!rechts\v!onder]
+ [\c!hoek={\v!rechts,\v!onder},\c!plaats={\v!links,\v!boven}]
-\definelayerpreset
- [\v!midden]
+\definelayerpreset
+ [\v!midden]
[\c!hoek=\v!midden,\c!plaats=\v!midden]
-
+
+\definelayerpreset
+ [\v!midden\v!boven]
+ [\c!plaats=\v!onder,\c!hoffset=.5\layerwidth]
+
+\definelayerpreset
+ [\v!midden\v!onder]
+ [\c!plaats=\v!boven,\c!hoffset=.5\layerwidth,\c!voffset=\layerheight]
+
+\definelayerpreset
+ [\v!midden\v!links]
+ [\c!plaats=\v!rechts,\c!voffset=.5\layerwidth]
+
+\definelayerpreset
+ [\v!midden\v!rechts]
+ [\c!plaats=\v!links,\c!hoffset=\layerwidth,\c!voffset=.5\layerheight]
+
\def\alignedbox
{\dodoubleempty\doalignedbox[]}
@@ -710,8 +722,8 @@
\def\offsetbox
{\dodoubleempty\dooffsetbox[]}
-% left/right/top/bottomoffset -> dimensions change
-% x/y -> dimensions don't change
+% left/right/top/bottomoffset -> dimensions change
+% x/y -> dimensions don't change
\def\dooffsetbox[#1][#2]%
{\bgroup
@@ -745,7 +757,7 @@
\scratchdimen\nextboxht
\advance\scratchdimen\nextboxdp
\nextboxht\scratchdimen
- \nextboxdp\zeropoint
+ \nextboxdp\zeropoint
\fi
\freezedimenmacro\@@oxbreedte
\freezedimenmacro\@@oxhoogte
@@ -762,15 +774,15 @@
\egroup}#1}
% \useMPlibrary[pre] \setupbackgrounds[page][background=pagegrid]
-%
+%
% \placefigure[left,none]{}{\offset[leftoffset=1cm]{\externalfigure[koe][breedte=3cm]}}
-% \input tufte
+% \input tufte
% \placefigure[left,none]{}{\offset[rightoffset=1cm]{\externalfigure[koe][breedte=3cm]}}
-% \input tufte
+% \input tufte
% \placefigure[left,none]{}{\offset[topoffset=1cm]{\externalfigure[koe][breedte=3cm]}}
-% \input tufte
+% \input tufte
% \placefigure[left,none]{}{\offset[bottomoffset=1cm]{\externalfigure[koe][breedte=3cm]}}
-% \input tufte
+% \input tufte
\def\offset {\dodoubleempty\dooffsetbox [\hbox]} % yes or no
\def\aligned{\dosingleempty\doalignedbox[\hbox]} % yes or no
@@ -792,14 +804,14 @@
% \ltabbed{\romeins{3}}{\romeins{1}} test \endgraf
% \ltabbed{\romeins{3}}{\romeins{2}} test \endgraf
% \ltabbed{\romeins{3}}{\romeins{3}} test \endgraf
-%
+%
% \rtabbed{\romeins{3}}{\romeins{1}} test \endgraf
% \rtabbed{\romeins{3}}{\romeins{2}} test \endgraf
% \rtabbed{\romeins{3}}{\romeins{3}} test \endgraf
-%
+%
% \ctabbed{\romeins{3}}{\romeins{1}} test \endgraf
% \ctabbed{\romeins{3}}{\romeins{2}} test \endgraf
-% \ctabbed{\romeins{3}}{\romeins{3}} test \endgraf
+% \ctabbed{\romeins{3}}{\romeins{3}} test \endgraf
% alternative, if done, then other name
%
@@ -815,24 +827,24 @@
% \processcommalist[#3]\docommando
% \hbox to \scratchdimen{#1#4#2}%
% \egroup}
-%
+%
% \def\ltabbed{\dotabbed\relax\hss}
% \def\rtabbed{\dotabbed\hss \relax}
% \def\ctabbed{\dotabbed\hss \hss} \let\mtabbed\ctabbed
-%
+%
% \ltabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{10}} test \endgraf
% \ltabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{15}} test \endgraf
% \ltabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{2000}} test \endgraf
-%
+%
% \rtabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{10}} test \endgraf
% \rtabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{15}} test \endgraf
% \rtabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{2000}} test \endgraf
-%
+%
% \ctabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{10}} test \endgraf
% \ctabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{15}} test \endgraf
% \ctabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{2000}} test \endgraf
-% to be documented
+% to be documented
\def\phantombox[#1]%
{\hbox\bgroup
@@ -848,4 +860,4 @@
\box\scratchbox
\egroup}
-\protect \endinput
+\protect \endinput
diff --git a/tex/context/base/core-des.tex b/tex/context/base/core-des.tex
index 94d3f187f..95a8bdf8f 100644
--- a/tex/context/base/core-des.tex
+++ b/tex/context/base/core-des.tex
@@ -8,12 +8,12 @@
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
\writestatus{loading}{Context Core Macros / Descriptions}
-\unprotect
+\unprotect
% Dit kan en moet dus anders:
%
@@ -50,8 +50,7 @@
{\doattributes
{\??dd#1}\c!kopletter\c!kopkleur
{\getvalue{\??dd#1\c!commando}{#4}}% NAAR BUITENSTE NIVEAU !
- \rawreference\s!def{#2}{#3}} % brrr moet in #4
-
+ \rawreference\s!def{#2}{#3}} % brrr moet in #4
\setvalue{@@definitie\v!links}#1%
{\@@definitiehang{#1}\@@definitielinkspure\@@definitielinkshang}
@@ -223,11 +222,11 @@
\noindent\ignorespaces
\advance\leftskip -\leftskipadaption \relax
\ifdim\leftskipadaption=\zeropoint
- \leftskipadaption1.5em % just some default
- \ifnum\insidedefinition=\plusone
+ \leftskipadaption1.5em % just some default
+ \ifnum\insidedefinition=\plusone
\ifdim\leftskip>\zeropoint \relax
\leftskipadaption\leftskip
- \fi
+ \fi
\fi
\fi
\ifnum\insidedefinition=\plusone
@@ -243,53 +242,13 @@
\ignorespaces
\@@dodefinitie{#1}}
-%D A new key 'titeluitlijnen' in definitions.
+%D A new key 'titeluitlijnen' in definitions.
\chardef\insidedefinition=0
\let\@@leftdefinitieskip \!!zeropoint
\let\@@rightdefinitieskip\!!zeropoint
-% \def\@@dostartdefinitie#1[#2]#3%
-% {\getvalue{\??dd#1\c!voor}%
-% \begingroup
-% \doadaptleftskip{\getvalue{\??dd#1\c!marge}}%
-% \showcomposition
-% \setbox\@@definitiebox\hbox
-% {\forgetall
-% \mindermeldingen
-% \def\\{\crcr}%
-% \doifelsevalue{\??dd#1\c!plaats}\v!aanelkaar
-% {\@@definitiewoord{#1}[#2]{#3}{#3}}
-% {\@@definitiewoord{#1}[#2]{#3}{\vbox{\halign{\strut##\hss\cr#3\crcr}}}}}%
-% \!!widthb\getvalue{\??dd#1\c!afstand}\relax
-% \ifdim\!!widthb=\zeropoint\relax
-% \doifvalue{\??dd#1\c!breedte}\v!ruim{\!!widthb=1em}%
-% \fi
-% \assignwidth
-% {\!!widtha}
-% {\getvalue{\??dd#1\c!breedte}}
-% {\doifelsevaluenothing{\??dd#1\c!monster}
-% {\ifhbox\@@definitiebox\unhcopy\else\copy\fi \@@definitiebox}
-% {\doattributes
-% {\??dd#1}\c!kopletter\c!kopkleur
-% {\getvalue{\??dd#1\c!tekst}\getvalue{\??dd#1\c!monster}}}}
-% {\!!widthb}%
-% % \parindent\zeropoint\relax
-% \doifelsevalue{\??dd#1\c!titeluitlijnen}\v!nee
-% {\edef\@@leftdefinitieskip {\the\leftskip }%
-% \edef\@@rightdefinitieskip{\the\rightskip}}
-% {\ifcase\insidedefinition
-% \edef\@@leftdefinitieskip {\the\leftskip }%
-% \edef\@@rightdefinitieskip{\the\rightskip}%
-% \fi}%
-% \expanded{\inspringen[\getvalue{\??dd#1\c!inspringen}]}%
-% \ifcase\insidedefinition % better a system mode
-% \chardef\insidedefinition\plusone
-% \or
-% \chardef\insidedefinition\plustwo
-% \fi} % now happens elsewhere : \noindent\ignorespaces
-
\def\@@dostartdefinitie#1[#2]#3%
{\getvalue{\??dd#1\c!voor}%
\begingroup
@@ -300,23 +259,21 @@
\doifvalue{\??dd#1\c!breedte}\v!ruim{\!!widthb=1em}%
\fi
% temp hack, we need to avoid this kind of preprocessing
- \setbox\@@definitiebox\hbox % preroll
+ \setbox\@@definitiebox\hbox % preroll
{\forgetall
- \trialtypesettingtrue
+ \trialtypesettingtrue
\mindermeldingen
\def\\{\crcr}%
- \doattributes
- {\??dd#1}\c!kopletter\c!kopkleur
- {\getvalue{\??dd#1\c!commando}{\begstrut
- \getvalue{\??dd#1\c!tekst}#3\endstrut}}}%
- % so far
+ \@@definitiewoord{#1}[#2]{#3}%
+ {\begstrut\getvalue{\??dd#1\c!tekst}\ignorespaces#3\endstrut}}%
+ % so far
\assignwidth
- {\!!widtha}
- {\getvalue{\??dd#1\c!breedte}}
- {\doifelsevaluenothing{\??dd#1\c!monster}
- {\ifhbox\@@definitiebox\unhcopy\else\copy\fi \@@definitiebox}
- {\doattributes
- {\??dd#1}\c!kopletter\c!kopkleur
+ {\!!widtha}%
+ {\getvalue{\??dd#1\c!breedte}}%
+ {\doifelsevaluenothing{\??dd#1\c!monster}%
+ {% preroll can move here (test first)
+ \ifhbox\@@definitiebox\unhcopy\else\copy\fi \@@definitiebox}%
+ {\@@definitiewoord{#1}[#2]{#3}%
{\getvalue{\??dd#1\c!tekst}\getvalue{\??dd#1\c!monster}}}}
{\!!widthb}%
\setbox\@@definitiebox\hbox
@@ -332,19 +289,19 @@
\doifelsevalue{\??dd#1\c!titeluitlijnen}\v!nee
{\edef\@@leftdefinitieskip {\the\leftskip }%
\edef\@@rightdefinitieskip{\the\rightskip}}
- {\ifcase\insidedefinition
+ {\ifcase\insidedefinition
\edef\@@leftdefinitieskip {\the\leftskip }%
\edef\@@rightdefinitieskip{\the\rightskip}%
\fi}%
\expanded{\inspringen[\getvalue{\??dd#1\c!inspringen}]}%
- \ifcase\insidedefinition % better a system mode
+ \ifcase\insidedefinition % better a system mode
\chardef\insidedefinition\plusone
\or
\chardef\insidedefinition\plustwo
\fi} % now happens elsewhere : \noindent\ignorespaces
\def\@@stopdefinitie#1%
- {\par % maybe better after \dostopattributes
+ {\par % maybe better after \dostopattributes
\dostopattributes
\endgroup
\getvalue{\??dd#1\c!na}%
@@ -361,7 +318,7 @@
% \AfterPar{\@@stopdefinitie{#1}}%
% \GetPar}
%
-% nicer and better:
+% nicer and better:
\def\@@somedefinitie#1[#2]#3%
{\dowithpar
@@ -508,8 +465,8 @@
% \hbox
% {\let\normalkap\relax % sorry, uppercase causes troubles
% \doattributes % \nocase primitive needed
-% {\??dd#2#1}\c!kopletter\c!kopkleur
-% {\getvalue{\??dd#1\c!commando}% hook for taco
+% {\??dd#2#1}\c!kopletter\c!kopkleur
+% {\getvalue{\??dd#1\c!commando}% hook for taco
% {\showdntext{#2#1}%
% \domakednnummer{#1}{#2}{#3}}}%
% \iflocation\ifcase\definitiekoppeling \else
@@ -518,7 +475,7 @@
% % {\in[\localconnection]}{}% genereert > of <
% \fi\fi}%
% \doifnot{#5}{-}{\rawreference\s!num{#5}{#3{#1}}}%
-% \else % Why was this strange expansion needed?
+% \else % Why was this strange expansion needed?
% \hbox
% {\edef\!!stringa{\showdnpuretext{#2#1}}% nog eens testen binnen \expanded
% \expanded{\doattributes{\??dd#1}\noexpand\c!kopletter\noexpand\c!kopkleur
@@ -542,7 +499,10 @@
[\getvalue{\??dd#1\??dd\c!nummer}]
[\c!sectienummer=\getvalue{\??dd#1\c!sectienummer}]%
\if!!donea
- \getvalue{\e!volgende#2#1}%
+\iftrialtypesetting\startlocal\fi
+ \getvalue{\e!volgende#2#1}% tricky but we need the preroll
+\iftrialtypesetting\stoplocal\fi
+ % \getvalue{\e!volgende#2#1}%
\iflocation
\bgroup
\letvalue{\??dd#1\c!sectienummer}\v!ja
@@ -563,7 +523,7 @@
\let\normalkap\relax % sorry, uppercase causes troubles
\doattributes % \nocase primitive needed
{\??dd#1}\c!kopletter\c!kopkleur
- {\getvalue{\??dd#1\c!commando}% hook for taco
+ {\getvalue{\??dd#1\c!commando}% hook for taco
{\showdntext{#2#1}%
\domakednnummer{#1}{#2}{#3}}}%
\iflocation\ifcase\definitiekoppeling \else
@@ -572,7 +532,7 @@
{\in[\localconnection]}\donothing % genereert > of <
\fi\fi
\doifnot{#5}{-}{\rawreference\s!num{#5}{#3{#1}}}%
- \else % Why was this strange expansion needed?
+ \else % Why was this strange expansion needed?
\edef\!!stringa{\showdnpuretext{#2#1}}% nog eens testen binnen \expanded
\expanded{\doattributes{\??dd#1}\noexpand\c!kopletter\noexpand\c!kopkleur
{\noexpand\getvalue{\??dd#1\c!commando}{\!!stringa}}}%
@@ -632,10 +592,10 @@
\rawreference\s!num{#2}{\showdnnummer{\doornummer}}}
\def\dodosteldoornummerenin[#1][#2]%
- {\getparameters[\??dd#1][#2]%
+ {\getparameters[\??dd#1][#2]%
\doifdefined{\??dd#1\c!start}
{\stelnummerin[#1][\c!start=\getvalue{\??dd#1\c!start}]}%
- \stelnummerin[#1][\c!conversie=\getvalue{\??dd#1\c!conversie}]}
+ \stelnummerin[#1][\c!conversie=\getvalue{\??dd#1\c!conversie}]}
\def\dosteldoornummerenin[#1][#2]%
{\ConvertToConstant\doifelse{#2}{}
@@ -664,7 +624,7 @@
{\doifelsenothing{#4}
{\getparameters[\??dd#3#1]%
[\c!tekst=#1,\??dd\c!nummer=#1,\c!conversie=,
- \c!afsluiter=,
+ \c!afsluiter=,
\c!links=,\c!rechts=,\c!koppeling=,\c!koppelwijze=,#4]}%
{\copyparameters[\??dd#3#1][\??dd#3#4]
[\c!plaats,\c!kopletter,\c!letter,\c!kleur,\c!kopkleur,
@@ -762,8 +722,8 @@
\parindent\zeropoint
\hskip#2\!!widtha\indent\box2%
\hangindent#3\!!widtha
- \doattributes{\??ds#1}\c!letter\c!kleur\empty
- \AfterPar% must be redone
+ \doattributes{\??ds#1}\c!letter\c!kleur\empty
+ \AfterPar% must be redone
{\endgroup
\getvalue{\??ds#1\c!na}}%
\GetPar}
@@ -792,10 +752,10 @@
% {\getvalue{\e!volgende#1}[#2]}%
% \egroup
% \getvalue{\s!number#1\c!na}}%
-%
+%
% \def\dovolgendedoorlabel[#1][#2]%
% {\volgendenummer[#1][\s!lab][#2]}
-%
+%
% \def\dodoorlabelen[#1][#2]%
% {\definieernummer
% [#1][\c!voor=,\c!na=,\c!kopletter=,\c!wijze=\@@nrwijze,#2]%
@@ -804,7 +764,7 @@
% \setvalue{\e!verhoog #1}{\verhoognummer[#1]}%
% \setvalue{\e!volgende#1}{\dodoubleempty\dovolgendedoorlabel[#1]}%
% \setvalue{\c!huidige #1}{\huidigenummer[#1]}}
-%
+%
% \def\doorlabelen%
% {\dodoubleargumentwithset\dodoorlabelen}
@@ -823,18 +783,18 @@
{\getparameters
[\??lb#1]
[\c!wijze=\@@nrwijze,\c!commando=,\c!plaats=,#2]%
- % downward compatible
+ % downward compatible
\processaction
[\getvalue{\??lb#1\c!plaats}]
[ \v!inmarge=>\setvalue{\??lb#1\c!commando}{\inmarge },
\v!inlinker=>\setvalue{\??lb#1\c!commando}{\inlinker },
\v!inrechter=>\setvalue{\??lb#1\c!commando}{\inrechter},
\v!marge=>\setvalue{\??lb#1\c!commando}{\inmarge }]%
- % inefficient, we need to redesign this command
- \definieernummer
+ % inefficient, we need to redesign this command
+ \definieernummer
[#1]
[\c!wijze=\getvalue{\??lb#1\c!wijze}]%
- % generated commands
+ % generated commands
\setvalue {#1}{\dodoubleempty\dodoorlabel[#1]}%
\setvalue{\s!reset #1}{\resetnummer[#1]}%
\setvalue{\e!verhoog #1}{\verhoognummer[#1]}%
@@ -903,4 +863,4 @@
\c!afstand=1em,
\c!scheider={ :}]
-\protect \endinput
+\protect \endinput
diff --git a/tex/context/base/core-fig.tex b/tex/context/base/core-fig.tex
index f9e202528..458e6198f 100644
--- a/tex/context/base/core-fig.tex
+++ b/tex/context/base/core-fig.tex
@@ -90,11 +90,11 @@
6: dimenze obrazu -- spocteny programem TeXUtil
7: musite znovu vygenerovat soubor obrazu --
8: obrazovy objekt -- je znovu pouzit
- 9: figure -- is not handled
+ 9: figure -- is not handled
10: figure -- has zero dimensions
\stopmessages
-% TOM : 10
+% TOM : 10
\startmessages italian library: figures
title: figure
@@ -159,7 +159,7 @@
\newif\ifskipexternalfigures % \skipexternalfigurestrue
-%newif\ifsplitexternalfigures
+%newif\ifsplitexternalfigures
%D A last switch inhibits running \TEXUTIL. Lets do it when
%D possible.
@@ -278,8 +278,8 @@
\def\@@efcurrentpath{#1}%
\sanitizefilename#1\to\@@efcurrentpath
\doiffileinsertionsupportedelse\@@efcurrenttype
- {\assignfullfilename % needed
- {\@@efcurrentpath}%
+ {\assignfullfilename % needed
+ {\@@efcurrentpath}%
{\@@effilename.\figureextension{\@@efcurrenttype}}%
\to\@@efcurrentfile
\dodododoanalyzefigurefiles}
@@ -309,7 +309,7 @@
%D
%D Should be a special!
-% never change the vsize / hsize here, is taken from env
+% never change the vsize / hsize here, is taken from env
\def\dogetfiguresizetex#1#2#3#4#5#6% file pagina ...
{\doifinsetelse\@@efextension{\c!tex,\c!tmp}
@@ -343,14 +343,14 @@
\def\getfiguredimensionsA
{\ifcase\figurestatus
- \@@eftrace{analyzing \@@efcurrentfile\space
- on \@@efcurrentpath\space
+ \@@eftrace{analyzing \@@efcurrentfile\space
+ on \@@efcurrentpath\space
as \@@efcurrenttype}%
\!!widthb\zeropoint % ?
\doifdefinedelse{\@@dogetfiguresize\@@efcurrenttype}
{\executedtrue
\getvalue{\@@dogetfiguresize\@@efcurrenttype}%
- \@@efcurrentfile\@@efpagina
+ \@@efcurrentfile\@@efpagina
\!!widtha\!!heighta\!!widthb\!!heightb}
\executedfalse
\ifexecuted
@@ -365,11 +365,11 @@
\doifelse\@@efcurrenttype\c!mps
{\ifcase\EPScreator
\executedfalse
- \else
- % zero width mp graphic can be useful -)
+ \else
+ % zero width mp graphic can be useful -)
\fi}
{\ifdone
- % non zero dimensions
+ % non zero dimensions
\else
% zero dimensions
\executedfalse
@@ -412,8 +412,8 @@
%\def\@@efloadname{\@@efcurrentpath\f!pathseparator\@@exfile}%
\assignfullfilename\@@efcurrentpath\@@exfile\to\@@efloadname
\edef\@@effilenametype{\@@effilename.\@@efcurrenttype}%
- \@@eftrace{analyzing \@@efloadname\space
- on \@@efcurrentpath\space
+ \@@eftrace{analyzing \@@efloadname\space
+ on \@@efcurrentpath\space
for \@@effilenametype}%
\pushendofline
\startreadingfile
@@ -438,9 +438,9 @@
\fi}
\def\getfiguredimensionsC
- {\ifconsultutilityfile \ifrunutilityfile
+ {\ifconsultutilityfile \ifrunutilityfile
\ifcase\figurestatus\ifcase\figurefilemode\else
-\doifsomething\@@efcurrentpath
+\doifsomething\@@efcurrentpath
{%
\doifnotinset\@@efextension{\c!tex,\c!tmp}
{\doiffileelse\@@efcurrentfile
@@ -478,8 +478,8 @@
%\def\@@efloadname{\@@efcurrentpath\f!pathseparator\@@exfile}%
\assignfullfilename\@@efcurrentpath\@@exfile\to\@@efloadname
\edef\@@effilenametype{\@@effilename.\figureextension{\@@efcurrenttype}}%
- \@@eftrace{analyzing \@@efloadname\space
- on \@@efcurrentpath\space
+ \@@eftrace{analyzing \@@efloadname\space
+ on \@@efcurrentpath\space
for \@@effilenametype}%
\pushendofline
\startreadingfile
@@ -512,8 +512,8 @@
{%
%\def\@@efloadname{\@@efcurrentpath\f!pathseparator\@@exfile}%
\assignfullfilename\@@efcurrentpath\@@exfile\to\@@efloadname
- \@@eftrace{analyzing \@@efloadname\space
- on \@@efcurrentpath\space
+ \@@eftrace{analyzing \@@efloadname\space
+ on \@@efcurrentpath\space
for \@@effilename.* surrogate}%
\pushendofline
\startreadingfile
@@ -545,7 +545,7 @@
\def\thisisfigureversion#1%
{\doifnot\figureversion{#1}
- {\showmessage\m!figures7\@@efloadname
+ {\showmessage\m!figures7\@@efloadname
\endinput}}
%D Some files, take for instance movies, cannot easilly be
@@ -684,13 +684,13 @@
\def\setupexternalfigures
{\dosingleempty\dosetupexternalfigures}
-\def\dosetupexternalfigures[#1]% needs a good clean up
+\def\dosetupexternalfigures[#1]% needs a good clean up
{\getparameters[\??ex][#1]%
- \getparameters[\??ef][#1]% dangerous for figs with backgrounds
+ \getparameters[\??ef][#1]% dangerous for figs with backgrounds
\checkfiguresettings
- \doifelsenothing\@@explaats % fig file paths
+ \doifelsenothing\@@explaats % fig file paths
{\scratchcounter\plusthree}
- {\doifelsenothing\@@exfile % tuf file paths
+ {\doifelsenothing\@@exfile % tuf file paths
{\scratchcounter\plusthree}
{\scratchcounter\zerocount
\ExpandBothAfter\doifinset\v!lokaal\@@explaats
@@ -700,41 +700,41 @@
\chardef\figurefilemode\scratchcounter\relax
\ifcase\figurefilemode
\let\figurepathlist\f!currentpath
- \or % lokaal
- \let\figurepathlist\f!currentpath
- \or % globaal
- \let\figurepathlist\@@exgebied
+ \or % lokaal
+ \let\figurepathlist\f!currentpath
+ \or % globaal
+ \let\figurepathlist\@@exgebied
\or % lokaal,globaal / non empty gebied
\edef\figurepathlist{\f!currentpath\ifx\@@exgebied\empty\else,\fi\@@exgebied}%
\fi
\ExpandBothAfter\doifinset\v!default\@@explaats
- {\edef\figurepathlist{\figurepathlist,}}% default tex path search
+ {\edef\figurepathlist{\figurepathlist,}}% default tex path search
\ifx\@@exfile\empty
\chardef\figurefilemode\zerocount
\fi}
-%D The next one is for instance used in symbols:
+%D The next one is for instance used in symbols:
\def\resetexternalfigures
{\setupexternalfigures
[\c!optie=,\c!maxbreedte=,\c!maxhoogte=,
- %\c!splitskleur=,% needed ?
+ %\c!splitskleur=,% needed ?
\c!voorgrondkleur=,
\c!kader=\v!uit,\c!achtergrond=]}
-%D Since we only need to reset some parameters, we can
+%D Since we only need to reset some parameters, we can
%D better use a faster alternative:
\def\resetexternalfigures
{\getparameters[\??ef]
[\c!optie=,\c!maxbreedte=,\c!maxhoogte=,
- %\c!splitskleur=,% needed ?
+ %\c!splitskleur=,% needed ?
\c!voorgrondkleur=,
\c!kader=\v!uit,\c!achtergrond=]}
-%D This one dropped the runtime of the \MAPS\ bibliography
-%D from over 110 seconds down to less than 105 seconds. The
-%D tremendously faster (but uglier) implementation is:
+%D This one dropped the runtime of the \MAPS\ bibliography
+%D from over 110 seconds down to less than 105 seconds. The
+%D tremendously faster (but uglier) implementation is:
\def\resetexternalfigures
{\let\@@efoptie \empty
@@ -743,7 +743,7 @@
\let\@@efkader \v!uit
\let\@@efachtergrond\empty}
-% The following code will move:
+% The following code will move:
\appendtoks \resetexternalfigures \to \everyoverlay
\appendtoks \resetexternalfigures \to \everybeforepagebody % not really needed
@@ -765,35 +765,35 @@
\def\docalculatefigurescales#1#2#3#4%
{\dimen0=#1\relax % #1 = new 1-value
\dimen2=#2\relax % #2 = old 1-value
- \divide\dimen2 \plusthousand
+ \divide\dimen2 \plusthousand
\divide\dimen0 \dimen2
\figxsca\dimen0 % x scale
\figysca\dimen0 % y scale
\dimen2=#4\relax % #4 = old 2-value
- \divide\dimen2 \plusthousand
+ \divide\dimen2 \plusthousand
\multiply\dimen2 \dimen0
#3=\dimen2 } % #3 = new 2-value
\def\docalculatefigurescale#1#2#3%
{\dimen0=#1\relax % #1 = new value
\dimen2=#2\relax % #2 = old value
- \divide\dimen2 \plusthousand
+ \divide\dimen2 \plusthousand
\divide\dimen0 \dimen2
#3=\dimen0 } % #3 = schaal
\def\doapplyfigurescale#1#2#3%
{\global#1=#2\relax
\ifcase0\@@efschaal\relax % beter: doifnum...
- #3=\plusthousand
+ #3=\plusthousand
\else
#3=\@@efschaal
\fi\relax % important !
- \ifnum#3=\plusthousand\else
- \global\divide #1 \plusthousand
+ \ifnum#3=\plusthousand\else
+ \global\divide #1 \plusthousand
\global\multiply#1 #3\relax
\fi}
-\newdimen\figurevsize % we cannot manipulate any global vsize !
+\newdimen\figurevsize % we cannot manipulate any global vsize !
\def\doapplyfiguresize
{\doifelsenothing\@@efmaxhoogte
@@ -807,7 +807,7 @@
\else\ifinpagebody
\figurevsize \vsize % \teksthoogte =\vsize
\scratchdimen\vsize % \scratchdimen=\teksthoogte
- \else % hm, there should be an option to force this
+ \else % hm, there should be an option to force this
\ifdim\pagegoal<\maxdimen
\ifdim\pagetotal<\pagegoal
\scratchdimen\pagegoal
@@ -830,30 +830,30 @@
% \def\convertfigureinsertscale#1#2#3#4%
% {\scratchdimen#1\relax
% \ifnum#3=\plusthousand\else % better 1000 100 10 ranges, evt round 2sp
-% \divide\scratchdimen \plusthousand
+% \divide\scratchdimen \plusthousand
% \multiply\scratchdimen #3\relax
% \fi
% \scratchdimen-\scratchdimen % beter hier - dan in driver
-% \edef#2{\the\scratchdimen}% oeps, \the vergeten
+% \edef#2{\the\scratchdimen}% oeps, \the vergeten
% \scratchdimen#3\s!pt
% \divide\scratchdimen \!!ten
% \edef#4{\@EA\withoutpt\@EA{\the\scratchdimen}}}
%
-% more obscure but better:
+% more obscure but better:
\def\convertfigureinsertscale#1#2#3#4%
{\scratchdimen#1\relax
- \ifnum#3=\plusthousand
+ \ifnum#3=\plusthousand
% == scale 1
\else
% better 1000 100 10 ranges, evt round 2sp
- \divide\scratchdimen \plusthousand
+ \divide\scratchdimen \plusthousand
\multiply\scratchdimen #3\relax
\fi
\scratchdimen-\scratchdimen % beter hier - dan in driver
\edef#2{\the\scratchdimen}%
\scratchcounter#3\relax
- \ifnum\scratchcounter>\plustenthousand
+ \ifnum\scratchcounter>\plustenthousand
\divide\scratchcounter \!!ten
\scratchdimen\the\scratchcounter\s!pt
\else
@@ -870,10 +870,10 @@
\let\@@efobject \v!nee
\let\@@efpreset \v!nee
\ifx\@@efbreedte\empty
- \def\@@efbreedte{8\lineheight}% 4cm
+ \def\@@efbreedte{8\lineheight}% 4cm
\fi
\ifx\@@efhoogte\empty
- \def\@@efhoogte{6\lineheight}% 3cm
+ \def\@@efhoogte{6\lineheight}% 3cm
\fi}
\def\presetfiguremov{\presetundefinedfigure\c!mov}
@@ -890,17 +890,17 @@
%D complication is that we have to catch all kind of border
%D cases, like \METAPOST\ graphics and buffers.
-% note * : this is needed because reusable graphics
-% combined with funny page aspect aspect ratio's can lead to
-% strange side effects of preceding factor=max specs. This
-% surfaced in the metafun manual, where the two side by
-% side clipped cow heads [the second one was a reused object]
-% where the second one inherited some characteristics from
-% the factor=max one some 30 pages back. Sigh.
+% note * : this is needed because reusable graphics
+% combined with funny page aspect aspect ratio's can lead to
+% strange side effects of preceding factor=max specs. This
+% surfaced in the metafun manual, where the two side by
+% side clipped cow heads [the second one was a reused object]
+% where the second one inherited some characteristics from
+% the factor=max one some 30 pages back. Sigh.
-% This macro will be cleaned up when the tuf format has
-% become replaced by its xml counterpart; for that I first
-% need to patch texutil.
+% This macro will be cleaned up when the tuf format has
+% become replaced by its xml counterpart; for that I first
+% need to patch texutil.
\def\checkfiguresettings
{\doifsomething\@@efregels
@@ -913,12 +913,12 @@
{\mindermeldingen
\setupexternalfigures
\the\externalfigureresets % hook, see resource libraries
- \global\figwid\zeropoint \figxsca\plusone % see note *
- \global\fighei\zeropoint \figysca\plusone % see note *
+ \global\figwid\zeropoint \figxsca\plusone % see note *
+ \global\fighei\zeropoint \figysca\plusone % see note *
\global\setbox\foundexternalfigure\box\voidb@x
% get rid of active / and : as well as expand for [\get...] cases
- \sanitizefilename#3\to\expandedfigurename
- % nil path search in case of path spec
+ \sanitizefilename#3\to\expandedfigurename
+ % nil path search in case of path spec
\expanded{\checkfilename{\expandedfigurename}}%
\ifcase\kindoffile\else \let\figurepathlist\empty \fi
\expandafter\beforesplitstring\expandedfigurename\at.\to\@@effilename
@@ -950,20 +950,20 @@
\doif\@@efextension\c!mov\presetfiguremov
\doif\@@efextension\c!avi\presetfigureavi
#1[#4][#5][#6]%
- % lines -> height
+ % lines -> height
\checkfiguresettings
- % new, color separation
+ % new, color separation
\doifseparatingcolorselse
- {\let\@@efvoorgrondkleur\empty
- \doifelsenothing\@@efsplitsen
+ {\let\@@efvoorgrondkleur\empty
+ \doifelsenothing\@@efsplitsen
{\chardef\splitexternalfigure0}
- {\doifcolorchannelelse\@@efsplitsen
- {\let\@@efobject\v!nee % ?
+ {\doifcolorchannelelse\@@efsplitsen
+ {\let\@@efobject\v!nee % ?
\chardef\splitexternalfigure1}
{\chardef\splitexternalfigure2}}}
{\chardef\splitexternalfigure0}%
- \relax % ends \chardef
- % new, fake color in gray bitmaps
+ \relax % ends \chardef
+ % new, fake color in gray bitmaps
\doifsomething\@@efvoorgrondkleur
{\getparameters[\??ef]
[\c!achtergrond={\v!voorgrond,\v!kleur},
@@ -972,10 +972,10 @@
\doif\@@efreset\v!ja \resetexternalfigures
\doif\@@eftype \c!mov\presetfiguremov
\doif\@@eftype \c!avi\presetfigureavi
- % hack
+ % hack
\doif\@@efmethode\c!mov
{\doifsomething\@@efextension{\presetundefinedfigure\@@efextension}}%
- %
+ %
\doif\@@eftype\v!buffer
{\ifx\@@efextension\empty
\let\@@efextension\c!tmp
@@ -995,9 +995,9 @@
}%
\edef\figuretypes{\figuretypes,\c!tex}%
\ifx\@@eftype\c!tex
- % Since tex code can have positional stuff and worse,
- % we want to avoid interference with how objects end
- % up in files, therefore:
+ % Since tex code can have positional stuff and worse,
+ % we want to avoid interference with how objects end
+ % up in files, therefore:
\let\@@efobject\v!nee
\fi
\edef\@@efobjectname{\@@effilename-\@@eftype-\@@efextension-\@@efpagina}%
@@ -1008,13 +1008,13 @@
{\doifobjectfoundelse{FIG}\@@efobjectname\donetrue\donefalse}
\donefalse}
\donefalse}%
- % redo message, only filename
+ % redo message, only filename
\doifparentfileelse\@@effilename
{\@EA\removefromcommalist\@EA{\jobsuffix}\figuretypes
\let\@@efextension\empty
\showmessage\m!figures9\@@effilename
\donefalse}
- \donothing
+ \donothing
\ifdone
\getobjectdimensions{FIG}{\@@efobjectname}%
\geteparameters % e !
@@ -1062,7 +1062,7 @@
\analyzefigurefiles}}%
\let\@@epe\@@eftype
\edef\@@efextension{\figureextension{\@@eftype}}% dirty trick
- \global\figwid\zeropoint \figxsca\plusone
+ \global\figwid\zeropoint \figxsca\plusone
\global\fighei\zeropoint \figysca\plusone
\doif\v!kader\@@exoptie
{\let\@@efkader\v!aan}%
@@ -1079,7 +1079,7 @@
\showmessage\m!figures4{\@@effullname}%
\or
\showmessage\m!figures5{\@@effullname,\@@efloadname}%
- \or % no message
+ \or % no message
\doifnot\@@efsymbool\v!ja
{\showmessage\m!figures8{\@@effullname}}%
\fi
@@ -1105,13 +1105,13 @@
[\@@effullname:
t={\@@eftype}\space m={\@@efmethode}\space l=\@@eflabel\space
w=\number\figwid\space h=\number\fighei\space
- \c!sx=\scax\space\c!sy=\scay\space
+ \c!sx=\scax\space\c!sy=\scay\space
ox=\figx\space oy=\figy]}%
\fi
\doif\v!leeg\@@exoptie
{\skipexternalfigurestrue
- \let\@@efkader\v!uit}% ? ?
- \doifelsenothing\@@efpagina % NIEUW ??
+ \let\@@efkader\v!uit}% ? ?
+ \doifelsenothing\@@efpagina % NIEUW ??
{\let\@@efoptions\empty}
{\let\@@efoptions\@@efpagina}%
\doif\@@efpreview\v!ja{\addtocommalist\v!preview\@@efoptions}%
@@ -1131,9 +1131,9 @@
\ifdone
\doifobjectfoundelse{FIG}\@@efobjectname
\donothing
- {\bgroup % to be cleaned up
- \figwid\@@epw % local ?
- \fighei\@@eph % local ?
+ {\bgroup % to be cleaned up
+ \figwid\@@epw % local ?
+ \fighei\@@eph % local ?
\scratchdimen\@@epx\scratchdimen-\scratchdimen
\edef\@@epx{\the\scratchdimen}%
\scratchdimen\@@epy\scratchdimen-\scratchdimen
@@ -1164,9 +1164,9 @@
{\vfill
\hsize\figwid
\ifdone
- \scratchdimen\scax\s!pt\divide\scratchdimen \plushundred
+ \scratchdimen\scax\s!pt\divide\scratchdimen \plushundred
\edef\scax{\@EA\withoutpt\the\scratchdimen}%
- \scratchdimen\scay\s!pt\divide\scratchdimen \plushundred
+ \scratchdimen\scay\s!pt\divide\scratchdimen \plushundred
\edef\scay{\@EA\withoutpt\the\scratchdimen}%
\schaal[\c!sx=\scax,\c!sy=\scay]{\dowithfigure{\getobject{FIG}{\@@efobjectname}}}%
\xdef\noffigurepages{\number\getvalue{\@@efobjectname\c!n}}%
@@ -1194,70 +1194,6 @@
\let\figurefiletype\empty
\let\figurefilepage\empty
-% \def\finalizeexternalfigure#1#2%
-% {\pushmacro\figurewidth
-% \pushmacro\figureheight
-% \pushmacro\figurelabel
-% \pushmacro\figurefilename
-% \pushmacro\figurefiletype
-% \pushmacro\figurefilepage
-% \xdef\figurewidth {\the\figwid}%
-% \xdef\figureheight {\the\fighei}%
-% \xdef\figurelabel {#1}%
-% \xdef\figurefilename{#2}%
-% \xdef\figurefiletype{\@@eftype}%
-% \xdef\figurefilepage{\@@efpagina}%
-% \global\setbox\foundexternalfigure\vbox
-% {\forgetall
-% \ifcase\figurestatus
-% \resetsystemmode\v!figuur
-% \let\figurefiletype\empty
-% \else
-% \setsystemmode \v!figuur % beter resource
-% \fi
-% \ifconditional\externalfigurelevel % probably background
-% \ifskipexternalfigures
-% % nothing
-% \else\ifsplitexternalfigures
-% % nothing
-% \else\ifcase\figurestatus
-% % nothing
-% \else
-% \the\externalfigurepostprocessors
-% \box\foundexternalfigure
-% \fi\fi\fi
-% \else
-% \feedbackexternalfigure
-% \settrue\externalfigurelevel
-% \ifskipexternalfigures
-% \externalfigurereplacement{#1}{#2}{skipped}%
-% \else\ifsplitexternalfigures
-% \backgroundline
-% [\@@efsplitskleur]{\fakebox\foundexternalfigure}%
-% \else\ifcase\figurestatus
-% \externalfigurereplacement{#1}{#2}{unknown}%
-% \else
-% \the\externalfigurepostprocessors
-% \doifelse\@@efreset\v!ja
-% {\ht\foundexternalfigure\figureheight
-% \dp\foundexternalfigure\zeropoint
-% \wd\foundexternalfigure\figurewidth
-% \box\foundexternalfigure}
-% {\localframed % should also be applied to high res !
-% [\??ef]
-% [\c!offset=\v!overlay,
-% \c!breedte=\figurewidth,
-% \c!hoogte=\figureheight]
-% {\vfilll\box\foundexternalfigure}}%
-% \fi\fi\fi
-% \fi}%
-% \popmacro\figurefilepage
-% \popmacro\figurefiletype
-% \popmacro\figurefilename
-% \popmacro\figurelabel
-% \popmacro\figureheight
-% \popmacro\figurewidth}
-
\def\finalizeexternalfigure#1#2%
{\pushmacro\figurewidth
\pushmacro\figureheight
@@ -1268,12 +1204,12 @@
\xdef\figurewidth {\the\figwid}%
\xdef\figureheight {\the\fighei}%
\xdef\figurelabel {#1}%
- \xdef\figurefilename{#2}%
+ \xdef\figurefilename{#2}%
\xdef\figurefiletype{\@@eftype}%
\xdef\figurefilepage{\@@efpagina}%
\global\setbox\foundexternalfigure\vbox
{\forgetall
- \ifcase\figurestatus
+ \ifcase\figurestatus
\resetsystemmode\v!figuur
\let\figurefiletype\empty
\else
@@ -1281,22 +1217,22 @@
\fi
\ifconditional\externalfigurelevel % probably background
\ifskipexternalfigures
- % nothing
+ % nothing
\else\ifcase\figurestatus
- % nothing
- \else\ifnum\splitexternalfigure=2\else
+ % nothing
+ \else\ifnum\splitexternalfigure=2\else
\the\externalfigurepostprocessors
\box\foundexternalfigure
\fi\fi\fi
\else
- \feedbackexternalfigure
+ \feedbackexternalfigure
\settrue\externalfigurelevel
\ifskipexternalfigures
- \externalfigurereplacement{#1}{#2}{skipped}%
+ \externalfigurereplacement{#1}{#2}{skipped}%
\else\ifcase\figurestatus
- \externalfigurereplacement{#1}{#2}{unknown}%
+ \externalfigurereplacement{#1}{#2}{unknown}%
\else\ifnum\splitexternalfigure=2
- \backgroundline[\@@efsplitskleur]
+ \backgroundline[\@@efsplitskleur]
{\fakebox\foundexternalfigure}%
\else
\the\externalfigurepostprocessors
@@ -1307,16 +1243,16 @@
\box\foundexternalfigure}
{\localframed % should also be applied to high res !
[\??ef]
- [\c!offset=\v!overlay,
+ [\c!offset=\v!overlay,
\c!breedte=\figurewidth,
- \c!hoogte=\figureheight]
+ \c!hoogte=\figureheight]
{\vfilll
\ifnum\splitexternalfigure=1
% hm, eigenlijk in dit geval achtergrondkleur
-\hidesplitcolorfalse % really needed
+ \hidesplitcolorfalse % really needed
\backgroundline[\@@efsplitskleur]
{\box\foundexternalfigure}%
- \else % = 0, no split mode
+ \else % = 0, no split mode
\box\foundexternalfigure
\fi}}%
\fi\fi\fi
@@ -1335,8 +1271,8 @@
[\??ef]
[\c!breedte=\figurewidth,
\c!hoogte=\figureheight,
- \c!achtergrond=\v!raster,
- \c!achtergrondraster=.8,
+ \c!achtergrond=\v!raster,
+ \c!achtergrondraster=.8,
%\c!kader=\ifincolor\v!uit\else\v!aan\fi]
%\c!kader=\ifincolor\@@efkader\else\v!aan\fi]}%
\c!kader=\@@efkader]}%
@@ -1353,7 +1289,7 @@
\gdef\appliedfigurexscale{1}
\gdef\appliedfigureyscale{1}
-% will go internal
+% will go internal
\def\appliedfigurefilename {\@@effilename}
\def\appliedfigurefilepath {\@@efcurrentpath}
@@ -1376,7 +1312,7 @@
\let\lastfigureobjectname\empty
-%D The next macro does not work well with figure bases yet.
+%D The next macro does not work well with figure bases yet.
\def\calculateexternalscreenfigure[#1][#2][#3][#4][#5][#6]%
{\ifx\@@efscherm\empty\else
@@ -1409,9 +1345,9 @@
{{\let\immediate\relax % very dirty but prevents flushing, will change
\setbox0\hbox{\externalfigure[#1][#2,\c!scherm=,\c!object=\v!nee]}}}
-% use the next one when the object must be forgotten (xobj
-% nums can migrate to the next object; maybe it should
-% always be done; todo ....
+% use the next one when the object must be forgotten (xobj
+% nums can migrate to the next object; maybe it should
+% always be done; todo ....
\def\getfiguredimensionsonly
{\dodoubleempty\dogetfiguredimensionsonly}
@@ -1430,23 +1366,23 @@
\def\dodoplaceexternalfigure[#1][#2][#3][#4][#5][#6]%
{\doifsomething{#3}% catches \defineexternalfigure dummies
{\bgroup
- \def\textunderscore{_}% brrr, temp hack
+ \def\textunderscore{_}% brrr, temp hack
\calculateexternalfigure[#1][#2][#3][#4][#5][#6]%
\calculateexternalscreenfigure[#1][#2][#3][#4][#5][#6]%
\box\foundexternalfigure
\egroup}}
-% new: more convenient/efficient than
+% new: more convenient/efficient than
%
-% \use..[a][a][setting] \externalfigure[b][a]
+% \use..[a][a][setting] \externalfigure[b][a]
%
-% is equivalent to:
+% is equivalent to:
%
% \def..[a][setting] \externalfigure[b][a]
-%
-% see x-res modules for usage:
-%
-% \defineexternalfigure[name][settings]
+%
+% see x-res modules for usage:
+%
+% \defineexternalfigure[name][settings]
\def\dodefineexternalfigure[#1][#2]%
{\setvalue{\??ef\??ef#1}%
@@ -1490,14 +1426,6 @@
{\setvalue{\??ef\??ef#1}{\doplaceexternalfigure[\doprecopfigure][#1][#2][#3][#4]}}}%
\doifundefined{#1}{\setvalue{#1}{\getexternalfigure{#1}}}} % upward compatible
-%\def\douseexternalfigure[#1][#2][#3][#4]%
-% {\doifelsenothing{#1}
-% {\doifsomething{#2}
-% {\dosetuseexternalfigure[#2][#2][#3][#4]}}
-% {\doifelsenothing{#2}
-% {\dosetuseexternalfigure[#1][#1][#3][#4]}
-% {\dosetuseexternalfigure[#1][#2][#3][#4]}}}
-
\def\douseexternalfigure[#1][#2]%[#3][#4]%
{\doifelsenothing{#1}
{\doifsomething{#2}
@@ -1515,7 +1443,6 @@
\def\doexternalfigure[#1][#2][#3]%
{\bgroup
\doifelsenothing{#1}
- %{\framed[\c!breedte=4cm,\c!hoogte=3cm]{external\\figure}}
{\framed[\c!breedte=8\lineheight,\c!hoogte=6\lineheight]{external\\figure}}
{\doifundefinedelse{\??ef\??ef#1}
{\useexternalfigure[\s!dummy][#1][#2][#3]%
@@ -1596,7 +1523,7 @@
\pushendofline
\tabskip\zeropoint \!!plus 1fill
\halign to \hsize
- {&\hss##\hss\cr\readjobfile\@@exfile\donothing\donothing\crcr
+ {&\hss##\hss\cr\readjobfile\@@exfile\donothing\donothing\crcr
\figurecaptions}
\popendofline
\egroup}
@@ -1609,25 +1536,14 @@
\popendofline
\egroup}
-% \def\pagefigure
-% {\dodoubleempty\dopagefigure}
-%
-% \def\dopagefigure[#1][#2]%
-% {\bgroup
-% \getparameters[\??ex][\c!offset=\v!overlay,#2]%
-% \startTEXpage[\c!offset=\@@exoffset]%
-% \externalfigure[#1][#2]%
-% \stopTEXpage
-% \egroup}
-
\def\startpagefigure
{\dodoubleempty\dostartpagefigure}
-\def\dostartpagefigure[#1][#2]%
+\def\dostartpagefigure[#1][#2]%
{\bgroup
\getparameters[\??ex][\c!offset=\v!overlay,#2]%
\startTEXpage[\c!offset=\@@exoffset]%
- \externalfigure[#1][#2]\ignorespaces}
+ \externalfigure[#1][#2]\ignorespaces} % so we can put some text below the graphic
\def\stoppagefigure
{\stopTEXpage
@@ -1812,9 +1728,9 @@
\externalfigure[\s!dummy]}%
\def\referring
{\efmark}%
- \def\marking
+ \def\marking
{\efmark}%
- \def\remark
+ \def\remark
{\efcomment\v!ja}%
\def\colorbar##1[##2]%
{}%
@@ -1916,106 +1832,6 @@
%D
%D \showsetup{setupclipping}
-% \def\doclip[#1]% nb top->bottom left->right
-% {\bgroup
-% \getparameters[\??cp][#1]%
-% \dowithnextbox
-% {\ifdim\@@cpbreedte>\zeropoint
-% \dimen0=\@@cpbreedte
-% \dimen4=\@@cphoffset
-% \else
-% \dimen0=\nextboxwd
-% \divide\dimen0 \@@cpnx
-% \dimen4=\@@cpx\dimen0
-% \advance\dimen4 -\dimen0
-% \dimen0=\@@cpsx\dimen0
-% \fi
-% \relax % sure
-% \ifdim\@@cphoogte>\zeropoint
-% \dimen2=\@@cphoogte
-% \dimen6=\nextboxht
-% \advance\dimen6 -\@@cpvoffset
-% \advance\dimen6 -\dimen2
-% \else
-% \dimen2=\nextboxht
-% \divide\dimen2 \@@cpny
-% \dimen6=-\@@cpy\dimen2
-% \advance\dimen6 -\@@cpsy\dimen2
-% \advance\dimen6 \dimen2
-% \dimen2=\@@cpsy\dimen2
-% \advance\dimen6 \nextboxht
-% \fi
-% \setbox\nextbox\hbox
-% {\hskip-\dimen4\lower\dimen6\flushnextbox}%
-% \nextboxwd\zeropoint
-% \nextboxht\zeropoint
-% \nextboxdp\zeropoint
-% \setbox\nextbox\hbox
-% {\dostartclipping\@@cpmp{\dimen0}{\dimen2}%
-% \flushnextbox
-% \dostopclipping}%
-% \nextboxwd\dimen0
-% \nextboxht\dimen2
-% \nextboxdp\zeropoint
-% \flushnextbox
-% \egroup}%
-% \hbox}
-
-% \def\doclip[#1]% nb top->bottom left->right
-% {\bgroup
-% \getparameters[\??cp][#1]%
-% \dowithnextbox
-% {\ifdim\@@cpbreedte>\zeropoint
-% \dimen0=\@@cpbreedte
-% \dimen4=\@@cphoffset
-% \else
-% \dimen0=\nextboxwd
-% \divide\dimen0 \@@cpnx
-% \dimen4=\@@cpx\dimen0
-% \advance\dimen4 -\dimen0
-% \dimen0=\@@cpsx\dimen0
-% \fi
-% \relax % sure
-% \ifdim\@@cphoogte>\zeropoint
-% \dimen2=\@@cphoogte
-% \dimen6=\nextboxht
-% \advance\dimen6 -\@@cpvoffset
-% \advance\dimen6 -\dimen2
-% \else
-% \dimen2=\nextboxht
-% \divide\dimen2 \@@cpny
-% \dimen6=-\@@cpy\dimen2
-% \advance\dimen6 -\@@cpsy\dimen2
-% \advance\dimen6 \dimen2
-% \dimen2=\@@cpsy\dimen2
-% \advance\dimen6 \nextboxht
-% \fi
-% \setbox\nextbox\hbox % old
-% {\advance\dimen4 -\@@cplinkeroffset % new !
-% \advance\dimen6 \@@cpbovenoffset % new !
-% \hskip-\dimen4\lower\dimen6\flushnextbox}% old
-% \nextboxwd\zeropoint
-% \nextboxht\zeropoint
-% \nextboxdp\zeropoint
-% \setbox\nextbox\hbox
-% {\advance\dimen0 \@@cplinkeroffset % new !
-% \advance\dimen0 \@@cprechteroffset % new !
-% \advance\dimen2 \@@cpbovenoffset % new !
-% \advance\dimen2 \@@cponderoffset % new !
-% \dostartclipping\@@cpmp{\dimen0}{\dimen2}% old
-% \flushnextbox
-% \dostopclipping}%
-% \setbox\nextbox\hbox % new !
-% {\dimen0-\@@cplinkeroffset % new !
-% \dimen2-\@@cpbovenoffset % new !
-% \hskip\dimen0\lower\dimen2\flushnextbox}% new !
-% \nextboxwd\dimen0
-% \nextboxht\dimen2
-% \nextboxdp\zeropoint
-% \flushnextbox
-% \egroup}%
-% \hbox}
-
\def\doclip[#1]% nb top->bottom left->right
{\bgroup
\getparameters[\??cp][#1]%
@@ -2048,10 +1864,10 @@
\!!dimenb\@@cpsy\!!dimenb
\advance\!!dimend \nextboxht
\fi
- \setbox\nextbox\hbox % old
+ \setbox\nextbox\hbox % old
{\advance\!!dimenc -\@@cplinkeroffset % new !
- \advance\!!dimend -\@@cpbovenoffset % new ! % - added
- \hskip-\!!dimenc\lower\!!dimend\flushnextbox}% old
+ \advance\!!dimend -\@@cpbovenoffset % new ! % - added
+ \hskip-\!!dimenc\lower\!!dimend\flushnextbox}% old
\nextboxwd\zeropoint
\nextboxht\zeropoint
\nextboxdp\zeropoint
@@ -2065,7 +1881,7 @@
\dostopclipping}%
\setbox\nextbox\hbox % new !
{\!!dimena-\@@cplinkeroffset % new !
- \!!dimenb \@@cpbovenoffset % new ! % - removed
+ \!!dimenb \@@cpbovenoffset % new ! % - removed
\hskip\!!dimena\lower\!!dimenb\flushnextbox}% new !
\nextboxwd\!!dimena
\nextboxht\!!dimenb
@@ -2100,9 +1916,9 @@
{\iflocation
\doifdefined{\??sd:#1}{\doifvaluesomething{\??sd:#1}
{\doinsertsoundtrack{\getvalue{\??sd:#1}}{#1}\@@sdoptie
- % brr, \..empty not really needed and maybe even wrong;
- % also, not here but in driver
- \letgvalueempty{\??sd:#1}}}%
+ % brr, \..empty not really needed and maybe even wrong;
+ % also, not here but in driver
+ \letgvalueempty{\??sd:#1}}}%
\fi}
\setexecutecommandcheck {startsound} \checksoundtrack
@@ -2131,7 +1947,7 @@
\c!straal=.5\korpsgrootte,
\c!hoek=\v!recht,
\c!kader=\v!uit,
- \c!achtergrond=, % new
+ \c!achtergrond=, % new
\c!splitskleur=white,
\c!plaats={\v!lokaal,\v!globaal}]
@@ -2145,18 +1961,18 @@
\setupclipping
[\c!status=\v!start,
- \c!n=1, % was 2
- \c!nx=\@@cpn,\c!x=1,\c!sx=1,
- \c!ny=\@@cpn,\c!y=1,\c!sy=1,
+ \c!n=1, % was 2
+ \c!nx=\@@cpn,\c!x=1,\c!sx=1,
+ \c!ny=\@@cpn,\c!y=1,\c!sy=1,
\c!breedte=\!!zeropoint,
\c!hoogte=\!!zeropoint,
\c!hoffset=\!!zeropoint,
\c!voffset=\!!zeropoint,
-\c!offset=\zeropoint,
+ \c!offset=\zeropoint,
\c!linkeroffset=\@@cpoffset, % \zeropoint,
\c!rechteroffset=\@@cpoffset, % \zeropoint,
\c!bovenoffset=\@@cpoffset, % \zeropoint,
\c!onderoffset=\@@cpoffset, % \zeropoint,
\c!mp=]
-\protect \endinput
+\protect \endinput \ No newline at end of file
diff --git a/tex/context/base/core-job.tex b/tex/context/base/core-job.tex
index f1f296922..91c963770 100644
--- a/tex/context/base/core-job.tex
+++ b/tex/context/base/core-job.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-%D This module is still to be split and documented.
+%D This module is still to be split and documented.
\writestatus{loading}{Context Core Macros / Job Handling}
@@ -31,9 +31,9 @@
%S
%S CheckChar $
-% \appendtoks \reportprotectionstate \to \everydump
+% \appendtoks \reportprotectionstate \to \everydump
-\unprotect
+\unprotect
\let \currentproject \empty
\let \currentproduct \empty
@@ -50,7 +50,7 @@
\setvalue{\c!file::0}{\jobname}
-\def\processedfile % is used in styles, don't change !
+\def\processedfile % is used in styles, don't change !
{\getvalue{\c!file::\fileprocesslevel}}
%\def\processfile#1%
@@ -65,13 +65,13 @@
\setxvalue{\c!file::\fileprocesslevel}{#1}%
\@EA\doglobal\@EA\addtocommalist\@EA{#1}\processedfiles}
-\def\dostoptextfile
+\def\dostoptextfile
{\doglobal\decrement\fileprocesslevel}
\def\processlocalfile#1#2%
{% #1=\readlocfile|\readsetfile{dir} #2=filename
- % #1{#2}\donothing\donothing
- #1{#2}\donothing{\readfile{#2}\donothing\donothing}}
+ % #1{#2}\donothing\donothing
+ #1{#2}\donothing{\readfile{#2}\donothing\donothing}}
\def\processfile#1%
{\ifx\allinputpaths\empty
@@ -83,7 +83,7 @@
{\donetrue\def\filepath{##1}}
{\donefalse}%
\ifdone\expandafter\quitcommalist\fi}%
- \doifparentfileelse{#1} % new
+ \doifparentfileelse{#1} % new
{\processcommacommand [\allinputpaths]\docommando}
{\processcommacommand[.,\allinputpaths]\docommando}%
\ifx\filepath\empty
@@ -103,7 +103,7 @@
{\addtocommalist{##1}\allinputpaths}}%
\processcommalist[#1]\docommando}
-\def\usesubpath[#1]% new, see webschrift for usage
+\def\usesubpath[#1]% new, see webschrift for usage
{\ifx\allinputpaths\empty
\edef\allinputpaths{#1}%
\else
@@ -113,7 +113,7 @@
\processcommacommand[\allinputpaths]\docommando
\fi}
-\def\registreerfileinfo[#1#2]#3% geen \showmessage ?
+\def\registreerfileinfo[#1#2]#3% geen \showmessage ?
{\writestatus\m!systems{#1#2 file #3 at line \the\inputlineno}%
\immediatewriteutility{f #1 {#3}}}
@@ -130,13 +130,13 @@
% {\showmessage\m!systems2\f!filfilename}\donothing
% \readsysfile\f!sysfilename
% {\showmessage\m!systems2\f!sysfilename}\donothing}
-%
+%
% test \@@svgebied
\def\loadallsystemfiles#1#2%
{\ifx\@@svgebied\empty
\readsysfile{#1}{\showmessage\m!systems2{#1}}{#2}%
- \else% yet undocumented
+ \else% yet undocumented
\def\doloadsystemfile##1%
{\readsetfile{##1}{#1}{\showmessage\m!systems2{#1}}{#2}}%
\processcommacommand[\@@svgebied]\doloadsystemfile
@@ -160,8 +160,8 @@
%\loadallsystemfiles\f!modfilename
% \donothing}
-%D Loading of \type {cont-usr.tex} (edited by the user)
-%D and \type {cont-fmt.tex} (generated by texexec).
+%D Loading of \type {cont-usr.tex} (edited by the user)
+%D and \type {cont-fmt.tex} (generated by texexec).
\def\loaduserspecifications
{\readsysfile\f!usrfilename
@@ -169,7 +169,7 @@
\readjobfile\f!fmtfilename
{\showmessage\m!systems2\f!fmtfilename}\donothing}
-%D We don't want multiple jobfiles to interfere.
+%D We don't want multiple jobfiles to interfere.
\bgroup
\catcode`\%=\@@other
@@ -193,7 +193,7 @@
\appendtoks \preloadlanguages \to \everyjob
\appendtoks \preloadspecials \to \everyjob
\appendtoks \openspecialfile \to \everyjob
-%appendtoks \checkutilityfile \to \everyjob % obsolete
+%appendtoks \checkutilityfile \to \everyjob % obsolete
\appendtoks \openutilities \to \everyjob
\appendtoks \loadoptionfile \to \everyjob
%appendtoks \loadtwopassdata \to \everyjob
@@ -213,7 +213,7 @@
\prependtoks \resetutilities \to \everystarttext % moved 28-02-2002
\prependtoks \loadtwopassdata \to \everystarttext % moved 28-02-2002
-\appendtoks \checkreferences \to \everystarttext % new 04-12-1999
+\appendtoks \checkreferences \to \everystarttext % new 04-12-1999
% Most natural ...
%
@@ -221,14 +221,14 @@
% {\the\everystarttext
% \global\let\doateverystarttext\relax}
%
-% ... most practical, since we can load env's in a
-% something.run file (nested \starttext's; see for
-% instance x-res-08, where we definitely want to
+% ... most practical, since we can load env's in a
+% something.run file (nested \starttext's; see for
+% instance x-res-08, where we definitely want to
% open the file!).
\def\doateverystarttext
{\the\everystarttext
- \global\everystarttext\emptytoks}
+ \global\everystarttext\emptytoks}
\def\starttekst
{\doateverystarttext
@@ -242,14 +242,14 @@
{\doglobal\decrement\textlevel\relax
\ifnum\textlevel>\zerocount \else
\the\everystoptext
- %\the\everybye %
+ %\the\everybye %
%\the\everygoodbye % == \end (new)
%\expandafter\normalend %
\expandafter\end
\fi}
-\let\starttext\starttekst
-\let\stoptext \stoptekst
+\let\starttext\starttekst
+\let\stoptext \stoptekst
\let\normalend=\end
@@ -258,7 +258,7 @@
\the\everybye
\the\everygoodbye
\global\everybye \emptytoks % rather unneeded
- \global\everygoodbye\emptytoks % but for sure
+ \global\everygoodbye\emptytoks % but for sure
\expandafter\normalend
\fi}
@@ -291,11 +291,11 @@
\dostoptextfile}
\def\onderdeel #1 % at outermost level only
- {\dostarttextfile{#1}%
+ {\dostarttextfile{#1}%
\processfile{#1}%
\dostoptextfile}
-\def\environment{\omgeving} % for the moment, no \let !
+\def\environment{\omgeving} % for the moment, no \let !
\newcounter\filelevel
@@ -389,6 +389,9 @@
\next}
\def\dodosetups#1%
+ {\processcommalist[#1]\dododosetups}
+
+\def\dodososetups#1%
{\getvalue{\??su#1}}
\def\doifsetupselse#1%
@@ -400,17 +403,15 @@
\xdostartsetups{#1}}
\expanded
- {\long\noexpand\def\noexpand\xdostartsetups##1##2\csname\e!stop\v!instellingen\endcsname%
+ {\long\noexpand\def\noexpand\xdostartsetups##1##2\csname\e!stop\v!instellingen\endcsname
{\egroup
\long\noexpand\setvalue{\??su##1}{##2}}}
\def\startsetups % for international purposes
- {\bgroup\doifnextcharelse[{\startsetupsA\stopsetups}%
- {\startsetupsB\stopsetups}}
+ {\bgroup\doifnextcharelse[\startsetupsA\startsetupsB\stopsetups}
\def\startlocalsetups % for nested purposes
- {\bgroup\doifnextcharelse[{\startsetupsA\stoplocalsetups}%
- {\startsetupsB\stoplocalsetups}}
+ {\bgroup\doifnextcharelse[\startsetupsA\startsetupsB\stoplocalsetups}
\def\startsetupsA#1[#2]%
{\catcode`\^^M=\@@ignore
@@ -430,18 +431,18 @@
\neverypar=\emptytoks
-\appendtoks \flushnotes \to \everypar
-\appendtoks \ifinner\else\checksidefloat\fi \to \everypar
-\appendtoks \checkindentation \to \everypar
-\appendtoks \showparagraphnumber \to \everypar
-\appendtoks \flushmargincontents \to \everypar
-\appendtoks \flushcommentanchors \to \everypar
-\appendtoks \synchronizenotes \to \everypar
+\appendtoks \flushnotes \to \everypar
+\appendtoks \ifinner\else\checksidefloat\fi \to \everypar
+\appendtoks \checkindentation \to \everypar
+\appendtoks \showparagraphnumber \to \everypar
+\appendtoks \flushmargincontents \to \everypar
+\appendtoks \flushcommentanchors \to \everypar
+\appendtoks \synchronizenotes \to \everypar
\appendtoks \flushnotes \to \everydisplay
\appendtoks \adjustsidefloatdisplaylines \to \everydisplay
-%D Better here than in supp-mps:
+%D Better here than in supp-mps:
\def\executesystemcommand{\immediate\write18}
diff --git a/tex/context/base/core-lst.tex b/tex/context/base/core-lst.tex
index 535cfddb1..26bf8e7f6 100644
--- a/tex/context/base/core-lst.tex
+++ b/tex/context/base/core-lst.tex
@@ -8,12 +8,12 @@
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
\writestatus{loading}{Context Core Macros / Lists}
-\unprotect
+\unprotect
% \getlistlevel[hoofdstuk]\test{0} \test
@@ -27,11 +27,11 @@
{\edef#2{#3}}}
{\edef#2{#3}}}
-% Auto cross document links work by either using logical or
-% page references, depending on the general settings. The
+% Auto cross document links work by either using logical or
+% page references, depending on the general settings. The
% locations are stored in global references where the auto tag
-% number uses the text container. We use reference mapping
-% (define reference) to keep track of the current ref.
+% number uses the text container. We use reference mapping
+% (define reference) to keep track of the current ref.
\def\doschrijfnaarlijst#1%
{\doifelsevalue{\??li#1\c!status}\v!start
@@ -86,12 +86,12 @@
\fi\fi}}%
\processcommacommand[\crossdocumentelements]\docommando}
-% so far
+% so far
% \def\doschrijftussenlijst#1#2%
% {\doifvalue{\??li#1\c!status}\v!start
% {\dodoschrijftussenlijst{#1}{#2}}}
-%
+%
% \def\dodoschrijftussenlijst#1#2%
% {\begingroup
% \convertargument#2\to\ascii
@@ -109,7 +109,7 @@
% \schrijfwegnaarlijst
% \endgroup}
%
-% no reason for indirectness
+% no reason for indirectness
\def\doschrijftussenlijst#1#2%
{\doifvalue{\??li#1\c!status}\v!start
@@ -129,7 +129,7 @@
\next % \schrijfwegnaarlijst
\endgroup}}
-% experimental (no nodes in mvl), needed for naw
+% experimental (no nodes in mvl), needed for naw
\def\immediatetolist[#1]#2#3#4%
{\begingroup
@@ -166,7 +166,7 @@
\def\@@livarianta% nr - tit - pag
% {\def\lijstfill{\hskip 1.75em}% was \hskip.5em\hskip 1.25em
- {\def\lijstfill{\hskip .25em}% omdat nu check
+ {\def\lijstfill{\hskip .25em}% omdat nu check
\def\lijstskip{0em}%
\def\lijstwidth{2em}}
@@ -189,7 +189,7 @@
\def\setlistparameter#1#2{\@EA\def\csname\??li#1#2\endcsname}
-\def\dostellijstin[#1][#2]% slow -)
+\def\dostellijstin[#1][#2]% slow -)
{\def\docommando##1%
{\getparameters[\??li##1][#2]%
\preparepaginaprefix{\??li##1}}%
@@ -199,7 +199,7 @@
{\dodoubleargument\dostellijstin}
\def\dodosetlijst#1%
- {\def\geenlijst{\splitsequence{\getvalue{\??li#1\c!limittext}}}%
+ {\def\geenlijst{\splitsequence{\getvalue{\??li#1\c!limittext}}}%
\setvalue{#1\c!tussen}{\dotussenlijst {#1}}%
\setvalue{#1\c!lijst }{\dolijstelement{#1}}}
@@ -253,7 +253,7 @@
\doifassignmentelse{#2}
{\getparameters[\??li#1][#2]}
{\ConvertToConstant\doifnot{#2}{}
- {\copyparameters % interactie ?
+ {\copyparameters % interactie ?
[\??li#1][\??li#2]
[\c!status,\c!breedte,\c!variant,\c!letter,\c!kleur,
\c!tekstletter,\c!tekstkleur,\c!tekstcommando,
@@ -306,7 +306,7 @@
\dosetlistmode
\endgroup}
-% th esimple appreach:
+% th esimple appreach:
%
% \def\dosettoclevel#1#2%
% {\dosetfilterlevel{\getvalue{#1#2\c!criterium}}\empty}
@@ -337,13 +337,13 @@
\def\dosetlistmode
{\iflijstgeplaatst
- \setsystemmode \v!lijst
+ \setsystemmode \v!lijst
\else
- \resetsystemmode\v!lijst
+ \resetsystemmode\v!lijst
\fi}
\def\dodovolledigelijst[#1][#2][#3]% enkelvoud, meervoud, instellingen
- {\systemsuppliedtitle[#2]{\headtext{#2}}
+ {\expanded{\systemsuppliedtitle[#2]{\noexpand\headtext{#2}}}% expansion needed for v! vs french !
\doplaatslijst[#1][#3]}
\def\dovolledigelijst[#1][#2]%
@@ -366,9 +366,9 @@
%
% can be anything, so no \expanded{\separatednumber{#1}} !
-\def\dohandlelistnumber#1{\separatednumber{#1}}
+\def\dohandlelistnumber#1{\separatednumber{#1}}
-% new
+% new
\let\currentlistsymbol\empty
@@ -377,7 +377,7 @@
%
-\def\dosetlistsymbol#1#2% kan sneller, default case afvangen
+\def\dosetlistsymbol#1#2% kan sneller, default case afvangen
{\processaction
[\getvalue{\??li#1\c!symbool}]
[ \v!geen=>\def\currentlistsymbol%
@@ -393,17 +393,17 @@
\doassigndimen{\dimen4}{\getvalue{\??li#1\c!diepte}}{0pt}%
\vrule\!!width\dimen0\!!height\dimen2\!!depth\dimen4}},
\s!unknown=>\def\currentlistsymbol{\getvalue{\??li#1\c!symbool}},
- \s!default=>\doifelsevalue{\??li#1\c!prefix}\v!nee % ook nog eerste
+ \s!default=>\doifelsevalue{\??li#1\c!prefix}\v!nee % ook nog eerste
{\edef\splitlistsymbol{\removefirstprefix{#2}}}
- {\doifelsevalue{\??li#1\c!prefix}\v!geen
+ {\doifelsevalue{\??li#1\c!prefix}\v!geen
{\edef\splitlistsymbol{\removeallprefixes{#2}}}%
{\def\splitlistsymbol{#2}}}% geen \edef ivm enz
- \def\currentlistsymbol% kan iets efficienter met \ifdone
+ \def\currentlistsymbol% kan iets efficienter met \ifdone
{\doifvalue{\??li#1\c!label}\v!ja{\leftlabeltext{#1}}%
- \strut
+ \strut
\def\numberseparator{\getvalue{\??li#1\c!scheider}}%
\@EA\dohandlelistnumber\@EA{\splitlistsymbol}%
- \getvalue{\??li#1\c!afsluiter}%
+ \getvalue{\??li#1\c!afsluiter}%
\doifvalue{\??li#1\c!label}\v!ja{\rightlabeltext{#1}}}]}
\def\@@dodolijstelement{dodolijstelement}
@@ -442,9 +442,9 @@
\def\newlineinlist{\space}
\def\dolijstelement#1#2#3#4#5#6% pas op: wordt ook elders gedefinieerd
- {\doiftoclevelelse[#5]{\dodolijstelement{#1}{#2}{#3}{#4}{#5}{#6}}{}}
+ {\doiftoclevelelse[#5]{\dodolijstelement{#1}{#2}{#3}{#4}{#5}{#6}}{}}
-\def\dodolijstelement#1#2#3#4#5#6%
+\def\dodolijstelement#1#2#3#4#5#6%
{\getvalue{\@@dodolijstelement\getvalue{\??li#1\c!variant}}%
%\showcomposition
\let\@@iabreedte\!!zeropoint % moet boolean worden
@@ -475,7 +475,7 @@
\def\dodofreelijstelement#1#2#3#4#5#6#7#8%
{\def\makelijstelement##1##2%
- {\noindent % new and needed
+ {\noindent % new and needed
\hbox
{\doifelsevalue{\??li#1\c!interactie}{##1} % \??li ipv \??ia
{\setbox0\hbox{\showcontrastlocation{\??li#1}{#6}{##2}}%
@@ -515,16 +515,16 @@
{\dodofreelijstelement{#1}{#2}{#3}{#4}{#5}{#6}
{\noindent}{}}
-\def\dodofreevlijstelement#1#2#3#4#5#6% % \nointerlineskip nodig,
- {\dodofreelijstelement{#1}{#2}{#3}{#4}{#5}{#6} % anders verkeerde spatiering
- {\ifvmode\nointerlineskip\fi} % bij multi-line lijsten
- {\nointerlineskip\endgraf\allowbreak}} %
+\def\dodofreevlijstelement#1#2#3#4#5#6% % \nointerlineskip nodig,
+ {\dodofreelijstelement{#1}{#2}{#3}{#4}{#5}{#6} % anders verkeerde spatiering
+ {\ifvmode\nointerlineskip\fi} % bij multi-line lijsten
+ {\nointerlineskip\endgraf\allowbreak}} %
-% to be documented: uitlijnen, hang
+% to be documented: uitlijnen, hang
-% now also in abc
+% now also in abc
-\def\limitatedlistentry#1#2%
+\def\limitatedlistentry#1#2%
{\doifelsenothing{\??li#1\c!maxbreedte}
{\getvalue{\??li#1\c!tekstcommando}{#2}}
{\getvalue{\??li#1\c!tekstcommando}%
@@ -604,17 +604,17 @@
\dontconvertfont
%\getvalue{\??li#1\c!tekstcommando}{#4}}%
\limitatedlistentry{#1}{#4}}%
- %\carryoverpar % new otherwise wrong linespacing
+ %\carryoverpar % new otherwise wrong linespacing
\egroup
\ifdim\wd4=\zeropoint\relax % \ifvoid4
- % \ifdim\!!widtha<\hsize \hfill\strut \fi % spoils align
+ % \ifdim\!!widtha<\hsize \hfill\strut \fi % spoils align
\else
\nobreak\lijstfill
\box4\relax
\relax
\fi}%
\hss
- \dostopattributes}}% new
+ \dostopattributes}}% new
\nointerlineskip % anders verkeerde spatiering bij multi-line
\endgraf
\allowbreak
@@ -630,7 +630,7 @@
\fi
\bgroup
\ifvmode
- \noindent\leavevmode % leavevmode ? ? ?
+ \noindent\leavevmode % leavevmode ? ? ?
\fi
\doifvalue{\??li#1\c!interactie}\v!tekst % not supported
{\setlistparameter{#1}\c!interactie\v!sectienummer}%
@@ -885,14 +885,14 @@
\def\schrijfnaarreferentielijst[#1]#2% #1=class #2=data #3=visualization
{\dowithnextbox
{\doifelsevalue{\??rl#1\c!status}\v!start
- {\doglobal\increment\referencecounter % must be resolved due to #2
+ {\doglobal\increment\referencecounter % must be resolved due to #2
\referentiebutton
{\flushnextbox
\pagereference[\r!from\referencecounter]%
\doschrijfnaarreferentielijst{#1}{\referencecounter}{#2}}%
[\r!to\referencecounter]}
{\flushnextbox}}
- \hbox} % \vbox ?
+ \hbox} % \vbox ?
\def\referencelistentry#1%
{\executeifdefined{#1\c!lijst}\gobblefourarguments}
@@ -971,12 +971,12 @@
\doendoflist}
\def\dovolledigesamengesteldelijst[#1][#2]%
- {\systemsuppliedtitle[#1]{\headtext{#1}}%
+ {\expanded{\systemsuppliedtitle[#1]{\noexpand\headtext{#1}}}% expansion due to v! vs french !
\doplaatssamengesteldelijst[#1][#2]}
\def\dodefinieersamengesteldelijst[#1][#2][#3]%
- {\makerawcommalist[#2]\samengesteldelijst % for fast processing
- \letvalue{\??ih#1\c!lijst}\samengesteldelijst
+ {\makerawcommalist[#2]\samengesteldelijst % for fast processing
+ \letvalue{\??ih#1\c!lijst}\samengesteldelijst
\getcommalistsize[#2]%
\getfromcommalist[#2][\commalistsize]%
\doeassign[\??ih#1][\c!niveau=\commalistelement]%
@@ -1000,14 +1000,14 @@
%
% \setupremaininglistlength
% [left=\hss nog~,right=~ingangen]
-%
+%
% \resetremaininglistlength
% [section][settings]
-%
+%
% \placelist
% [section]
% [before=\showremaininglistlength]
-%
+%
% \dorecurse{100}{\section{hans}}
\definesystemvariable {ll} % ListLength
@@ -1042,12 +1042,12 @@
{\doifnot\@@llnummer\v!ja{\let\listlengthcounter\empty}%
\doattributes\??ll\c!letter\c!kleur{\@@lllinks\listlengthcounter\@@llrechts}}
\@@llna
- \fi
- \fi
+ \fi
+ \fi
\doglobal\decrement\listlengthcounter\relax
\egroup}
\stelreferentielijstin
[\c!letter=\v!normaal]
-\protect \endinput
+\protect \endinput
diff --git a/tex/context/base/core-mat.tex b/tex/context/base/core-mat.tex
index a75b56a96..4604c9c75 100644
--- a/tex/context/base/core-mat.tex
+++ b/tex/context/base/core-mat.tex
@@ -8,8 +8,8 @@
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
% engels maken
@@ -24,11 +24,11 @@
\expandafter\secondoftwoarguments
\fi}
-% force text mode, will be overloaded later
+% force text mode, will be overloaded later
-\ifx\text\undefined \let\text\hbox \fi
+\ifx\text\undefined \let\text\hbox \fi
-% will move to page-ini
+% will move to page-ini
\newevery \everybeginofpar \EveryBeginOfPar
\newevery \everyendofpar \EveryEndOfPar
@@ -36,15 +36,34 @@
\def\bpar{\the\everybeginofpar}
\def\epar{\the\everyendofpar\endgraf}
-\newdimen\lastlinewidth
+\newdimen\lastlinewidth
+
+% does not work at all
+%
+% \def\setlastlinewidth
+% {\resetlastlinewidth
+% \ifmmode\else\ifhmode\else\ifoptimizedisplayspacing
+% \bgroup
+% \forgetdisplayskips
+% $$\global\lastlinewidth\predisplaysize$$
+% \vskip-\baselineskip
+% \egroup
+% \fi\fi\fi}
+
+% test \par \dorecurse{10}{test } \moveformula \startformula test \stopformula test \endgraf
+% test \par \dorecurse{10}{test } \startformula test \stopformula test \endgraf
+% \dorecurse{30}{\bpar \dorecurse\recurselevel{test } \epar \startformula formula \stopformula}
\def\setlastlinewidth
{\resetlastlinewidth
- \ifmmode\else\ifhmode\else\ifoptimizedisplayspacing
+ \ifoptimizedisplayspacing\ifmmode\else\ifhmode
\bgroup
\forgetdisplayskips
- $$\global\lastlinewidth\predisplaysize$$
- \vskip-\baselineskip
+ \everymath\emptytoks
+ \everydisplay\emptytoks
+ $$\strut\global\lastlinewidth\predisplaysize$$
+ \vskip-\lineheight
+ \vskip\zeropoint
\egroup
\fi\fi\fi}
@@ -106,7 +125,7 @@
% so far for unused stuff
-\def\forgetdisplayskips % to do
+\def\forgetdisplayskips % to do
{\abovedisplayskip \zeropoint
\belowdisplayskip \zeropoint
\abovedisplayshortskip\zeropoint
@@ -144,7 +163,7 @@
\edef\hetsubnummer{#4}%
\fi
\doifsomething{#3}{\rawreference\s!for{#3}{\hetnummer\hetsubnummer}}%
- \rm % nodig ?
+ \rm % nodig ?
\@@fmnummercommando
{\dostartattributes\??fm\c!nummerletter\c!nummerkleur
\strut
@@ -211,7 +230,7 @@
\c!afstand=1em]
\def\currentformula {}
-\def\predisplaysizethreshhold{3em}
+\def\predisplaysizethreshhold{2em} % was 3em
\def\leftdisplayskip {\leftskip}
\def\rightdisplayskip {\rightskip}
@@ -223,23 +242,27 @@
{\doifnotvalue{\??fm\currentformula\c!voorwit}\v!geen
{\blanko[\getvalue{\??fm\currentformula\c!voorwit}]}}
-\def\afterdisplayspace
+\def\afterdisplayspace
{\doifnotvalue{\??fm\currentformula\c!nawit}\v!geen
{\blanko[\getvalue{\??fm\currentformula\c!nawit}]}}
\def\setpredisplaysize#1%
{\predisplaysize#1\relax
- \ifdim\predisplaysize>\zeropoint
- \advance\predisplaysize \predisplaysizethreshhold
- \fi
- \advance\predisplaysize \displayindent % needed ?
- \ifdim\predisplaysize>\hsize
- \predisplaysize\hsize
+ \ifdim\predisplaysize<\maxdimen
+ \ifdim\predisplaysize>\zeropoint
+ \advance\predisplaysize \predisplaysizethreshhold
+ \fi
+ \advance\predisplaysize \displayindent % needed ?
+ \ifdim\predisplaysize>\hsize
+ \predisplaysize\hsize
+ \fi
+ \else
+ \predisplaysize\zeropoint
\fi}
\def\setdisplaydimensions
- {\displayindent\leftdisplayskip
- \advance\displayindent\leftdisplaymargin
+ {\displayindent\leftdisplayskip
+ \advance\displayindent\leftdisplaymargin
\displaywidth\hsize
\ifdim\hangindent>\zeropoint
\advance\displayindent\hangindent
@@ -255,11 +278,11 @@
\def\dostartformula#1%
{\dodoubleempty\dodostartformula[#1]}
-\def\dodostartformula[#1][#2]% setting leftskip adaption is slow !
- {\bgroup
+\def\dodostartformula[#1][#2]% setting leftskip adaption is slow !
+ {\bgroup
\switchtoformulabodyfont[#2]%
\def\currentformula{#1}%
- \doifvaluesomething{\??fm\currentformula\c!marge}% so we test first
+ \doifvaluesomething{\??fm\currentformula\c!marge}% so we test first
{\dosetleftskipadaption{\getvalue{\??fm\currentformula\c!marge}}%
\edef\leftdisplaymargin{\the\leftskipadaption}}% overloaded
\long\def\dostartformula##1{\bgroup\let\dostopformula\egroup}%
@@ -287,7 +310,7 @@
{\begingroup
\switchtoformulabodyfont[#1]%
% not : \def\doformula[##1]##2{\mathematics{##2}}%
- \mathematics{#2}%
+ \mathematics{#2}%
\endgroup}
\let\doplaceformulanumber\empty
@@ -295,37 +318,38 @@
\def\dostopformula
{\doplaceformulanumber
\getvalue{\e!stop\getvalue{\??fm\currentformula\c!variant}\v!formule}%
- \resetlastlinewidth
- \nonoindentation
- \dochecknextindentation{\??fm\currentformula}%
- \egroup}
+ \resetlastlinewidth
+ \nonoindentation
+ \dochecknextindentation{\??fm\currentformula}%
+ \egroup}
\newif\ifinformula
\def\startdisplaymath
{\ifgridsnapping
- \beforedisplayspace
+ \beforedisplayspace
\snapmathtogrid\vbox
- \bgroup
- \informulatrue
- %\forgetall % breaks side floats
+ \bgroup
+ \informulatrue
+ %\forgetall % breaks side floats
\else
\bgroup
- \informulatrue
- %\forgetall % otherwise backgrounds fail
- \ifdim\lastskip<\!!zeropoint\else
+ \informulatrue
+ %\forgetall % otherwise backgrounds fail
+ \ifdim\lastskip<\zeropoint\else
\par
\ifvmode \ifdim\parskip>\zeropoint\relax
\vskip-\parskip
\fi \fi
\fi
- \beforedisplayspace
+ \doif\displaygridcorrection{-\v!boven}{\kern-\strutht}% new, currently only option/default
+ \beforedisplayspace
\par
\ifvmode
\verticalstrut
\vskip-\struttotal
\vskip-\baselineskip
- \fi
+ \fi
\fi
$$\setdisplaydimensions
\setpredisplaysize\lastlinewidth
@@ -334,29 +358,31 @@
\def\stopdisplaymath
{\stopinnermath
$$%
- \ifgridsnapping
+ \ifgridsnapping
\egroup
\afterdisplayspace
\else
\par\ifvmode\ifdim\parskip>\zeropoint\vskip-\parskip\fi\fi
\afterdisplayspace
\egroup
- \fi}
+ \fi
+ \globallet\displaylinecorrection\empty
+ \gdef\displaygridcorrection{\displaygridsnapping}}
-\newif\ifclipdisplaymath \clipdisplaymathtrue
+\newif\ifclipdisplaymath \clipdisplaymathtrue
\def\displaymathclipfactor{1.1}
-\def\snapmathtogrid % to do \dp
+\def\snapmathtogrid % to do \dp
{\dowithnextbox
{\bgroup
\donefalse
- \ifclipdisplaymath
- \ifdim\nextboxht<\displaymathclipfactor\lineheight
+ \ifclipdisplaymath
+ \ifdim\nextboxht<\displaymathclipfactor\lineheight
\donetrue
- \fi
+ \fi
\fi
\ifdone
- \nextboxht\lineheight
+ \nextboxht\lineheight
\else
\getnoflines\nextboxht
\setbox\nextbox\vbox to \noflines\lineheight
@@ -364,24 +390,32 @@
\setbox\nextbox\hbox{\lower\strutdepth\flushnextbox}%
\fi
\snaptogrid[\displaygridcorrection]\hbox{\flushnextbox}%
- \gdef\displaygridcorrection{\displaygridsnapping}%
\egroup}}
\def\displaygridcorrection{\displaygridsnapping}
+\let\displaygridcorrection\empty
\def\moveformula
{\dosingleempty\domoveformula}
-\def\domoveformula[#1]% brr gaat mogelijk fout
- {\ifgridsnapping
- \iffirstargument
- \xdef\displaygridcorrection{#1}%
- \else
- \gdef\displaygridcorrection{-\v!boven}% handy with short preline
- \fi
+% \def\domoveformula[#1]% brr gaat mogelijk fout
+% {\ifgridsnapping
+% \iffirstargument
+% \xdef\displaygridcorrection{#1}%
+% \else
+% \gdef\displaygridcorrection{-\v!boven}% handy with short preline
+% \fi
+% \else
+% \gdef\displaygridcorrection{\displaygridsnapping}%
+% \fi}
+
+\def\domoveformula[#1]% brr gaat mogelijk fout
+ {\iffirstargument
+ \xdef\displaygridcorrection{#1}%
\else
- \gdef\displaygridcorrection{\displaygridsnapping}%
- \fi}
+ \gdef\displaygridcorrection{-\v!boven}% handy with short preline
+ \fi
+ \globallet\displaylinecorrection\displaygridcorrection}
\let\startinnermath\empty
\let\stopinnermath \empty
@@ -389,14 +423,14 @@
\def\defineformulaalternative
{\dotripleargument\dodefineformulaalternative}
-\def\dodefineformulaalternative[#1][#2][#3]%
+\def\dodefineformulaalternative[#1][#2][#3]%
{\setvalue{\e!start#1\v!formule}{#2}%
\setvalue{\e!stop #1\v!formule}{#3}}
\defineformulaalternative[\s!default][\startdisplaymath][\stopdisplaymath]
-% sp = single line paragraph sd = single line display
-% mp = multi line paragraph md = multy line display
+% sp = single line paragraph sd = single line display
+% mp = multi line paragraph md = multy line display
\defineformulaalternative[single][\startdisplaymath][\stopdisplaymath]
\defineformulaalternative[multi] [\startdisplaymath][\stopdisplaymath]
@@ -426,29 +460,29 @@
% in m-math
%
% \defineformulaalternative[multi][\begindmath][\enddmath]
-%
-% \fakewords{20}{40}\epar
+%
+% \fakewords{20}{40}\epar
% \plaatsformule {a} $$ \fakespacingformula $$
-% \fakewords{20}{40}\epar
+% \fakewords{20}{40}\epar
% \plaatsformule {b} \startformule \fakespacingformula \stopformule
% \plaatsformule {b} \startformule \fakespacingformula \stopformule
-% \fakewords{20}{40}\epar
+% \fakewords{20}{40}\epar
% \plaatsformule {c} \startmdformule \fakespacingformula \stopmdformule
% \plaatsformule {c} \startmdformule \fakespacingformula \stopmdformule
-% \fakewords{20}{40}\epar
+% \fakewords{20}{40}\epar
% \plaatsformule {d} \startmpformule \fakespacingformula \stopmpformule
% \plaatsformule {d} \startmpformule \fakespacingformula \stopmpformule
-% \fakewords{20}{40}\epar
+% \fakewords{20}{40}\epar
% \plaatsformule {e} \startsdformule \fakespacingformula \stopsdformule
% \plaatsformule {e} \startsdformule \fakespacingformula \stopsdformule
-% \fakewords{20}{40}\epar
+% \fakewords{20}{40}\epar
% \plaatsformule {f} \startspformule \fakespacingformula \stopspformule
% \plaatsformule {f} \startspformule \fakespacingformula \stopspformule
% \fakewords{20}{40}
% \convertcommand\next\to\ascii \getfirstcharacter\ascii
% \ifx\firstcharacter\letterbackslash % a \cs
-
+
\def\plaatsformule
{\settrue\incrementformulanumber
\dodoubleempty\doplaatsformule}
@@ -487,7 +521,7 @@
\let\normalreqno\eqno
\let\normalleqno\leqno
-\def\dodoplaatsformule[#1]#2% messy, needs a clean up
+\def\dodoplaatsformule[#1]#2% messy, needs a clean up
{\doifelse{#1}{-}
{\setfalse\handleformulanumber}
{\doifelse{#2}{-}
@@ -495,7 +529,7 @@
{\settrue\handleformulanumber}}%
\ifconditional\handleformulanumber
\def\formulenummer
- {%\global\let\subformulenummer\doformulenummer % no, bug
+ {%\global\let\subformulenummer\doformulenummer % no, bug
\doformulenummer[#1][#2]}%
\def\subformulenummer
{\setfalse\incrementformulanumber
@@ -509,7 +543,7 @@
\def\formulenummer{\doformulenummer[#1][#2]}%
\global\let\subformulenummer\doformulenummer
\global\let\doplaceformulanumber\empty
- \fi}
+ \fi}
%D We need a hook into the plain math alignment macros
%D
@@ -533,7 +567,7 @@
%D Here we implement a basic math alignment mechanism. Numbers
%D are also handled. The macros \type {\startinnermath} and
%D \type {\stopinnermath} can be overloaded in specialized
-%D modules.
+%D modules.
\def\startinnermath
{\getvalue{\e!start\??fm\getvalue{\??fm\currentformula\c!uitlijnen}}}
@@ -548,170 +582,170 @@
{\setvalue{\e!start\??fm#1}{#2}%
\setvalue{\e!stop \??fm#1}{#3}}
-\newif\iftracemath
+\newif\iftracemath
\def\mathhbox
- {\iftracemath\ruledhbox\else\hbox\fi}
+ {\iftracemath\ruledhbox\else\hbox\fi}
\def\startmathbox#1#2%
{\hsize\displaywidth
\global\let\@eqno \empty \def\eqno {\gdef\@eqno }%
\global\let\@leqno\empty \def\leqno{\gdef\@leqno}%
- % added
+ % added
\let\normalreqno\eqno
\let\normalleqno\leqno
- % added
+ % added
\doplaceformulanumber
\mathhbox to \displaywidth\bgroup
\mathinnerstrut
$\displaystyle
- \ifx\@leqno\empty\else \ifcase#2
+ \ifx\@leqno\empty\else \ifcase#2
\rlap{\@leqno}%
\else
\@leqno\hskip\getvalue{\??fm\currentformula\c!afstand}%
- \fi \fi
+ \fi \fi
#1}
\def\stopmathbox#1#2%
{$#1%
- \ifx\@eqno\empty\else \ifcase#2
+ \ifx\@eqno\empty\else \ifcase#2
\llap{\@eqno}%
\else
\hskip\getvalue{\??fm\currentformula\c!afstand}\@eqno
- \fi \fi
+ \fi \fi
\egroup}
\defineinnermathhandler\v!rechts{\startmathbox\empty1}{\stopmathbox\hfill0}
\defineinnermathhandler\v!links {\startmathbox\hfill0}{\stopmathbox\empty1}
\defineinnermathhandler\v!midden{\startmathbox\hfill0}{\stopmathbox\hfill0}
-%D [The examples below are in english and don't process in the
+%D [The examples below are in english and don't process in the
%D documentation style, which will be english some day.]
-%D
+%D
%D Normally a formula is centered, but in case you want to
%D align it left or right, you can set up formulas to behave
%D that way. Normally a formula will adapt is left indentation
-%D to the environment:
-%D
+%D to the environment:
+%D
%D \startbuffer
-%D \fakewords{20}{40}\epar
+%D \fakewords{20}{40}\epar
%D \startitemize
-%D \item \fakewords{20}{40}\epar
+%D \item \fakewords{20}{40}\epar
%D \placeformula \startformula \fakeformula \stopformula
-%D \item \fakewords{20}{40}\epar
+%D \item \fakewords{20}{40}\epar
%D \stopitemize
-%D \fakewords{20}{40}\epar
+%D \fakewords{20}{40}\epar
%D \stopbuffer
-%D
+%D
%D % \getbuffer
-%D
+%D
%D In the next examples we explicitly align formulas to the
%D left (\type {\raggedleft}), center and right (\type
-%D {\raggedright}):
-%D
+%D {\raggedright}):
+%D
%D \startbuffer
-%D \setupformulas[align=left]
+%D \setupformulas[align=left]
%D \startformula\fakeformula\stopformula
-%D \setupformulas[align=middle]
+%D \setupformulas[align=middle]
%D \startformula\fakeformula\stopformula
-%D \setupformulas[align=right]
+%D \setupformulas[align=right]
%D \startformula\fakeformula\stopformula
%D \stopbuffer
-%D
+%D
%D \typebuffer
-%D
-%D Or in print:
-%D
+%D
+%D Or in print:
+%D
%D % {\getbuffer}
-%D
-%D With formula numbers these formulas look as follows:
-%D
+%D
+%D With formula numbers these formulas look as follows:
+%D
%D \startbuffer
-%D \setupformulas[align=left]
+%D \setupformulas[align=left]
%D \placeformula \startformula\fakeformula\stopformula
-%D \setupformulas[align=middle]
+%D \setupformulas[align=middle]
%D \placeformula \startformula\fakeformula\stopformula
-%D \setupformulas[align=right]
+%D \setupformulas[align=right]
%D \placeformula \startformula\fakeformula\stopformula
%D \stopbuffer
-%D
+%D
%D % {\getbuffer}
-%D
-%D This was keyed in as:
-%D
+%D
+%D This was keyed in as:
+%D
%D \typebuffer
-%D
-%D When tracing is turned on (\type {\tracemathtrue}) you can
-%D visualize the bounding box of the formula,
-%D
+%D
+%D When tracing is turned on (\type {\tracemathtrue}) you can
+%D visualize the bounding box of the formula,
+%D
%D % {\tracemathtrue\getbuffer}
-%D
-%D As you can see, the dimensions are the natural ones, but if
-%D needed you can force a normalized line:
-%D
+%D
+%D As you can see, the dimensions are the natural ones, but if
+%D needed you can force a normalized line:
+%D
%D \startbuffer
%D \setupformulas[strut=yes]
%D \placeformula \startformula \fakeformula \stopformula
%D \stopbuffer
-%D
+%D
%D \typebuffer
-%D
-%D This time we get a more spacy result.
-%D
+%D
+%D This time we get a more spacy result.
+%D
%D % {\tracemathtrue\getbuffer}
-%D
+%D
%D We will now show a couple of more settings and combinations
%D of settings. In centered formulas, the number takes no space
-%D
+%D
%D \startbuffer
%D \setupformulas[align=middle]
%D \startformula \fakeformula \stopformula
%D \placeformula \startformula \fakeformula \stopformula
%D \stopbuffer
-%D
+%D
%D \typebuffer % {\tracemathtrue\getbuffer}
-%D
+%D
%D You can influence the placement of the whole box with the
-%D parameters \type {leftmargin} and \type {rightmargin}.
-%D
+%D parameters \type {leftmargin} and \type {rightmargin}.
+%D
%D \startbuffer
%D \setupformulas[align=right,leftmargin=3em]
%D \startformula \fakeformula \stopformula
%D \placeformula \startformula \fakeformula \stopformula
-%D
+%D
%D \setupformulas[align=left,rightmargin=1em]
%D \startformula \fakeformula \stopformula
%D \placeformula \startformula \fakeformula \stopformula
%D \stopbuffer
-%D
+%D
%D \typebuffer % {\tracemathtrue\getbuffer}
-%D
-%D You can also inherit the margin from the environment.
-%D
+%D
+%D You can also inherit the margin from the environment.
+%D
%D \startbuffer
%D \setupformulas[align=right,margin=standard]
%D \startformula \fakeformula \stopformula
%D \placeformula \startformula \fakeformula \stopformula
%D \stopbuffer
-%D
+%D
%D \typebuffer % {\tracemathtrue\getbuffer}
-%D
+%D
%D The distance between the formula and the number is only
-%D applied when the formula is left or right aligned.
-%D
+%D applied when the formula is left or right aligned.
+%D
%D \startbuffer
%D \setupformulas[align=left,distance=2em]
%D \startformula \fakeformula \stopformula
%D \placeformula \startformula \fakeformula \stopformula
%D \stopbuffer
-%D
+%D
%D \typebuffer % {\tracemathtrue\getbuffer}
-%D \macros
+%D \macros
%D {big..}
%D
-%D Because they are related to the bodyfontsize, we redefine
-%D some \PLAIN\ macros.
+%D Because they are related to the bodyfontsize, we redefine
+%D some \PLAIN\ macros.
\def\@@dobig#1#2%
{{\hbox{$\left#2\vbox\!!to#1\bodyfontsize{}\right.\n@space$}}}
@@ -721,37 +755,37 @@
\def\bigg{\@@dobig{1.45}}
\def\Bigg{\@@dobig{1.75}}
-%D \macros
+%D \macros
%D {bordermatrix}
%D
-%D We already redefined \type {\bordermatrix} in \type
+%D We already redefined \type {\bordermatrix} in \type
%D {font-ini}.
-%D \macros
+%D \macros
%D {setuptextformulas}
%D
-%D This command sets up in||line math. Most features deals
-%D with grid snapping and are experimental.
+%D This command sets up in||line math. Most features deals
+%D with grid snapping and are experimental.
-\newevery \everysetuptextformulas \relax
+\newevery \everysetuptextformulas \relax
\def\setuptextformulas
{\dosingleempty\dosetuptextformulas}
\def\dosetuptextformulas[#1]%
- {\getparameters[\??mt][#1]%
+ {\getparameters[\??mt][#1]%
\the\everysetuptextformulas}
%D \macros
%D {super, sub}
%D
-%D \TEX\ uses \type{^} and \type{_} for entering super- and
-%D subscript mode. We want however a bit more control than
-%D normally provided, and therefore provide \type {\super}
-%D and \type{sub}.
+%D \TEX\ uses \type{^} and \type{_} for entering super- and
+%D subscript mode. We want however a bit more control than
+%D normally provided, and therefore provide \type {\super}
+%D and \type{sub}.
-\global\let\normalsuper=^
-\global\let\normalsuber=_
+\global\let\normalsuper=^
+\global\let\normalsuber=_
\newcount\supersubmode
@@ -761,29 +795,29 @@
% \def\dodosuper#1{\normalsuper{\the\everysupersub#1}}
% \def\dodosuber#1{\normalsuber{\the\everysupersub#1}}
-%
+%
% \def\dosuper{\ifx\next\bgroup\expandafter\dodosuper\else\normalsuper\fi}
% \def\dosuber{\ifx\next\bgroup\expandafter\dodosuber\else\normalsuber\fi}
-%
+%
% \def\super{\futurelet\next\dosuper}
% \def\suber{\futurelet\next\dosuber}
%
% \def\super#1{\normalsuper{\the\everysupersub#1}}
% \def\suber#1{\normalsuber{\the\everysupersub#1}}
-\appendtoks
- \gridsupsubstyle
+\appendtoks
+ \gridsupsubstyle
\to \everysupersub
-\appendtoks
+\appendtoks
\doifelse\@@mtformaat\v!klein
- {\let\gridsupsubstyle \scriptscriptstyle
+ {\let\gridsupsubstyle \scriptscriptstyle
\let\gridsupsubbodyfont \setsmallbodyfont}%
{\let\gridsupsubstyle \scriptstyle
\let\gridsupsubbodyfont \relax}%
-\to \everysetuptextformulas
+\to \everysetuptextformulas
-\setuptextformulas
+\setuptextformulas
[\c!formaat=\v!normaal]
\def\dogridsupsub#1#2%
@@ -797,7 +831,7 @@
\endgroup}
\def\gridsupsub
- {\ifconditional\crazymathsnapping
+ {\ifconditional\crazymathsnapping
\ifgridsnapping
\@EAEAEA\dogridsupsub
\else
@@ -810,7 +844,7 @@
\def\normalsupsub#1#2%
{^{\the\everysupersub#1}_{\the\everysupersub#2}}
-\appendtoks
+\appendtoks
\let\gridsupsubstyle \relax
\let\gridsupsubbodyfont\relax
\let\gridsupsub \normalsupsub
@@ -821,8 +855,8 @@
\def\supsub#1#2{\super{#1}\suber{#2}}
\def\subsup#1#2{\suber{#1}\super{#2}}
-%\def\super#1{\gridsupsub{#1}{}} %
-%\def\suber#1{\gridsupsub{}{#1}} %
+%\def\super#1{\gridsupsub{#1}{}} %
+%\def\suber#1{\gridsupsub{}{#1}} %
%
%\def\supsub#1#2{\gridsupsub{#1}{#2}}
%\def\subsup#1#2{\gridsupsub{#2}{#1}}
@@ -830,33 +864,33 @@
\def\gridsuper#1{\gridsupsub{#1}{}}
\def\gridsuber#1{\gridsupsub{}{#1}}
-% \let\sup\super % math char
+% \let\sup\super % math char
% \let\sub\suber
-% test set:
+% test set:
%
% \startbuffer
% \sform{x\frac{1}{2}}
% \sform{x\sup{\frac{1}{2}} + x\sup{2} + 2}
% \sform{x\supsub{\frac{1}{2}}{\frac{1}{2}} + x\sup{2} + 2}
% \stopbuffer
-%
-% \typebuffer
-%
+%
+% \typebuffer
+%
% \startlines
% \getbuffer
% \stoplines
-%
+%
% \startbuffer
-% $x\frac{1}{2}$
+% $x\frac{1}{2}$
% $x\sup{\frac{1}{2}} + x^2 + 2$
% $x\supsub{\frac{1}{2}}{\frac{1}{2}} + x^2 + 2$
% \stopbuffer
-%
-% \typebuffer
-%
+%
+% \typebuffer
+%
% \start
-% \enablesupersub
+% \enablesupersub
% \enableautomath
% \startlines
% \getbuffer
@@ -865,9 +899,9 @@
%D \macros
%D {enablesupersub}
-%D
-%D We can let \type {^} and \type {_} act like \type {\super}
-%D and \type {\sub} by saying \type {\enablesupersub}.
+%D
+%D We can let \type {^} and \type {_} act like \type {\super}
+%D and \type {\sub} by saying \type {\enablesupersub}.
\bgroup
\catcode`\^=\@@active
@@ -882,8 +916,8 @@
%D \macros
%D {enableautomath}
%D
-%D The next one can be dangerous, but handy in controlled
-%D situations.
+%D The next one can be dangerous, but handy in controlled
+%D situations.
\bgroup \catcode`\$=\active
@@ -899,20 +933,25 @@
\egroup
-%D \macros
-%D {...}
+%D \macros
+%D {...}
%D
-%D New and experimental: snapping big inline math!
+%D New and experimental: snapping big inline math!
-\newconditional\halfcrazymathlines % \settrue\halfcrazymathlines
+\newconditional\halfcrazymathlines % \settrue\halfcrazymathlines
\newconditional\crazymathsnapping % \settrue\crazymathsnapping
-\appendtoks
- \doifelse\@@mtgrid\v!ja
- {\settrue \crazymathsnapping }{\setfalse\crazymathsnapping}%
- \doifelse\@@mtstap\v!halveregel
- {\settrue \halfcrazymathlines}{\setfalse\halfcrazymathlines}%
-\to \everysetuptextformulas
+% \appendtoks
+% \doifelse\@@mtgrid\v!ja
+% {\settrue \crazymathsnapping }{\setfalse\crazymathsnapping}%
+% \doifelse\@@mtstap\v!halveregel
+% {\settrue \halfcrazymathlines}{\setfalse\halfcrazymathlines}%
+% \to \everysetuptextformulas
+
+\appendtoks
+ \doifelse\@@mtgrid\v!ja \settrue\setfalse\crazymathsnapping
+ \doifelse\@@mtstap\v!halveregel\settrue\setfalse\halfcrazymathlines
+\to \everysetuptextformulas
\setuptextformulas
[\c!grid=\v!ja,
@@ -932,15 +971,15 @@
\def\flushcrazymathbox
{\nextboxht\strutheight
- \nextboxdp\strutdepth
+ \nextboxdp\strutdepth
\hbox{\iftracegridsnapping\ruledhbox\fi{\flushnextbox}}}
-% possible pdftex bug:
+% possible pdftex bug:
%
-% \dorecurse{100}{gest \vadjust {\strut} \par} \page
-% \dorecurse{100}{gest \vadjust pre {\strut} \par} \page
+% \dorecurse{100}{gest \vadjust {\strut} \par} \page
+% \dorecurse{100}{gest \vadjust pre {\strut} \par} \page
%
-% duplicate depth compensation with pre
+% duplicate depth compensation with pre
\def\snappedinlineformula
{\dosingleempty\dosnappedinlineformula}
@@ -958,22 +997,22 @@
\def\inlinemathmargin{1pt}
-\settrue\autocrazymathsnapping
+\settrue\autocrazymathsnapping
-% FROM NOW ON, CHANGES AS OPTIONS
+% FROM NOW ON, CHANGES AS OPTIONS
-% TODO: SKYLINE (PREV LINE POS SCAN)
+% TODO: SKYLINE (PREV LINE POS SCAN)
\def\dosnappedinlineformula[#1]#2%
- {\ifvmode\dontleavehmode\fi % tricky
- \strut % prevents funny space at line break
+ {\ifvmode\dontleavehmode\fi % tricky
+ \strut % prevents funny space at line break
\begingroup % interesting: \bgroup can make \vadjust disappear
- \ifconditional\crazymathsnapping
+ \ifconditional\crazymathsnapping
\ifgridsnapping
\ifx\pdftexversion\undefined
\donefalse
\else
- \checktextbackgrounds % we need pos tracking, to be made less redundant
+ \checktextbackgrounds % we need pos tracking, to be made less redundant
\donetrue
\fi
\else
@@ -982,13 +1021,13 @@
\else
\donefalse
\fi
- \!!doneafalse % forced or not auto
+ \!!doneafalse % forced or not auto
\!!donebfalse % too heigh
- \!!donecfalse % too low
- \!!donedfalse % less before
- \!!doneefalse % less after
+ \!!donecfalse % too low
+ \!!donedfalse % less before
+ \!!doneefalse % less after
\ifdone
- \setbox\nextbox\hbox{$#2$}%
+ \setbox\nextbox\hbox{$#2$}%
\iftracegridsnapping
\setbox\nextbox\ruledhbox
{\incolortrue\localcolortrue
@@ -1001,46 +1040,46 @@
\doif{##1}<{\!!donedtrue}%
\doif{##1}>{\!!doneetrue}}%
\processcommalist[#1]\docommando
-\if!!doneb
+\if!!doneb
\if!!donec \else
\setfalse\halfcrazymathlines
- \fi
+ \fi
\else
- \if!!donec
+ \if!!donec
\setfalse\halfcrazymathlines
\fi
-\fi
+\fi
\donefalse
\if!!donea
\donetrue
\scratchdimen \nextboxht
\advance\scratchdimen .5\lineheight
-\nextboxht\scratchdimen
+\nextboxht\scratchdimen
\scratchdimen \nextboxdp
\advance\scratchdimen .5\lineheight
-\nextboxdp\scratchdimen
+\nextboxdp\scratchdimen
\else\ifdim\nextboxht>\strutht
- \donetrue
+ \donetrue
\else\ifdim\nextboxdp>\strutdp
- \donetrue
+ \donetrue
\fi\fi\fi
\ifconditional\autocrazymathsnapping \else \if!!donea \else
- % don't compensate, just snap to strut
+ % don't compensate, just snap to strut
\donefalse
- % signal for next else, snap line to strut
- \!!doneatrue
+ % signal for next else, snap line to strut
+ \!!doneatrue
\fi \fi
\fi
\ifdone
- % analyze height
- \scratchdimen\inlinemathmargin
+ % analyze height
+ \scratchdimen\inlinemathmargin
\advance\scratchdimen \strutht
\ifdim\nextboxht<\scratchdimen \else \!!donebtrue \fi
- % analyze depth
- \scratchdimen\inlinemathmargin
+ % analyze depth
+ \scratchdimen\inlinemathmargin
\advance\scratchdimen \strutdp
- \ifdim\nextboxdp<\scratchdimen \else \!!donectrue \fi
- % analyzed or forced
+ \ifdim\nextboxdp<\scratchdimen \else \!!donectrue \fi
+ % analyzed or forced
\ifdone
\global\advance\crazymathhack\plusone
\donefalse
@@ -1052,7 +1091,7 @@
\ifnum\MPp\crazymathtag=\zerocount \donefalse \fi
\ifdim\MPy\crazymathtag=\zeropoint \donefalse \fi
\ifdone
- % same page and same line
+ % same page and same line
\else
\global\let\lastcrazymathprelines \!!zerocount
\global\let\lastcrazymathpostlines\!!zerocount
@@ -1060,7 +1099,7 @@
\xdef\lastcrazymathline{\MPy\crazymathtag}%
\fi
\if!!doneb
- % \getrawnoflines\nextboxht
+ % \getrawnoflines\nextboxht
\scratchdimen\nextboxht
\advance\scratchdimen-\strutht
\getnoflines\scratchdimen
@@ -1069,7 +1108,7 @@
\advance\noflines-\lastcrazymathprelines\relax
\ifnum\noflines>\zerocount
\xdef\lastcrazymathprelines{\the\scratchcounter}%
- \scratchdimen\noflines\lineheight
+ \scratchdimen\noflines\lineheight
\ifconditional\halfcrazymathlines
\advance\scratchdimen-.5\lineheight
\fi
@@ -1077,10 +1116,10 @@
\setbox\scratchbox\null
\wd\scratchbox2\bodyfontsize
\ht\scratchbox\scratchdimen
- \dp\scratchbox\strutdepth
- %%% top correction code (see below)
- \normalvadjust pre
- {%\allowbreak % sometimes breaks spacing
+ \dp\scratchbox\strutdepth
+ %%% top correction code (see below)
+ \normalvadjust pre
+ {%\allowbreak % sometimes breaks spacing
\forgetall
\crazymathindent
\iftracegridsnapping
@@ -1092,18 +1131,18 @@
\endgraf
\nobreak}%
\else\ifnum\scratchcounter>\zerocount
- \normalvadjust pre
+ \normalvadjust pre
{\nobreak}%
\fi\fi
\fi
\if!!donec
- % \getrawnoflines\nextboxdp
+ % \getrawnoflines\nextboxdp
\scratchdimen\nextboxdp
\advance\scratchdimen-\strutdp
- \getnoflines\scratchdimen
+ \getnoflines\scratchdimen
\if!!donee \advance\noflines\minusone \fi
\scratchcounter\noflines
- \advance\noflines-\lastcrazymathpostlines\relax
+ \advance\noflines-\lastcrazymathpostlines\relax
\ifnum\noflines>\zerocount
\donetrue
\else\ifnum\lastcrazymathpostlines=\zerocount
@@ -1120,11 +1159,11 @@
\global\let\lastcrazymathpostlines\!!plusone
\fi
\hbox{\setposition\crazymathtag\flushcrazymathbox}%
- \scratchdimen\noflines\lineheight
- \advance\scratchdimen-\lineheight
+ \scratchdimen\noflines\lineheight
+ \advance\scratchdimen-\lineheight
\advance\scratchdimen+\strutheight
\ifdim\scratchdimen>\zeropoint \else
- \scratchdimen=\strutheight % todo : test for half lines
+ \scratchdimen=\strutheight % todo : test for half lines
\fi
\ifconditional\halfcrazymathlines
\advance\scratchdimen-.5\lineheight
@@ -1133,7 +1172,7 @@
\wd\scratchbox2\bodyfontsize
\ht\scratchbox\scratchdimen
\dp\scratchbox\strutdepth
- \normalvadjust
+ \normalvadjust
{\forgetall
\crazymathindent
\iftracegridsnapping
@@ -1148,8 +1187,8 @@
\allowbreak
\else
\vskip-\lineheight
- \vskip \lineheight
- \fi}%
+ \vskip \lineheight
+ \fi}%
\else
\hbox{\setposition\crazymathtag\flushcrazymathbox}%
\fi
@@ -1159,14 +1198,14 @@
\else\if!!donea
\flushcrazymathbox
\else
- \mathematics{#2}%
+ \mathematics{#2}%
\fi\fi
\endgroup}
-%%% top correction code
+%%% top correction code
%%%
-%%% correct for fuzzy top of page situations
+%%% correct for fuzzy top of page situations
%
% \scratchdimen\lastcrazymathprelines\lineheight
% \advance\scratchdimen\MPy\crazymathtag
@@ -1176,33 +1215,33 @@
% \dimen0=\MPy\crazytexttag
% \advance\dimen0 \MPh\crazytexttag
% \advance\scratchdimen-\dimen0\relax
-% % do we need correction at all
+% % do we need correction at all
% \ifdim\scratchdimen>\strutdepth\relax
% \donefalse
% \else\ifdim\scratchdimen<\zeropoint
% \donefalse
% \else
% \donetrue
-% \fi\fi
-% % analysis done
+% \fi\fi
+% % analysis done
% \donefalse
% \ifdone
% \edef\crazymathcorrection{\the\scratchdimen}%
% \advance\scratchdimen-\dp\scratchbox
-% \dp\scratchbox-\scratchdimen
+% \dp\scratchbox-\scratchdimen
% \else
% \let\crazymathcorrection\zeropoint
-% \fi
+% \fi
%
%%%
-%%% keep the previous code
+%%% keep the previous code
%%%
\let\tform\mathematics
\let\gform\snappedinlineformula
-% test set:
-%
+% test set:
+%
% \startbuffer
% Crazy math \gform {1+x} or \gform {\dorecurse {100} {1+} 1 =
% 101} and even gore crazy \gform {2^{2^2}_{1_1}}
@@ -1213,23 +1252,23 @@
% {2}}}}+}x=10}\dorecurse{20} { super crazy math}: \tform
% {\dorecurse {30} {\gform {\sqrt {\frac {x^{5^5}} {3}}}+
% \gform {\sqrt {\frac {x^{5^5}} {\frac {1} {2}}}}+ }x = 10},
-% and we're\dorecurse {20} { done}!
+% and we're\dorecurse {20} { done}!
% \stopbuffer
-%
+%
% \setupcolors[state=start] \setuppapersize[S6][S6]
%
-% \showgrid \tracegridsnappingtrue \showstruts
-%
-% \starttext
+% \showgrid \tracegridsnappingtrue \showstruts
+%
+% \starttext
% \setuplayout[grid=yes,lines=15]\getbuffer \page
% \setuplayout[grid=yes,lines=16]\getbuffer \page
% \setuplayout[grid=yes,lines=17]\getbuffer \page
% \setuplayout[grid=yes,lines=18]\getbuffer \page
% \setuplayout[grid=yes,lines=19]\getbuffer \page
-% \stoptext
-%
-% test
-%
+% \stoptext
+%
+% test
+%
% \startregels
% \gform[<]{35 \cdot p^{\frac{3}{4}} = 70}
% \gform{12{,}4 \cdot d^3 = 200}
@@ -1265,12 +1304,12 @@
% \gform{\frac{2{,}25}{p} = 0{,}35}
% \gform{4{,}50 + \frac{300}{k} = 4{,}70}
% \gform{\frac{1200}{k+12} - 42 = 6}
-% \stopregels
+% \stopregels
%D \macro
%D {restoremathstyle}
%D
-%D We can pick up the current math style by calling \type
+%D We can pick up the current math style by calling \type
%D {\restoremathstyle}.
\def\restoremathstyle
@@ -1287,7 +1326,7 @@
%D \macros
%D {mathstyle}
%D
-%D If one want to be sure that something is typeset in the
+%D If one want to be sure that something is typeset in the
%D appropriate style, \type {\mathstyle} can be used:
%D
%D \starttypen
@@ -1301,13 +1340,13 @@
{\scriptstyle #1}%
{\scriptscriptstyle#1}}
-%D Something similar can be used in the (re|)|definition
-%D of \type {\text}. This version is a variation on the one
-%D in the math module (see \type{m-math} and|/|or \type
-%D {m-newmat}).
+%D Something similar can be used in the (re|)|definition
+%D of \type {\text}. This version is a variation on the one
+%D in the math module (see \type{m-math} and|/|or \type
+%D {m-newmat}).
\unexpanded\def\mathtext
- {\mathortext\domathtext\hbox}
+ {\mathortext\domathtext\hbox}
\def\domathtext#1%
{\mathchoice
@@ -1320,20 +1359,20 @@
%{\hbox{\everymath{#1}\switchtobodyfont [#2]#3}} % 15 sec
{\hbox{\everymath{#1}\setcurrentfontbody{#2}#3}} % 3 sec (no math)
-%D Because we may overload \type {\text} in other (structuring)
+%D Because we may overload \type {\text} in other (structuring)
%D macros, we say:
-\appendtoks \let\text\mathtext \to \everymath
+\appendtoks \let\text\mathtext \to \everymath
%D \macros
%D {frac, xfrac, xxfrac}
%D
-%D This is another one Tobias asked for. It replaces the
-%D primitive \type {\over}. We also take the opportunity to
-%D handle math style restoring, which makes sure units and
-%D chemicals come out ok.
-%D
-%D \starttypen
+%D This is another one Tobias asked for. It replaces the
+%D primitive \type {\over}. We also take the opportunity to
+%D handle math style restoring, which makes sure units and
+%D chemicals come out ok.
+%D
+%D \starttypen
%D \def\frac#1#2%
%D {\relax
%D \ifmmode
@@ -1341,58 +1380,58 @@
%D \else
%D $\frac{#1}{#2}$%
%D \fi}
-%D \stoptypen
-%D
-%D Better is:
-%D
-%D \starttypen
+%D \stoptypen
+%D
+%D Better is:
+%D
+%D \starttypen
%D \def\frac#1#2%
%D {\relax\mathematics{{{\mathstyle{#1}}\over{\mathstyle{#2}}}}}
-%D \stoptypen
-%D
+%D \stoptypen
+%D
%D The \type {\frac} macro kind of replaces the awkward \type
%D {\over} primitive. Say that we have the following formulas:
-%D
+%D
%D \startbuffer[sample]
-%D test $\frac {1}{2}$ test $$1 + \frac {1}{2} = 1.5$$
-%D test $\xfrac {1}{2}$ test $$1 + \xfrac {1}{2} = 1.5$$
-%D test $\xxfrac{1}{2}$ test $$1 + \xxfrac{1}{2} = 1.5$$
+%D test $\frac {1}{2}$ test $$1 + \frac {1}{2} = 1.5$$
+%D test $\xfrac {1}{2}$ test $$1 + \xfrac {1}{2} = 1.5$$
+%D test $\xxfrac{1}{2}$ test $$1 + \xxfrac{1}{2} = 1.5$$
%D \stopbuffer
-%D
+%D
%D \typebuffer[sample]
-%D
-%D With the most straightforward definitions, we get:
-%D
+%D
+%D With the most straightforward definitions, we get:
+%D
%D \startbuffer[code]
%D \def\dofrac#1#2#3{\relax\mathematics{{{#1{#2}}\over{#1{#3}}}}}
-%D
+%D
%D \def\frac {\dofrac\mathstyle}
%D \def\xfrac {\dofrac\scriptstyle}
%D \def\xxfrac{\dofrac\scriptscriptstyle}
%D \stopbuffer
-%D
+%D
%D \typebuffer[code] \getbuffer[code,sample]
-%D
-%D Since this does not work well, we can try:
-%D
+%D
+%D Since this does not work well, we can try:
+%D
%D \startbuffer[code]
%D \def\xfrac #1#2{\hbox{$\dofrac\scriptstyle {#1}{#2}$}}
%D \def\xxfrac#1#2{\hbox{$\dofrac\scriptscriptstyle{#1}{#2}$}}
%D \stopbuffer
-%D
+%D
%D \typebuffer[code] \getbuffer[code,sample]
-%D
-%D This for sure looks better than:
-%D
+%D
+%D This for sure looks better than:
+%D
%D \startbuffer[code]
%D \def\xfrac #1#2{{\scriptstyle \dofrac\relax{#1}{#2}}}
%D \def\xxfrac#1#2{{\scriptscriptstyle\dofrac\relax{#1}{#2}}}
%D \stopbuffer
-%D
+%D
%D \typebuffer[code] \getbuffer[code,sample]
-%D
-%D So we stick to the next definitions (watch the local
-%D overloading of \type {\xfrac}).
+%D
+%D So we stick to the next definitions (watch the local
+%D overloading of \type {\xfrac}).
\def\dofrac#1#2#3{\relax\mathematics{{{#1{#2}}\over{#1{#3}}}}}
@@ -1405,8 +1444,8 @@
\dofrac\scriptscriptstyle{#1}{#2}%
\endgroup}
-%D The \type {xx} variant looks still ugly, so maybe it's
-%D best to say:
+%D The \type {xx} variant looks still ugly, so maybe it's
+%D best to say:
\def\xxfrac#1#2{\begingroup
\dofrac\scriptscriptstyle
@@ -1420,9 +1459,9 @@
%D The next macro, \type {\ch}, is \PPCHTEX\ aware. In
%D formulas one can therefore best use \type {\ch} instead of
-%D \type {\chemical}, especially in fractions.
+%D \type {\chemical}, especially in fractions.
-\ifx\mathstyle\undefined
+\ifx\mathstyle\undefined
\let\mathstyle\relax
\fi
@@ -1438,38 +1477,38 @@
%D \macros
%D {/}
%D
-%D Just to be sure, we restore the behavior of some typical
-%D math characters.
+%D Just to be sure, we restore the behavior of some typical
+%D math characters.
-\bgroup
+\bgroup
-\catcode`\/=\@@other \global \let\normalforwardslash/
+\catcode`\/=\@@other \global \let\normalforwardslash/
\catcode`\/=\@@active \doglobal\appendtoks\let/\normalforwardslash\to\everymath
\egroup
-%D These macros were first needed by Frits Spijker (also
-%D known as Gajes) for typesetting the minus sign that is
-%D keyed into scientific calculators.
-
-% This is the first alternative, which works okay for the
-% minus, but less for the plus.
+%D These macros were first needed by Frits Spijker (also
+%D known as Gajes) for typesetting the minus sign that is
+%D keyed into scientific calculators.
+
+% This is the first alternative, which works okay for the
+% minus, but less for the plus.
%
% \def\dodoraisedmathord#1#2#3%
% {\mathord{{#2\raise.#1ex\hbox{#2#3}}}}
-%
+%
% \def\doraisedmathord#1%
% {\mathchoice
% {\dodoraisedmathord5\tf #1}%
% {\dodoraisedmathord5\tf #1}%
% {\dodoraisedmathord4\tfx #1}%
% {\dodoraisedmathord3\tfxx#1}}
-%
+%
% \def\negative{\doraisedmathord-}
% \def\positive{\doraisedmathord+}
%
-% So, now we use the monospaced signs, that we also
-% define as symbol, so that they can be overloaded.
+% So, now we use the monospaced signs, that we also
+% define as symbol, so that they can be overloaded.
\def\dodoraisedmathord#1#2#3%
{\mathord{{#2\raise.#1ex\hbox{#2\symbol[#3]}}}}
@@ -1496,12 +1535,12 @@
\definesymbol[negative] [\getglyph{Mono}{-}]
\definesymbol[zeroamount][\getglyph{Mono}{-}]
-\def\negative {\doraisedmathord{negative}}
+\def\negative {\doraisedmathord{negative}}
\def\positive {\doraisedmathord{positive}}
\def\zeroamount{\donumbermathord{zeroamount}}
-%D How negative such a symbol looks is demonstrated in:
-%D $\negative 10^{\negative 10^{\negative 10}}$.
+%D How negative such a symbol looks is demonstrated in:
+%D $\negative 10^{\negative 10^{\negative 10}}$.
\setupformulas
[\c!wijze=\@@nrwijze,
@@ -1517,4 +1556,4 @@
\c!nawit=\@@fmvoorwit,
\c!grid=]
-\protect \endinput
+\protect \endinput \ No newline at end of file
diff --git a/tex/context/base/core-mis.tex b/tex/context/base/core-mis.tex
index 3b3a11f3c..f16bdb603 100644
--- a/tex/context/base/core-mis.tex
+++ b/tex/context/base/core-mis.tex
@@ -13,48 +13,62 @@
\writestatus{loading}{Context Core Macros / Misc Commands}
-\startmessages dutch library: systems
- title: systeem
- 3: probeer LaTeX eens
-\stopmessages
-
-\startmessages english library: systems
- title: system
- 3: try LaTeX
-\stopmessages
-
-\startmessages german library: systems
- title: system
- 3: Versuche LaTeX
-\stopmessages
-
-\startmessages czech library: systems
- title: system
- 3: zkuste LaTeX
-\stopmessages
-
-\startmessages italian library: systems
- title: sistema
- 3: provare LaTeX
-\stopmessages
-
-\startmessages norwegian library: systems
- title: system
- 3: forsøker LaTeX
-\stopmessages
-
-\startmessages romanian library: systems
- title: sistem
- 3: incercati LaTeX
-\stopmessages
+% Obsolete
+%
+% \startmessages dutch library: systems
+% title: systeem
+% 3: probeer LaTeX eens
+% \stopmessages
+%
+% \startmessages english library: systems
+% title: system
+% 3: try LaTeX
+% \stopmessages
+%
+% \startmessages german library: systems
+% title: system
+% 3: Versuche LaTeX
+% \stopmessages
+%
+% \startmessages czech library: systems
+% title: system
+% 3: zkuste LaTeX
+% \stopmessages
+%
+% \startmessages italian library: systems
+% title: sistema
+% 3: provare LaTeX
+% \stopmessages
+%
+% \startmessages norwegian library: systems
+% title: system
+% 3: forsøker LaTeX
+% \stopmessages
+%
+% \startmessages romanian library: systems
+% title: sistem
+% 3: incercati LaTeX
+% \stopmessages
+%
+% %D You would not expect the next macro in \CONTEXT,
+% %D wouldn't you? It's there to warn \LATEX\ users that
+% %D something is wrong.
+% %D
+% %D Obsolete now:
+% %
+% % \def\documentstyle{\showmessage\m!systems3\empty\stoptekst}
+% %
+% % \let\documentclass=\documentstyle
+% %D \macros
+% %D {simplifiedcommands, simplifycommands}
+% %D
+% %D I first needed this simplification in bookmarks. Users can
+% %D add their own if needed.
\unprotect
-%D \macros
-%D {simplifiedcommands, simplifycommands}
-%D
-%D I first needed this simplification in bookmarks. Users can
-%D add their own if needed.
+%D Sometimes (for instance in bookmarks) we need to simplify macro
+%D behaviour, so here is the hook.
\ifx\simplifiedcommands\undefined \newtoks\simplifiedcommands \fi
@@ -71,15 +85,6 @@
\appendtoks \def\MetaPost{MetaFont}\to\simplifiedcommands
\appendtoks \def\MetaPost{MetaFun}\to\simplifiedcommands
\appendtoks \def||{-}\to\simplifiedcommands
-
-%D You would not expect the next macro in \CONTEXT,
-%D wouldn't you? It's there to warn \LATEX\ users that
-%D something is wrong.
-
-\def\documentstyle
- {\showmessage\m!systems3\empty\stoptekst}
-
-\let\documentclass=\documentstyle
% THIS WAS MAIN-002.TEX
@@ -555,7 +560,7 @@
\unexpanded\def\unknown
{\dontleavehmode\punten[3]}
-\def\midboundarycharacter#1#2%
+\def\midboundarycharacter#1#2%
{%\nobreak
\hskip\hspaceamount\currentlanguage{#2}%
\languageparameter#1%
@@ -579,7 +584,7 @@
\stelkoppeltekenin
[\c!teken=\compoundhyphen]
-
+
\definehspace [sentence] [\zeropoint]
\definehspace [intersentence] [.250em]
@@ -659,31 +664,31 @@
\definehspace [speech] [\hspaceamount\currentlanguage{quotation}]
\definesymbol
- [\c!leftquotation]
+ [\c!leftquotation]
[\leftboundarycharacter\c!leftquotation{quotation}]
\definesymbol
- [\c!rightquotation]
+ [\c!rightquotation]
[\rightboundarycharacter\c!rightquotation{quotation}]
\definesymbol
- [\c!leftquote]
+ [\c!leftquote]
[\leftboundarycharacter\c!leftquote{quote}]
\definesymbol
- [\c!rightquote]
+ [\c!rightquote]
[\rightboundarycharacter\c!rightquote{quote}]
\definesymbol
- [\c!leftspeech]
+ [\c!leftspeech]
[\leftboundarycharacter\c!leftspeech{speech}]
\definesymbol
- [\c!rightspeech]
+ [\c!rightspeech]
[\rightboundarycharacter\c!rightspeech{speech}]
\definesymbol
- [\c!middlespeech]
+ [\c!middlespeech]
[\leftboundarycharacter\c!middlespeech{speech}]
%%%%% will be replaced by delimitedtext %%%%%
@@ -766,7 +771,7 @@
\unexpanded\def\citaat
{\dohandlequotation\c!leftquotation\relax
- \groupedcommand \donothing
+ \groupedcommand \donothing
{\dohandlequotation\c!rightquotation\removelastskip}}
\def\doquotedcite
@@ -824,7 +829,7 @@
\appendtoks \dohandlespeech \to \everypar
-% this will replace the quotation and speed definitions
+% this will replace the quotation and speed definitions
\newsignal\delimitedtextignal
@@ -840,7 +845,7 @@
{\doifassignmentelse{#2}
{\getparameters
[\??ci#1]
- [\c!plaats=\v!marge, % \v!tekst \v!alinea
+ [\c!plaats=\v!marge, % \v!tekst \v!alinea
\c!voorwit=,
\c!nawit=\delimitedtextparameter\c!voorwit,
\c!letter=\v!normaal,
@@ -855,7 +860,7 @@
\c!niveau=0,
\c!herhaal=\v!nee,
#2]}%
- {\doifdefined{#2}
+ {\doifdefined{#2}
{\copyparameters[\??ci#1][\??ci#2]
[\c!plaats,\c!voorwit,\c!nawit,\c!letter,\c!kleur,
\c!linkermarge,\c!rechtermarge,\c!springvolgendein,
@@ -888,21 +893,21 @@
\doifinsetelse{\delimitedtextparameter\c!plaats}{\v!alinea,\v!marge}%
{\dosingleempty\dostartdelimitedtextpar}\dostartdelimitedtexttxt}
-\def\dostartdelimitedtextpar[#1]%
+\def\dostartdelimitedtextpar[#1]%
{\let\dostopdelimitedtext\dostopdelimitedtextpar
\doifsomething{\delimitedtextparameter\c!voorwit}
{\blanko[\delimitedtextparameter\c!voorwit]}%
\delimitedtextparameter\c!voor
- % nicer:
+ % nicer:
% \doadaptleftskip {\delimitedtextparameter\c!linkermarge}%
% \doadaptrightskip{\delimitedtextparameter\c!rechtermarge}%
- % backward compatible:
+ % backward compatible:
\doifelsenothing{#1}
{\doadaptleftskip {\delimitedtextparameter\c!linkermarge}%
\doadaptrightskip{\delimitedtextparameter\c!rechtermarge}%
\let\dodostopdelimitedtextpar\endgraf}
{\startsmaller[#1]\let\dodostopdelimitedtextpar\stopsmaller}%
- % so far
+ % so far
\dochecknextindentation{\??ci\currentdelimitedtext}%
\dostartattributes{\??ci\currentdelimitedtext}\c!letter\c!kleur\empty
\leftdelimitedtextmark
@@ -930,25 +935,25 @@
\dohandledelimitedtext\c!rechts
\dostopattributes}
-\def\stopdelimitedtext
+\def\stopdelimitedtext
{\dostopdelimitedtext
\doglobal\decrementvalue{\??ci\currentdelimitedtext\c!niveau}%
\egroup}
\def\delimitedtext[#1]%
- {\pushmacro\currentdelimitedtext
+ {\pushmacro\currentdelimitedtext
\def\currentdelimitedtext{#1}%
\doifinsetelse{\delimitedtextparameter\c!plaats}{\v!alinea,\v!marge}%
\dodelimitedtextpar\dodelimitedtexttxt}
-% shortcuts
+% shortcuts
\def\startdelimited{\startdelimitedtext}
\def\stopdelimited {\stopdelimitedtext} % no let, dynamically assigned
\def\delimited {\delimitedtext}
\def\leftdelimitedtextmark
- {\dontleavehmode
+ {\dontleavehmode
\setbox\scratchbox\hbox{\delimitedtextparameter\c!links}%
\doif{\delimitedtextparameter\c!plaats}\v!marge{\hskip-\wd\scratchbox}%
\box\scratchbox}
@@ -989,7 +994,7 @@
\def\doquoteddelimited
{\dohandledelimitedtext\c!links\relax
- \groupedcommand
+ \groupedcommand
\donothing
{\dohandledelimitedtext\c!rechts
\removelastskip
@@ -1006,27 +1011,27 @@
% [\c!links={\symbol[\c!leftquotation]},
% \c!rechts={\symbol[\c!rightquotation]},
% \c!linkermarge=\v!standaard]
-%
+%
% \definedelimitedtext
% [\v!citeer][\v!citaat]
-%
+%
% \setupdelimitedtext
% [\v!citeer]
-% [\c!plaats=\v!tekst,
+% [\c!plaats=\v!tekst,
% \c!links={\symbol[\c!leftquote]},
% \c!rechts={\symbol[\c!rightquote]}]
-%
+%
% \definedelimitedtext
% [\v!spraak][\v!citaat]
-%
+%
% \setupdelimitedtext
% [\v!spraak]
% [\c!herhaal=\v!ja,
% \c!links={\symbol[\c!leftspeech]},
% \c!midden={\symbol[\c!middlespeech]},
% \c!rechts={\symbol[\c!rightspeech]}]
-%
-% % how do we call an tight quote
+%
+% % how do we call an tight quote
% %
% % \definedelimitedtext
% % [x\v!citaat][\v!citaat]
@@ -1035,11 +1040,11 @@
% % [x\v!citaat]
% % [\c!springvolgendein=\v!nee,
% % \c!voorwit=\v!geenwit]
-%
+%
% \def\stelciterenin{\setupdelimitedtext[\v!citaat]}
% \def\stelcitatenin{\setupdelimitedtext[\v!citeer]}
-% seldom used, move from kernel to run time module
+% seldom used, move from kernel to run time module
% Tijden horen hier niet thuis en zullen in een aparte
% module worden ondergebracht. voorlopig handhaven we ze nog
@@ -1061,7 +1066,7 @@
\def\activiteit#1#2%
{\sym{\tijdspan{#1}{#2}}}
-% seldom used, move from kernel to run time module
+% seldom used, move from kernel to run time module
\def\dotoevoegen#1%
{\def\next{#1}%
@@ -1080,10 +1085,10 @@
\definecomplexorsimpleempty\toevoegen
-% seldom used, move from kernel to run time module
+% seldom used, move from kernel to run time module
-\def\basegrid
- {\dosingleempty\dobasegrid}
+\def\basegrid
+ {\dosingleempty\dobasegrid}
\def\dobasegrid[#1]%
{\begingroup
@@ -1282,7 +1287,7 @@
\c!links={[},
\c!rechts={]}]
-% only used at pragma, move from kernel to run time module
+% only used at pragma, move from kernel to run time module
\def\kenmerkdatum
{\currentdate[\v!kenmerk]}
@@ -1695,7 +1700,7 @@
% \fi
% \ifdim\scratchdimen>\ht\secondpairedbox
% \setbox\secondpairedbox\vbox to \scratchdimen
-% {\ifnum\pairedlocationa=3 \vss\fi %
+% {\ifnum\pairedlocationa=3 \vss\fi %
% \box\secondpairedbox
% \ifnum\pairedlocationa=2 \vss\fi}% \kern\zeropoint
% \fi
@@ -1738,7 +1743,7 @@
\fi
\ifdim\scratchdimen>\ht\secondpairedbox
\setbox\secondpairedbox\vbox to \scratchdimen
- {\ifnum\pairedlocationa=3 \vss\fi %
+ {\ifnum\pairedlocationa=3 \vss\fi %
\box\secondpairedbox
\ifnum\pairedlocationa=2 \vss\fi}% \kern\zeropoint
\fi
@@ -1775,7 +1780,7 @@
\definepairedbox[\v!legenda]
-%D Goody:
+%D Goody:
\newevery \everyinsidefloat \relax
@@ -1870,9 +1875,9 @@
\afterassignment\next\let\nexttoken=}
\hbox}
-% stupid version, does not align top stuff when captions,
+% stupid version, does not align top stuff when captions,
% keep as example
-%
+%
% \def\dodocombination
% {\vbox
% {\forgetall % \setupwhitespace[\v!geen]%
@@ -1881,10 +1886,10 @@
% [\combinationparameter\c!plaats]
% [ \v!boven=>\let\next\tbox,
% \v!midden=>\let\next\halfwaybox]%
-% \next{\copy0}%
+% \next{\copy0}%
% \ifdim\ht2>\zeropoint % beter dan \wd2, nu \strut mogelijk
% \@@cotussen
-% %\vtop % wrong code
+% %\vtop % wrong code
% % {\nointerlineskip % recently added
% % \hsize\wd0
% % \setupalign[\combinationparameter\c!uitlijnen]% % \raggedcenter
@@ -1897,7 +1902,7 @@
% \ifnum\horcombination=\zerocount
% \def\next
% {\cr\noalign
-% {\forgetall % \setupwhitespace[\v!geen]% no
+% {\forgetall % \setupwhitespace[\v!geen]% no
% \nointerlineskip
% \combinationparameter\c!na
% \combinationparameter\c!voor
@@ -1961,14 +1966,14 @@
\newbox\combinationstack
-\def\saveoncombinationstack#1%
+\def\saveoncombinationstack#1%
{\global\setbox\combinationstack\hbox
{\hbox{\box#1}\unhbox\combinationstack}}
\def\flushcombinationstack
{\noalign
{\ifdim\ht\combinationstack>\zeropoint
-\nointerlineskip % nieuw
+\nointerlineskip % nieuw
\@@cotussen
\global\horcombination\maxhorcombination
\globallet\doflushcombinationstack\dodoflushcombinationstack
@@ -1997,7 +2002,7 @@
[\c!breedte=\v!passend,
\c!hoogte=\v!passend,
\c!afstand=1em,
- \c!plaats=\v!onder, % can be something {top,left}
+ \c!plaats=\v!onder, % can be something {top,left}
\c!voor=\blanko,
\c!tussen={\blanko[\v!middel]},
\c!letter=,
@@ -2097,7 +2102,7 @@
% #6}
% #3}%
% \egroup}
-%
+%
% \def\dostoprotate%
% {\!!counta=\@@rorotatie
% \divide\!!counta by 90
@@ -2115,7 +2120,7 @@
% \def\@@rotatie{90}%
% \dodostoprotate\ht\relax\vfill\wd\relax\hfill
% \fi}
-%
+%
% \def\dorotatebox#1% {angle} \hbox/\vbox/\vtop
% {\bgroup
% \hbox\bgroup % compatibility hack
@@ -2178,8 +2183,8 @@
\dodostoprotate\nextboxht\relax\vfill\nextboxwd\relax\hfill
\fi}
-%D A couple of examples, demonstrating how the depth ios
-%D taken care of:
+%D A couple of examples, demonstrating how the depth ios
+%D taken care of:
%D
%D \startbuffer
%D test\rotate[frame=on, rotation=0] {gans}%
@@ -2188,7 +2193,7 @@
%D test\rotate[frame=on, rotation=270]{gans}%
%D test
%D \stopbuffer
-%D
+%D
%D \typebuffer \getbuffer
\def\complexrotate[#1]%
@@ -2465,18 +2470,18 @@
%D \HL
%D \stoptabulate
-%D Under construction:
+%D Under construction:
%D
-%D \starttypen
+%D \starttypen
%D \commalistsentence[aap,noot,mies]
%D \commalistsentence[aap,noot]
%D \commalistsentence[aap]
-%D \stoptypen
+%D \stoptypen
\let\handlecommalistsentence\firstofoneargument
\def\commalistsentence[#1]%
- {\bgroup
+ {\bgroup
\getcommalistsize[#1]%
\ifcase\commalistsize\relax
\def\serializedcommalist{#1}%
@@ -2484,7 +2489,7 @@
\let\serializedcommalist\empty
\scratchcounter\zerocount
\def\docommando##1%
- {\advance\scratchcounter \plusone
+ {\advance\scratchcounter \plusone
\ifnum\scratchcounter=\plusone
\scratchtoks{\handlecommalistsentence{##1}}%
\else
@@ -2500,7 +2505,7 @@
\serializedcommalist
\egroup}
-\ifx\textcomma\undefined \def\textcomma{,} \fi
+\ifx\textcomma\undefined \def\textcomma{,} \fi
\setuplabeltext [\s!nl] [and-1=\textcomma\ , and-2= en ]
\setuplabeltext [\s!en] [and-1=\textcomma\ , and-2=\textcomma\ and ]
diff --git a/tex/context/base/core-ntb.tex b/tex/context/base/core-ntb.tex
index daeb346aa..6aa6cc0c6 100644
--- a/tex/context/base/core-ntb.tex
+++ b/tex/context/base/core-ntb.tex
@@ -256,8 +256,19 @@
\executeifdefined{\@@tblprefix\c!y#1}\donothing
\executeifdefined{\@@tblprefix\c!x#2}\donothing
\executeifdefined{\@@tblprefix\c!x#2\c!y#1}\donothing
+ \global\letcscsname\@@tblsplitafter\csname\@@tbl\@@tbl\c!na\endcsname
\relax}
+\globallet\@@tblsplitafter\relax
+
+% split + page:
+%
+% \bTABLE[split=yes]
+% \bTR \bTD left \eTD\bTD right \eTD\eTR
+% \bTR[after=\pagina] \bTD left \eTD\bTD right \eTD\eTR
+% \bTR \bTD left \eTD\bTD right \eTD\eTR
+% \eTABLE
+
% \long\def\parseTR[#1][#2]#3\eTR% [#2] is dummy that kills spaces
% {\def\currentcol{0}\increment\maximumrow#3}
@@ -502,7 +513,10 @@
\noalign
{\nointerlineskip
\allowbreak
- \bgroup
+ \bgroup % protect local vars
+ \@@tblsplitafter
+ \egroup
+ \bgroup % protect local vars
\increment\rowTBL\relax
\ifnum\rowTBL>\noftblheadlines\relax
\ifnum\rowTBL<\maximumrow\relax
@@ -795,7 +809,7 @@
\let\xxrowTBL\xrowTBL
% calculate cummulative height
\dimen4=\dimen2
- \dorecurse{\!!countb}
+ \dorecurse\!!countb
{\ifnum\xxrowTBL=\xrowTBL\else
\advance\dimen4 \gettblhei\xxrowTBL
\fi
@@ -806,7 +820,7 @@
\divide\dimen0 \!!countb
\let\xxrowTBL\xrowTBL
\settblhei\xrowTBL{\the\dimen2}%
- \dorecurse{\!!countb}
+ \dorecurse\!!countb
{\dorecurse\maximumcol
{\ifnum\recurselevel=\xcolTBL\else
\scratchdimen\gettblht\xxrowTBL\recurselevel
@@ -1100,4 +1114,4 @@
\fi
\fi}
-\protect \endinput
+\protect \endinput \ No newline at end of file
diff --git a/tex/context/base/core-reg.tex b/tex/context/base/core-reg.tex
index 3149c800c..e2f3b64dd 100644
--- a/tex/context/base/core-reg.tex
+++ b/tex/context/base/core-reg.tex
@@ -8,8 +8,8 @@
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
\writestatus{loading}{Context Core Macros / Register Management}
@@ -17,9 +17,9 @@
% new: eigennummer=ja => eerste {} ipv pag nummer
-\unprotect
+\unprotect
-%D Isolated but still indocumented.
+%D Isolated but still indocumented.
% Formaat tex-utility-input-file <jobname.tui>:
%
@@ -74,7 +74,7 @@
\processseparatedlist[#1][+]\docommando
\!!stringa}
-\def\doprocesspageregister[#1]#2#3% key altnum entry
+\def\doprocesspageregister[#1]#2#3% key altnum entry
{\begingroup
\thisisnextinternal\s!ind
\ifduplicate\getlastregisterentry{#3}\fi
@@ -82,8 +82,8 @@
\makesectionformat
\doifelsevalue{\??id\currentregister\c!eigennummer}\v!ja
\donetrue\donefalse
- % the spaces between } { are essential for texutil's split
- \edef\schrijfwegnaarregister%
+ % the spaces between } { are essential for texutil's split
+ \edef\schrijfwegnaarregister%
{\writeutility%
{r \ifcase\registerpagestatus\space\or e \or f \or t \fi
{\currentregister} %
@@ -188,7 +188,7 @@
\def\ifregistergeplaatst{\ifutilitydone}
\newif\iffirstregisterpage
-\newif\iffirstregisterentry
+\newif\iffirstregisterentry
\let\c!entrya\empty
\let\c!entryb\empty
@@ -294,7 +294,7 @@
{\bgroup
\if!!donea % \strut nieuw
\setbox0\hbox{\showlocation{\doregistertexthowto{#2}
- {\strut\limitedregisterentry{#2}{##1}}}}%
+ {\strut\limitedregisterentry{#2}{##1}}}}%
\gotonextinternal{\s!ind}{#4}{#6}{\box0}%
\else
\doregistertexthowto{#2}{##1}%
@@ -313,7 +313,7 @@
\global\let\c!entryc\relax
\global\let\c!entryletter\relax
\global\let\c!entryreference\relax
- % \global\firstregisterentrytrue
+ % \global\firstregisterentrytrue
\iffirstregisterpage
\global\chardef\lastregisterpagestatus\zerocount
\expandafter\hskip\getvalue{\??id#2\c!afstand}\relax
@@ -341,12 +341,12 @@
\fi
\global\firstregisterpagefalse}
-\def\dosetpageregistersee#1#2#3#4% ugly separator hack
+\def\dosetpageregistersee#1#2#3#4% ugly separator hack
{\expanded{\doifreglevelelse[#4\sectionseparator\sectionseparator0]}%
{{\global\utilitydonetrue
\setregisterhowto[#2]%
\def\dohandleregisterentry##1% dubbelop | \strut nieuw
- {\doregistertexthowto{#1}{\strut\limitedregisterentry{#1}{##1}}}%
+ {\doregistertexthowto{#1}{\strut\limitedregisterentry{#1}{##1}}}%
\getvalue
{#1\ifcase\currententrylevel\s!entrya\or\s!entryb\else\s!entryc\fi}%
{\doregisterpagehowto{#1}{\labeltexts{\v!zie}{#3}}}%
@@ -357,20 +357,20 @@
\global\let\c!entryletter\relax
\global\let\c!entryreference\relax
\global\chardef\lastregisterpagestatus\zerocount
- % \global\firstregisterentrytrue
+ % \global\firstregisterentrytrue
\global\firstregisterpagefalse}}
{}}
-%D Extended with variant:
+%D Extended with variant:
\def\doregistercharacter[#1]#2%
- {\global\firstregisterentrytrue
+ {\global\firstregisterentrytrue
\doifelsevalue{\??id#1\c!aanduiding}\v!ja
{\executeifdefined
{\strippedcsname\doregistercharacter\getvalue{\??id#1\c!variant}}%
\doregistercharactera
[#1]{#2}}
- {\noregistercharacter[#1]{#2}}}
+ {\noregistercharacter[#1]{#2}}}
\def\noregistercharacter[#1]#2%
{\getvalue{\??id#1\c!voor}%
@@ -381,23 +381,23 @@
\def\doregistercharactera[#1]#2%
{\getvalue{\??id#1\c!voor}%
\vskip\lineheight\goodbreak\vskip-\lineheight
- \ifhmode\unskip\else\noindent\fi % brrr
- \getvalue{\??id#1\c!commando}%
+ \ifhmode\unskip\else\noindent\fi % brrr
+ \getvalue{\??id#1\c!commando}%
{\doattributes{\??id#1}\c!letter\c!kleur{\strut\ignorespaces#2}}%
\getvalue{\??id#1\c!na}%
- \par\nobreak}
+ \par\nobreak}
% b = <goodbreak> <before> <character> <after> <nobreak>
\def\doregistercharacterb[#1]#2% here no lineheight hackery ! ! !
{\getvalue{\??id#1\c!voor}%
- \ifhmode\unskip\else\noindent\fi % brrr
- \getvalue{\??id#1\c!commando}%
+ \ifhmode\unskip\else\noindent\fi % brrr
+ \getvalue{\??id#1\c!commando}%
{\doattributes{\??id#1}\c!letter\c!kleur{\strut\ignorespaces#2}}%
\getvalue{\??id#1\c!na}%
- \nobreak}
+ \nobreak}
-%D Don't use \type{\string#2}; another hack isneeded, since
+%D Don't use \type{\string#2}; another hack isneeded, since
%D \type {#2} can be \type {\string} itself.
\def\doregisterreference[#1]#2%
@@ -408,7 +408,7 @@
{\gdef\c!entryreference
{\global\let\c!entryreference\relax
\doregisterreference[#1]{#2}}%
- \gdef\c!entryletter
+ \gdef\c!entryletter
{\global\utilitydonetrue
\global\let\c!entryletter\relax
\doregistercharacter[#1]{#2}}}
@@ -453,7 +453,7 @@
\global\firstregisterentryfalse
\global\firstsubsubentryfalse}}
-\def\dosetpageregister#1% \currentregister gebruiken
+\def\dosetpageregister#1% \currentregister gebruiken
{\dosetreglevel{#1}%
\global\let\currentregisterentry\empty
\global\firstsubentrytrue
@@ -473,7 +473,7 @@
{\dosetfilterlevel{\getvalue{\??id#1\c!criterium}}\empty}
\def\getalllistreferences#1#2%
- {\doglobal\convertexpanded{\??id#1}{#2}\currentregisterentry
+ {\doglobal\convertexpanded{\??id#1}{#2}\currentregisterentry
\doifdefinedelse{\??id#1\??id\currentregisterentry}
{\edef\alllistreferences%
{\getvalue{\??id#1\??id\currentregisterentry}}%
@@ -486,7 +486,7 @@
{\dosetreglevel{#1}%
\setregisterpage{#1}%
\global\let\currentregisterentry\empty
- \global\firstsubentrytrue % not needed
+ \global\firstsubentrytrue % not needed
\global\firstsubsubentrytrue % not needed too
\setvalue{#1\s!entrya}##1{\dosetlinkregisterentrya{#1}{##1}}%
\setvalue{#1\s!entry }##1{\dosetpageregisterletter{#1}{##1}}}
@@ -521,12 +521,12 @@
\let\midlistreference\commalistelement
\fi
\fi
- % aangepast
+ % aangepast
\def\dodocommando[##1-##2]%
{\gotonextinternal{\s!ind}{##1}{##2}{\box0}}%
- \doifelsevalue{\??id#1\c!interactie}\v!paginanummer
+ \doifelsevalue{\??id#1\c!interactie}\v!paginanummer
{\limitedregisterentry{#1}{#2}} % paginanummer
- {{\setbox0\hbox{\limitedregisterentry{#1}{\begstrut#2}}%
+ {{\setbox0\hbox{\limitedregisterentry{#1}{\begstrut#2}}%
\ifx\firstlistreference\empty % tekst,alles
\ifx\midlistreference\empty
\box0
@@ -550,7 +550,7 @@
\docommando\firstlistreference\v!vorige
\docommando\midlistreference\v!ergens
\docommando\lastlistreference\v!volgende}%
- % tot hier
+ % tot hier
\else
\endgraf\noindent\c!entryreference
\limitedregisterentry{#1}{#2}%
@@ -558,7 +558,7 @@
\def\dosetregister#1%
{\doifelsevalue{\??id#1\c!koppeling}\v!ja
- {\ifautoregisterhack
+ {\ifautoregisterhack
\dosetautoregister{#1}%
\else
\dosetlinkregister{#1}%
@@ -611,13 +611,13 @@
\def\dokoppelregister[#1][#2]%
{\iflocation
- \ifcase0\countervalue{autolink:#1}\relax % only once
+ \ifcase0\countervalue{autolink:#1}\relax % only once
\begingroup
\let\dosetregister\doloadregisterlinks
\stelregisterin[#1][#2]%
\doutilities{#1}\jobname{#1}\relax\relax
\endgroup
- \ifautoregisterhack
+ \ifautoregisterhack
\doinitializeautoregister{#1}%
\else
\doinitializelinkregister{#1}%
@@ -685,14 +685,14 @@
\fi
\setalignmentswitch{\getvalue{\??id#1\c!plaats}}%
\ifcase\alignmentswitch
- % links
+ % links
\docommandoprolinrefB{#1}\prevlistreference\v!vorige
\docommandoprolinrefB{#1}\nextlistreference\v!volgende
- \or
- % midden
+ \or
+ % midden
\docommandoprolinrefB{#1}\prevlistreference\v!vorige
- \or
- % rechts
+ \or
+ % rechts
\fi
\doifreferencefoundelse{\s!lin:\internallistreference}
{\gotosomeinternal
@@ -700,22 +700,22 @@
{\showlocation{\limitedregisterentry{#1}{#3}}}}
{\hbox{\limitedregisterentry{#1}{#3}}}%
\ifcase\alignmentswitch
- % links
- \or
- % midden
+ % links
+ \or
+ % midden
\docommandoprolinrefB{#1}\nextlistreference\v!volgende
- \or
+ \or
% rechts
\docommandoprolinrefB{#1}\prevlistreference\v!vorige
\docommandoprolinrefB{#1}\nextlistreference\v!volgende
\fi}}
\def\dodolinkedregister[#1][#2]#3% page auto link
- {\bgroup
+ {\bgroup
\chardef\registerpagestatus\plusone
\def\currentregister{#1}%
\iflocation
- \ifautoregisterhack
+ \ifautoregisterhack
\def\next{\doprocessautoregister[#1][#2]}%
\else
\def\next{\doprocesslinkregister[#1][#2]}%
@@ -731,16 +731,16 @@
\def\dolinkedregister#1%
{\dodoubleempty\dodolinkedregister[#1]}
-\def\dosetautoregister#1%
+\def\dosetautoregister#1%
{\makecounter{autolink:#1}%
\dosetreglevel{#1}%
\setregisterpage{#1}%
\global\let\currentregisterentry\empty
- \global\firstsubentrytrue % not needed
+ \global\firstsubentrytrue % not needed
\global\firstsubsubentrytrue % not needed too
\setvalue{#1\s!entrya}##1%
{\dosetautoregisterentrya{#1}{##1}}%
- \setvalue{#1\s!entry}##1%
+ \setvalue{#1\s!entry}##1%
{\dosetpageregisterletter{#1}{##1}}}
\def\dosetautoregisterentrya#1#2%
@@ -749,7 +749,7 @@
\iflocation
\getalllistreferences{#1}{#2}%
\endgraf\hangindent1em\noindent\c!entryreference
- \pagereference[-:\s!lin:\internallistreference]%
+ \pagereference[-:\s!lin:\internallistreference]%
\pluscounter{autolink:#1}%
\bgroup
%\setupinteraction[\c!kleur=,\c!contrastkleur=,\c!letter=]% kan sneller
@@ -757,7 +757,7 @@
\resetinteractionparameter\c!contrastkleur
\resetinteractionparameter\c!letter
\naarbox
- {\limitedregisterentry{#1}{\begstrut#2}}%
+ {\limitedregisterentry{#1}{\begstrut#2}}%
[JS(SetRegisterEntry{\v!register,\countervalue{autolink:#1},#2,{\alllistreferences}})]%
\egroup
\else
@@ -780,9 +780,9 @@
%D In a 2500 page document this resulted in a rather (anoying)
%D long start||up time. This \citeer {every page its own field}
%D solution, combined with a \citeer {page open action}, works
-%D much faster, but is conceptually pretty weak.
+%D much faster, but is conceptually pretty weak.
-\def\complexregisterfield[#1]%
+\def\complexregisterfield[#1]%
{\definefield[#1:\realfolio][line][\v!register]%
\field[#1:\realfolio]}
@@ -799,10 +799,10 @@
\c!optie=\v!alleenleesbaar,
\c!plaats=\v!laag]
-\def\doinitializeautoregister#1%
+\def\doinitializeautoregister#1%
{\useJSscripts[reg]%
- \useJSpreamblenow{LinkedRegisters}%
- \setupinteraction[\c!openpaginaactie=JS(UpdateRegisterField{\v!register})]%
+ \useJSpreamblenow{LinkedRegisters}%
+ \setupinteraction[\c!openpaginaactie=JS(UpdateRegisterField{\v!register})]%
\definereference[\v!reset \v!register][JS(ResetRegisterEntry{\v!register})]%
\definereference[\v!eerste \v!register][JS(GotoFirstRegisterEntry{\v!register})]%
\definereference[\v!vorige \v!register][JS(GotoPreviousRegisterEntry{\v!register})]%
@@ -812,7 +812,7 @@
\def\doinitializelinkregister#1%
{}
-% todo ruwe register
+% todo ruwe register
\def\plaatsregister
{\dosingleargument\doplaatsregister}
@@ -836,11 +836,19 @@
\stopkolommen
\endgroup}
-\def\complexdovolledigregister[#1]% \@EA's kunnen weg
- {\@EA\plaatsvolledig\@EA{\@EA\systemsuppliedchapter\@EA}%
- \@EA{\@EA\currentregister\@EA}%
- \@EA{\@EA\headtext\@EA{\currentregister}}%
- {\complexdoplaatsregister[#1]}}
+% \def\complexdovolledigregister[#1]% \@EA's kunnen weg
+% {\@EA\plaatsvolledig\@EA{\@EA\systemsuppliedchapter\@EA}%
+% \@EA{\@EA\currentregister\@EA}%
+% \@EA{\@EA\headtext\@EA{\currentregister}}%
+% {\complexdoplaatsregister[#1]}}
+
+\def\complexdovolledigregister[#1]% the expansion is needed because we don't want
+ {\expanded % \v!'s in the tuo file (french)
+ {\plaatsvolledig
+ {\noexpand\systemsuppliedchapter}%
+ {\currentregister}%
+ {\noexpand\headtext{\currentregister}}%
+ {\noexpand\complexdoplaatsregister[#1]}}}
\def\dovolledigregister[#1]%
{\def\currentregister{#1}%
@@ -915,11 +923,11 @@
{\doutilities{#1}\jobname{#1}\relax\relax}%
\endgroup
\ifregistergeplaatst
- \setsystemmode \v!register
+ \setsystemmode \v!register
\else
- \resetsystemmode\v!register
+ \resetsystemmode\v!register
\fi}
-
+
\def\bepaalregisterkenmerken
{\dodoubleempty\dobepaalregisterkenmerken}
@@ -928,22 +936,22 @@
[\v!indices]
% \stelregisterin[index][koppeling=ja]
-%
+%
% \stelveldenin
% [register][achtergrond=raster,kader=uit]
%
% \stelvoettekstenin
% [{\field[index]}]
-%
+%
% \stelhoofdtekstenin
% [{\naar {first}[eersteindex]\quad
% \naar{previous}[vorigeindex]\quad
% \naar {next}[volgendeindex]\quad
% \naar {last}[laatsteindex]\quad\quad
% \naar {index}[index]}]
-%
-% \starttekst
-%
+%
+% \starttekst
+%
% oeps~~~\gekoppeldeindex{oeps} \blanko
% flop~~~\gekoppeldeindex{flop} \blanko
% test~~~\gekoppeldeindex{test} \pagina
@@ -953,7 +961,7 @@
% test~~~\gekoppeldeindex{test} \pagina
% flop~~~\gekoppeldeindex{flop} \blanko
% oeps~~~\gekoppeldeindex{oeps} \pagina
-%
+%
% \volledigeindex
-\protect \endinput
+\protect \endinput
diff --git a/tex/context/base/core-rul.tex b/tex/context/base/core-rul.tex
index 650c38581..d09e5370e 100644
--- a/tex/context/base/core-rul.tex
+++ b/tex/context/base/core-rul.tex
@@ -28,7 +28,7 @@
%D preset value of .4pt equals the default hard coded \TEX\
%D rule width.
-\newdimen\linewidth
+\newdimen\linewidth
\def\dosetuplinewidth[#1]%
{\assigndimension{#1}\linewidth{.2\s!pt}{.4\s!pt}{.6\s!pt}}
@@ -800,8 +800,8 @@
\boxhasheighttrue
\!!heighta\localheight
\fi\fi
- \ifboxhasheight
- % obey user set height, also downward compatible
+ \ifboxhasheight
+ % obey user set height, also downward compatible
\else
\doifvaluesomething{\@@framed\c!regels}
{\ifcase\framedparameter\c!regels\else
@@ -1438,11 +1438,11 @@
{\framednoflines\zerocount
\framedlastlength\zeropoint}
-% The next implementation is frozen! It preserves the depth,
-% otherwise we get problems with framed display math and auto
-% width.
+% The next implementation is frozen! It preserves the depth,
+% otherwise we get problems with framed display math and auto
+% width.
-\def\doreshapeframedbox % frozen
+\def\doreshapeframedbox % frozen
{\beginofshapebox
\unvcopy\framebox
\endofshapebox
@@ -1597,7 +1597,7 @@
%D possible.
\def\vboxedhairline
- {\bgroup
+ {\bgroup
\dimen2=\ifboxhasoffset \localoffset \else \zeropoint \fi
\dimen4=\dimen2
\advance\dimen4 \ruledlinewidth
@@ -2147,14 +2147,14 @@
{\ifnum\recurselevel=\@@dln \dothinrulesnobreak \else
\ifnum\recurselevel=2 \dothinrulesnobreak \fi\fi
\thinrule
- \ifnum\recurselevel<\@@dln\relax
- % test needed, else messed up whitespace
- \ifx\@@dltussen\empty
- \softbreak
+ \ifnum\recurselevel<\@@dln\relax
+ % test needed, else messed up whitespace
+ \ifx\@@dltussen\empty
+ \softbreak
\else
\endgraf
\geenwitruimte
- \@@dltussen
+ \@@dltussen
\fi
\fi}%
\doifelsenothing\@@dlna
@@ -2454,7 +2454,7 @@
\egroup
\forgetall
\vskip-\lineheight
- % will be an option, not default
+ % will be an option, not default
% \setbaselinecorrections
% \donegbotbaselinecorrection
\verticalstrut}
@@ -2481,8 +2481,8 @@
\bgroup
\blanko[\v!blokkeer]%
\let\\=\endgraf
- \getvalue{\??kd#1\c!binnen}% % kleur naar outer level
- \dostartattributes{\??kd#1}\c!letter\c!kleur\empty
+ \getvalue{\??kd#1\c!binnen}% % kleur naar outer level
+ \dostartattributes{\??kd#1}\c!letter\c!kleur\empty
\bgroup
\aftergroup\docloseframedtext
\let\next=}
@@ -2961,7 +2961,7 @@
%D \stopachtergrond
%D \egroup
-%D New, for the moment private; let's see when GB finds out
+%D New, for the moment private; let's see when GB finds out
%D about this one and its obscure usage. It's used in:
%D
%D \startbuffer
@@ -2971,23 +2971,23 @@
%D backgroundoffset=3pt,
%D background=color,
%D backgroundcolor=green]
-%D
+%D
%D \setuptabulate
%D [tabulate]
%D [frame=tabulateframe]
-%D
+%D
%D \setuptables
%D [frame=tabulateframe]
-%D
-%D \input tufte
-%D
+%D
+%D \input tufte
+%D
%D \starttabulate[|l|l|]
-%D \NC test \NC test \NC \NR \NC test \NC test \NC \NR
-%D \NC test \NC test \NC \NR \NC test \NC test \NC \NR
+%D \NC test \NC test \NC \NR \NC test \NC test \NC \NR
+%D \NC test \NC test \NC \NR \NC test \NC test \NC \NR
%D \stoptabulate
-%D
-%D \input tufte
-%D
+%D
+%D \input tufte
+%D
%D \starttable[|l|l|]
%D \NC test \NC test \NC \AR \NC test \NC test \NC \AR
%D \NC test \NC test \NC \AR \NC test \NC test \NC \AR
@@ -2996,15 +2996,15 @@
%D
%D \typebuffer
-% test this on demo-bbv/demo-bbi !
-%
+% test this on demo-bbv/demo-bbi !
+%
% \def\startframedcontent[#1]%
% {\bgroup
% \doifelse{#1}\v!uit
% {\let\stopframedcontent\egroup}
% {\doifdefinedelse{\??kd#1\c!kader}
% {\doifelsevalue{\??kd#1\c!regelcorrectie}\v!ja
-% {\ifinsidefloat % binnen \stopframedcontent
+% {\ifinsidefloat % binnen \stopframedcontent
% \def\stopframedcontent
% {\framedtextparameter{#1}\c!rechts
% \egroup
@@ -3082,7 +3082,7 @@
\doifvalue{\??fc#1\c!breedte}\v!passend
{\letvalue{\??fc#1\c!breedte}\v!vast}%
\ifinsidefloat
- \donefalse
+ \donefalse
\else
\doifelsevalue{\??fc#1\c!regelcorrectie}\v!ja\donetrue\donefalse
\fi
@@ -3094,8 +3094,8 @@
%D \macros
%D {backgroundline}
%D
-%D For the moment an undocumented feature, but a cancidate
-%D for going public.
+%D For the moment an undocumented feature, but a cancidate
+%D for going public.
\def\backgroundline[#1]%
%{\doifsomething{#1}{\dobackgroundline{#1}}\hbox}
@@ -3244,4 +3244,4 @@
\c!voor=,
\c!na=]
-\protect \endinput
+\protect \endinput \ No newline at end of file
diff --git a/tex/context/base/core-sec.tex b/tex/context/base/core-sec.tex
index cea989e8f..d76621570 100644
--- a/tex/context/base/core-sec.tex
+++ b/tex/context/base/core-sec.tex
@@ -2274,5 +2274,4 @@
\c!letter=, % \v!normaal, % empty, otherwise conflict
\c!kleur=]
-\protect \endinput
-
+\protect \endinput \ No newline at end of file
diff --git a/tex/context/base/core-spa.tex b/tex/context/base/core-spa.tex
index 34c40bf95..ce0683431 100644
--- a/tex/context/base/core-spa.tex
+++ b/tex/context/base/core-spa.tex
@@ -1754,11 +1754,32 @@
% We stellen enkele penalties anders in dan Plain TEX:
-\def\defaultwidowpenalty{2000} % was: 1000
-\def\defaultclubpenalty {2000} % was: 800
+% oud
+%
+% \widowpenalty=\defaultwidowpenalty\relax
+% \clubpenalty =\defaultclubpenalty \relax
+
+\newif\ifgridsnapping % to be sure
+
+\def\defaultwidowpenalty {2000} % was: 1000
+\def\defaultclubpenalty {2000} % was: 800
+
+\def\defaultgridwidowpenalty {0}
+\def\defaultgridclubpenalty {0}
+
+\def\synchronizecriteria
+ {\dosingleempty\dosynchronizecriteria}
+
+\def\dosynchronizecriteria[#1]%
+ {\ifgridsnapping
+ \widowpenalty\defaultgridwidowpenalty
+ \clubpenalty \defaultgridclubpenalty
+ \else
+ \widowpenalty\defaultwidowpenalty
+ \clubpenalty \defaultclubpenalty
+ \fi}
-\widowpenalty=\defaultwidowpenalty\relax
-\clubpenalty =\defaultclubpenalty \relax
+\synchronizecriteria
% Bovendien definieren we enkele extra \fill's:
@@ -2000,11 +2021,15 @@
\setvalue{\@@ragged@@command\v!binnen}% not yet perfect
{\signalrightpage % may interfere
- \getvalue{\@@ragged@@command\doifrightpageelse\v!rechts\v!links}}
+ \doifrightpageelse
+ {\getvalue{\@@ragged@@command\v!rechts}}
+ {\getvalue{\@@ragged@@command\v!links}}}
\setvalue{\@@ragged@@command\v!buiten}% not yet perfect
{\signalrightpage % may interfere
- \getvalue{\@@ragged@@command\doifrightpageelse\v!links\v!rechts}}
+ \doifrightpageelse
+ {\getvalue{\@@ragged@@command\v!links}}
+ {\getvalue{\@@ragged@@command\v!rechts}}}
% Nodig i.v.m. inspringen eerste alineas
diff --git a/tex/context/base/core-syn.tex b/tex/context/base/core-syn.tex
index 61c46c1e3..5d151dd69 100644
--- a/tex/context/base/core-syn.tex
+++ b/tex/context/base/core-syn.tex
@@ -8,14 +8,14 @@
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
\writestatus{loading}{Context Core Macros / Synonyms and Sorts}
-\unprotect
+\unprotect
-% \checkdefined kan hierheen
+% \checkdefined kan hierheen
% Formaat tex-utility-input-file <jobname.tui>:
%
@@ -81,15 +81,18 @@
\endgroup
\ifutilitydone\else\geenwitruimte\fi}
-\def\dovolledigelijstmetsynoniemen#1#2%
- {\plaatsvolledig
- {\systemsuppliedchapter}{#1}{\headtext{#2}}%
- {\doplaatslijstmetsynoniemen{#1}{#2}}}
+\def\dovolledigelijstmetsynoniemen#1#2% expansion needed to avoid v! (due to french active !)
+ {\expanded
+ {\plaatsvolledig
+ {\noexpand\systemsuppliedchapter}%
+ {#1}%
+ {\noexpand\headtext{#2}}%
+ {\noexpand\doplaatslijstmetsynoniemen{#1}{#2}}}}
\def\processsynonym#1#2#3%
{\begingroup % anders in mathmode lege \hbox, zie eenheden
\ifsynonymmeaning
- \synonymmeaningfalse
+ \synonymmeaningfalse
\doattributes{\??sm#1}\c!synoniemletter\c!synoniemkleur{#3}%
\else
\explicithmode
@@ -292,7 +295,7 @@
% {\preexecutesort{#1}{#2}{#3}%
% \processsort{#1}{#3}{#2}}
%
-% Better because it catches nested logo's:
+% Better because it catches nested logo's:
\def\executesort#1#2#3%
{\bgroup
@@ -332,7 +335,7 @@
% if #3=\relax or \v!geen, then no command but still protected
-\def\dodefinieersorteren[#1][#2][#3]%
+\def\dodefinieersorteren[#1][#2][#3]%
{\getparameters[\??so#1]
[%\c!commando=, % we test for defined !
\c!status=\v!start,
@@ -342,7 +345,7 @@
\c!na=\endgraf,
\c!expansie=]%
\presetheadtext[#2=\Word{#2}]%
- \setvalue{\e!stel#2\e!in}[##1]% vervalt tzt, soort oo-mode
+ \setvalue{\e!stel#2\e!in}[##1]% vervalt tzt, soort oo-mode
{\getparameters[\??so#1][##1]}%
\ifthirdargument
\ConvertConstantAfter\doifnot{#3}\v!geen
@@ -400,4 +403,4 @@
[\v!eenheid]
[\c!tekstletter=\dimension]
-\protect \endinput
+\protect \endinput
diff --git a/tex/context/base/core-tbl.tex b/tex/context/base/core-tbl.tex
index 8fddf2ec5..3dadc6a90 100644
--- a/tex/context/base/core-tbl.tex
+++ b/tex/context/base/core-tbl.tex
@@ -17,8 +17,8 @@
\unprotect
-% WATCH OUT: don't change this model else trialtypesetting
-% compatibility problems
+% WATCH OUT: don't change this model else trialtypesetting
+% compatibility problems
% watch out, cells expand pretty late on a per row basis
@@ -100,10 +100,10 @@
% \HR : rule with lineheight
-% \autotabulaterule : with lineheight, not first/last
-% \autotabulateline : spaced, not first/last
-% \tabulaterule : with lineheight
-% \tabulateline : spaced
+% \autotabulaterule : with lineheight, not first/last
+% \autotabulateline : spaced, not first/last
+% \tabulaterule : with lineheight
+% \tabulateline : spaced
% tricky: align scans ahead, over # and expands ones before
% while doing
@@ -200,7 +200,7 @@
\fi}
\def\initializetablebox#1%
- {\ifundefined{\@@tabbox@@\number#1}
+ {\ifundefined{\@@tabbox@@\number#1}%
\expandafter\newbox\csname\@@tabbox@@\number#1\endcsname
\else
\global\setbox\csname\@@tabbox@@\number#1\endcsname\box\voidb@x
@@ -225,7 +225,6 @@
\def\checktabulatehook
{\ifnum\tabulatetype<\plustwo
- %\global\let\tabulatehook\relax
\global\let\tabulatehook\notabulatehook
\else
\global\let\tabulatehook\dotabulatehook
@@ -414,14 +413,14 @@
% \settabulatepreamble}
% \startbuffer
-% \toplinebox{\framed[width=3cm,height=2cm]{tufte}}
+% \toplinebox{\framed[width=3cm,height=2cm]{tufte}}
% \stopbuffer
% \starttabulate[|p(fixed)|p|]
-% \dorecurse{100}{\NC \getbuffer \NC test \par test \par \NC \NR}
-% \stoptabulate
+% \dorecurse{100}{\NC \getbuffer \NC test \par test \par \NC \NR}
+% \stoptabulate
% \starttabulate[|p(fit)|p|]
-% \dorecurse{100}{\NC \getbuffer \NC test \par test \par \NC \NR}
-% \stoptabulate
+% \dorecurse{100}{\NC \getbuffer \NC test \par test \par \NC \NR}
+% \stoptabulate
\def\dogettabulatewidth(#1)%
{\processallactionsinset
@@ -454,7 +453,6 @@
\tabulateemath \emptytoks
\tabulatefont \emptytoks
\tabulatesettings\emptytoks
- %\doglobal\increment\tabulatecolumns
\global\advance\tabulatecolumns\plusone
\settabulatepreamble#1\relax\relax % permits i without n
\ifcase\tabulatemodus\relax
@@ -470,15 +468,14 @@
\dodosettabulatepreamble{\bskip\tabulateraggedleft }\eskip \or
\dodosettabulatepreamble{\bskip\tabulateraggedcenter}\eskip \fi
\or % auto width
- %\doglobal\increment\nofautotabulate
\global\advance\nofautotabulate\plusone
\ifcase\tabulatealign\relax
\dodosettabulatepreamble \bskip \eskip \or
\dodosettabulatepreamble{\bskip\tabulateraggedright }\eskip \or
\dodosettabulatepreamble{\bskip\tabulateraggedleft }\eskip \or
\dodosettabulatepreamble{\bskip\tabulateraggedcenter}\eskip \fi
- \or % simple
- \dodosettabulatepreamble \xbskip \xeskip
+ \or % simple
+ \dodosettabulatepreamble \xbskip \xeskip
\fi
\futurelet\next\donexttabulate}
@@ -489,7 +486,7 @@
\def\splitofftabulatebox
{\dontcomplain
- \global\setbox\tabulatebox
+ \global\setbox\tabulatebox % % % global ? % % %
\vsplit\tablebox\tabulatecolumn to \lineheight
\setbox\tabulatebox\vbox
{\unvbox\tabulatebox}%
@@ -514,22 +511,10 @@
\global\tabulatemaxpheight\scratchdimen
\fi}
-% \def\handletabulatepbreak
-% {\TABLEnoalign
-% {\ifhandletabulatepbreak \ifnum\tabulatemaxplines>\plusone
-% \ifnum\tabulateminplines=\plusone
-% \dotabulatenobreak
-% \fi
-% \doglobal\increment\tabulateminplines
-% \ifnum\tabulateminplines=\tabulatemaxplines\relax
-% \dotabulatenobreak
-% \fi
-% \fi \fi}}
-
\def\handletabulatepbreak
{\TABLEnoalign
{\ifhandletabulatepbreak
- \iftabulatenopbreak
+ \iftabulatenopbreak
\dotabulatenobreak
\else\ifnum\tabulatemaxplines>\plusone
\ifnum\tabulateminplines=\plusone
@@ -615,13 +600,13 @@
% \@EA\let\@EA\tabulatetailcontent
% \csname\??tt\currenttabulate\v!voet\endcsname
% \fi}
-%
+%
% \newconditional\tabulatesomeamble
-%
+%
% % \def\fulltabulatecontent
% % {\tabulatecontent}
-%
-% \def\fulltabulatecontent
+%
+% \def\fulltabulatecontent
% {\ifx\tabulateheadcontent\empty\else
% \TABLEnoalign{\global\settrue\tabulatesomeamble}%
% \tabulateheadcontent
@@ -633,7 +618,7 @@
% \tabulatetailcontent
% \fi}
%
-% the previous code breaks on first \HL
+% the previous code breaks on first \HL
\newconditional\tabulatesomeamble
@@ -659,7 +644,7 @@
% {\tabulateheadcontent
% \tabulatecontent
% \tabulatetailcontent}
-
+
\def\fulltabulatecontent
{\tabulateheadcontent
\tabulatecontent
@@ -700,15 +685,15 @@
\fi
\next}
-% The much neede hook:
+% The much neede hook:
\newtoks\everytabulate
-% An example of its usage:
+% An example of its usage:
\appendtoks \optimizeverbatimfalse \to \everytabulate
-% A status variable:
+% A status variable:
\chardef\tabulatepass=0
@@ -719,7 +704,7 @@
\getvalue{\??tt\currenttabulate\c!voor}%
\fi
\bgroup
-\resetcharacteralign
+ \resetcharacteralign
% todo: spacing around tabulate when bodyfont is set
% expansion en test needed ?
\doifelsevalue{\??tt\currenttabulate\c!splitsen}\v!ja
@@ -783,7 +768,7 @@
% \def\tabulateequalcolumn#1%
% {&\tabulateEQ&\global\chardef\tabulatetype#1&}
%
-% however, \unskip en \ignorespaces permit usage in complex XML/\starttabulate
+% however, \unskip en \ignorespaces permit usage in complex XML/\starttabulate
\def\tabulatenormalcolumn#1%
{\unskip&\iftabulateequal\tabulateEQ\fi&\global\chardef\tabulatetype#1&%
@@ -850,7 +835,7 @@
% for the moment this one
\strut\hskip\getvalue{\??tt\currenttabulate\c!marge}%
% neg values are ok !
- \hskip\tabulateindent % new august 2003
+ \hskip\tabulateindent % new august 2003
\dodotabulaterule
{\!!heighta.5\lineheight
\advance\!!heighta-\strutdepth
@@ -869,8 +854,8 @@
\def\doregistertabulateparoptions
{\iftrialtypesetting \else
\registerparoptions
- \ifinsidefloat
- % that is, an unbreakable one
+ \ifinsidefloat
+ % that is, an unbreakable one
\global\let\registertabulateparoptions\empty
\else
% unsafe in crossing pages, at each b...
@@ -906,8 +891,8 @@
\def\handletabulatedigits{\digits}
%D Beware, we cannot use \type {\unexpanded} on \type {\HL}
-%D cum suis, since \TEX's hard coded noalign lookahead fails
-%D on it! I mistakenly added this for a while.
+%D cum suis, since \TEX's hard coded noalign lookahead fails
+%D on it! I mistakenly added this for a while.
% \def\processtabulate[|#1|]% in the process of optimizing
% {\tabulateunit\getvalue{\??tt\currenttabulate\c!eenheid}%
@@ -940,7 +925,7 @@
% \unexpanded \def\HQ{\tabulateequalcolumn 2}%
% \unexpanded \def\NG{\NC\handletabulatecharalign}%
% \unexpanded \def\NN{\NC\handletabulatedigits}% new, undocumented, test first
-% \unexpanded \def\ND{\NC\handletabulatedigits}% same, for old times sake
+% \unexpanded \def\ND{\NC\handletabulatedigits}% same, for old times sake
% \def\HR % horizontal rule line (break untested)
% {\TABLEnoalign
% {\ifnum\noftabulatelines=\totalnoftabulatelines
@@ -1098,7 +1083,7 @@
% % \begstrut % interferes with pre-\pars
% % evt: \appendtoks\begstrut\to\everypar
% \ignorespaces}%
-% \def\eskip % vertical strut added august 2003
+% \def\eskip % vertical strut added august 2003
% {\par\verticalstrut\vskip-\struttotal\egroup}%
% \fi
% \let\totalnoftabulatelines\noftabulatelines
@@ -1179,8 +1164,6 @@
\s!unknown=>\def\@@tabulatealign{0}]%
\let\pretabskip\!!zeropoint
\def\postabskip{.5\tabulateunit}%
- %\doglobal\newcounter\tabulatecolumns
- %\doglobal\newcounter\nofautotabulate
\global\tabulatecolumns\zerocount
\global\nofautotabulate\zerocount
\doglobal\newcounter\noftabulatelines
@@ -1197,9 +1180,9 @@
\unexpanded \def\HQ{\tabulateequalcolumn 2}%
\unexpanded \def\NG{\NC\handletabulatecharalign}%
\unexpanded \def\NN{\NC\handletabulatedigits}% new, undocumented, test first
- \unexpanded \def\ND{\NC\handletabulatedigits}% same, for old times sake
- \def\tabulaterule{\HR}% a rule with lineheight
- \def\tabulateline{\HL}% just a spaced rule
+ \unexpanded \def\ND{\NC\handletabulatedigits}% same, for old times sake
+ \def\tabulaterule{\HR}% a rule with lineheight
+ \def\tabulateline{\HL}% just a spaced rule
\def\tabulateautorule{\doHR\plusone}%
\def\tabulateautoline{\doHL\plusone}%
\def\HR{\doHR\zerocount}
@@ -1226,7 +1209,8 @@
\fi\fi
\fi
\global\tabulatefirstflushedfalse}}%
- \let\HL\empty \let\SR\NR \let\AR\NR
+ \let\HL\empty % not needed
+ \let\SR\NR \let\AR\NR
\let\FL\empty \let\FR\NR
\let\ML\empty \let\MR\NR
\let\LL\empty \let\LR\NR
@@ -1347,7 +1331,7 @@
% \begstrut % interferes with pre-\pars
% evt: \appendtoks\begstrut\to\everypar
\ignorespaces}%
- \def\eskip % vertical strut added august 2003
+ \def\eskip % vertical strut added august 2003
{\par\verticalstrut\vskip-\struttotal\egroup}%
\fi
\let\totalnoftabulatelines\noftabulatelines
@@ -1356,14 +1340,14 @@
\doglobal\newcounter\noftabulatelines
\def\doHL##1%
{\TABLEnoalign
- {\ifnum\noftabulatelines=\zerocount
+ {\ifnum\noftabulatelines=\zerocount
\ifcase##1\or
\@EAEAEA\FL
\fi
\else\ifnum\noftabulatelines=\totalnoftabulatelines
\ifcase##1\or
\@EA\@EAEAEA\@EA\LL
- \fi
+ \fi
\else
\@EAEAEA\ML
\fi\fi}}%
@@ -1371,7 +1355,7 @@
{\TABLEnoalign
{\globallet\TABLEautoline\dotabulatelinerule
\ifcase##1\or
- \ifnum\noftabulatelines=\zerocount
+ \ifnum\noftabulatelines=\zerocount
\gdef\TABLEautoline{\TABLEnoalign{}}%
\else\ifnum\noftabulatelines=\totalnoftabulatelines
\gdef\TABLEautoline{\TABLEnoalign{}}%
@@ -1390,10 +1374,11 @@
\TABLEautoline
\TABLEnoalign
{\dotabulatenobreak}}%
- \doifvalue{\??tt\currenttabulate\c!lijn}\v!regel
+ \doifelsevalue{\??tt\currenttabulate\c!lijn}\v!regel
{\let\HL \HR
\let\tabulateautoline\tabulateautorule
\let\tabulateline \tabulaterule}%
+ {\def\HL{\doHL\zerocount}}%
\def\tablebaselinecorrection
{\def\dobaselinecorrection
{\vskip-\prevdepth
@@ -1449,9 +1434,9 @@
\fi
\egroup}
-%D \startypen
+%D \startypen
%D \setuptabulate[split=no,rule=line]
-%D
+%D
%D \starttabulate
%D \NC tufte \NC \input tufte \NC \NR \tabulateautorule
%D \NC tufte \NC \input tufte \NC \NR \tabulateautorule
@@ -1459,8 +1444,8 @@
%D \NC tufte \NC \input tufte \NC \NR \tabulateautorule
%D \NC tufte \NC \input tufte \NC \NR \tabulateautorule
%D \NC tufte \NC \input tufte \NC \NR \tabulateautorule
-%D \stoptabulate
-%D \stoptypen
+%D \stoptabulate
+%D \stoptypen
% \starttabulatie[|mc|]
% \NC \digits{100.000,00} \NC\NR
@@ -1531,4 +1516,4 @@
\c!splitsen=\v!ja,
\c!inspringen=\v!nee]
-\protect \endinput
+\protect \endinput \ No newline at end of file
diff --git a/tex/context/base/enco-fde.tex b/tex/context/base/enco-fde.tex
index 6de30ac1b..93c395f0f 100644
--- a/tex/context/base/enco-fde.tex
+++ b/tex/context/base/enco-fde.tex
@@ -25,7 +25,7 @@
\installcompoundcharacter "o {\oumlaut\midworddiscretionary}
\installcompoundcharacter "u {\uumlaut\midworddiscretionary}
\installcompoundcharacter "s {\ssharp}
- \installcompoundcharacter "z {\ssharp}
+ \installcompoundcharacter "z {\ssharp}
\installcompoundcharacter "A {\Aumlaut}
\installcompoundcharacter "E {\Eumlaut}
@@ -72,52 +72,52 @@
\c!rightsentence=\rightguillemot,
\c!leftsubsentence=\leftsubguillemot,
\c!rightsubsentence=\rightsubguillemot]}
-
+
\installcompoundcharacter "< {{\setupDElanguage|<|}}
\installcompoundcharacter "> {{\setupDElanguage|>|}}
\installcompoundcharacter "| {|*|}
\stoplanguagespecifics
-% \hyphenatedword{hinauff|*|liegen}
-% \hyphenatedword{hinauff"|liegen}
+% \hyphenatedword{hinauff|*|liegen}
+% \hyphenatedword{hinauff"|liegen}
%D An experimental hack:
\startencoding[pdfdoc]
- \startlanguagespecifics[\s!de]% hm, a % is needed
+ \startlanguagespecifics[\s!de]% hm, a % is needed
\defineactivecharacter " {\"} % no {\simplifiedcompoundcharacter"}
\stoplanguagespecifics
\stopencoding
\startencoding[ec]
\startlanguagespecifics[\s!de]%
- \installcompoundcharacter "a {\adiaeresis}
- \installcompoundcharacter "e {\ediaeresis}
- \installcompoundcharacter "i {\idiaeresis}
- \installcompoundcharacter "o {\odiaeresis}
- \installcompoundcharacter "u {\udiaeresis}
- \installcompoundcharacter "A {\Adiaeresis}
- \installcompoundcharacter "E {\Ediaeresis}
- \installcompoundcharacter "I {\Idiaeresis}
- \installcompoundcharacter "O {\Odiaeresis}
- \installcompoundcharacter "U {\Udiaeresis}
+ \installcompoundcharacter "a {\adiaeresis}
+ \installcompoundcharacter "e {\ediaeresis}
+ \installcompoundcharacter "i {\idiaeresis}
+ \installcompoundcharacter "o {\odiaeresis}
+ \installcompoundcharacter "u {\udiaeresis}
+ \installcompoundcharacter "A {\Adiaeresis}
+ \installcompoundcharacter "E {\Ediaeresis}
+ \installcompoundcharacter "I {\Idiaeresis}
+ \installcompoundcharacter "O {\Odiaeresis}
+ \installcompoundcharacter "U {\Udiaeresis}
\stoplanguagespecifics
\stopencoding
\startencoding[texnansi]
\startlanguagespecifics[\s!de]%
- \installcompoundcharacter "a {\adiaeresis}
- \installcompoundcharacter "e {\ediaeresis}
- \installcompoundcharacter "i {\idiaeresis}
- \installcompoundcharacter "o {\odiaeresis}
- \installcompoundcharacter "u {\udiaeresis}
- \installcompoundcharacter "A {\Adiaeresis}
- \installcompoundcharacter "E {\Ediaeresis}
- \installcompoundcharacter "I {\Idiaeresis}
- \installcompoundcharacter "O {\Odiaeresis}
- \installcompoundcharacter "U {\Udiaeresis}
+ \installcompoundcharacter "a {\adiaeresis}
+ \installcompoundcharacter "e {\ediaeresis}
+ \installcompoundcharacter "i {\idiaeresis}
+ \installcompoundcharacter "o {\odiaeresis}
+ \installcompoundcharacter "u {\udiaeresis}
+ \installcompoundcharacter "A {\Adiaeresis}
+ \installcompoundcharacter "E {\Ediaeresis}
+ \installcompoundcharacter "I {\Idiaeresis}
+ \installcompoundcharacter "O {\Odiaeresis}
+ \installcompoundcharacter "U {\Udiaeresis}
\stoplanguagespecifics
\stopencoding
-\protect \endinput
+\protect \endinput \ No newline at end of file
diff --git a/tex/context/base/font-chi.tex b/tex/context/base/font-chi.tex
index 43a19be3c..c72f464c7 100644
--- a/tex/context/base/font-chi.tex
+++ b/tex/context/base/font-chi.tex
@@ -1,4 +1,4 @@
-% NOT YET ADAPTED TO THE NEW FONT MACROS
+% NOT YET ADAPTED TO THE NEW FONT MACROS
%D \module
%D [ file=font-chi,
@@ -59,7 +59,7 @@
%D character set. I wrote some macros that could process the
%D small \type {Hello World} file \WangLei\ had send me, and
%D after some bug fixes real Chinese came out. I started to
-%D like the look and fel of Chinese glyphs, so on we went.
+%D like the look and fel of Chinese glyphs, so on we went.
%D
%D The first comments concerned spacing. The mix of English
%D and Chinese demands some rather deliberate handling of
@@ -95,8 +95,8 @@
%D \stoptypen
%D
%D We insert a bit of stretch and introduce a signal to
-%D keep track of previous characters. We use a similar
-%D method in the units module, which may be a nice
+%D keep track of previous characters. We use a similar
+%D method in the units module, which may be a nice
%D introduction to using signals.
%D \macros
@@ -112,7 +112,7 @@
\def\chineseinterglyphskip{0pt plus .05em minus .01em}
\def\chinesesurroundskip {.25em plus .15em minus .05em}
-%D We define a few signals. As said, another example of
+%D We define a few signals. As said, another example of
%D using signals can be found in the module \type {m-units}.
\newsignal\chineseLsignal % left boundary character
@@ -656,8 +656,8 @@
%D We will implement four methods, the one described earlier,
%D a derived one with capitalized characters, an extended
%D version of the first method, and a rather Arabic method.
-%D
-%D \starttabulate[|l|l|]
+%D
+%D \starttabulatie[|l|l|]
%D \HL
%D \NC \bf command \NC \bf number 39 \NC\NR
%D \HL
@@ -666,12 +666,12 @@
%D \NC \type{\arabicchinesenumber} \NC \arabicchinesenumber {39} \NC\NR
%D \NC \type{\extendedchinesenumber} \NC \extendedchinesenumber {39} \NC\NR
%D \HL
-%D \stoptabulate
-%D
+%D \stoptabulatie
+%D
%D We use a dirty trick to enable Chinese Capital Digits. In
%D the encoding vectors, we define these by appending a suffix
-%D \type {*} to the digit, which in the following macro is
-%D appended or not (by passing \type {\empty}).
+%D \type {*} to the digit, which in the following macro is
+%D appended or not (by passing \type {\empty}).
\def\chinesedigit#1#2% #2: suffix, here * or \empty
{\udigit{\chineseencoding}{\number#1#2}}
@@ -879,7 +879,7 @@
\defineconversion [ac] [\arabicchinesenumber]
\defineconversion [arabicchinese] [\arabicchinesenumber]
-%D Date conversion:
+%D Date conversion:
\defineconversion [cn] [\v!dag] [\chinesenumber]
\defineconversion [cn] [\v!maand] [\chinesenumber]
@@ -950,8 +950,8 @@
\SimChi
-%D In addition to these fonts, we (pre|)|define some commonly
-%D used fonts:
+%D In addition to these fonts, we (pre|)|define some commonly
+%D used fonts:
\definefontsynonym [SimplifiedChineseSongTiRegular] [gbsong] [encoding=gbk]
\definefontsynonym [SimplifiedChineseSongTiSlanted] [gbsongsl] [encoding=gbk]
@@ -1003,8 +1003,8 @@
\definefontsynonym [TraditionalChineseLiShuBold] [b5li] [encoding=big5]
\definefontsynonym [TraditionalChineseLiShuBoldSlanted] [b5lisl] [encoding=big5]
-%D The following definitions provide us the commands to switch
-%D to these fonts.
+%D The following definitions provide us the commands to switch
+%D to these fonts.
\defineunicodefont [SimSongTi] [SimplifiedChineseSongTi] [chinese]
\defineunicodefont [TraSongTi] [TraditionalChineseSongTi] [chinese]
diff --git a/tex/context/base/font-ini.tex b/tex/context/base/font-ini.tex
index 387e12e3a..c69809dbf 100644
--- a/tex/context/base/font-ini.tex
+++ b/tex/context/base/font-ini.tex
@@ -16,34 +16,34 @@
\unprotect
-% \def\fontrange#1%
+% \def\fontrange#1%
% {\dofontrange{#1 =\bodyfontsize}}
-%
-% \def\dofontrange#1%
+%
+% \def\dofontrange#1%
% {\dodofontrange#1 \relax}% \fontstringA
-%
-% \def\dodofontrange#1 #2 %
+%
+% \def\dodofontrange#1 #2 %
% {\ifdim\bodyfontsize#2%
% #1\expandafter\gobbleuntilrelax
% \else
% \expandafter\dodofontrange
% \fi}
-%
+%
% \definefont
% [crap]
% [\fontrange
-% {Regular <10pt
-% RegularBold <12pt
-% RegularSlanted <15pt
+% {Regular <10pt
+% RegularBold <12pt
+% RegularSlanted <15pt
% Regular} sa 1]
%
% may be better:
-%
+%
% \definefontrange
% [crap]
-% [Regular <10pt
-% RegularBold <12pt
-% RegularSlanted <15pt]
+% [Regular <10pt
+% RegularBold <12pt
+% RegularSlanted <15pt]
% [Regular sa 1]
%
%
@@ -475,17 +475,17 @@
%D \kap{THIS}: \ruledhbox{$\rm \scriptstyle scriptstyle: THIS$}
%D or \ruledhbox{\kap{x style: THIS}} makes a big difference.
-%D The \type{x..d} sizes should be used grouped. If you
-%D don't group them, i.e. call them in a row, \CONTEXT\ will
-%D not be able to sort out your intention (\type {x} inside
-%D \type {d} inside \type {x}. etc.). The following table
-%D demonstrates this:
-%D
+%D The \type{x..d} sizes should be used grouped. If you
+%D don't group them, i.e. call them in a row, \CONTEXT\ will
+%D not be able to sort out your intention (\type {x} inside
+%D \type {d} inside \type {x}. etc.). The following table
+%D demonstrates this:
+%D
%D \def\FontState{\setstrut\ruledhbox{\strut Hello}}
-%D
+%D
%D \starttabulatie[|||||]
%D \HL
-%D \NC \rlap{\quad\bf grouped} \NC \NC \type {\tx} \NC \type {\txx} \NC \NR
+%D \NC \rlap{\quad\bf grouped} \NC \NC \type {\tx} \NC \type {\txx} \NC \NR
%D \HL
%D \NC \type{\tfx} \NC \tfx \FontState \NC \tfx \tx \FontState \NC \tfx \txx \FontState \NC \NR
%D \NC \type{\tfxx} \NC \tfxx \FontState \NC \tfxx\tx \FontState \NC \tfxx\txx \FontState \NC \NR
@@ -497,61 +497,61 @@
%D \NC \type{\tfx} \NC \tfx \FontState \NC \tfx \tx \FontState \NC \tfx \txx \FontState \NC \NR
%D \NC \type{\tfxx} \NC \tfxx \FontState \NC \tfxx\tx \FontState \NC \tfxx\txx \FontState \NC \NR
%D \HL
-%D \stoptabulatie
-%D
+%D \stoptabulatie
+%D
%D \blanko
-%D
+%D
%D \starttabulatie[|||||]
%D \HL
-%D \NC \rlap{\quad\bf stacked} \NC \NC \type {\tx} \NC \type {\txx} \NC \NR
+%D \NC \rlap{\quad\bf stacked} \NC \NC \type {\tx} \NC \type {\txx} \NC \NR
%D \HL
-%D \NC \type{\tfx}
-%D \NC \tfx \FontState
-%D \NC \tfx \tx \FontState
-%D \NC \tfx \txx \FontState
-%D \NC \NR
-%D \NC \type{\tfxx}
-%D \NC \tfx\tfxx \FontState
-%D \NC \tfx\tfxx \tx \FontState
-%D \NC \tfx\tfxx \txx \FontState
-%D \NC \NR
-%D \NC \type{\tf}
-%D \NC \tfx\tfxx\tf \FontState
-%D \NC \tfx\tfxx\tf \tx \FontState
-%D \NC \tfx\tfxx\tf \txx \FontState
-%D \NC \NR
-%D \NC \type{\tfa}
-%D \NC \tfx\tfxx\tf\tfa \FontState
-%D \NC \tfx\tfxx\tf\tfa \tx \FontState
-%D \NC \tfx\tfxx\tf\tfa \txx \FontState
-%D \NC \NR
-%D \NC \type{\tfb}
+%D \NC \type{\tfx}
+%D \NC \tfx \FontState
+%D \NC \tfx \tx \FontState
+%D \NC \tfx \txx \FontState
+%D \NC \NR
+%D \NC \type{\tfxx}
+%D \NC \tfx\tfxx \FontState
+%D \NC \tfx\tfxx \tx \FontState
+%D \NC \tfx\tfxx \txx \FontState
+%D \NC \NR
+%D \NC \type{\tf}
+%D \NC \tfx\tfxx\tf \FontState
+%D \NC \tfx\tfxx\tf \tx \FontState
+%D \NC \tfx\tfxx\tf \txx \FontState
+%D \NC \NR
+%D \NC \type{\tfa}
+%D \NC \tfx\tfxx\tf\tfa \FontState
+%D \NC \tfx\tfxx\tf\tfa \tx \FontState
+%D \NC \tfx\tfxx\tf\tfa \txx \FontState
+%D \NC \NR
+%D \NC \type{\tfb}
%D \NC \tfx\tfxx\tf\tfa\tfb \FontState
-%D \NC \tfx\tfxx\tf\tfa\tfb \tx \FontState
-%D \NC \tfx\tfxx\tf\tfa\tfb \txx \FontState
-%D \NC \NR
-%D \NC \type{\tfc}
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfc \FontState
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfc \tx \FontState
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfc \txx \FontState
-%D \NC \NR
-%D \NC \type{\tfd}
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfd \FontState
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfd \tx \FontState
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfd \txx \FontState
-%D \NC \NR
-%D \NC \type{\tfx}
+%D \NC \tfx\tfxx\tf\tfa\tfb \tx \FontState
+%D \NC \tfx\tfxx\tf\tfa\tfb \txx \FontState
+%D \NC \NR
+%D \NC \type{\tfc}
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfc \FontState
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfc \tx \FontState
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfc \txx \FontState
+%D \NC \NR
+%D \NC \type{\tfd}
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfd \FontState
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfd \tx \FontState
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfd \txx \FontState
+%D \NC \NR
+%D \NC \type{\tfx}
%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx \FontState
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx \tx \FontState
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx \txx \FontState
-%D \NC \NR
-%D \NC \type{\tfxx}
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx\tfxx \FontState
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx\tfxx \tx \FontState
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx\tfxx \txx \FontState
-%D \NC \NR
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx \tx \FontState
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx \txx \FontState
+%D \NC \NR
+%D \NC \type{\tfxx}
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx\tfxx \FontState
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx\tfxx \tx \FontState
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx\tfxx \txx \FontState
+%D \NC \NR
%D \HL
-%D \stoptabulatie
+%D \stoptabulatie
%D \macros
%D {mf}
@@ -707,7 +707,7 @@
%D although for instance unboxing goes ok. Therefore we
%D introduce:
-% better use \dowithnextboxcontent
+% better use \dowithnextboxcontent
\def\normalmbox
{\normalhbox\bgroup\mf
@@ -1209,7 +1209,7 @@
\def\saverelativefontsize#1#2% #1=rm|ss|.. #2=waarde
{\setxvalue{\fontclass#1\s!rscale}{#2}}
-\beginTEX
+\beginTEX
\def\checkrelativefontsize#1%
{\edef\relativefontsize
@@ -1240,14 +1240,14 @@
\def\@fs@{@fs@}
% \def\parsefontspec#1%
-% {\xdef\somefontspec{#1\space\relax}%
+% {\xdef\somefontspec{#1\space\relax}%
% \@EA\doparsefontspec\somefontspec]% =>#1 \relax]
% \donoparsefontspec}
%
% but, better:
\def\parsefontspec#1%
- {\xdef\somefontspec{#1\space}%
+ {\xdef\somefontspec{#1\space}%
\@EA\doparsefontspec\somefontspec\relax]% =>#1 \relax]
\donoparsefontspec}
@@ -1263,7 +1263,7 @@
#2}
\def\setnaturalfontspec#1]%
- {\@fs@scaled\plusthousand\relax}
+ {\@fs@scaled\plusthousand\relax}
\def\setforcedfontspec#1 #2\relax]%
{\csname\@fs@#1\endcsname#2\relax}
@@ -1299,7 +1299,7 @@
\def\setsamofontspec#1\relax
{\checkfontscale#1\end\scaledfont
\scaledfont\localrelativefontsize\scaledfont
- \ifautofontsize\scaledfont\currentfontbodyscale\scaledfont\fi
+ \ifautofontsize\scaledfont\currentfontbodyscale\scaledfont\fi
\xdef\somefontspec{ at \the\scaledfont}}
\def\getfontparameters
@@ -1331,12 +1331,12 @@
\newif\ifskipfontcharacteristics \skipfontcharacteristicstrue
-%D When fontclasses are used, we define the font global,
-%D since namespaces are used. Otherwise we parse the specs
+%D When fontclasses are used, we define the font global,
+%D since namespaces are used. Otherwise we parse the specs
%D each time.
-% wrong: this way we cannot set encoding etc
-%
+% wrong: this way we cannot set encoding etc
+%
% \def\donoparsefontspec#1%
% {\edef\fontfile{\truefontname\somefontname}%
% \ifx\fontfile\s!unknown \let\fontfile\defaultfontfile \fi
@@ -1350,7 +1350,7 @@
\ifx\fontfile\s!unknown \let\fontfile\defaultfontfile \fi
\edef\lastfontname{\fontfile\somefontspec}%
\ifx\fontclass\empty
- \expandafter\definefontlocal
+ \expandafter\definefontlocal
\else
\expandafter\definefontglobal
\fi} % #1 == \cs
@@ -1359,16 +1359,16 @@
{\expandafter\font\csname#1\endcsname\lastfontname\relax}
\def\definefontglobal#1% stores \somefontname=Mono and \fontfile=cmtt10
- {\expandafter\xdef\csname#1\endcsname
- {\noexpand\csname#1:\endcsname
+ {\expandafter\xdef\csname#1\endcsname
+ {\noexpand\csname#1:\endcsname
\noexpand\reactivatefont{\somefontname}{\fontfile}}%
\global\expandafter\font\csname#1:\endcsname\lastfontname}
\def\reactivatefont#1%#2%
{\def\somefontname{#1}\def\fontfile}%{#2}}
-% can be handy for tracing purposes
-%
+% can be handy for tracing purposes
+%
% \def\reportfontdefinition
% {\bgroup
% \expanded{\infofont
@@ -1647,11 +1647,11 @@
%D
%D The implementation one looks familiar:
-% The simple implementation is:
+% The simple implementation is:
%
% \def\definefont
% {\dodoubleargument\dodefinefont}
-%
+%
% \def\dodefinefont[#1][#2]%
% {\doifinstringelse{ }{#2}
% {\unexpanded\setvalue{#1}{\dododefinefont{#1}{#2}}}
@@ -1676,19 +1676,19 @@
% {\setupinterlinespace[#3]\setupspacing}
% {\doifassignmentelse{#3}
% {\setupinterlinespace[#3]\setupspacing}
-% {\setups[#3]}}} % so, we can have setups associated to fonts !
+% {\setups[#3]}}} % so, we can have setups associated to fonts !
\def\redodefinefont#1#2#3%
{\dododefinefont{#1}{#2}%
\doifsetupselse{#3}
- {\setups[#3]} % don't forget to document this !
+ {\setups[#3]} % don't forget to document this !
{\setuplocalinterlinespace[#3]%
- \setupspacing}} % needed ?
+ \setupspacing}} % needed ?
% \def\defineclassfont
% {\doquadrupleempty\dodefineclassfont}
-%
-% \def\dodefineclassfont[#1][#2][#3][#4]% #2 = class
+%
+% \def\dodefineclassfont[#1][#2][#3][#4]% #2 = class
% {\iffourthargument
% \definefont[#1][#2#3][#4]%
% %\else\ifthirdargument
@@ -1710,7 +1710,7 @@
\def\dododefinefont#1#2%
{\edef\lastfontidentifier{#1}%
\let\localrelativefontsize\defaultrelativefontsize
- \let\localabsolutefontsize\fontbody
+ \let\localabsolutefontsize\fontbody
\parsefontspec{#2}\rawfontidentifier
\let\localrelativefontsize\defaultrelativefontsize % not needed
\csname\rawfontidentifier\endcsname
@@ -1726,7 +1726,7 @@
\def\localrelativefontsize{#1}%
\def\localabsolutefontsize{#2}%
\parsefontspec{#4}\newfontidentifier
- \let\localrelativefontsize\defaultrelativefontsize % not needed
+ \let\localrelativefontsize\defaultrelativefontsize % not needed
\fi
\csname\newfontidentifier\endcsname
\autofontsizefalse
@@ -1746,7 +1746,7 @@
\def\localrelativefontsize{#1}%
\def\localabsolutefontsize{#2}%
\parsefontspec{#4}\newfontidentifier
- \let\localrelativefontsize\defaultrelativefontsize % not needed
+ \let\localrelativefontsize\defaultrelativefontsize % not needed
\fi
\csname\newfontidentifier\endcsname
\autofontsizefalse
@@ -2216,7 +2216,7 @@
\def\xdodefinebodyfont[#1][#2][#3]% body|identifier style defs|identifier
{%\writestatus{[#1]}{[#2][#3]}%
- \checkrelativefontsize{#2}% rather new, inherit from other defs
+ \checkrelativefontsize{#2}% rather new, inherit from other defs
\ifundefined{#2}\expanded{\definefontstyle[#2][#2]}\fi % new
\processcommalist[#1]{\dododefinebodyfont{#2}{#3}}%
\let\relativefontsize\defaultrelativefontsize}
@@ -2446,7 +2446,7 @@
% \ifcase#2#3 \else.#2\ifcase#3 \else#3\fi\fi % not: \ifcase#2#3\else ...
% \fi
% pt}}
-%
+%
% \def\normalizebodyfontsize#1\to#2%
% {\scratchdimen#1\relax
% \@EA\@EA\@EA\donormalizedbodyfontsize
@@ -2467,7 +2467,7 @@
\ifcase#2#3 \else.#2\ifcase#3 \else#3\fi\fi % not: \ifcase#2#3\else ...
\fi
\s!pt}}
-
+
\normalizebodyfontsize\bodyfontsize\to\normalizedglobalbodyfontsize
\normalizebodyfontsize\bodyfontsize\to\normalizedlocalbodyfontsize
\normalizebodyfontsize\bodyfontsize\to\normalizedbodyfontsize
@@ -2957,7 +2957,7 @@
\let\tx\normaltx
\let\txx\normaltxx
\fi\fi}
-
+
\def\setcurrentfontxalternative#1%
{\checknestedxfontsize
\dosetcurrentfontxxxalternative{#1}1\c!x\scriptstyle
@@ -2967,7 +2967,7 @@
{\checknestedxfontsize
\dosetcurrentfontxxxalternative{#1}2\c!xx\scriptscriptstyle
\let\tx\empty
- \let\txx\empty}
+ \let\txx\empty}
% This alterative is not really needed, but for old time's sake
% we keep it there. We can speed it up when needed.
@@ -3275,10 +3275,10 @@
%D On behalf of {\frac Tobias Burnus}, we define some more of
%D these. Later we will link these names to real file names.
-\definefont [frak] [Fraktur sa *]
-\definefont [goth] [Gothic sa *]
-\definefont [cal] [Calligraphic sa *]
-\definefont [bbd] [Blackboard sa *]
+\definefont [frak] [Fraktur sa *]
+\definefont [goth] [Gothic sa *]
+\definefont [cal] [Calligraphic sa *]
+\definefont [bbd] [Blackboard sa *]
\definefontsynonym [Fraktur] [Serif]
\definefontsynonym [Gothic] [Serif]
@@ -3288,15 +3288,15 @@
%D \macros
%D {fraktur, gothic, calligraphic, blackboard}
%D
-%D These macros assume that we use text fonts, and not math
-%D families.
-
+%D These macros assume that we use text fonts, and not math
+%D families.
+
% \def\fraktur #1{\mathematics{\frak#1}}
% \def\gothic #1{\mathematics{\goth#1}}
% \def\calligraphic#1{\mathematics{\cal #1}}
% \def\blackboard #1{\mathematics{\bbd #1}}
-\ifx\mathtext\undefined \let\mathtext\hbox \fi
+\ifx\mathtext\undefined \let\mathtext\hbox \fi
\def\fraktur #1{\mathortext\mathtext\donothing{\frak#1}}
\def\gothic #1{\mathortext\mathtext\donothing{\goth#1}}
@@ -3778,7 +3778,7 @@
%D \macros
%D {showkerning}
%D
-%D A goody is:
+%D A goody is:
%D
%D \showkerning{Can you guess what kerning is?}
@@ -3891,6 +3891,14 @@
\endTEX
+%D The next macro can be used to make decisions based on the shape:
+
+\def\doifitalicelse#1#2%
+ {\ifx\fontalternative\c!sl#1\else
+ \ifx\fontalternative\c!it#1\else
+ \ifx\fontalternative\c!bs#1\else
+ \ifx\fontalternative\c!bi#1\else#2\fi\fi\fi\fi}
+
%D For an example of usage of the following command,
%D see \type {cont-log.tex}.
%D
@@ -3902,17 +3910,24 @@
%D Since we know what scaling it to be applied, we can
%D implement a much faster alternative:
-\def\symbolicfont#1%
+\def\symbolicscaledfont#1#2%
{\scaledfont\fontbody
- \font\definedfont\truefontname{\glyphfontfile{#1}} at
+ \scaledfont#1\scaledfont
+ \font\definedfont\truefontname{\glyphfontfile{#2}} at
\currentfontbodyscale\scaledfont
\definedfont}
+\def\symbolicfont
+ {\symbolicscaledfont\plusone}
+
\unexpanded\def\getglyph#1#2% slow, faster, much faster
- %{{\definefont[\s!dummy][\glyphfontfile{#1} sa \currentfontscale]\dummy#2}}
- %{{\definefont[\s!dummy][\glyphfontfile{#1} sa *]\dummy#2}}
- %{{\symbolicfont{#1}#2}}
- {{\symbolicfont{#1}\doifnumberelse{#2}\char\donothing#2}}
+ %{{\definefont[\s!dummy][\glyphfontfile{#1} sa \currentfontscale]\dummy#2}}
+ %{{\definefont[\s!dummy][\glyphfontfile{#1} sa *]\dummy#2}}
+ %{{\symbolicfont{#1}#2}}
+ {{\symbolicfont{#1}\doifnumberelse{#2}\char\donothing#2}}
+
+\unexpanded\def\getscaledglyph#1#2#3%
+ {{\symbolicscaledfont{#1}{#2}\doifnumberelse{#3}\char\donothing#3}}
\unexpanded\def\getrawglyph#1#2% for simple symbols
{{\scaledfont\fontbody
diff --git a/tex/context/base/font-unk.tex b/tex/context/base/font-unk.tex
index 993fd5c92..66c5b92c5 100644
--- a/tex/context/base/font-unk.tex
+++ b/tex/context/base/font-unk.tex
@@ -8,13 +8,13 @@
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
-%D This module is rather important, because it enables us to
-%D define and call for not yet defined fonts in a way
-%D completely independant of real font names. First we map
-%D some meaningful names onto unknown filenames.
+%D This module is rather important, because it enables us to
+%D define and call for not yet defined fonts in a way
+%D completely independant of real font names. First we map
+%D some meaningful names onto unknown filenames.
\definefontsynonym [Serif] [unknown]
\definefontsynonym [SerifBold] [unknown]
@@ -53,18 +53,18 @@
\definefontsynonym [MathDelta] [unknown]
\definefontsynonym [MathRomanBold] [MathRoman]
-\definefontsynonym [MathExtensionBold] [MathExtension]
-\definefontsynonym [MathItalicBold] [MathItalic]
-\definefontsynonym [MathSymbolBold] [MathSymbol]
-\definefontsynonym [MathAlphaBold] [MathAlpha]
-\definefontsynonym [MathBetaBold] [MathBeta]
-\definefontsynonym [MathGammaBold] [MathGamma]
-\definefontsynonym [MathDeltaBold] [MathDelta]
+\definefontsynonym [MathExtensionBold] [MathExtension]
+\definefontsynonym [MathItalicBold] [MathItalic]
+\definefontsynonym [MathSymbolBold] [MathSymbol]
+\definefontsynonym [MathAlphaBold] [MathAlpha]
+\definefontsynonym [MathBetaBold] [MathBeta]
+\definefontsynonym [MathGammaBold] [MathGamma]
+\definefontsynonym [MathDeltaBold] [MathDelta]
\definefontsynonym [Handwriting] [unknown]
\definefontsynonym [Calligraphic] [unknown]
-%D Also handy:
+%D Also handy:
\definefontsynonym [Regular] [Serif]
\definefontsynonym [RegularBold] [SerifBold]
@@ -82,25 +82,25 @@
\definefontsynonym [SupportBoldSlanted] [SansBoldSlanted]
\definefontsynonym [SupportCaps] [SansCaps]
-%D Well, not that good an idea:
+%D Well, not that good an idea:
\definefontsynonym [Roman] [Serif]
-\definefontsynonym [RomanBold] [SerifBold]
-\definefontsynonym [RomanItalic] [SerifItalic]
-\definefontsynonym [RomanSlanted] [SerifSlanted]
-\definefontsynonym [RomanBoldItalic] [SerifBoldItalic]
-\definefontsynonym [RomanBoldSlanted] [SerifBoldSlanted]
-\definefontsynonym [RomanCaps] [SerifCaps]
-
-\definefontsynonym [Type] [Mono]
-\definefontsynonym [TypeBold] [MonoBold]
-\definefontsynonym [TypeItalic] [MonoItalic]
-\definefontsynonym [TypeSlanted] [MonoSlanted]
-\definefontsynonym [TypeBoldItalic] [MonoBoldItalic]
-\definefontsynonym [TypeBoldSlanted] [MonoBoldSlanted]
-\definefontsynonym [TypeCaps] [MonoCaps]
-
-%D Next we define roman, sans and monospaced font sets.
+\definefontsynonym [RomanBold] [SerifBold]
+\definefontsynonym [RomanItalic] [SerifItalic]
+\definefontsynonym [RomanSlanted] [SerifSlanted]
+\definefontsynonym [RomanBoldItalic] [SerifBoldItalic]
+\definefontsynonym [RomanBoldSlanted] [SerifBoldSlanted]
+\definefontsynonym [RomanCaps] [SerifCaps]
+
+\definefontsynonym [Type] [Mono]
+\definefontsynonym [TypeBold] [MonoBold]
+\definefontsynonym [TypeItalic] [MonoItalic]
+\definefontsynonym [TypeSlanted] [MonoSlanted]
+\definefontsynonym [TypeBoldItalic] [MonoBoldItalic]
+\definefontsynonym [TypeBoldSlanted] [MonoBoldSlanted]
+\definefontsynonym [TypeCaps] [MonoCaps]
+
+%D Next we define roman, sans and monospaced font sets.
\definebodyfont [default] [rm]
[tf=Serif sa 1,
@@ -140,7 +140,7 @@
mc=MathGamma mo 1,
md=MathDelta mo 1]
-\definebodyfont [bfmath] [mm]
+\definebodyfont [bfmath] [mm]
[mrbf=MathRomanBold mo 1,
exbf=MathExtensionBold mo 1,
mibf=MathItalicBold mo 1,
@@ -156,8 +156,8 @@
\definebodyfont [default] [cg]
[tf=Calligraphy sa 1]
-%D These definitions come into action as soon as names are
-%D mapped onto real file names (or names that themselves are
-%D mapped).
+%D These definitions come into action as soon as names are
+%D mapped onto real file names (or names that themselves are
+%D mapped).
-\endinput
+\endinput \ No newline at end of file
diff --git a/tex/context/base/lang-ger.tex b/tex/context/base/lang-ger.tex
index 2c4226605..4a46f8755 100644
--- a/tex/context/base/lang-ger.tex
+++ b/tex/context/base/lang-ger.tex
@@ -8,8 +8,8 @@
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
\writestatus{loading}{Germanic Languages}
@@ -17,11 +17,11 @@
%D many of the first translations were done by Tobias. Later
%D on, corrections were made by users. If you have suggestions,
%D or feel that your name missing here, don't hesitate to send
-%D us an email.
+%D us an email.
%D
%D \starttabulate[|lB|l|]
%D \NC Norwegian \NC Hans Fredrik Nordhaug \NC \NR
-%D \NC Danish \NC Arne Jorgensen \NC \NR % check the o
+%D \NC Danish \NC Arne Jorgensen \NC \NR % check the o
%D \NC Afrikaans \NC \NC \NR
%D \stoptabulate
@@ -129,16 +129,16 @@
%D Hey look, some experiment:
-\installlanguage % eight bit dutch
+\installlanguage % eight bit dutch
[nlx]
[\c!spatiering=\v!opelkaar,
\c!default=\s!nl,
\c!status=\v!stop]
-\installlanguage % old german
+\installlanguage % old german
[deo]
[\c!spatiering=\v!opelkaar,
- \c!default=\s!de,
+ \c!default=\s!de,
\c!status=\v!stop]
%D And some alternative (but very real) english patterns:
@@ -155,7 +155,7 @@
%D For compatibility reasons we also define:
-\installlanguage [du] [\s!de] % old times context
+\installlanguage [du] [\s!de] % old times context
%installlanguage [sp] [\s!es] % old times context /lang-ita
\installlanguage [usenglish] [\s!us]
@@ -167,14 +167,14 @@
\installlanguage [swedish] [\s!sv]
\installlanguage [afrikaans] [\s!af]
\installlanguage [norwegian] [\s!no]
-\installlanguage [norsk] [\s!no] % bonus switch
+\installlanguage [norsk] [\s!no] % bonus switch
% GERMAN
%
% %D The next section is dedicated to Tobias Burnus.
-%
+%
% \startlanguagespecifics[\s!de]
-%
+%
% \installcompoundcharacter "a {\moveaccent{-.1ex}\"a\midworddiscretionary}
% \installcompoundcharacter "e {\moveaccent{-.1ex}\"e\midworddiscretionary}
% \installcompoundcharacter "i {\moveaccent{-.1ex}\"\i\midworddiscretionary}
@@ -182,7 +182,7 @@
% \installcompoundcharacter "u {\moveaccent{-.1ex}\"u\midworddiscretionary}
% \installcompoundcharacter "s {\SS}
% \installcompoundcharacter "z {\SS}
-%
+%
% \installcompoundcharacter "A {\smashaccent\"A}
% \installcompoundcharacter "E {\smashaccent\"E}
% \installcompoundcharacter "I {\smashaccent\"I}
@@ -190,11 +190,11 @@
% \installcompoundcharacter "U {\smashaccent\"U}
% \installcompoundcharacter "Z {SZ}
% \installcompoundcharacter "S {SS}
-%
+%
% \stoplanguagespecifics
-%
+%
% \startlanguagespecifics[\s!de]
-%
+%
% \installcompoundcharacter "ck {\discretionary {k-}{k}{ck}}
% \installcompoundcharacter "ff {\discretionary{ff-}{f}{ff}}
% \installcompoundcharacter "ll {\discretionary{ll-}{l}{ll}}
@@ -203,7 +203,7 @@
% \installcompoundcharacter "pp {\discretionary{pp-}{p}{pp}}
% \installcompoundcharacter "rr {\discretionary{rr-}{r}{rr}}
% \installcompoundcharacter "tt {\discretionary{tt-}{t}{tt}}
-%
+%
% \installcompoundcharacter "CK {\discretionary {K-}{K}{CK}}
% \installcompoundcharacter "FF {\discretionary{FF-}{F}{FF}}
% \installcompoundcharacter "LL {\discretionary{LL-}{L}{LL}}
@@ -212,15 +212,15 @@
% \installcompoundcharacter "PP {\discretionary{PP-}{P}{PP}}
% \installcompoundcharacter "RR {\discretionary{RR-}{R}{RR}}
% \installcompoundcharacter "TT {\discretionary{TT-}{T}{TT}}
-%
+%
% \stoplanguagespecifics
-%
+%
% \startlanguagespecifics[\s!de]
-%
+%
% \installcompoundcharacter "` {\handlequotation\c!leftquotation}
% \installcompoundcharacter "' {\handlequotation\c!rightquotation}
% \installcompoundcharacter ". {\kern.1em\ignorespaces}
-%
+%
% \def\setupDElanguage%
% {\setuplanguage
% [\s!de]
@@ -228,23 +228,23 @@
% \c!rightsentence=\rightguillemot,
% \c!leftsubsentence=\leftsubguillemot,
% \c!rightsubsentence=\rightsubguillemot]}
-%
+%
% \installcompoundcharacter "< {{\setupDElanguage|<|}}
% \installcompoundcharacter "> {{\setupDElanguage|>|}}
-%
+%
% \stoplanguagespecifics
-%
+%
% %D An experimental hack:
-%
+%
% \startencoding[pdfdoc]
-% \startlanguagespecifics[\s!de]% hm, a % is needed
+% \startlanguagespecifics[\s!de]% hm, a % is needed
% \defineactivecharacter " {\"} % no {\simplifiedcompoundcharacter"}
% \stoplanguagespecifics
% \stopencoding
-%
+%
% \startencoding[ec]
% \startlanguagespecifics[\s!de]%
-% \installcompoundcharacter "a {\"a}
+% \installcompoundcharacter "a {\"a}
% \installcompoundcharacter "e {\"e}
% \installcompoundcharacter "i {\"\i}
% \installcompoundcharacter "o {\"o}
@@ -256,10 +256,10 @@
% \installcompoundcharacter "U {\"U}
% \stoplanguagespecifics
% \stopencoding
-%
+%
% \startencoding[texnansi]
% \startlanguagespecifics[\s!de]%
-% \installcompoundcharacter "a {\"a}
+% \installcompoundcharacter "a {\"a}
% \installcompoundcharacter "e {\"e}
% \installcompoundcharacter "i {\"\i}
% \installcompoundcharacter "o {\"o}
@@ -271,19 +271,19 @@
% \installcompoundcharacter "U {\"U}
% \stoplanguagespecifics
% \stopencoding
-%
-% %D This hack should be perfected.
+%
+% %D This hack should be perfected.
%% NORWEGIAN
%
-% These three letters (in this order) are the
+% These three letters (in this order) are the
% last in the norwegian alphabet (and hence should
-% come after z in the latin alphabet).
+% come after z in the latin alphabet).
% I'm not sure about the syntax for
% \definesortkey so I left some of it open ...
%
-% \startlanguagespecifics[\s!no]
-%
+% \startlanguagespecifics[\s!no]
+%
% \definesortkey {\ae}{z}{b}{\ae}
% \definesortkey {\AE}{z}{b}{\AE}
% \definesortkey {\o}{z} {c}{\o}
@@ -469,7 +469,7 @@
\setuplabeltext [\s!en] [\v!regel=line ]
\setuplabeltext [\s!nl] [\v!regel=regel ]
\setuplabeltext [\s!de] [\v!regel=Zeile ]
-\setuplabeltext [\s!da] [\v!regel=linie ] % or linje
+\setuplabeltext [\s!da] [\v!regel=linie ] % or linje
\setuplabeltext [\s!sv] [\v!regel=rad ]
\setuplabeltext [\s!af] [\v!regel=re\ediaeresis l ]
\setuplabeltext [\s!no] [\v!regel=linje ]
@@ -477,7 +477,7 @@
\setuplabeltext [\s!en] [\v!regels=lines ]
\setuplabeltext [\s!nl] [\v!regels=regels ]
\setuplabeltext [\s!de] [\v!regels=Zeilen ]
-\setuplabeltext [\s!da] [\v!regels=linier ] % or linjer
+\setuplabeltext [\s!da] [\v!regels=linier ] % or linjer
\setuplabeltext [\s!sv] [\v!regels=rader ]
\setuplabeltext [\s!af] [\v!regels=re\ediaeresis ls ]
\setuplabeltext [\s!no] [\v!regels=linjer ]
@@ -667,9 +667,9 @@
\setuplabeltext [\s!no] [\v!hieronder=se forneden]
\setuplabeltext [\s!no] [\v!zie=se ]
-%D ... and to be completed!
+%D ... and to be completed!
-%D Next we implement couple of ordinal mumber converters:
+%D Next we implement couple of ordinal mumber converters:
\def\enordinaldaynumber#1%
{#1\ifnum\lasttwodigits{#1}=11
@@ -697,6 +697,4 @@
%D \ShowAllLanguageValues [\s!af] [afrikaans] afrikaanse gasvryheid
%D \ShowAllLanguageValues [\s!no] [norwegian] noorse ...
-\protect
-
-\endinput
+\protect \endinput \ No newline at end of file
diff --git a/tex/context/base/math-ams.tex b/tex/context/base/math-ams.tex
index 6bdea52a5..ebcef5678 100644
--- a/tex/context/base/math-ams.tex
+++ b/tex/context/base/math-ams.tex
@@ -1,6 +1,6 @@
%D \module
%D [ file=math-ams,
-%D version=2001.04.12,
+%D version=2001.04.12,
%D title=\CONTEXT\ Math Macros,
%D subtitle=AMS Specials,
%D author={Hans Hagen \& Taco Hoekwater},
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\unprotect
+\unprotect
% maybe we should just include these into the default tex one
@@ -33,7 +33,7 @@
\stopmathcollection
-\startmathcollection[default] % [ams]
+\startmathcollection[default] % [ams]
\definemathsymbol [internalAnd] [rel] [operators] ["26]
@@ -45,7 +45,7 @@
\definemathsymbol [boxplus] [bin] [ma] ["01]
\definemathsymbol [boxtimes] [bin] [ma] ["02]
\definemathsymbol [square] [ord] [ma] ["03]
-\definemathsymbol [Box] [ord] [ma] ["03] % square
+\definemathsymbol [Box] [ord] [ma] ["03] % square
\definemathsymbol [blacksquare] [ord] [ma] ["04]
\definemathsymbol [centerdot] [bin] [ma] ["05]
\definemathsymbol [Diamond] [ord] [ma] ["06]
@@ -88,8 +88,8 @@
\definemathsymbol [multimap] [rel] [ma] ["28]
\definemathsymbol [therefore] [rel] [ma] ["29]
\definemathsymbol [because] [rel] [ma] ["2A]
-\definemathsymbol [doteqdot] [rel] [ma] ["2B]
-\definemathsymbol [Doteq] [rel] [ma] ["2B] % doteqdot
+\definemathsymbol [doteqdot] [rel] [ma] ["2B]
+\definemathsymbol [Doteq] [rel] [ma] ["2B] % doteqdot
\definemathsymbol [triangleq] [rel] [ma] ["2C]
\definemathsymbol [precsim] [rel] [ma] ["2D]
\definemathsymbol [lesssim] [rel] [ma] ["2E]
@@ -103,7 +103,7 @@
\definemathsymbol [leqslant] [rel] [ma] ["36]
\definemathsymbol [lessgtr] [rel] [ma] ["37]
\definemathsymbol [backprime] [ord] [ma] ["38]
-\definemathsymbol [dabar@] [ord] [ma] ["39] % @
+\definemathsymbol [dabar@] [ord] [ma] ["39] % @
\definemathsymbol [risingdotseq] [rel] [ma] ["3A]
\definemathsymbol [fallingdotseq] [rel] [ma] ["3B]
\definemathsymbol [succcurlyeq] [rel] [ma] ["3C]
@@ -147,7 +147,7 @@
\definemathsymbol [Subset] [rel] [ma] ["62]
\definemathsymbol [Supset] [rel] [ma] ["63]
\definemathsymbol [Cup] [bin] [ma] ["64]
-\definemathsymbol [doublecup] [bin] [ma] ["64] % Cup
+\definemathsymbol [doublecup] [bin] [ma] ["64] % Cup
\definemathsymbol [Cap] [bin] [ma] ["65]
\definemathsymbol [doublecap] [bin] [ma] ["65]
\definemathsymbol [curlywedge] [bin] [ma] ["66]
@@ -286,7 +286,7 @@
\definemathsymbol [hbar] [ord] [mb] ["7E]
\definemathsymbol [backepsilon] [rel] [mb] ["7F]
-\stopmathcollection
+\stopmathcollection
\startmathcollection [default] % [ams]
@@ -327,4 +327,4 @@
\stopmathcollection
-\protect \endinput
+\protect \endinput \ No newline at end of file
diff --git a/tex/context/base/math-fou.tex b/tex/context/base/math-fou.tex
new file mode 100644
index 000000000..4d21ff887
--- /dev/null
+++ b/tex/context/base/math-fou.tex
@@ -0,0 +1,169 @@
+%D \module
+%D [ file=math-fou,
+%D version=2001.04.12,
+%D title=\CONTEXT\ Math Macros,
+%D subtitle=Fourier Specials,
+%D author={Michel Biovani \& Hans Hagen},
+%D date=\currentdate,
+%D copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% see end of file for todo
+
+\unprotect
+
+\startmathcollection [fou]
+
+ \definemathsymbol [Gamma] [alpha] [mi] ["00]
+ \definemathsymbol [Delta] [alpha] [mi] ["01]
+ \definemathsymbol [Theta] [alpha] [mi] ["02]
+ \definemathsymbol [Lambda] [alpha] [mi] ["03]
+ \definemathsymbol [Xi] [alpha] [mi] ["04]
+ \definemathsymbol [Pi] [alpha] [mi] ["05]
+ \definemathsymbol [Sigma] [alpha] [mi] ["06]
+ \definemathsymbol [Upsilon] [alpha] [mi] ["07]
+ \definemathsymbol [Phi] [alpha] [mi] ["08]
+ \definemathsymbol [Psi] [alpha] [mi] ["09]
+ \definemathsymbol [Omega] [alpha] [mi] ["0A]
+
+\stopmathcollection
+
+\startmathcollection [fou]
+
+ \definemathcharacter [+] [bin] [sy] ["80]
+ \definemathcharacter [=] [rel] [sy] ["81]
+ \definemathcharacter [<] [rel] [sy] ["82]
+ \definemathcharacter [>] [rel] [sy] ["83]
+
+\stopmathcollection
+
+\startmathcollection [fou]
+
+ \definemathsymbol [leqslant] [rel] [sy] ["84]
+ \definemathsymbol [geqslant] [rel] [sy] ["85]
+ \definemathsymbol [parallelslant] [rel] [sy] ["86]
+ \definemathsymbol [thething] [ord] [sy] ["87]
+ \definemathsymbol [vDash] [rel] [sy] ["88]
+ \definemathsymbol [blacktriangleleft] [rel] [sy] ["89]
+ \definemathsymbol [blacktriangleright] [rel] [sy] ["8A]
+ \definemathsymbol [nleqslant] [rel] [sy] ["8B]
+ \definemathsymbol [ngeqslant] [rel] [sy] ["8C]
+ \definemathsymbol [parallel] [rel] [sy] ["8D]
+ \definemathsymbol [nparallel] [rel] [sy] ["8E]
+ \definemathsymbol [nparallelslant] [rel] [sy] ["8F]
+ \definemathsymbol [nvDash] [rel] [sy] ["90]
+ \definemathsymbol [intercal] [bin] [sy] ["91]
+ \definemathsymbol [hslash] [ord] [sy] ["92]
+ \definemathsymbol [nexists] [ord] [sy] ["93]
+ \definemathsymbol [varsubsetneq] [rel] [sy] ["93]
+
+\stopmathcollection
+
+\startmathcollection [fou]
+
+ \definemathcharacter [(] [nothing] [mr] ["28] [ex] ["A1]
+ \definemathcharacter [)] [nothing] [mr] ["29] [ex] ["A2]
+ \definemathcharacter [91] [nothing] [mr] ["5B] [ex] ["A3] % [
+ \definemathcharacter [93] [nothing] [mr] ["5D] [ex] ["A4] % ]
+ \definemathcharacter [/] [nothing] [mr] ["2F] [ex] ["B1]
+ \definemathcharacter [124] [nothing] [sy] ["6A] [ex] ["AF] % |
+ \definemathcharacter [92] [nothing] [sy] ["6E] [ex] ["B2] % \
+
+\stopmathcollection
+
+\startmathcollection [fou]
+
+ \definemathsymbol [Vert] [nothing] [sy] ["6B] [ex] ["B0]
+ \definemathsymbol [vert] [nothing] [sy] ["6A] [ex] ["AF]
+ \definemathsymbol [VERT] [nothing] [sy] ["98] [ex] ["93]
+ \definemathsymbol [Downarrow] [rel] [sy] ["2B] [ex] ["C4]
+ \definemathsymbol [backslash] [nothing] [sy] ["6E] [ex] ["B2]
+ \definemathsymbol [rangle] [close] [sy] ["69] [ex] ["AE]
+ \definemathsymbol [langle] [open] [sy] ["68] [ex] ["AD]
+ \definemathsymbol [rbrace] [close] [sy] ["67] [ex] ["AA]
+ \definemathsymbol [lbrace] [open] [sy] ["66] [ex] ["A9]
+ \definemathsymbol [rceil] [close] [sy] ["65] [ex] ["A8]
+ \definemathsymbol [lceil] [open] [sy] ["64] [ex] ["A7]
+ \definemathsymbol [rfloor] [close] [sy] ["63] [ex] ["A6]
+ \definemathsymbol [lfloor] [open] [sy] ["62] [ex] ["A5]
+ \definemathsymbol [dblbrackleft] [open] [sy] ["99] [ex] ["85]
+ \definemathsymbol [dblbrackright] [close] [sy] ["9A] [ex] ["86]
+
+\stopmathcollection
+
+\startmathcollection [fou]
+
+ \definemathsymbol [varkappa] [ord] [mi] ["80] % check this
+ \definemathsymbol [varvarrho] [ord] [mi] ["81] % check this
+ \definemathsymbol [xswordsup] [ord] [sy] ["96]
+ \definemathsymbol [xswordsdown] [ord] [sy] ["97]
+ \definemathsymbol [notowns] [rel] [sy] ["9C]
+ \definemathsymbol [hbar] [ord] [sy] ["9D]
+ \definemathsymbol [smallsetminus] [bin] [sy] ["9E]
+
+\stopmathcollection
+
+\startmathcollection [fou]
+
+ \definemathsymbol [notin] [rel] [sy] ["9B]
+
+\stopmathcollection
+
+\startmathcollection [fou]
+
+ \definemathsymbol [iintop] [op] [ex] ["CE]
+ \definemathsymbol [iiintop] [op] [ex] ["D0]
+ \definemathsymbol [oiintop] [op] [ex] ["D2]
+ \definemathsymbol [oiiintop] [op] [ex] ["D4]
+ \definemathsymbol [slashintop] [op] [ex] ["D6]
+
+\stopmathcollection
+
+\startmathcollection [fou]
+
+ \definemathcommand [iint] {\iintop \nolimits}
+ \definemathcommand [iiint] {\iiintop \nolimits}
+ \definemathcommand [oiint] {\oiintop \nolimits}
+ \definemathcommand [oiiint] {\oiiintop \nolimits}
+ \definemathcommand [slashint] {\slashintop\nolimits}
+
+\stopmathcollection
+
+\protect \endinput
+
+% from a mail of Michel B / todo
+
+% \definemathsymbol [acute] [accent] [operators] ["1]
+% \definemathsymbol [grave] [accent] [operators] ["0]
+% \definemathsymbol [ddot] [accent] [operators] ["4]
+% \definemathsymbol [tilde] [accent] [operators] ["3]
+% \definemathsymbol [bar] [accent] [operators] ["9]
+% \definemathsymbol [breve] [accent] [operators] ["8]
+% \definemathsymbol [check] [accent] [operators] ["7]
+% \definemathsymbol [hat] [accent] [operators] ["2]
+% \definemathsymbol [dot] [accent] [operators] ["A]
+% \definemathsymbol [mathring] [accent] [operators] ["6]
+
+% \definemathsymbol [wideparen] [ord] [largesymbols] ["94]
+% \definemathsymbol [widearc] [accent] [largesymbols] ["D8]
+
+% check for definition of \overset (ams)
+
+% \def\FOUwidering#1%
+% {\overset{\smash{\vbox to .2ex{\hbox{$\mathring{}$}}}}{\wideparen{#1}}}
+
+% \startmathcollection [default] % [ams]
+%
+% \definemathcommand [widering] {\FOUwidering}
+%
+% \stopmathcollection
+
+% \definemathsymbol [otheralpha] [ord] [otherletters] ["0B]
+% \definemathsymbol [otherbeta] [ord] [otherletters] ["0C]
+% \definemathsymbol [othergamma] [ord] [otherletters] ["0D]
+% \definemathsymbol [otherdelta] [ord] [otherletters] ["0E]
+% \definemathsymbol [otherepsilon] [ord] [otherletters] ["0F]
+% \definemathsymbol [otherzeta] [ord] [otherletters] ["10] \ No newline at end of file
diff --git a/tex/context/base/meta-dum.tex b/tex/context/base/meta-dum.tex
index b5b56657a..fafd56d8a 100644
--- a/tex/context/base/meta-dum.tex
+++ b/tex/context/base/meta-dum.tex
@@ -45,16 +45,16 @@
% to transparent colors
\startuseMPgraphic{placeholder}{width,height,color}
- numeric w, h, d, r ; color c, b, cc ; path p ; boolean t ;
- t := is_transparent(\MPvar{color}) ;
+ numeric w, h, d, r ; color c, b, cc ; path p ; boolean t ;
+ t := is_transparent(\MPvar{color}) ;
c := not_transparent(\MPvar{color}) ;
- b := not_transparent(white) ;
+ b := not_transparent(white) ;
w := \MPvar{width} ;
h := \MPvar{height} ;
r := \MPvar{reduction} ;
d := max(w,h) ;
p := unitsquare xyscaled (w,h) ;
- cc := r[.5c,b] ;
+ cc := r[.5c,b] ;
fill p withcolor if t : transparent(1,.5,cc) else : cc fi ;
for i := 1 upto 60 :
cc := r[c randomized(.3,.9),b] ;
@@ -82,14 +82,14 @@
{\getpaletsize[placeholder]%
\ifx\figurereplacementcycle\relax
\getrandomnumber \figurereplacementcycle \!!plusone \paletsize
- \globallet \figurereplacementcycle \figurereplacementcycle
+ \globallet \figurereplacementcycle \figurereplacementcycle
\else
\doglobal\increment\figurereplacementcycle
- \fi
+ \fi
\ifnum\figurereplacementcycle>\paletsize
\globallet\figurereplacementcycle\!!plusone
\fi
- \weightGRAYfalse % monochrome anyway
+ \weightGRAYfalse % monochrome anyway
\defineoverlay
[\s!dummy]
[\useMPgraphic
@@ -111,17 +111,17 @@
\doifelse{#1}\s!dummy \!!doneafalse\!!doneatrue
\doifelse{#2}\s!dummy \!!donebfalse\!!donebtrue
\doifelse{#3}\s!unknown\!!donecfalse\!!donectrue
- \if!!donea
+ \if!!donea
name: \expanded{\verbatimstring{#1}}\strut\endgraf
\fi
- \if!!doneb
- \if!!donea file: \else \if!!donec file: \fi \fi
+ \if!!doneb
+ \if!!donea file: \else \if!!donec file: \fi \fi
\expanded{\verbatimstring{#2}}\strut\endgraf
\fi
- \if!!donec
+ \if!!donec
state: \expanded{\verbatimstring{#3}}\strut\endgraf
\fi}}}
\def\dummyfigure{\externalfigure[placeholder]}
-\protect \endinput
+\protect \endinput \ No newline at end of file
diff --git a/tex/context/base/mult-sys.tex b/tex/context/base/mult-sys.tex
index 7c281d085..5f799f39b 100644
--- a/tex/context/base/mult-sys.tex
+++ b/tex/context/base/mult-sys.tex
@@ -8,8 +8,8 @@
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
%D In boring module we define a lot of obscure but useful
%D system constants. By doing so we save lots of memory while
@@ -59,7 +59,7 @@
\definesystemconstant {usenglish} \definesystemconstant {us}
\definesystemconstant {greek} \definesystemconstant {gr}
-%D For proper \UNICODE\ support we need a few font related
+%D For proper \UNICODE\ support we need a few font related
%D constants.
\definesystemconstant {BoldItalic}
@@ -125,7 +125,7 @@
\def\!!plus {plus}
\def\!!minus {minus}
\def\!!fill {fill}
-\def\!!to {to}
+\def\!!to {to}
%D The same goes for some \CONTEXT\ constants, used in the
%D definition of private commands:
@@ -330,8 +330,8 @@
\ifx\z@\undefined \newdimen\zeropoint \else \let\zeropoint\z@ \fi
-\newcount\medcard \medcard\!!medcard % used in font module
-\newcount\maxcard \maxcard\!!maxcard % used in font module
+\newcount\medcard \medcard\!!medcard % used in font module
+\newcount\maxcard \maxcard\!!maxcard % used in font module
\ifx\thousandpoint\undefined \newdimen\thousandpoint \fi
@@ -348,7 +348,7 @@
\definesystemvariable {ag} % AchterGrond
\definesystemvariable {al} % ALinea's
\definesystemvariable {am} % interActieMenu
-\definesystemvariable {an} % ANchor
+\definesystemvariable {an} % ANchor
\definesystemvariable {as} % AlignmentSwitch
\definesystemvariable {ba} % synchronisatieBAlk
\definesystemvariable {be} % startstop (BeginEnd)
@@ -372,14 +372,15 @@
\definesystemvariable {cr} % kleur (ColoR)
\definesystemvariable {cs} % kleur (ColorSeparation
\definesystemvariable {cv} % ConVersie
+\definesystemvariable {cy} % CrYteria
\definesystemvariable {da} % DAte
-\definesystemvariable {dc} % DroppedCaps
+\definesystemvariable {dc} % DroppedCaps
\definesystemvariable {dd} % DoorDefinieren
\definesystemvariable {de} % DEel
\definesystemvariable {dl} % DunneLijnen
\definesystemvariable {dn} % DoorNummeren
\definesystemvariable {do} % DefinieerOpmaak
-\definesystemvariable {du} % DUmmy
+\definesystemvariable {du} % DUmmy
\definesystemvariable {ds} % DoorSpringen
\definesystemvariable {ef} % ExternFiguur
\definesystemvariable {ec} % EnCoding
@@ -442,7 +443,7 @@
\definesystemvariable {mb} % MargeBlokken
\definesystemvariable {mg} % Metapost paGe
\definesystemvariable {mk} % MarKering
-\definesystemvariable {mt} % inline MaTh
+\definesystemvariable {mt} % inline MaTh
\definesystemvariable {mo} % Math Options
\definesystemvariable {nm} % Nummering
\definesystemvariable {np} % NaastPlaatsen
@@ -460,7 +461,7 @@
\definesystemvariable {ox} % OffsetBox
\definesystemvariable {pa} % PAlet
\definesystemvariable {pb} % PuBlicatie
-\definesystemvariable {pc} % PageComment
+\definesystemvariable {pc} % PageComment
\definesystemvariable {pe} % PagEhandler
\definesystemvariable {pf} % ProFiel
\definesystemvariable {pg} % KoppelPagina
@@ -478,7 +479,7 @@
\definesystemvariable {rl} % ReferentieLijst
\definesystemvariable {rn} % RegelNummer
\definesystemvariable {ro} % ROteren
-\definesystemvariable {rr} % linenotes
+\definesystemvariable {rr} % linenotes
\definesystemvariable {rs} % RaSters
\definesystemvariable {rt} % RoosTers
\definesystemvariable {rv} % ReserVeerfiguur
@@ -506,7 +507,7 @@
\definesystemvariable {ta} % TAb
\definesystemvariable {tb} % TekstBlokken
\definesystemvariable {td} % TextbackgrounDs
-\definesystemvariable {te} % TEmplate
+\definesystemvariable {te} % TEmplate
\definesystemvariable {tf} % TypeFace
\definesystemvariable {tg} % Tex paGe
\definesystemvariable {ti} % TabelInstellingen
@@ -558,9 +559,9 @@
\defineinterfaceconstant {y} {y}
\defineinterfaceconstant {k} {k}
\defineinterfaceconstant {a} {a} % alternative
-\defineinterfaceconstant {t} {t} % transparency
-\defineinterfaceconstant {p} {p} % percentage
-
+\defineinterfaceconstant {t} {t} % transparency
+\defineinterfaceconstant {p} {p} % percentage
+
\defineinterfaceconstant {t} {t}
\defineinterfaceconstant {h} {h}
\defineinterfaceconstant {b} {b}
@@ -610,8 +611,8 @@
\definefileconstant {filfilename} {cont-fil}
\definefileconstant {modfilename} {cont-mod}
-%D The next two files specify user settings as well as
-%D \TEXEXEC\ settings when generating a format.
+%D The next two files specify user settings as well as
+%D \TEXEXEC\ settings when generating a format.
\definefileconstant {usrfilename} {cont-usr}
\definefileconstant {fmtfilename} {cont-fmt}
@@ -725,7 +726,7 @@
3: -- -- replaces a macro, use CAPITALS!
\stopmessages
-% 1: to be adapted
+% 1: to be adapted
\startmessages german library: check
title: check
diff --git a/tex/context/base/page-flt.tex b/tex/context/base/page-flt.tex
index 41d8c901a..d410a5ab8 100644
--- a/tex/context/base/page-flt.tex
+++ b/tex/context/base/page-flt.tex
@@ -16,6 +16,9 @@
%D This module is currently a mess, due to splitting float
%D handlers over specific otr's. Consider it work in progress.
+%D Some of the sidefloat settings should move to page-sid; now it's quite
+%D fuzzy the way the variables are set/reset.
+
\unprotect
% naar supp-box.tex
@@ -423,6 +426,9 @@
\expanded{\dorepeatwithcommand[#1]}\movedownsidefloat}%
\egroup}
+\def\hangsidefloat[#1]%
+ {\global\sidefloatsidelines#1\relax}
+
\def\xdocompletefloat#1#2#3#4#5#6%
{\ifextrafloatactions
\doifinsetelse\v!tekst{#4}
@@ -1197,6 +1203,21 @@
%\stelblokkopjesin[\c!uitlijnen=\v!links]
%\stelblokkopjesin[\c!uitlijnen=\v!rechts]
+\def\docheckcaptioncontent#1#2#3#4%
+ {\ifnofloatcaption \else
+ \setbox\tempcaptionbox\hbox
+ {\trialtypesettingtrue\footnotesenabledfalse\putcompletecaption{#4}{#2}{#3}{0}}%
+ % new, \placefigure{\XMLflush{somecaption}}{} passes earlier empty check
+ % so here we misuse the scratch box; actually this means that the previous
+ % test can go away (some day, when i redo this module)
+ \ifdim\wd\tempcaptionbox=\zeropoint
+ \global\emptyfloatcaptiontrue
+ \ifnofloatnumber
+ \global\nofloatcaptiontrue
+ \fi
+ \fi
+ \fi}
+
\def\dosetpagfloat#1#2#3#4% \copy wegwerken
{\bgroup
\setlocalfloathsize
@@ -1210,14 +1231,12 @@
\def\locatefloat
{\chardef\alignstrutmode\zerocount
\alignedline\@@flflplaats\v!midden}%
+ \docheckcaptioncontent{#1}{#2}{#3}{#4}%
\ifnofloatcaption
- \dopreparenocaption{#1}{#2}{#3}{#4}
+ \dopreparenocaption{#1}{#2}{#3}{#4}%
\edef\width{\the\wd\floatbox}%
\doglobal\addlocalbackgroundtobox\floatbox
\else
- \setbox\tempcaptionbox\hbox
- {\trialtypesettingtrue
- \footnotesenabledfalse\putcompletecaption{#4}{#2}{#3}{0}}%
% todo: installable maken, variant/method=auto vs macro
\doifinsetelse\@@kjkjplaats{\v!hoog,\v!midden,\v!laag}
{\dopreparesidecaption{#1}{#2}{#3}{#4}}
@@ -1494,11 +1513,10 @@
%\showcomposition
\setbox\tempfloatbox\vbox{\borderedfloatbox{#4}}%
\addlocalbackgroundtobox\tempfloatbox % no \doglobal
+ \docheckcaptioncontent{#1}{#2}{#3}{#4}%
\ifnofloatcaption
\global\setbox\floatbox\vbox{\box\tempfloatbox}%
\else
- \setbox\tempcaptionbox\hbox
- {\forgetall\putcompletecaption{#4}{#2}{#3}{0}}%
\doifelse\@@kjkjbreedte\v!max
{\dosetraggedvbox\@@kjkjuitlijnen
\setbox\tempcaptionbox\raggedbox
diff --git a/tex/context/base/page-lay.tex b/tex/context/base/page-lay.tex
index 434ab333c..3ab1b1d6f 100644
--- a/tex/context/base/page-lay.tex
+++ b/tex/context/base/page-lay.tex
@@ -453,13 +453,7 @@
\global\kopwit \layoutparameter\c!kopwit
\setlayoutdimensions % the rest of the `dimensions'
\doifelse\@@lygrid\v!ja\gridsnappingtrue\gridsnappingfalse
- \ifgridsnapping
- \widowpenalty\zerocount % is gewoon beter
- \clubpenalty \zerocount % zeker bij grids
- \else
- \widowpenalty\defaultwidowpenalty
- \clubpenalty \defaultclubpenalty
- \fi
+ \synchronizecriteria[\layoutparameter\c!criterium]% see elsewhere
\simplesetupwhitespace
\simplesetupblank
\global\snijwit\layoutparameter\c!snijwit
@@ -591,7 +585,7 @@
\appendtoks \checklayout \to \everystarttext
-\def\checkcurrentlayout % public and used in naw, so keep this name
+\def\checkcurrentlayout % public and used in naw, so keep this name
{\ifundefined{\??ly\realfolio\c!status}%
\doifoddpageelse\checkcurrentoddlayout\checkcurrentevenlayout
\else
@@ -634,7 +628,7 @@
{\getparameters[\??ly#1][\c!status=\v!start,#2]}
\def\dodosetuplayout[#1][#2]%
- {\ConvertToConstant\doifnot{#2}\v!reset % #2 ?
+ {\ConvertToConstant\doifnot{#2}\v!reset % #2 ?
{\getparameters[\??ly#1][#2]%
\checkforems[#2]}}
@@ -1199,6 +1193,7 @@
\c!dx=\!!zeropoint,
\c!dy=\!!zeropoint,
\c!grid=\v!nee,
+ \c!criterium=\s!default,
\c!clipoffset=\!!zeropoint,
\c!regels=0,
\c!kolommen=1,
diff --git a/tex/context/base/page-set.tex b/tex/context/base/page-set.tex
index 4bd1f2188..abe6331e7 100644
--- a/tex/context/base/page-set.tex
+++ b/tex/context/base/page-set.tex
@@ -13,7 +13,7 @@
% getnoflines vs getrawnoflines
-% some day: cleanup
+% some day: cleanup
\writestatus{loading}{Context OTR Macros / Column Sets}
@@ -23,7 +23,7 @@
% todo : separate footnote placement
% todo : go on on same page with colset
% todo : test page areas per page
-% todo : leftmargin/rightmargin (better than afstand(1))
+% todo : leftmargin/rightmargin (better than afstand(1))
\unprotect
@@ -67,7 +67,7 @@
\beginETEX \ifcsname
-\def\columnerasegridboxes % maybe dedicated loops
+\def\columnerasegridboxes % maybe dedicated loops
{\bgroup
\increment\columnmaxcells\relax
\ifodd\realpageno
@@ -248,6 +248,8 @@
\def\dosetupcolumnsetlines[#1][#2][#3][#4]%
{\setevalue{\??mc#1:#2:\number#3}{\number#4}}
+\beginTEX
+
\def\currentcolumnmaxcells
{\ifundefined{\??mc\OTRSETidentifier:\columnsetpage:\number\mofcolumns}%
\columnmaxcells
@@ -257,13 +259,15 @@
\csname\??mc\OTRSETidentifier:\columnsetpage:\number\mofcolumns\endcsname
\fi\fi}
-% in etex we also support negative numbers
+\endTEX
-\beginETEX \numexpr
+% in etex we also support negative numbers
\def\currentcolumnmaxcellstag
{\??mc\OTRSETidentifier:\columnsetpage:\number\mofcolumns}
+\beginETEX \numexpr
+
\def\currentcolumnmaxcells
{\ifcsname\currentcolumnmaxcellstag\endcsname
\ifnum\csname\currentcolumnmaxcellstag\endcsname=0
@@ -276,6 +280,8 @@
\columnmaxcells
\fi}
+\endETEX
+
\def\doresetcolumnsetlines#1%
{\ifundefined{\??mc\OTRSETidentifier:\columnsetpage:\number#1}\else
\letgvalue{\??mc\OTRSETidentifier:\columnsetpage:\number#1}\!!zerocount
@@ -492,35 +498,35 @@
\OTRSETsetfreecells\mofcolumns\columnfirstcell
\ifsomefreecolumncells
\global\vsize\columnfreecells\lineheight
- \ifinotr % else problems with floats, see extreme
+ \ifinotr % else problems with floats, see extreme
\global\pagegoal\vsize % niet nodig, tenzij binnen otr
- \fi
+ \fi
\synchronizeoutput % fails on example
% \allowbreak % hm
\fi
\synchronizenotes
\fi}
-\def\OTRSETsethsize % of course this does not migrate outside the otr
+\def\OTRSETsethsize % of course this does not migrate outside the otr
{\localcolumnwidth\OTRSETlocalwidth\mofcolumns
\tekstbreedte\localcolumnwidth
\hsize\localcolumnwidth}
%\def\OTRSETsynchronizehsize
% {\doifnotvalue{\??mc\OTRSETidentifier\the\mofcolumns\c!breedte}\v!passend
-% \OTRSETsethsize}
+% \OTRSETsethsize}
-\def\OTRSETsynchronizehsize
- {\ifcase0\getvalue{\??mc\??mc\c!breedte}\else % some width set
+\def\OTRSETsynchronizehsize
+ {\ifcase0\getvalue{\??mc\??mc\c!breedte}\else % some width set
\bgroup
\scratchdimen\OTRSETlocalwidth\mofcolumns
\ifdim\scratchdimen=\tekstbreedte
- \egroup
+ \egroup
\else
- % only if change in width and \column/\break
- \egroup \OTRSETsethsize
+ % only if change in width and \column/\break
+ \egroup \OTRSETsethsize
\fi
- \fi}
+ \fi}
\def\OTRSETcheckfreelines
{\OTRSETsetvsize}
@@ -545,9 +551,9 @@
% \fi
% % brrr:
% \ejectinsert
-% \ejectpage
+% \ejectpage
% \OTRSETsynchronizehsize} % no \OTRSETsethsize, can be mid smaller (like tabulate)
-%
+%
% \installcolumnbreakhandler {SET} \v!forceer
% {\OTRSETgotocolumn[\v!forceer]}
% \installcolumnbreakhandler {SET} \v!eerste
@@ -562,7 +568,7 @@
% \fi}
\def\OTRSETcolumnhbreak
- {\ifhmode
+ {\ifhmode
\bgroup
\removeunwantedspaces
\parfillskip\zeropoint
@@ -576,14 +582,14 @@
\ejectinsert
\ejectpage % brrr
% no \OTRSETsethsize, can be mid smaller (like tabulate)
- % also, this one should be executed at the outer level
+ % also, this one should be executed at the outer level
% (setting hsize inside otr does not work)
- \OTRSETsynchronizehsize}
+ \OTRSETsynchronizehsize}
-% We need to make sure that we really leave the column; mid
-% column we may end up in an empty gap, and we don't want to
-% stay there (basically such a gap is a small empty page
-% then).
+% We need to make sure that we really leave the column; mid
+% column we may end up in an empty gap, and we don't want to
+% stay there (basically such a gap is a small empty page
+% then).
\installcolumnbreakhandler {SET} \v!ja
{\OTRSETcolumnhbreak
@@ -597,11 +603,11 @@
\OTRSETdummycolumn
\else
\exitloop
- \fi
- \else
+ \fi
+ \else
\exitloop
\fi}%
- \OTRSETsynchronizehsize}
+ \OTRSETsynchronizehsize}
\installcolumnbreakhandler {SET} \s!unknown
{\expanded{\OTRSETgotocolumn[\@@columnspecification]}}
@@ -623,47 +629,47 @@
% \OTRSEThandleflushedtext0
% \fi}
-% The complication is in the fact that when the HERE float
-% is placed, the otr is not invoked when there is not yet
-% enough content; this can lead to a change in order (turning
-% on the tracer with option 0 is very instructive, watch the
-% small numbers in the margin)
+% The complication is in the fact that when the HERE float
+% is placed, the otr is not invoked when there is not yet
+% enough content; this can lead to a change in order (turning
+% on the tracer with option 0 is very instructive, watch the
+% small numbers in the margin)
%
% 0 = no flushing, so no interference but user should handle
-% border cases of placement
-% 1 = the normal otr, rather untested
-% 2 = a solution that works ok, is experimental and above
+% border cases of placement
+% 1 = the normal otr, rather untested
+% 2 = a solution that works ok, is experimental and above
% all messy
-\chardef\OTRSETflushtextmode=0
+\chardef\OTRSETflushtextmode=0
\def\OTRSETflushtextsofar
{\ifcase\OTRSETflushtextmode
- % don't mess around
+ % don't mess around
\or
- % the normal one
+ % the normal one
\ifvoid\normalpagebox\else
\OTRSETnaturalflush
\OTRSETcheckfreelines
\fi
\or
- % way to complicated, but kind of ok
+ % way to complicated, but kind of ok
\doOTRSETflushtextsofar
\fi}
\newskip\lastskipinotr
-\installoutput\doOTRSETflushtextsofar % experimental
+\installoutput\doOTRSETflushtextsofar % experimental
{\ifvoid\normalpagebox\else
\scratchdimen\dp\normalpagebox
\setbox\scratchbox\vbox
{\forgetall
- \unvbox\normalpagebox
+ \unvbox\normalpagebox
\global\lastskipinotr\lastskip\relax
\ifdim\lastskipinotr>\zeropoint\relax
\removelastskip
\else
- \kern-\scratchdimen % handle depth
+ \kern-\scratchdimen % handle depth
\fi}%
\ifdim\lastskipinotr>\zeropoint
\scratchskip\ht\scratchbox
@@ -675,7 +681,7 @@
\OTRSETsavenotes
\OTRSEThandleflushedtext0%
\ifdim\lastskipinotr>\zeropoint
- %\vskip \lastskipinotr % hm, gets lost anyway
+ %\vskip \lastskipinotr % hm, gets lost anyway
\else
% we should not discard skips after here; tricky
\fi
@@ -764,10 +770,10 @@
\OTRSETfindnextgap
% \message{\the\mofcolumns,\the\columnfirstcell,\the\columnfreecells}%
% \wait
- % we cannot adapt the hsize since it may have changed (like
+ % we cannot adapt the hsize since it may have changed (like
% inside a tabulate) so we only change it when there is a
- % reason to do so
- \OTRSETsynchronizehsize
+ % reason to do so
+ \OTRSETsynchronizehsize
\OTRSETsetvsize}
\def\OTRSETfindnextgap
@@ -1014,70 +1020,70 @@
\def\OTRSETstoreincolumnslotLRTB#1%
{\OTRSETprepareforcolumnslot1{#1}%
-\OTRSETflushtextsofar
+\OTRSETflushtextsofar
\OTRSETstoreincolumnslotindeed
\mofcolumns\nofcolumns+\currenthcell
\plusone\columnmaxcells+\currentvcell{#1}}
\def\OTRSETstoreincolumnslotLRBT#1%
{\OTRSETprepareforcolumnslot3{#1}%
-\OTRSETflushtextsofar
+\OTRSETflushtextsofar
\OTRSETstoreincolumnslotindeed
\mofcolumns\nofcolumns+\currenthcell
\columnmaxcells\plusone-\currentvcell{#1}}
\def\OTRSETstoreincolumnslotRLTB#1%
{\OTRSETprepareforcolumnslot1{#1}%
-\OTRSETflushtextsofar
+\OTRSETflushtextsofar
\OTRSETstoreincolumnslotindeed
\nofcolumns\qofcolumns-\currenthcell
\plusone\columnmaxcells+\currentvcell{#1}}
\def\OTRSETstoreincolumnslotRLBT#1%
{\OTRSETprepareforcolumnslot3{#1}%
-\OTRSETflushtextsofar
+\OTRSETflushtextsofar
\OTRSETstoreincolumnslotindeed
\nofcolumns\qofcolumns-\currenthcell
\columnmaxcells\plusone-\currentvcell{#1}}
\def\OTRSETstoreincolumnslotTBLR#1%
{\OTRSETprepareforcolumnslot1{#1}%
-\OTRSETflushtextsofar
+\OTRSETflushtextsofar
\OTRSETstoreincolumnslotindeed
\plusone\columnmaxcells+\currentvcell
\mofcolumns\nofcolumns+\currenthcell{#1}}
\def\OTRSETstoreincolumnslotTBRL#1%
{\OTRSETprepareforcolumnslot1{#1}%
-\OTRSETflushtextsofar
+\OTRSETflushtextsofar
\OTRSETstoreincolumnslotindeed
\plusone\columnmaxcells+\currentvcell
\nofcolumns\qofcolumns-\currenthcell{#1}}
\def\OTRSETstoreincolumnslotBTLR#1%
{\OTRSETprepareforcolumnslot3{#1}%
-\OTRSETflushtextsofar
+\OTRSETflushtextsofar
\OTRSETstoreincolumnslotindeed
\columnmaxcells\plusone-\currentvcell
\mofcolumns\nofcolumns+\currenthcell{#1}}
\def\OTRSETstoreincolumnslotBTRL#1%
{\OTRSETprepareforcolumnslot3{#1}%
-\OTRSETflushtextsofar
+\OTRSETflushtextsofar
\OTRSETstoreincolumnslotindeed
\columnmaxcells\plusone-\currentvcell
\nofcolumns\qofcolumns-\currenthcell{#1}}
\def\OTRSETstoreincolumnslotFXTB#1% fixed column
{\OTRSETprepareforcolumnslot2{#1}% % 1/2 dependent of place, todo
-\OTRSETflushtextsofar
+\OTRSETflushtextsofar
\OTRSETstoreincolumnslotindeed
\pofcolumns\pofcolumns+\currenthcell
\preferedrow\columnmaxcells+\currentvcell{#1}}
\def\OTRSETstoreincolumnslotFXBT#1% fixed column
{\OTRSETprepareforcolumnslot2{#1}% % 3/2 dependent on place, todo
-\OTRSETflushtextsofar
+\OTRSETflushtextsofar
\OTRSETstoreincolumnslotindeed
\pofcolumns\pofcolumns+\currenthcell
\columnmaxcells\preferedrow-\currentvcell{#1}}
@@ -1097,17 +1103,17 @@
{\ifcase\OTRSETforcefixedfloats
\OTRSETstoreincolumnslotSOMEWHERE2{#1}%
\else
- \OTRSETstoreincolumnslotFIXD{#1}%
+ \OTRSETstoreincolumnslotFIXD{#1}%
\fi}
-% this one looses too wide graphics
+% this one looses too wide graphics
%
% \def\OTRSETstoreincolumnslotFIXD#1% fixed column
% {\OTRSETprepareforcolumnslot2{#1}%
-% % no flush text sofar here, beware: no width test
+% % no flush text sofar here, beware: no width test
% \snaptogrid\vbox{\box#1}}
%
-% still imperfect
+% still imperfect
\def\OTRSETstoreincolumnslotFIXD#1% fixed column
{\OTRSETflushtextsofar
@@ -1127,8 +1133,8 @@
\fi
\fi}
-\def\OTRSETstoreincolumnslotSOMEWHERE#1#2%
- {\OTRSETprepareforcolumnslot{#1}{#2}%
+\def\OTRSETstoreincolumnslotSOMEWHERE#1#2%
+ {\OTRSETprepareforcolumnslot{#1}{#2}%
\OTRSETflushtextsofar
\getnoflines\pagetotal \advance\noflines\columnfirstcell
\OTRSETstoreincolumnslotindeed
@@ -1225,7 +1231,7 @@
% \setbox#2=\vbox spread \columnslotspacing\lineheight
% {\vss\box#2\vss}%
% \fi
- % and don't change this any more
+ % and don't change this any more
% \doifdefinedelse{\strippedcsname\OTRSETstoreincolumnslot#1}
% {\getvalue{\strippedcsname\OTRSETstoreincolumnslot#1}{#2}}
% {\OTRSETstoreincolumnslotUNKNOWN{#2}}}
@@ -1233,7 +1239,7 @@
\OTRSETstoreincolumnslotUNKNOWN} % {#2}}
\def\OTRSETstoreincolumnslotUNKNOWN#1%
- {\OTRSETprepareforcolumnslot2{#1}\copy#1} % {} ?
+ {\OTRSETprepareforcolumnslot2{#1}\copy#1} % {} ?
\def\OTRSETprepareforcolumnslot#1#2% 1=hoog 2=midden 3=laag
{\dp#2\zeropoint
@@ -1398,13 +1404,13 @@
\c!nlinks=\getvalue{\??mc#1\c!n},
\c!nrechts=\getvalue{\??mc#1\c!n},
\c!breedte=\v!passend,
- \c!regels=0,
+ \c!regels=0,
#2]%
\dorecurse{\getvalue{\??mc#1\c!nlinks}} % todo
{\dododefinecolumnset[#1][\recurselevel]}%
\dorecurse{\getvalue{\??mc#1\c!nrechts}} % todo
{\dododefinecolumnset[#1][\recurselevel]}%
- % redo framed settings
+ % redo framed settings
\setupcolumnset[#1][1][\c!afstand=\!!zeropoint]}
\def\dododefinecolumnset[#1][#2]%
@@ -1415,7 +1421,7 @@
[\c!offset=\v!overlay,
\c!kader=\v!uit,
\c!uitlijnen=,
- \c!regels=0,% really needed since c!regels is now part of framed
+ \c!regels=0,% really needed since c!regels is now part of framed
\c!breedte=\getvalue{\??mc#1\c!breedte},
\c!afstand=\getvalue{\??mc#1\c!afstand}]}
@@ -1433,7 +1439,7 @@
\getparameters[\??mc#1][#2]%
\fi}
-\definecolumnset[\s!default][\c!n=2] % fallback
+\definecolumnset[\s!default][\c!n=2] % fallback
\def\OTRSETgotonextpage
{\vfill\eject
@@ -1484,26 +1490,26 @@
% \s!default=>\OTRSETdummycolumn]}}
\def\doOTRSETgotoCOLROW#1% <number>|<number>*<number>
- {\bgroup % really needed
+ {\bgroup % really needed
\splitstring#1\at*\to\column\and\row
\bgroup
\ifx\column\empty\else\expanded{\doOTRSETgotoCOLUMN{\column}}\fi
- \egroup
+ \egroup
\bgroup
\ifx\row \empty\else\expanded{\doOTRSETgotoROW {\row }}\fi
\egroup
\egroup}
-\def\doOTRSETgotoCOLUMN#1%
+\def\doOTRSETgotoCOLUMN#1%
{\ifnum\mofcolumns=#1\else
\vfill\eject % \doejectpage\eject
\doloop
- {\ifnum\mofcolumns=#1\relax
- \exitloop \else \OTRSETdummycolumn
+ {\ifnum\mofcolumns=#1\relax
+ \exitloop \else \OTRSETdummycolumn
\fi}%
\fi}
-\def\doOTRSETgotoROW#1%
+\def\doOTRSETgotoROW#1%
{\ifnum#1>1
\scratchcounter\zerocount
\currenthcell\mofcolumns
@@ -1523,7 +1529,7 @@
{\processallactionsinset
[#1]
[ \v!ja=>\OTRSETdummycolumn,
- \v!nee=>,% not supported
+ \v!nee=>,% not supported
\v!forceer=>\OTRSETdummycolumn,
\v!eerste=>\expanded{\doOTRSETgotoCOLUMN{1}},
\v!laatste=>\expanded{\doOTRSETgotoCOLUMN{\the\nofcolumns}},
@@ -1646,8 +1652,8 @@
% currently line represents real line, i.e. on the grid, and
% not something noflines (also, watch out for switching from
-% 2-3 columns on one page with both sets balanced: the
-% second set does not see the first set
+% 2-3 columns on one page with both sets balanced: the
+% second set does not see the first set
\chardef\OTRSETbottombalance\zerocount
@@ -1661,7 +1667,7 @@
% \!!countb\getvalue{\??mc\OTRSETidentifier\number\!!counta\c!regels}\relax
% \ifcase\!!countb
% \!!countb\getvalue{\??mc\OTRSETidentifier\c!regels}\relax
-% \fi
+% \fi
% \ifcase\!!countb
% \!!countb \savedcolumnmaxcells\relax
% \fi
@@ -1678,7 +1684,7 @@
% \fi}%
% \else
% \globallet\localcolumnmaxcells\columnmaxcells
-% \advance\!!countb-\columnmaxcells
+% \advance\!!countb-\columnmaxcells
% \!!countb-\!!countb
% \advance\!!countb \minusone
% \ifnum\!!countb>\zerocount
@@ -1688,11 +1694,11 @@
% \fi}%
% \fi
% \fi}%
-% \OTRSETsetvsize % ! ! !
+% \OTRSETsetvsize % ! ! !
% \fi
% \fi
% \fi}
-%
+%
% \def\OTRSETpresetbalancing
% {\doifvaluesomething{\??mc\OTRSETidentifier\c!regels}%
% {\getcommacommandsize[\csname\??mc\OTRSETidentifier\c!regels\endcsname]%
@@ -1711,17 +1717,17 @@
% \definecolumntextarea[title][x=1,y=4,nx=2,ny=7,state=start]
% \setupcolumntextareatext[title][\vtop to 5cm{a\\b\\b\\d}]
%
-% \starttext
+% \starttext
% \startcolumnset \dorecurse{1}{\input tufte \par} \stopcolumnset
-% \stoptext
+% \stoptext
-% better:
+% better:
\def\definecolumnsetarea {\definecolumntextarea}
\def\setupcolumnsetarea {\setupcolumntextarea}
\def\setupcolumnsetareatext{\setupcolumntextareatext}
-% so this will be changed
+% so this will be changed
\def\OTRSETnobalance
{\iflastcolumnfootnotes % testen ! optie
@@ -1796,7 +1802,7 @@
\v!boven=>%chardef\OTRSETbottombalance\zerocount
\balancecolumnstrue]}
-% keep 'm for a while
+% keep 'm for a while
%
% \installoutput\OTRSETflushpreposttext
% {\global\setbox\precolumnbox\vbox{\unvbox\normalpagebox}%
@@ -1822,7 +1828,7 @@
% \input tufte
% \startcolumnset[two] \input tufte \stopcolumnset
% \stoptext
-%
+%
% \installoutput\OTRSETflushpreposttext
% {\global\setbox\precolumnbox\vbox{\unvbox\normalpagebox}%
% \global\dp\precolumnbox\strutdepth
@@ -1830,18 +1836,18 @@
% \global\setbox\postcolumnbox\vbox{\placebottomnotes}%
% \fi}
-% test:
+% test:
%
% \definecolumnset[two] [n=2,balance=yes]
% \definecolumnset[three][n=3,balance=yes]
% \setupcolumnset [two] [1] [lines=10]
% \setupcolumnset [two] [2] [lines=10]
-%
+%
% \startcolumnset[two] \dorecurse{14}{\input tufte \par} \stopcolumnset
% \startcolumnset[three] \dorecurse{12}{\input tufte \par} \stopcolumnset
%
-% with:
-%
+% with:
+%
% \installoutput\OTRSETflushpreposttext
% {%\ifvoid\normalpagebox
% % \global\setbox\precolumnbox\vbox{}%
@@ -1856,9 +1862,9 @@
% \global\setbox\postcolumnbox\vbox{\placebottomnotes}%
% \fi}
-% testcase : pascal demo-bbi, paragraaf/aanduiding koppen
+% testcase : pascal demo-bbi, paragraaf/aanduiding koppen
-\ifx\lastskipinotr\undefined \newskip\lastskipinotr \fi
+\ifx\lastskipinotr\undefined \newskip\lastskipinotr \fi
\installoutput\OTRSETflushpreposttext
{\global\setbox\precolumnbox\vbox
@@ -1867,7 +1873,7 @@
\ifdim\lastskipinotr>\zeropoint
\global\setbox\precolumnbox\hbox
{\lower\strutdepth\box\precolumnbox}%
- \fi
+ \fi
\global\dp\precolumnbox\strutdepth
\ifcarryoverfootnotes \else
\global\setbox\postcolumnbox\vbox{\placebottomnotes}%
@@ -1997,7 +2003,7 @@
{\hbox
{\localcolortrue
\setbox\scratchbox\hbox to \hsize
- {\iftracecolumnset \incolortrue \localcolortrue
+ {\iftracecolumnset \incolortrue \localcolortrue
#2\hskip-.5ex\vrule\!!width1ex\!!height.5ex\!!depth.5ex\hss
\fi
\hss}%
@@ -2205,7 +2211,7 @@
{\definecolumntextarea[#1][\v!links ][\c!type=#2,#3]%
\definecolumntextarea[#1][\v!rechts][\c!type=#2,#3]}
{\doifelse{#2}\v!volgende
- {\doifoddpageelse
+ {\doifoddpageelse
{\definecolumntextarea[#1][\v!rechts][\c!type=#2,#3]}
{\definecolumntextarea[#1][\v!links ][\c!type=#2,#3]}}
{\presetlocalframed
@@ -2329,7 +2335,7 @@
\def\columntextlastbackspace{\rugwit}
-% beware, we have clipping offsets of 2\lineheight by default
+% beware, we have clipping offsets of 2\lineheight by default
\def\columntextareaparameter#1%
{\csname\??mt\currentcolumntestarea#1\endcsname}
@@ -2340,7 +2346,7 @@
\!!countb\columntextareaparameter\c!nx
\docalculatecolumnsetspan
\!!heighta\columntextareaparameter\c!ny\lineheight
- % wrong
+ % wrong
% \ifnum\columntextareaparameter\c!y=\zerocount
% \advance\!!heighta -\lineheight
% \advance\!!heighta \topskip
@@ -2353,7 +2359,7 @@
%
\setbox\scratchbox\vbox
{\donetrue\localframed
- [\??mt\currentcolumntestarea]
+ [\??mt\currentcolumntestarea]
[\c!plaats=,% new (*)
\c!breedte=\!!widtha,\c!hoogte=\!!heighta,\c!regels=]
{\columntextareaparameter\empty}}%
@@ -2369,7 +2375,7 @@
%
\setbox0\hbox
{\ifcase\!!countc
- \copy\scratchbox % \box
+ \copy\scratchbox % \box
\else
\clip
[%\c!bovenoffset=\columntextareaparameter\c!clipoffset,%
@@ -2424,7 +2430,7 @@
% \!!widtha => total width
% \!!widthb => left width
% \!!countc => left cols
- \!!widtha\!!countb\tekstbreedte % we assume equal widths
+ \!!widtha\!!countb\tekstbreedte % we assume equal widths
\advance\!!countb \!!counta
\advance\!!countb \minusone
\ifnum\!!countb>\nofcolumns
@@ -2439,7 +2445,7 @@
{\advance\!!widtha\OTRSETgetparameter\c!afstand\recurselevel}%
\!!widthb\!!widtha
\advance\!!widthb -\!!countc\tekstbreedte
- \ifodd\realpageno \else % tricky, assumes that we keep there
+ \ifodd\realpageno \else % tricky, assumes that we keep there
\ifcase\!!countc\else
% nog niet ok voor enkel/dubbelzijdig
\advance\!!widtha \namedlayoutparameter\v!even \c!rugwit
@@ -2499,7 +2505,7 @@
\def\dostartcolumnsetspan[#1][#2][#3]% [#3] gobbles space
{\endgraf % else rubish output if forgotten
- \vskip \zeropoint % make sure otr is done, otherwise last line problems
+ \vskip \zeropoint % make sure otr is done, otherwise last line problems
\bgroup
\forgetall
\setupframedtexts[cs:#1]
@@ -2507,22 +2513,22 @@
\c!regelcorrectie=\v!uit,
\c!dieptecorrectie=\v!uit,
#2]%
- % determine widths
+ % determine widths
\!!countc\framedtextparameter{cs:#1}\c!n
% \!!countd\numexpr(\nofcolumns-\mofcolumns+\plusone)%
\!!countd\nofcolumns
- % n <= n of columns
- \ifnum\!!countc>\!!countd \!!countc\!!countd \fi
+ % n <= n of columns
+ \ifnum\!!countc>\!!countd \!!countc\!!countd \fi
\advance\!!countd -\mofcolumns
\advance\!!countd \plusone
% n <= n of available columns (alternative a)
\doif{\framedtextparameter{cs:#1}\c!variant}\v!a
{\ifnum\!!countc>\!!countd \!!countc\!!countd \fi}%
- % here it all starts
+ % here it all starts
\setcolumnsetspanhsize\mofcolumns\!!countc % a/b used
\hsize\columnsetspanhsize
\setbox\scratchbox\vbox\bgroup
- \dostartframedtext[cs:#1][\v!geen]% geen nils placement
+ \dostartframedtext[cs:#1][\v!geen]% geen nils placement
\vskip-\struttotal\par\verticalstrut\par
\framedtextparameter{cs:#1}\c!voor
\def\stopcolumnsetspan{\dostopcolumnsetspan{#1}}}
@@ -2537,16 +2543,16 @@
\doifsomething{\framedtextparameter{cs:#1}\c!na}
{\framedtextparameter{cs:#1}\c!na
\kern\zeropoint}% otherwise blanks disappear, better be a switch
- \dostopframedtext
+ \dostopframedtext
\egroup
- % frozen keeps grid snapping okay
+ % frozen keeps grid snapping okay
\setbox\scratchbox\frozenhbox to \hsize
{\dontcomplain
\alignedline{\framedtextparameter{cs:#1}\c!plaats}\v!midden
{\lower\strutdepth\box\scratchbox}}%
- \dp\scratchbox\zeropoint % else wrong snap insidefloat
+ \dp\scratchbox\zeropoint % else wrong snap insidefloat
%
-% to be tested first:
+% to be tested first:
%
% \setbox\scratchbox\frozenhbox to \hsize
% {\dontcomplain
@@ -2554,19 +2560,19 @@
% \alignedline{\framedtextparameter{cs:#1}\c!plaats}\v!midden
% {\box\scratchbox}}%
%
- \ifinsidefloat
+ \ifinsidefloat
\box\scratchbox
\else
- % we only set \columnsetspacing when asked for, else bottom problems
- % don't change this any more (test naw)
+ % we only set \columnsetspacing when asked for, else bottom problems
+ % don't change this any more (test naw)
\chardef\columnslotspacing\framedtextparameter{cs:#1}\c!nregels\relax
% todo: nboven/onder & \chardef\columnslotlocation2
%\OTRSETstoreincolumnslotHERE\scratchbox
\edef\floatmethod{\framedtextparameter{cs:#1}\c!default}%
\@EA\uppercasestring\floatmethod\to\floatmethod
- % todo : \v!hier -> here enzovoorts
+ % todo : \v!hier -> here enzovoorts
\OTRSETstoreincolumnslot\floatmethod\scratchbox
- % watch out: no \dochecknextindentation{tag}
+ % watch out: no \dochecknextindentation{tag}
\checknextindentation[\framedtextparameter{cs:#1}\c!springvolgendein]
\fi
\egroup
diff --git a/tex/context/base/page-sid.tex b/tex/context/base/page-sid.tex
index 7d98007f8..e61b9ff99 100644
--- a/tex/context/base/page-sid.tex
+++ b/tex/context/base/page-sid.tex
@@ -53,6 +53,9 @@
\newbox\floatbottom
+\newcount\sidefloatsidelines
+\newcount\sidefloatlinesdone
+
% 1 = backspace
% 2 = leftedge
% 3 = leftmargin
@@ -270,7 +273,8 @@
\fi
% == \forgetsidefloats
\global\sidefloatvsize\nofloatvsize
- \global\floatshortfalse
+ % \global\sidefloatsidelines\zerocount % no, we flush before a side float
+ \global\floatshortfalse % so this will get lost
\global\floatflagfalse}
\def\flushsidefloatsafterpar
@@ -280,10 +284,12 @@
\ifdim\oldpagetotal=\pagetotal \else
\global\let\checksidefloat\dochecksidefloat
\flushsidefloats
+ \global\sidefloatsidelines\zerocount % here !
\fi}}
\def\forgetsidefloats
{\global\sidefloatvsize\nofloatvsize
+ \global\sidefloatsidelines\zerocount
\global\floatshortfalse
\global\floatflagfalse}
@@ -342,6 +348,7 @@
\else
\finalsidefloatoutput % new
\global\sidefloatvsize\nofloatvsize
+ \global\sidefloatsidelines\zerocount
\poppenalties
\fi}
@@ -465,6 +472,12 @@
\or % 4 grid
\scratchdimen\zeropoint
\fi
+ % new
+ \global\sidefloatlinesdone\zerocount
+ \ifnum\sidefloatsidelines>\zerocount
+ \advance\scratchdimen\sidefloatsidelines\lineheight
+ \fi
+ % new
\global\setbox\floatbox\hbox
{\vbox{\vskip\scratchdimen\nointerlineskip\box\floatbox}}%
\ifnum\sidefloattype<4
@@ -594,6 +607,29 @@
\def\iffirstsidefloatparagraph
{\ifcase\sidefloatparagraph\or}
+% without sidefloat lines
+%
+% \def\setsidefloatparagraph
+% {%\advance\sidefloatprogress \sidefloatbottomskip
+% %\!!counta\sidefloatprogress
+% \scratchdimen\sidefloatprogress
+% \advance\scratchdimen \strutht
+% \advance\scratchdimen -10sp % new, needed in prikkels, prevent rounding errors
+% \!!counta\scratchdimen
+% \divide\!!counta \baselineskip
+% \ifnum\!!counta>0
+% \hangindent \ifnum\sidefloattype>4 -\fi\sidefloatwidth
+% \hangafter-\!!counta
+% \fi
+% \global\advance\sidefloatparagraph \plusone
+% \iftracesidefloats
+% \hskip-\sidefloatwidth
+% \color[darkgray]%
+% {\vrule\!!height.5\s!pt\!!depth.5\s!pt\!!width\sidefloatwidth
+% %\hskip-.25\bodyfontsize\showstruts\strut\hskip.25\bodyfontsize}%
+% \llap{\showstruts\strut\hskip.25\bodyfontsize}}%
+% \fi}
+
\def\setsidefloatparagraph
{%\advance\sidefloatprogress \sidefloatbottomskip
%\!!counta\sidefloatprogress
@@ -601,10 +637,42 @@
\advance\scratchdimen \strutht
\advance\scratchdimen -10sp % new, needed in prikkels, prevent rounding errors
\!!counta\scratchdimen
- \divide\!!counta \baselineskip
+ \divide\!!counta \baselineskip\relax
\ifnum\!!counta>0
- \hangindent \ifnum\sidefloattype>4 -\fi\sidefloatwidth
- \hangafter-\!!counta
+ % new from here
+ \ifcase\sidefloatsidelines\else
+ \ifcase\sidefloatlinesdone
+ \global\sidefloatlinesdone\!!counta
+ \else
+ \scratchcounter\sidefloatlinesdone
+ \advance\scratchcounter-\!!counta
+ \global\sidefloatsidelines-\scratchcounter
+ \fi
+ \fi
+ \ifnum\sidefloatsidelines>\zerocount
+ \scratchtoks\emptytoks
+ \scratchcounter\sidefloatsidelines
+ \scratchdimen\hsize
+ \advance\scratchdimen-\sidefloatwidth
+ \dorecurse\sidefloatsidelines
+ {\appendtoks \zeropoint \hsize \to \scratchtoks}%
+ \ifnum\!!counta>\sidefloatsidelines
+ \advance\!!counta -\sidefloatsidelines\relax
+ \advance\scratchcounter\!!counta
+ \dorecurse\!!counta
+ {\ifnum\sidefloattype>4
+ \appendtoks \zeropoint \scratchdimen \to \scratchtoks
+ \else
+ \appendtoks \sidefloatwidth \scratchdimen \to \scratchtoks
+ \fi}%
+ \fi
+ \advance\scratchcounter \plusone
+ \parshape \scratchcounter \the\scratchtoks \zeropoint \hsize\relax
+ \else
+ % new till here
+ \hangindent \ifnum\sidefloattype>4 -\fi\sidefloatwidth
+ \hangafter-\!!counta
+ \fi
\fi
\global\advance\sidefloatparagraph \plusone
\iftracesidefloats
diff --git a/tex/context/base/s-mod-00.tex b/tex/context/base/s-mod-00.tex
index 4444dfd67..fbfd93d27 100644
--- a/tex/context/base/s-mod-00.tex
+++ b/tex/context/base/s-mod-00.tex
@@ -8,17 +8,17 @@
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
-%D This module looks like crap, is not documented, will
-%D change, and used to be called modu-*.tex.
+%D This module looks like crap, is not documented, will
+%D change, and used to be called modu-*.tex.
-% todo:
-%
-% file inclusions -> hyperlinks
+% todo:
+%
+% file inclusions -> hyperlinks
-\mainlanguage[en] % better not here
+\mainlanguage[en] % better not here
\usemodule[eenheid]
@@ -32,15 +32,16 @@
% title -> category
% subtitle -> subtitle
-% herzien ivm fonts
+% herzien ivm fonts
-% nog eens \interface \\ \\ verder doorvoeren
+% nog eens \interface \\ \\ verder doorvoeren
\def\resetmodule%
{\getrawparameters
[Module]
[ file=\jobname,
version={\currentdate[\v!jaar,{.},\v!maand,{.},\v!dag]},
+ system=\CONTEXT,
title=,
subtitle=,
author=Hans Hagen,
@@ -59,13 +60,13 @@
{\dosingleempty\dostartmodule}
\def\complexmodule[#1]%
- {\startglobal % i.v.m. \bgroup in \startdocumentation
+ {\startglobal % i.v.m. \bgroup in \startdocumentation
\getrawparameters[Module][#1]
- \stopglobal % i.v.m. \bgroup in \startdocumentation
+ \stopglobal % i.v.m. \bgroup in \startdocumentation
\moduletitel}
\def\stopmodule%
- {\pagina
+ {\pagina
\plaatsregister
[\v!index]
[\c!balanceren=\v!ja,
@@ -78,59 +79,59 @@
\definecomplexorsimple\module
% \startmode[atpragma]
-%
-% \def\TitelPagina#1% can be done more efficient
+%
+% \def\TitelPagina#1% can be done more efficient
% {\startMPrun
-% mpgraph := #1 ;
-% input mp-cont ;
+% mpgraph := #1 ;
+% input mp-cont ;
% \stopMPrun
% \externalfigure
% [\bufferprefix mprun.#1]
% [\c!hoogte=\vsize,
% \c!breedte=\hsize]}
-%
+%
% \defineoverlay[titelpagina][\TitelPagina{512}]
-%
+%
% \stopmode
\startuseMPgraphic{titlepage}
- width := PaperWidth ;
- height := PaperHeight ;
+ width := PaperWidth ;
+ height := PaperHeight ;
- color local_red, local_white, local_blue ;
+ color local_red, local_white, local_blue ;
local_white := white ;
- local_blue := local_white randomized (.6,.8) ;
- local_red := local_white randomized (.3,.4) ;
+ local_blue := local_white randomized (.6,.8) ;
+ local_red := local_white randomized (.3,.4) ;
- u := width/400 ;
+ u := width/400 ;
- def a_module (expr dx, dy) =
- picture p ; p := image
- ( ddy := 0 ; sx := 60u ;
- for i=1 upto (4 randomized 2) :
+ def a_module (expr dx, dy) =
+ picture p ; p := image
+ ( ddy := 0 ; sx := 60u ;
+ for i=1 upto (4 randomized 2) :
sy := 7u randomized 3u ;
- fill unitsquare xyscaled(sx,sy) shifted (0,ddy)
+ fill unitsquare xyscaled(sx,sy) shifted (0,ddy)
withcolor local_red ;
- ddy := ddy + sy + 4u ;
- endfor ) ;
- p := p shifted (dx,dy) shifted - center p ;
+ ddy := ddy + sy + 4u ;
+ endfor ) ;
+ p := p shifted (dx,dy) shifted - center p ;
fill boundingbox p enlarged 8u withcolor local_white ;
- fill boundingbox p enlarged 4u withcolor local_blue ;
- draw p ;
- enddef ;
+ fill boundingbox p enlarged 4u withcolor local_blue ;
+ draw p ;
+ enddef ;
set_grid(width, height, width/15, height/15) ;
forever:
if new_on_grid(uniformdeviate width,uniformdeviate height):
- a_module(dx,dy) ;
+ a_module(dx,dy) ;
fi ;
exitif grid_full ;
endfor ;
- clip currentpicture to unitsquare xyscaled(width,height) ;
+ clip currentpicture to unitsquare xyscaled(width,height) ;
\stopuseMPgraphic
\defineoverlay
@@ -138,8 +139,8 @@
[\useMPgraphic{titlepage}]
% When run at \PRAGMA, we use a slightly different graphic,
-% so that we can recognize an original. Users are not
-% supposed to mimick this feature.
+% so that we can recognize an original. Users are not
+% supposed to mimick this feature.
\doifmode{atpragma}{\readfile{s-mod-04.tex}{}{}}
@@ -171,24 +172,24 @@
\edef\ModuleNumber{0\ModuleNumber}
\fi\fi
\setupbackgrounds
- [\v!pagina]
+ [\v!pagina]
[\c!achtergrond=titelpagina]
\fi
\startmakeup[\v!standaard][\c!hoofdstatus=\v!geen,\c!voetstatus=\v!geen]
- \switchtobodyfont[14.4pt,ss]
+ \switchtobodyfont[14.4pt,ss]
\bgroup
\def\CONTEXT {Con\kern-.15em\TeX t}
\def\TEXUTIL {\TeX Util}
\def\PPCHTEX {PPCH\TeX}
\def\METAPOST{MetaPost}
\hfill
- {\definedfont[SansBold at 96pt]\setstrut
- \TitleFrame{\CONTEXT}}
+ {\definedfont[SansBold at 96pt]\setstrut
+ \TitleFrame{\Modulesystem}}
\vfill
\definetabulate[temp][|l|l|]%
- \switchtobodyfont[17.3pt,ss]
+ \switchtobodyfont[17.3pt,ss]
\hfill
- {\bf\setstrut
+ {\bf\setstrut
\TitleFrame
{\insidefloattrue\setuptabulate[\c!voor=,\c!na=]%
\starttemp
@@ -199,7 +200,7 @@
\doifsomething{\Moduleauthor}
{\NC author \EQ \Moduleauthor \NC\NR}%
\NC date \EQ \currentdate \NC\NR
- %\doifsomething{\Modulesuggestions} % todo: generates space
+ %\doifsomething{\Modulesuggestions} % todo: generates space
% {\NC suggestions \NC \Modulesuggestions \NC\NR}%
\stoptemp}}
\egroup
@@ -234,7 +235,7 @@
[definition]
\setuptyping
- [definition]
+ [definition]
[\c!voor={\pagina[\v!voorkeur]}\blanko\PresetParagraphNumber\CompressDefinitions,
\c!na=\ResetParagraphNumber\blanko,
\c!optie=\Moduletype]
@@ -243,7 +244,7 @@
\startmode[nocode]
-% \definieerbuffer[definition] % ignore
+% \definieerbuffer[definition] % ignore
\long\def\startdefinition#1\stopdefinition{}
@@ -286,18 +287,18 @@
{}%
\EveryLine
{\ShowParagraphNumberA}%
- \EveryPar
+ \EveryPar
{\vadjust{\nobreak}%
\ShowParagraphNumberB}}
-\EveryPar % skip one
- {\EveryPar
+\EveryPar % skip one
+ {\EveryPar
{\doglobal\newcounter\NOfMarginLines}}
\def\dodomargeaanduidingen[#1]#2%
{\def\docommando##1%
{\indent\hbox
- {\ifx#2\relax
+ {\ifx#2\relax
\index{##1}%
\else
\index{#2{##1}}%
@@ -337,17 +338,17 @@
\def\doshowelements[#1][#2]
{\bgroup
- \processXMLbuffer
- \typebuffer
+ \processXMLbuffer
+ \typebuffer
\setupcolors[\c!status=\v!stop]
\showXSDcomponent[#1][#2]
\egroup}
-% \macros{a,b}
-% \macros{a,b}{b}
-% \macros[a]{a,b}{b}
+% \macros{a,b}
+% \macros{a,b}{b}
+% \macros[a]{a,b}{b}
-% weg ermee
+% weg ermee
\definieeralineas [interface] [\c!n=2]
\stelalineasin [interface] [1] [\c!breedte=4cm]
@@ -421,7 +422,7 @@
\HL
\stoptabel
\stopbuffer
-
+
\startbuffer[lang-d]
\starttabel[|l|l|]
\HL
@@ -462,18 +463,18 @@
\language[#1]%
\let\normalbar=|
\starttabel[||||]
- \HL
+ \HL
\VL \THREE{\bf subsentence symbol and quotes} \VL\SR
\HL
\VL \citaat{#3 #4} \VL \citeer{#2} \VL \let|=\normalbar |<||<|#3|>|#4|>| \VL\SR
\VL \citaat{#3 #4} \VL \citeer{#2} \VL |<||<|#3|>|#4|>| \VL\SR
- \HL
+ \HL
\stoptabel
\egroup
\hss}}
-
+
\gdef\doShowAllLanguageValues [#1] [#2] #3 #4
- {\vbox
+ {\vbox
{\ShowTextsValues [#1] [#2]
\vskip2em
\ShowLanguageValues [#1] [#2] #3 #4 }
@@ -487,12 +488,12 @@
\protect
-%D Command references:
+%D Command references:
\input setupa
\input setupb
-\unprotect
+\unprotect
\def\showsetup%
{\doglobal\newcounter\CurrentArgument
@@ -503,4 +504,4 @@
[\c!achtergrond=\v!raster,
\c!kader=\v!uit]
-\protect \endinput
+\protect \endinput
diff --git a/tex/context/base/setupa.tex b/tex/context/base/setupa.tex
index 6df0fb376..843a531d3 100644
--- a/tex/context/base/setupa.tex
+++ b/tex/context/base/setupa.tex
@@ -96,7 +96,7 @@ sectionnumber: Abschnittnummer
name: jmeno
text: text
section: sekce
-sectionnumber: sekcecislo % ?
+sectionnumber: sekcecislo % ?
singular: jmeno v singularu
plural: jmeno v pluralu
matrix: n*m
@@ -144,7 +144,7 @@ sectionnumber: numero sezione
name: nume
text: text
section: sectiune
- sectionnumber: sectiunenumar % ?
+ sectionnumber: sectiunenumar % ?
singular: nume singular
plural: nume pluram
matrix: n*m
@@ -165,12 +165,12 @@ sectionnumber: numero sezione
% Enkele letter-instellingen
-\def\setupnumfont {}
-\def\setuptxtfont {\tttf}
-\def\setupvarfont {\ttsl}
-\def\setupoptfont {\ttsl}
-\def\setupalwcolor {}
-\def\setupoptcolor {darkgray}
+\def\setupnumfont {}
+\def\setuptxtfont {\tttf}
+\def\setupvarfont {\ttsl}
+\def\setupoptfont {\ttsl}
+\def\setupalwcolor{}
+\def\setupoptcolor{darkgray}
% Het onderstaande is nodig om \type af te handelen in
% argumenten. Standaard gebeurt dit niet.
@@ -194,7 +194,7 @@ sectionnumber: numero sezione
\gdef \verbatimsetupvariablepart{\def<<##1>>{\stpr{##1}}}
\gdef \protectsetupvariablepart{\def<<##1>>{\string\stpv{##1}}}
\gdef\visualizesetupvariablepart{\def<<##1>>{\stpv{##1}}}
-\gdef \naturalsetupvariablepart{\def<<##1>>{\string<\string<##1\string>\string>}}
+\gdef \naturalsetupvariablepart{\def<<##1>>{\string<\string<##1\string>\string>}}
\egroup
@@ -267,14 +267,14 @@ sectionnumber: numero sezione
\unprotect
-\def\@@setup {@@setup}
-\def\c!stp {}
-\def\c!setupref {stp}
-\def\??stp {@@stp}
+\def\@@setup {@@setup}
+\def\c!stp {}
+\def\c!setupref{stp}
+\def\??stp {@@stp}
\def\c!setup!variable!#1{{\setupvarfont\getmessage{setup}{#1}}}
\def\c!setup!command! #1{{\setupvarfont\texescape\getmessage{setup}{command}#1}}
-
+
\def\c!command! {\c!setup!variable!{command}}
\def\c!dimension! {\c!setup!variable!{dimension}}
\def\c!filename! {\c!setup!variable!{file}}
@@ -284,7 +284,7 @@ sectionnumber: numero sezione
\def\c!number! {\c!setup!variable!{number}}
\def\c!reference! {\c!setup!variable!{reference}}
\def\c!plural! {\c!setup!variable!{plural}}
-\def\c!singular! {\c!setup!variable!{singula}}
+\def\c!singular! {\c!setup!variable!{singular}}
\def\c!text! {\c!setup!variable!{text}}
\def\c!formula! {\c!setup!variable!{formula}}
\def\c!font! {\c!setup!variable!{file}}
@@ -334,6 +334,10 @@ sectionnumber: numero sezione
\def\c!wrds! {\breaksetup\leftargument.. \breaksetup\c!dots!\ \breaksetup..\rightargument\breaksetup}
\def\c!par! {\breaksetup\texescape par\breaksetup}
\def\c!opt! #1{{\setupoptfont{#1}}}
+
+\def\c!opt! #1{\ifx#1\c!or!\@EA\c!doropt!\else\@EA\c!noropt!\fi#1}
+\def\c!doropt! #1#2#3{{\setupoptfont{#1#2#3}}}
+\def\c!noropt! #1{{\setupoptfont{#1}}}
\definieerregister
[texmacro]
@@ -368,7 +372,7 @@ sectionnumber: numero sezione
\newcount\v!dotnumber!
-\def\c!dots!%
+\def\c!dots!
{\ifv!numberingdots!
\global\advance\v!dotnumber! by 1\relax
.{\setupnumfont\the\v!dotnumber!}.%
@@ -391,7 +395,7 @@ sectionnumber: numero sezione
\veryraggedright
\noindent
\hangindent=\@@stpbreedte
- \writesetupparbox{\getinterfaceconstant{#1}}%
+ \writesetupparbox{\let\c!setup!variable!\firstofoneargument\getinterfaceconstant{#1}}%
\processcommalist[#2]\dowritesetupparameter
\doifcommonelse{#3}{#2}{}{\underbar{#3}}%
\endgraf
@@ -459,7 +463,7 @@ sectionnumber: numero sezione
\variable[..=..][\getmessage{setup}{see} \inheritsetup{#1}\next#3][]%
\egroup}
-\def\stelsetupin%
+\def\stelsetupin
{\dodoubleargument\getparameters[\??stp]}
\bgroup \catcode`<=\active
@@ -486,7 +490,7 @@ sectionnumber: numero sezione
\def\setsetupreference#1\to#2%
{\bgroup
- \verbatimsetupvariablepart
+ \verbatimsetupvariablepart
\let\subsetup=\subsetupreference
\xdef#2{\c!setupref:#1}%
\egroup}
@@ -497,7 +501,7 @@ sectionnumber: numero sezione
\egroup}
\def\checkparametervalues#1#2#3%
- {\setbox0=\hbox{\getinterfaceconstant{#1}}%
+ {\setbox0=\hbox{\let\c!setup!variable!\firstofoneargument\getinterfaceconstant{#1}}%
\ifdim\wd0\morecharacter\dimen0\relax
\dimen0=\wd0
\fi}
@@ -513,7 +517,7 @@ sectionnumber: numero sezione
[#1]
{\raise.15ex\hbox{$\gobackwardcharacter\hskip.5em\goforwardcharacter$}}}
-\def\dointeractivesetup%
+\def\dointeractivesetup
{\ifv!alwaysinteractive!
\dointeractivesetupsymbol\setupalwcolor
\fi
@@ -545,7 +549,7 @@ sectionnumber: numero sezione
\newcounter\currentsetupnumber
-\def\dosetupreference%
+\def\dosetupreference
{\doifundefinedelse{done::\currentsetupreference}
{\pagereference[\currentsetupnumber]%
\pagereference[\currentsetupreference]%
@@ -591,7 +595,7 @@ sectionnumber: numero sezione
{\let\subsetup=\gobbleoneargument
\redefinesetupconstants
\setuptxtfont\setstrut\strut
- \visualizesetupvariablepart
+ \visualizesetupvariablepart
\writetexcommand{#2}#3%
\ifbreaksetup\hfill\else\hss\fi
\ifnum\@@stpverwijzing>0
@@ -656,7 +660,7 @@ sectionnumber: numero sezione
\egroup
\@@stpna}
-\def\setup%
+\def\setup
{\@@stpvoor
\bgroup
\catcode`\<=\@@active
@@ -665,7 +669,7 @@ sectionnumber: numero sezione
\shortsetupfalse
\dosetup}
-\def\shortsetup%
+\def\shortsetup
{\@@stpvoor
\bgroup
\catcode`\<=\@@active
@@ -674,17 +678,17 @@ sectionnumber: numero sezione
\shortsetuptrue
\dosetup}
-\def\startsetupfile%
+\def\startsetupfile
{\bgroup
\catcode`\<=\active
\unprotect}
-\def\stopsetupfile%
+\def\stopsetupfile
{\protect
\egroup
\endinput}
-\def\startsetup#1\command[#2]#3\type[#4]#5\stopsetup%
+\def\startsetup#1\command[#2]#3\type[#4]#5\stopsetup
{\bgroup
\verbatimsetupvariablepart
\doglobal\increment\currentsetupnumber\relax
@@ -701,7 +705,7 @@ sectionnumber: numero sezione
\expanded{\texcommando[#2*]{#2}}%
\egroup}
-\let\documenteduntilhere=\relax
+\let\documenteduntilhere\relax
\definieerblok [dutch, english, german, czech, italian]
\verbergblokken [dutch, english, german, czech, italian]
@@ -713,12 +717,12 @@ sectionnumber: numero sezione
\c!verwijzing=0,
\c!criterium=\v!gebruikt]
-\def\plaatssetup%
+\def\plaatssetup
{\bgroup
\getvalue{\e!plaats\e!lijstmet texcommandos}
\egroup}
-\def\plaatselkesetup% for fun purposes only
+\def\plaatselkesetup % for fun purposes only
{\bgroup
\stelsetupin[\c!verwijzing=2]%
\setupreferencing[\c!status=\v!stop]%
@@ -729,11 +733,8 @@ sectionnumber: numero sezione
\let\placesetup \plaatssetup
\let\placeeverysetup\plaatselkesetup
-
\bgroup \catcode`\<=\active \def<{\lesscharacter} \egroup
% \showmessage{setup}{1}{} \catcode`\<=\active
-\protect
-
-\endinput
+\protect \endinput \ No newline at end of file
diff --git a/tex/context/base/setupb.tex b/tex/context/base/setupb.tex
index 4d6c35081..3822dad26 100644
--- a/tex/context/base/setupb.tex
+++ b/tex/context/base/setupb.tex
@@ -103,7 +103,7 @@
[\c!val!]
\value
[\s!nl,\s!fr,\s!en,\s!uk,\s!de,\s!es,\s!cz,..]
- [\s!nl]
+ []
\stopsetup
\startsetup
@@ -113,7 +113,7 @@
[\c!val!]
\value
[\s!nl,\s!fr,\s!en,\s!uk,\s!de,\s!es,\s!cz,..]
- [\s!nl]
+ []
\stopsetup
\startsetup
@@ -565,8 +565,6 @@
\type []
\stopsetup
-\doifmode{testrun}{\stopsetupfile}
-
% core-ver
\startsetup
@@ -3840,7 +3838,7 @@
[\c!var!]
\variable
[\c!teken]
- [--,---,-,~,),(,=,/]
+ [--,---,-,~,(,),=,/]
[--]
\stopsetup
@@ -9067,4 +9065,4 @@
[\v!ja]
\stopsetup
-\stopsetupfile
+\stopsetupfile \ No newline at end of file
diff --git a/tex/context/base/setupe.tex b/tex/context/base/setupe.tex
index e7166b2bc..29ef61c61 100644
--- a/tex/context/base/setupe.tex
+++ b/tex/context/base/setupe.tex
@@ -8,8 +8,8 @@
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
\let\wait\relax
@@ -41,9 +41,9 @@
\def\c!twoarguments! {cd:twoarguments}
\def\c!threearguments! {cd:threearguments}
-\def\subsetup#1{*#1} % ?
+\def\subsetup#1{*#1} % ?
-\beginTEX
+\beginTEX
\def\getinterfaceconstant#1%
{\ifinterfacetranslation
@@ -100,7 +100,7 @@
\long\def\doanother#1%
{\dostring{\space\space\space\space}{}{#1\typespec/}
- \let\typespec\empty}
+ \let\typespec\empty}
\long\def\addtypespec#1#2%
{\edef\typespec{\typespec\space#1="#2"}}
@@ -115,41 +115,41 @@
\def\c!vals! {\addtypespec{list}{yes}\dovalvar{keywords}}
\def\c!vars! {\addtypespec{list}{yes}\dovalvar{assignments}}
-\def\c!arg! {\doanother{content}}
-\def\c!cmd! {\doanother{csname}}
+\def\c!arg! {\doanother{content}}
+\def\c!cmd! {\doanother{csname}}
\def\c!dest! {\doanother{reference}}
-\def\c!dis! {\doanother{displaymath}}
-\def\c!fil! {\doanother{file}}
-\def\c!idx! {\doanother{index}}
-\def\c!mat! {\doanother{math}}
-\def\c!nop! {\doanother{nothing}}
-\def\c!pos! {\doanother{position}}
-\def\c!ref! {\doanother{reference}}
-\def\c!trip! {\doanother{triplet}}
-\def\c!wrd! {\doanother{word}}
+\def\c!dis! {\doanother{displaymath}}
+\def\c!fil! {\doanother{file}}
+\def\c!idx! {\doanother{index}}
+\def\c!mat! {\doanother{math}}
+\def\c!nop! {\doanother{nothing}}
+\def\c!pos! {\doanother{position}}
+\def\c!ref! {\doanother{reference}}
+\def\c!trip! {\doanother{triplet}}
+\def\c!wrd! {\doanother{word}}
\def\c!args! {\addtypespec{list}{yes}\c!arg!}
\def\c!dests! {\addtypespec{list}{yes}\c!dest!}
\def\c!idxs! {\addtypespec{list}{yes}\c!idx!}
-\def\c!poss! {\addtypespec{list}{yes}\c!pos!}
-\def\c!refs! {\addtypespec{list}{yes}\c!ref!}
-\def\c!wrds! {\addtypespec{list}{yes}\c!wrd!}
+\def\c!poss! {\addtypespec{list}{yes}\c!pos!}
+\def\c!refs! {\addtypespec{list}{yes}\c!ref!}
+\def\c!wrds! {\addtypespec{list}{yes}\c!wrd!}
\def\c!trips! {\addtypespec{list}{yes}\c!trip!}
\def\c!par! {\addtypespec{delimiter}{par}} % \par
-\def\c!sep! {\addtypespec{separator}{backslash}} % \\
+\def\c!sep! {\addtypespec{separator}{backslash}} % \\
\def\c!stp! {}
-\def\c!repeat! {}
-\def\c!tex! #1{\addtypespec{command}{#1}\doanother{tex}}
+\def\c!repeat! {}
+\def\c!tex! #1{\addtypespec{command}{#1}\doanother{tex}}
\def\c!or! #1#2{\doline{\space\space\space\space<cd:choice>}%
#1#2%
- \doline{\space\space\space\space</cd:choice>}}
+ \doline{\space\space\space\space</cd:choice>}}
-% wrapper
+% wrapper
\def\startsetupfile
- {\immediate\openout\scratchwrite=cont-\currentlanguage.xml
+ {\immediate\openout\scratchwrite=cont-\currentlanguage.xml
\doline{\string<?xml version="1.0"?>}
\doline{}
\dostring{}{}{interface \SETUPnamespace\space name="context"}}
@@ -164,7 +164,7 @@
\bgroup \catcode`\<=\@@other
\unexpanded\gdef\dostring#1#2#3%
- {\immediate\write\scratchwrite{#1<#2cd:#3>}} % todo
+ {\immediate\write\scratchwrite{#1<#2cd:#3>}} % todo
\gdef\doline#1%
{\immediate\write\scratchwrite{#1}}
@@ -186,26 +186,26 @@
{\def\currenttype{#1}}
\long\def\dovalue[#1]#2[#3]%
- {\advance\scratchcounter 1
+ {\advance\scratchcounter 1
\ifnum\scratchcounter=\currentwhatever\relax
\processcommalist[#1]{\doval{#3}{\space\space\space\space\space\space}}
\fi}
\newif\ifinvariables
-\long\def\dovariable[#1]#2[#3]#4[#5]% comes as sequence
- {\ifinvariables\else\advance\scratchcounter 1 \fi
+\long\def\dovariable[#1]#2[#3]#4[#5]% comes as sequence
+ {\ifinvariables\else\advance\scratchcounter 1 \fi
\ifnum\scratchcounter=\currentwhatever\relax
\invariablestrue
\dostring{\space\space\space\space\space\space}{}%
{parameter name="\getinterfaceconstant{#1}"}
\processcommalist[#3]
- {\doval{}{\space\space\space\space\space\space\space\space}}
+ {\doval{}{\space\space\space\space\space\space\space\space}}
\dostring{\space\space\space\space\space\space}{/}{parameter}
\fi}
\long\def\doinheritvalues[#1]#2[#3]%
- {\advance\scratchcounter 1
+ {\advance\scratchcounter 1
\ifnum\scratchcounter=\currentwhatever\relax
\dostring{\space\space\space\space\space\space}{}{inherit name="#1"/}
\fi}
@@ -223,7 +223,7 @@
\long\def\noinheritvalues [#1]#2[#3]{}
\long\def\noinheritvariables[#1]#2[#3]{}
-\bgroup \catcode`\<=\active
+\bgroup \catcode`\<=\active
\gdef\cleanupcurrentname{\def<<##1>>{##1}}
@@ -241,12 +241,12 @@
\egroup
-\newif\ifsetupisenvironment
+\newif\ifsetupisenvironment
\long\def\startsetup#1\stopsetup
{\bgroup
\doline{}
- % zero pass
+ % zero pass
\long\def\currentsetup{#1}
% first pass
\let\command \docommand
@@ -269,19 +269,24 @@
{} % \def\envattr{ type="standalone"}}
\convertargument<<\to\asciic
\convertcommand\currentname\to\asciid
- \findvariablename\currentname
+ \findvariablename\currentname
\ExpandBothAfter\doifinstringelse{\asciic}{\asciid}
- {\edef\envattr{\envattr\space generated="yes"}}
- {} % \edef\envattr{\envattr\space generated="no"}}
+ {\edef\envattr{\envattr\space generated="yes"}}
+ {} % \edef\envattr{\envattr\space generated="no"}}
\splitcurrentname
\cleanupcurrentname
+ % \ifx\envattr\empty
+ % \message{\letterbackslash\currentname}
+ % \else
+ % \message{\letterbackslash\e!start\currentname}
+ % \fi
\doifinsetelse{\currentname}{remark,menubutton,marking*figure,referring*figure}{%
\doline{<!-- \currentname\space skipped -->}%
}{%
\dostring{}{}{command name="\currentname"\envattr}
\def\next##1%
{\ifx##1\empty
- % skip
+ % skip
\else\ifx##1\varname
\dostring{\space\space\space\space}{}{variable value="##1"/}
\else
diff --git a/tex/context/base/supp-num.tex b/tex/context/base/supp-num.tex
index 4132341b3..882196750 100644
--- a/tex/context/base/supp-num.tex
+++ b/tex/context/base/supp-num.tex
@@ -2,14 +2,14 @@
%D [ file=supp-num,
%D version=1998.05.15,
%D title=\CONTEXT\ Support Macros,
-%D subtitle=Number (Digit) Handling,
+%D subtitle=Number (Digit) Handling,
%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.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
\writestatus{loading}{Context Support Macros / Number (Digit) Handling}
@@ -22,63 +22,63 @@
%D normalizes number patterns depending on the language set.
%D
%D \starttypen
-%D This will never be a \digits{1.000.000} seller.
+%D This will never be a \digits{1.000.000} seller.
%D \stoptypen
%D
%D or
%D
%D \starttypen
-%D I will never grow longer than \digits 1.86 \Meter.
+%D I will never grow longer than \digits 1.86 \Meter.
%D \stoptypen
%D
%D The different modes are shown in:
%D
%D \startbuffer
-%D \setdigitmode 1 \digits 12.345,90 \digits 12.345.000 \digits 1,23
-%D \setdigitmode 2 \digits 12.345,90 \digits 12.345.000 \digits 1,23
-%D \setdigitmode 3 \digits 12.345,90 \digits 12.345.000 \digits 1,23
-%D \setdigitmode 4 \digits 12.345,90 \digits 12.345.000 \digits 1,23
-%D \setdigitmode 5 \digits 12.345,90 \digits 12.345.000 \digits 1,23
-%D \setdigitmode 6 \digits 12.345,90 \digits 12.345.000 \digits 1,23
+%D \setdigitmode 1 \digits 12.345,90 \digits 12.345.000 \digits 1,23
+%D \setdigitmode 2 \digits 12.345,90 \digits 12.345.000 \digits 1,23
+%D \setdigitmode 3 \digits 12.345,90 \digits 12.345.000 \digits 1,23
+%D \setdigitmode 4 \digits 12.345,90 \digits 12.345.000 \digits 1,23
+%D \setdigitmode 5 \digits 12.345,90 \digits 12.345.000 \digits 1,23
+%D \setdigitmode 6 \digits 12.345,90 \digits 12.345.000 \digits 1,23
%D \stopbuffer
%D
%D \typebuffer
%D
-%D This is typset as:
+%D This is typset as:
%D
%D \startregels
%D \haalbuffer
%D \stopregels
%D
-%D The sign can be typeset as is or within the space of a
-%D digit.
+%D The sign can be typeset as is or within the space of a
+%D digit.
%D
%D \startbuffer
-%D \setdigitsign 0 \digits +12.345,90
-%D \setdigitmode 1 \digits +12.345,90
-%D \setdigitmode 2 \digits +12.345,90
-%D \setdigitmode 3 \digits +12.345,90
+%D \setdigitsign 0 \digits +12.345,90
+%D \setdigitmode 1 \digits +12.345,90
+%D \setdigitmode 2 \digits +12.345,90
+%D \setdigitmode 3 \digits +12.345,90
%D \stopbuffer
%D
%D \typebuffer
%D
-%D This is typset as:
+%D This is typset as:
%D
%D \startregels
%D \haalbuffer
%D \stopregels
\chardef\digitoutputmode=1 % 0..6
-\chardef\digitsignmode =0 % 0..3
+\chardef\digitsignmode =0 % 0..3
\def\setdigitmode{\chardef\digitoutputmode}
\def\setdigitsign{\chardef\digitsignmode}
%D The digit modes are:
-%D
+%D
%D \startopsomming[opelkaar]
%D \som periods \& comma
-%D \som commas \& period
+%D \som commas \& period
%D \som thinmuskips \& comma
%D \som thinmuskips \& period
%D \som thickmuskips \& comma
@@ -86,12 +86,12 @@
%D \stopopsomming
\let\collecteddigits \empty \chardef\digitinputmode =1
-\let\saveddigits \empty \chardef\skipdigit =0
+\let\saveddigits \empty \chardef\skipdigit =0
\let\savedpowerdigits\empty \chardef\powerdigits =0
-%D The first stage of the \type {\digit} macro takes care of
-%D the grouped call, the other branch handles the fuzzy
-%D delimited calls.
+%D The first stage of the \type {\digit} macro takes care of
+%D the grouped call, the other branch handles the fuzzy
+%D delimited calls.
% \unexpanded\def\digits
% {\bgroup\let~@\doifnextcharelse\bgroup\dodigits\grabdigit}
@@ -112,22 +112,22 @@
\def\grabdigit
{\futurelet\next\scandigit}
-%D Watch the test for \type {\nextobeyedline}, because the
-%D endofline token can be \type {\def'd}, not \type {\let}'d,
-%D we need to do an indirect test (see \type {verb-ini.tex})
-%D for details.
-%D
-%D \starttypen
+%D Watch the test for \type {\nextobeyedline}, because the
+%D endofline token can be \type {\def'd}, not \type {\let}'d,
+%D we need to do an indirect test (see \type {verb-ini.tex})
+%D for details.
+%D
+%D \starttypen
%D \def ^^M{\obeyedline}
%D \def\nextbeyedline{\obeyedline}
-%D \stoptypen
-
-\ifx\normalmathshift\undefined \let\normalmathshift=$ \fi
+%D \stoptypen
+
+\ifx\normalmathshift\undefined \let\normalmathshift=$ \fi
\def\scandigit
{\ifx\next\blankspace
\let\next\handledigits
- \else\ifx\next\nextobeyedline % the indirect one
+ \else\ifx\next\nextobeyedline % the indirect one
\let\next\handledigits
\else\ifx\next\bgroup
\let\next\handledigits
@@ -142,7 +142,7 @@
%D We store the power||of||ten (to be signaled by \type {^},
%D \type {e} or~\type {E}) in a seperate macro so that we can
-%D typeset it in superscript. The space placeholders are
+%D typeset it in superscript. The space placeholders are
%D replaced by a \type {@}.
\def\savedigit#1#2%
@@ -179,7 +179,7 @@
\let\handlemathdigits\firstofoneargument
\let\handletextdigits\mathematics
-\def\handledigits
+\def\handledigits
{%\ifcase\powerdigits
% \edef\collecteddigits{\collecteddigits\saveddigits}%
%\else
@@ -192,8 +192,8 @@
\fi
\egroup}
-%D Although we could do with one pass, a second pass for
-%D handling the stored sequence is more readable.
+%D Although we could do with one pass, a second pass for
+%D handling the stored sequence is more readable.
\def\dohandledigits
{\mathcode`\,="013B \mathcode`\.="013A % pretty hard coded
@@ -218,9 +218,9 @@
\egroup}
-%D The signs can be made smaller and sqeezed into the width
+%D The signs can be made smaller and sqeezed into the width
%D of a digit. Watch the \type {\fontdimen22} trickery (this
-%D font related register stored the math axis).
+%D font related register stored the math axis).
% \def\scandigits#1%
% {\if#1.\doscandigit1\chardef\skipdigit0\else
@@ -243,10 +243,10 @@
% \def\digitnop
% {\hphantom{0}\chardef\skipdigit1}
-% 0,=
-% 0,== second = results in delta(00,=)
-% 0,- is invalid, should be = but we try to catch this error
-% 0,-- is invalid, but catched as ==
+% 0,=
+% 0,== second = results in delta(00,=)
+% 0,- is invalid, should be = but we try to catch this error
+% 0,-- is invalid, but catched as ==
\def\digitzeroamount
{\digitsgn\zeroamount
@@ -262,7 +262,7 @@
\if#1@\digitnop \else
\if#1_\digitnop \else
\if#1/\digitsgn{\hphantom{+}}\chardef\skipdigit0\else
- \if#1-\ifcase\digitsepbox\digitsgn-\else
+ \if#1-\ifcase\skipdigit\digitsgn-\else
\box\digitsepbox\digitzeroamount \fi\chardef\skipdigit0\else
\if#1+\digitsgn+\chardef\skipdigit0\else
\if#1=\box\digitsepbox\digitzeroamount \chardef\skipdigit0\else
@@ -282,19 +282,19 @@
\fi
\chardef\skipdigit0\relax}
-% strange, does not work
+% strange, does not work
%
% \def\digitnop
% {\hphantom{\box\digitsepbox}%
% \hphantom{0}\chardef\skipdigit1\relax}
%
-% while this works
+% while this works
\def\digitnop
{\hbox{\hphantom{\box\digitsepbox}}%
\hphantom{0}\chardef\skipdigit1\relax}
-% but this doesn't
+% but this doesn't
%
% \def\digitnop
% {\hphantom{\box\digitsepbox0}%
@@ -315,30 +315,30 @@
\digitsgn\scriptscriptfont\scriptscriptstyle\fi}%
\fi}
-\ifx\undefined\zeroamount \def\zeroamount{-} \fi
-\ifx\undefined\positive \def\positive {+} \fi
-\ifx\undefined\negative \def\negative {-} \fi
+\ifx\undefined\zeroamount \def\zeroamount{-} \fi
+\ifx\undefined\positive \def\positive {+} \fi
+\ifx\undefined\negative \def\negative {-} \fi
%D The digit parser handles a bunch of special characters as
%D well as different formats. We strongly suggest you to use
-%D the grouped call.
-%D
+%D the grouped call.
+%D
%D \starttabulatie[|l|l|l|]
-%D \NC \type{.} \NC , . \NC comma or period \NC \NR
-%D \NC \type{,} \NC , . \NC comma or period \NC \NR
-%D \NC \type{@} \NC \NC invisible space \NC \NR
-%D \NC \type{_} \NC \NC invisible space \NC \NR
-%D \NC \type{/} \NC \NC invisible sign \NC \NR
-%D \NC \type{-} \NC $-$ \NC minus sign \NC \NR
-%D \NC \type{+} \NC $+$ \NC plus sign \NC \NR
-%D \NC \type{s} \NC \NC invisible high sign \NC \NR
-%D \NC \type{p} \NC $\positive$ \NC high plus sign \NC \NR
-%D \NC \type{m} \NC $\negative$ \NC high minus sign \NC \NR
-%D \NC \type{n} \NC $\negative$ \NC high minus (negative) sign \NC \NR
-%D \NC \type{=} \NC $\zeroamount$ \NC zero padding \NC \NR
+%D \NC \type{.} \NC , . \NC comma or period \NC \NR
+%D \NC \type{,} \NC , . \NC comma or period \NC \NR
+%D \NC \type{@} \NC \NC invisible space \NC \NR
+%D \NC \type{_} \NC \NC invisible space \NC \NR
+%D \NC \type{/} \NC \NC invisible sign \NC \NR
+%D \NC \type{-} \NC $-$ \NC minus sign \NC \NR
+%D \NC \type{+} \NC $+$ \NC plus sign \NC \NR
+%D \NC \type{s} \NC \NC invisible high sign \NC \NR
+%D \NC \type{p} \NC $\positive$ \NC high plus sign \NC \NR
+%D \NC \type{m} \NC $\negative$ \NC high minus sign \NC \NR
+%D \NC \type{n} \NC $\negative$ \NC high minus (negative) sign \NC \NR
+%D \NC \type{=} \NC $\zeroamount$ \NC zero padding \NC \NR
%D \stoptabulatie
%D
-%D These triggers are used in the following examples.
+%D These triggers are used in the following examples.
%D
%D \startbuffer
%D \digits 12
@@ -365,21 +365,21 @@
%D \digits s123.222,00e-12
%D \digits p123.222,00e-12
%D \stopbuffer
-%D
+%D
%D \typebuffer
-%D
+%D
%D \startregels
%D \haalbuffer
%D \stopregels
-%D \macros
+%D \macros
%D {Digits}
%D
%D We also permit:
\let\Digits=\digits
-%D These macros are complicated by the fact that we also
+%D These macros are complicated by the fact that we also
%D have to support cases like:
%D
%D \starttypen
@@ -391,9 +391,9 @@
%D \stoptypen
%D
%D The latter case shows us that trailing non digits are to
-%D be passed untreated.
+%D be passed untreated.
%D
-%D Another interesting case is:
+%D Another interesting case is:
%D
%D \starttypen
%D \digits 123.222,00^10
@@ -416,7 +416,7 @@
\def\digittemplate #1 %
{\chardef\digitinputmode\zerocount
- \handletokens#1\with\scandigittemplate}
+ \handletokens#1\with\scandigittemplate}
\def\scandigittemplate#1%
{\if #1.\ifcase\digitinputmode\chardef\digitinputmode1 \fi% period
diff --git a/tex/context/base/symb-eur.tex b/tex/context/base/symb-eur.tex
index 2adbd874d..89ec60c9a 100644
--- a/tex/context/base/symb-eur.tex
+++ b/tex/context/base/symb-eur.tex
@@ -8,8 +8,8 @@
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
\definefontsynonym [EuroSerif] [eurose]
\definefontsynonym [EuroSerifBold] [euroseb]
@@ -33,18 +33,18 @@
\definefontsynonym [EuroMonoBoldSlanted] [euromobi]
\loadmapfile [original-adobe-euro.map]
-
+
\definesymbol [euro] [\getglyph{Euro}{\char160}]
\startencoding[default]
\definecharacter texteuro {\symbol[euro]}
-\stopencoding
+\stopencoding
\unexpanded\def\euro{\doiftextelse\texteuro\texteuro{\symbol[euro]}}
-% ok for one font series, but not for mixed sets
+% ok for one font series, but not for mixed sets
%
% \unexpanded\def\euro
% {\doiftextelse \texteuro \texteuro
@@ -53,14 +53,14 @@
%D The next table shows the complete set of symbols:
%D
%D \starttabulate[|l|c|c|c|c|c|c|]
-%D \NC \NC \tex{tf} \NC \tex{bf} \NC \tex{sl}
+%D \NC \NC \tex{tf} \NC \tex{bf} \NC \tex{sl}
%D \NC \tex{it} \NC \tex{bs} \NC \tex{bi} \NC\NR
-%D \NC \rm Serif \NC \rm\tf\euro \NC \rm\bf\euro \NC \rm\sl\euro
+%D \NC \rm Serif \NC \rm\tf\euro \NC \rm\bf\euro \NC \rm\sl\euro
%D \NC \rm\it\euro \NC \rm\bs\euro \NC \rm\bi\euro \NC\NR
-%D \NC \ss Sans \NC \ss\tf\euro \NC \ss\bf\euro \NC \ss\sl\euro
+%D \NC \ss Sans \NC \ss\tf\euro \NC \ss\bf\euro \NC \ss\sl\euro
%D \NC \ss\it\euro \NC \ss\bs\euro \NC \ss\bi\euro \NC\NR
-%D \NC \tt Mono \NC \tt\tf\euro \NC \tt\bf\euro \NC \tt\sl\euro
-%D \NC \tt\it\euro \NC \tt\bs\euro \NC \tt\bi\euro \NC\NR
+%D \NC \tt Mono \NC \tt\tf\euro \NC \tt\bf\euro \NC \tt\sl\euro
+%D \NC \tt\it\euro \NC \tt\bs\euro \NC \tt\bi\euro \NC\NR
%D \stoptabulate
-\endinput
+\endinput \ No newline at end of file
diff --git a/tex/context/base/symb-glm.tex b/tex/context/base/symb-glm.tex
index 89b1de730..43d729e5a 100644
--- a/tex/context/base/symb-glm.tex
+++ b/tex/context/base/symb-glm.tex
@@ -8,13 +8,13 @@
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
%D Watch the \type {met} instead of \type {mot}!
\loadmapfile [pl0-ams-cmr]
-
+
\definefontsynonym [GuilSerif] [plr10] [encoding=pl0]
\definefontsynonym [GuilSerifBold] [plbx10] [encoding=pl0]
\definefontsynonym [GuilSerifItalic] [plti10] [encoding=pl0]
@@ -39,7 +39,7 @@
\definesymbol [leftguillemet] [\getglyph{Guil}{\char174}]
\definesymbol [rightguillemet] [\getglyph{Guil}{\char175}]
-%D A strange place, but okay:
+%D A strange place, but okay:
\startencoding [default]
@@ -51,4 +51,4 @@
\stopencoding
-\endinput
+\endinput \ No newline at end of file
diff --git a/tex/context/base/syst-gen.tex b/tex/context/base/syst-gen.tex
index 58ca5f964..cbf7b6ce5 100644
--- a/tex/context/base/syst-gen.tex
+++ b/tex/context/base/syst-gen.tex
@@ -151,18 +151,18 @@
\ifx\protect\undefined
\def\protect{\message{<too much protection>}}
-\else
- % a simple version is already defined
+\else
+ % a simple version is already defined
\fi
-\let\normalprotect=\protect % only for latex
+\let\normalprotect=\protect % only for latex
%D Although we don't need the \type{%} after commands that
%D don't take arguments, unless lines are obeyed, I decided
%D to put it there as a reminder. I only mention this once.
\chardef\protectionthreshold=2
-%chardef\protectionthreshold=0 % for testing
+%chardef\protectionthreshold=0 % for testing
% \def\unprotect
% {\ifcase\protectionlevel
@@ -179,7 +179,7 @@
% \ifnum\protectionlevel>\protectionthreshold
% \message{<unprotect \the\protectionlevel>}%
% \fi}
-%
+%
% \def\doprotect%
% {\ifnum\protectionlevel=1
% \doprotectcharacters
@@ -209,8 +209,8 @@
\fi
\setprotectedcharacters
\advance\protectionlevel 1
- \ifnum\protectionlevel>\protectionthreshold
- \reportunprotection
+ \ifnum\protectionlevel>\protectionthreshold
+ \reportunprotection
\fi}
\def\doprotect
@@ -220,7 +220,7 @@
\let\protect\normalprotect
\fi
\ifnum\protectionlevel>\protectionthreshold
- \reportprotection
+ \reportprotection
\fi
\advance\protectionlevel -1 }
@@ -228,33 +228,33 @@
\def\reportprotection {\message{<protect \protectionstate>}}
\def\reportprotectionstate{\message{<protectionstate \protectionstate>}}
-\def\protectionstate
+\def\protectionstate
{\the\protectionlevel
\ifcase\protectionthreshold
- :\space
+ :\space
@=\the\catcode`@\space\space
!=\the\catcode`!\space\space
?=\the\catcode`?%
\fi}
-\ifx\everyeof\undefined
+\ifx\everyeof\undefined
\let\checkprotection\relax
\else
-
+
\def\checkprotection
{\everyeof{\writestatus{protection}{state: \protectionstate}}}
-\fi
+\fi
%D Now it is defined, we can make use of this very useful
%D macro.
\unprotect
-%D So, now we can redefine a previously defined macro as
-%D follows:
+%D So, now we can redefine a previously defined macro as
+%D follows:
\def\setprotectedcharacters
{\catcode`@\@@letter
@@ -337,7 +337,7 @@
\newcount\!!countc \toksdef\!!toksc=4 \dimendef\!!dimenc= 4 \chardef\!!boxc=4
\newcount\!!countd \toksdef\!!toksd=6 \dimendef\!!dimend= 6 \chardef\!!boxd=6
\newcount\!!counte \toksdef\!!tokse=8 \dimendef\!!dimene= 8 \chardef\!!boxe=8
-\newcount\!!countf \dimendef\!!dimenf=10
+\newcount\!!countf \dimendef\!!dimenf=10
\dimendef\!!dimeng=12
\dimendef\!!dimenh=14
\dimendef\!!dimeni=16
@@ -351,12 +351,12 @@
\newdimen\!!widthb \newdimen\!!heightb \newdimen\!!depthb
\newdimen\!!widthc \newdimen\!!heightc \newdimen\!!depthc
-\newif\if!!donea \newif\if!!doneb \newif\if!!donec
-\newif\if!!doned \newif\if!!donee \newif\if!!donef
+\newif\if!!donea \newif\if!!doneb \newif\if!!donec
+\newif\if!!doned \newif\if!!donee \newif\if!!donef
\ifx \z@\undefined \else \let\zeropoint\z@ \fi
\ifx \@ne\undefined \else \let\plusone \@ne \fi
-\ifx\m@ne\undefined \else \let\minusone \m@ne \fi
+\ifx\m@ne\undefined \else \let\minusone \m@ne \fi
\ifx\zeropoint\undefined \csname newdimen\endcsname\zeropoint \fi % plain
\ifx\plusone \undefined \chardef\plusone =1 \fi
@@ -364,15 +364,15 @@
\ifx\plusthree\undefined \chardef\plusthree=3 \fi
\ifx\minusone \undefined \count\minusone \minusone=-1 \fi
-\ifx\@m\undefined \else \let\plusthousand \@m \fi
-\ifx\@M\undefined \else \let\plusttenhousand\@M \fi
+\ifx\@m\undefined \else \let\plusthousand \@m \fi
+\ifx\@M\undefined \else \let\plusttenhousand\@M \fi
-\ifx\plusten \undefined \mathchardef\plusten = 10 \fi
-\ifx\plushundred \undefined \mathchardef\plushundred = 100 \fi
-\ifx\plusthousand \undefined \mathchardef\plusthousand = 1000 \fi
-\ifx\plustenthousand\undefined \mathchardef\plustenthousand=10000 \fi
+\ifx\plusten \undefined \mathchardef\plusten = 10 \fi
+\ifx\plushundred \undefined \mathchardef\plushundred = 100 \fi
+\ifx\plusthousand \undefined \mathchardef\plusthousand = 1000 \fi
+\ifx\plustenthousand\undefined \mathchardef\plustenthousand=10000 \fi
-\newcount\zerocount
+\newcount\zerocount
%D \macros
%D {s!,c!,e!,p!,v!,@@,??}
@@ -419,7 +419,7 @@
%D inside the argument. Later on we will meet some more clever
%D alternatives to this command.
-\long\def\@@expanded{} % always long; global (less restores)
+\long\def\@@expanded{} % always long; global (less restores)
\long\def\expanded#1%
{\long\xdef\@@expanded{\noexpand#1}\@@expanded}
@@ -427,7 +427,7 @@
%D \macros
%D {safeexpanded,everysafeexpanded}
%D
-%D In addition we provide:
+%D In addition we provide:
\newtoks\everysafeexpanded
@@ -449,8 +449,8 @@
\endgroup
\global\let#1\@@expanded}
-%D You can append protective measures to the token register if
-%D needed, as we will do later.
+%D You can append protective measures to the token register if
+%D needed, as we will do later.
%D \macros
%D {expandoneargafter,expandtwoargsafter}
@@ -523,7 +523,7 @@
%D {\next}.
\long\def\doifnextcharelse#1#2#3% #1 should not be {} !
- {\let\charactertoken=#1% = needed here
+ {\let\charactertoken=#1% = needed here
\def\!!stringa{#2}%
\def\!!stringb{#3}%
\futurelet\nexttoken\inspectnextcharacter}
@@ -536,7 +536,7 @@
\else
\@EAEAEA\!!stringb
\fi\fi}
-
+
%\let\endoflinetoken=^^M
%
%\long\def\reinspectaftercharacter#1%
@@ -621,7 +621,7 @@
%D $300\times4=1200$ bytes of format file on a 32~bit
%D system. So:
-\def\globallet{\global\let} \let\glet\globallet
+\def\globallet{\global\let} \let\glet\globallet
%D \macros
%D {donottest,unexpanded}
@@ -844,13 +844,13 @@
%D
%D When this module was optimized, timing showed that the
%D next alternative can be upto twice as fast, especially when
-%D longer arguments are used. Watch how we reach over the
-%D \type {\else} and \type {\fi}: this way they cannot get
-%D into the way (and we can avoid those \type {\next}
-%D hacks); I started using this method after I did some
-%D speed optimization tests in the xtag modules; the
-%D efficiency of such hacks depends on the length of the
-%D argument etc. etc.)
+%D longer arguments are used. Watch how we reach over the
+%D \type {\else} and \type {\fi}: this way they cannot get
+%D into the way (and we can avoid those \type {\next}
+%D hacks); I started using this method after I did some
+%D speed optimization tests in the xtag modules; the
+%D efficiency of such hacks depends on the length of the
+%D argument etc. etc.)
\beginTEX
@@ -861,32 +861,32 @@
{\let\donottest\dontprocesstest
\expandafter\ifx\csname#1\endcsname\relax}
-\def\doifundefinedelse#1%
+\def\doifundefinedelse#1%
{\p!doifundefined{#1}%
- \let\donottest\doprocesstest\@EA\firstoftwoarguments
+ \let\donottest\doprocesstest\@EA\firstoftwoarguments
\else
- \let\donottest\doprocesstest\@EA\secondoftwoarguments
+ \let\donottest\doprocesstest\@EA\secondoftwoarguments
\fi}
-\def\doifdefinedelse#1%
+\def\doifdefinedelse#1%
{\p!doifundefined{#1}%
- \let\donottest\doprocesstest\@EA\secondoftwoarguments
+ \let\donottest\doprocesstest\@EA\secondoftwoarguments
\else
- \let\donottest\doprocesstest\@EA\firstoftwoarguments
+ \let\donottest\doprocesstest\@EA\firstoftwoarguments
\fi}
-\def\doifundefined#1%
+\def\doifundefined#1%
{\p!doifundefined{#1}%
- \let\donottest\doprocesstest\@EA\firstofoneargument
+ \let\donottest\doprocesstest\@EA\firstofoneargument
\else
- \let\donottest\doprocesstest\@EA\gobbleoneargument
+ \let\donottest\doprocesstest\@EA\gobbleoneargument
\fi}
-\def\doifdefined#1%
+\def\doifdefined#1%
{\p!doifundefined{#1}%
- \let\donottest\doprocesstest\@EA\gobbleoneargument
+ \let\donottest\doprocesstest\@EA\gobbleoneargument
\else
- \let\donottest\doprocesstest\@EA\firstofoneargument
+ \let\donottest\doprocesstest\@EA\firstofoneargument
\fi}
\endTEX
@@ -900,33 +900,33 @@
{\edef\p!defined{#1}%
\unless\ifcsname\detokenize\@EA{\p!defined}\endcsname}
-\def\doifundefinedelse#1%
+\def\doifundefinedelse#1%
{\edef\p!defined{#1}%
- \ifcsname\detokenize\@EA{\p!defined}\endcsname
+ \ifcsname\detokenize\@EA{\p!defined}\endcsname
\expandafter\secondoftwoarguments
\else
\expandafter\firstoftwoarguments
\fi}
-\def\doifdefinedelse#1%
+\def\doifdefinedelse#1%
{\edef\p!defined{#1}%
- \ifcsname\detokenize\@EA{\p!defined}\endcsname
+ \ifcsname\detokenize\@EA{\p!defined}\endcsname
\expandafter\firstoftwoarguments
\else
\expandafter\secondoftwoarguments
\fi}
-\def\doifundefined#1%
+\def\doifundefined#1%
{\edef\p!defined{#1}%
- \ifcsname\detokenize\@EA{\p!defined}\endcsname
+ \ifcsname\detokenize\@EA{\p!defined}\endcsname
\expandafter\gobbleoneargument
\else
\expandafter\firstofoneargument
\fi}
-\def\doifdefined#1%
+\def\doifdefined#1%
{\edef\p!defined{#1}%
- \ifcsname\detokenize\@EA{\p!defined}\endcsname
+ \ifcsname\detokenize\@EA{\p!defined}\endcsname
\expandafter\firstofoneargument
\else
\expandafter\gobbleoneargument
@@ -946,14 +946,14 @@
\beginTEX
-\def\letbeundefined#1%
+\def\letbeundefined#1%
{\expandafter\let\csname#1\endcsname\relax}
\endTEX
\beginETEX \undefined
-\def\letbeundefined#1% potential stack buildup when used \global
+\def\letbeundefined#1% potential stack buildup when used \global
{\expandafter\let\csname#1\endcsname\undefined}
\endETEX
@@ -1011,17 +1011,17 @@
\donefalse
\fi}
-\def\doifalldefinedelse#1%
+\def\doifalldefinedelse#1%
{\begingroup
\let\donottest\dontprocesstest
\donetrue
\processcommalist[#1]\docheckonedefined
\ifdone
\endgroup\let\donottest\doprocesstest
- \expandafter\firstoftwoarguments
+ \expandafter\firstoftwoarguments
\else
\endgroup\let\donottest\doprocesstest
- \expandafter\secondoftwoarguments
+ \expandafter\secondoftwoarguments
\fi}
\endTEX
@@ -1033,11 +1033,11 @@
\donefalse
\fi}
-\def\doifalldefinedelse#1%
+\def\doifalldefinedelse#1%
{\begingroup
\donetrue \processcommalist[#1]\docheckonedefined
\ifdone
- \endgroup\expandafter\firstoftwoarguments
+ \endgroup\expandafter\firstoftwoarguments
\else
\endgroup\expandafter\secondoftwoarguments
\fi}
@@ -1094,7 +1094,7 @@
% \ifx\!!stringa\!!stringb
% #3%
% \fi}
-%
+%
% \long\def\doifnot#1#2#3%
% {\let\donottest\dontprocesstest
% \edef\!!stringa{#1}%
@@ -1104,7 +1104,7 @@
% \else
% #3%
% \fi}
-%
+%
% \long\def\doifelse#1#2#3#4%
% {\let\donottest\dontprocesstest
% \edef\!!stringa{#1}%
@@ -1116,8 +1116,8 @@
% #4%
% \fi}
-%D Slightly faster on big arguments, as well as \type
-%D {\next} avoiding:
+%D Slightly faster on big arguments, as well as \type
+%D {\next} avoiding:
\long\def\doif#1#2%
{\let\donottest\dontprocesstest
@@ -1130,7 +1130,7 @@
\expandafter\gobbleoneargument
\fi}
-\long\def\doifnot#1#2%
+\long\def\doifnot#1#2%
{\let\donottest\dontprocesstest
\edef\!!stringa{#1}%
\edef\!!stringb{#2}%
@@ -1160,17 +1160,17 @@
% \long\def\doif#1#2#3%
% {\edef\!!stringa{#1}\edef\!!stringb{#2}%
% \ifx\!!stringa\!!stringb#3\fi}
-%
+%
% \long\def\doifnot#1#2#3%
% {\edef\!!stringa{#1}\edef\!!stringb{#2}%
% \unless\ifx\!!stringa\!!stringb#3\fi}
-%
+%
% \long\def\doifelse#1#2#3#4%
% {\edef\!!stringa{#1}\edef\!!stringb{#2}%
% \ifx\!!stringa\!!stringb#3\else#4\fi}
-%D Slightly faster on big arguments, as well as \type
-%D {\next} avoiding:
+%D Slightly faster on big arguments, as well as \type
+%D {\next} avoiding:
\long\def\doif#1#2%
{\edef\!!stringa{#1}\edef\!!stringb{#2}%
@@ -1243,25 +1243,25 @@
%D
%D This time, the string is not expanded.
-\long\def\doifemptyelse#1%
+\long\def\doifemptyelse#1%
{\def\!!stringa{#1}%
- \ifx\!!stringa\empty
+ \ifx\!!stringa\empty
\expandafter\firstoftwoarguments
\else
\expandafter\secondoftwoarguments
\fi}
-\long\def\doifempty#1%
+\long\def\doifempty#1%
{\def\!!stringa{#1}%
- \ifx\!!stringa\empty
+ \ifx\!!stringa\empty
\expandafter\firstofoneargument
\else
\expandafter\gobbleoneargument
\fi}
-\long\def\doifnotempty#1%
+\long\def\doifnotempty#1%
{\def\!!stringa{#1}%
- \ifx\!!stringa\empty
+ \ifx\!!stringa\empty
\expandafter\gobbleoneargument
\else
\expandafter\firstofoneargument
@@ -1348,17 +1348,17 @@
%
% \endETEX
-% then we had:
-%
+% then we had:
+%
% \def\p!docheckiteminset#1%
% {\edef\!!stringb{#1}%
% \ifx\!!stringa\!!stringb
% \donetrue
% \expandafter\quitcommalist
% \fi}
-%
+%
% \beginTEX
-%
+%
% \def\p!doifinsetelse#1#2%
% {\let\donottest\dontprocesstest
% \donefalse
@@ -1369,13 +1369,13 @@
% \fi
% \let\donottest\doprocesstest
% \ifdone}
-%
+%
% \endTEX
-%
+%
% % can be sped up with processnext...
-%
+%
% \beginETEX \protected
-%
+%
% \def\p!doifinsetelse#1#2%
% {\donefalse
% \edef\!!stringa{#1}%
@@ -1384,31 +1384,31 @@
% \processcommalist[#2]\p!docheckiteminset
% \fi
% \ifdone}
-%
+%
% \endETEX
-%
+%
% \long\def\doifinsetelse#1#2%
% {\p!doifinsetelse{#1}{#2}%
% \expandafter\firstoftwoarguments
% \else
% \expandafter\secondoftwoarguments
% \fi}
-%
-% \long\def\doifinset#1#2%
+%
+% \long\def\doifinset#1#2%
% {\p!doifinsetelse{#1}{#2}%
% \expandafter\firstofoneargument
% \else
% \expandafter\gobbleoneargument
% \fi}
-%
-% \long\def\doifnotinset#1#2%
+%
+% \long\def\doifnotinset#1#2%
% {\p!doifinsetelse{#1}{#2}%
% \expandafter\gobbleoneargument
% \else
% \expandafter\firstofoneargument
% \fi}
-%
-% now we have
+%
+% now we have
\def\p!docheckiteminset#1%
{\edef\!!stringb{#1}%
@@ -1547,24 +1547,24 @@
% \donetrue
% \expandafter\quitprevcommalist
% \fi}
-%
+%
% \beginTEX
-%
+%
% \def\p!doifcommonelse#1#2%
% {\donefalse
% \let\donottest\dontprocesstest
% \def\p!docommoncheck##1%
% {\edef\!!stringa{##1}%
-% \def\commalistelement{##1}% no let to stringa
+% \def\commalistelement{##1}% no let to stringa
% \processcommalist[#2]\p!dodocommoncheck}%
% \processcommalist[#1]\p!docommoncheck
% \let\donottest\doprocesstest
% \ifdone}
-%
+%
% \endTEX
-%
+%
% \beginETEX \protected
-%
+%
% \def\p!doifcommonelse#1#2%
% {\donefalse
% \def\p!docommoncheck##1%
@@ -1573,24 +1573,24 @@
% \processcommalist[#2]\p!dodocommoncheck}%
% \processcommalist[#1]\p!docommoncheck
% \ifdone}
-%
+%
% \endETEX
-%
+%
% \long\def\doifcommonelse#1#2% % #3#4%
% {\p!doifcommonelse{#1}{#2}% % #3\else#4\fi}
% \expandafter\firstoftwoarguments
% \else
% \expandafter\secondoftwoarguments
% \fi}
-%
-% \long\def\doifcommon#1#2%
+%
+% \long\def\doifcommon#1#2%
% {\p!doifcommonelse{#1}{#2}%
% \expandafter\firstofoneargument
% \else
% \expandafter\gobbleoneargument
% \fi}
-%
-% \long\def\doifnotcommon#1#2%
+%
+% \long\def\doifnotcommon#1#2%
% {\p!doifcommonelse{#1}{#2}%
% \expandafter\gobbleoneargument
% \else
@@ -1611,7 +1611,7 @@
\let\donottest\dontprocesstest
\def\p!docommoncheck##1%
{\edef\!!stringa{##1}%
- \def\commalistelement{##1}% no let to stringa
+ \def\commalistelement{##1}% no let to stringa
\processcommalist[#4]\p!dodocommoncheck}%
\processcommalist[#3]\p!docommoncheck
\let\donottest\doprocesstest
@@ -2122,7 +2122,7 @@
%D We can speed up these macros a bit when we use a dedicated
%D commalist processor, one that avoids passing the (often)
-%D big action list.
+%D big action list.
\beginTEX
@@ -2163,14 +2163,14 @@
\else
\expandafter\processfirstactionsinsetindeed
\fi
- [#1]}
+ [#1]}
\def\processfirstactioninsetindeed[#1]#2[#3]%
{\def\p!doprocessaction##1%
{\def\p!dodoprocessaction####1%
{\p!compareprocessactionC[####1][##1]}%
\processcommalist[#3]\p!dodoprocessaction}%
- \processcommalist[#1]\p!doprocessaction
+ \processcommalist[#1]\p!doprocessaction
\expandactions}
\def\processallactionsinset[#1]%
@@ -2188,8 +2188,8 @@
{\def\p!dodoprocessaction####1%
{\p!compareprocessactionD[####1][##1]}%
\processcommalist[#3]\p!dodoprocessaction}%
- \processcommalist[#1]\doprocessallactionsinset
- \advance\processlevel \minusone
+ \processcommalist[#1]\doprocessallactionsinset
+ \advance\processlevel \minusone
\expandactions}
\def\processnextcommalist#1#2#3[#4#5]%
@@ -2199,15 +2199,15 @@
\long\expandafter\def\csname\s!next\the\commalevel\endcsname##1,%
{#3{##1}\doprocesscommaitem}%
\dodoprocesscommaitem#4#5,]\relax
- \global\advance\commalevel \minusone
+ \global\advance\commalevel \minusone
#2}
-%D I do have an even faster version (saving 3 sec on a 13
+%D I do have an even faster version (saving 3 sec on a 13
%D sec run for 50K invocations, but normally we don't have
%D that many calls and that alternative uses more macros and is
%D even less readable. What we did add, was \type {\@EA}, so
%D that we can pass a command.
-
+
%D \macros
%D {unexpandedprocessaction,
%D unexpandedprocessfirstactioninset,
@@ -2260,18 +2260,18 @@
{\edef\!!stringa{#1}%
\expandafter\dogetfirstcharacter\!!stringa\\}
-\def\doiffirstcharelse#1#2% char string
-% kort (maar onleesbaar)
+\def\doiffirstcharelse#1#2% char string
+% kort (maar onleesbaar)
% {\expanded{\dogetfirstcharacter#2}\\\doifelse{#1}\firstcharacter}
-% korter (en begrijpelijk))
+% korter (en begrijpelijk))
{\getfirstcharacter{#2}\doifelse{#1}\firstcharacter}
-% snel (maar zelden gebruikt, dus niet zo belangrijk)
+% snel (maar zelden gebruikt, dus niet zo belangrijk)
% {\getfirstcharacter{#2}%
% \edef\!!stringa{#1}%
-% \ifx\!!stringa\firstcharacter
+% \ifx\!!stringa\firstcharacter
% \expandafter\firstoftwoarguments
-% \else
-% \expandafter\secondoftwoarguments
+% \else
+% \expandafter\secondoftwoarguments
% \fi}
%D \macros
@@ -2323,7 +2323,7 @@
%D run time, simply because the less tokens we pass, the faster
%D \TEX\ runs. So finally the definition became:
-\long\def\doifinstringelse#1%
+\long\def\doifinstringelse#1%
{\edef\@@@instring{#1}% expand #1 here
\ifx\@@@instring\empty
\@EA\thirdofthreearguments
@@ -2331,14 +2331,14 @@
\@EA\dodoifinstringelse
\fi}
-\long\def\dodoifinstringelse#1%
- {\p!doifinstringelse\@@@instring{#1}%
+\long\def\dodoifinstringelse#1%
+ {\p!doifinstringelse\@@@instring{#1}%
\@EA\firstoftwoarguments
\else
\@EA\secondoftwoarguments
\fi}
-\long\def\doifinstring#1%%
+\long\def\doifinstring#1%%
{\edef\@@@instring{#1}% expand #1 here
\ifx\@@@instring\empty
\@EA\gobbletwoarguments
@@ -2347,7 +2347,7 @@
\fi}
\long\def\dodoifinstring#1%
- {\p!doifinstringelse\@@@instring{#1}%
+ {\p!doifinstringelse\@@@instring{#1}%
\@EA\firstofoneargument
\else
\@EA\gobbleoneargument
@@ -2382,19 +2382,19 @@
% {\long\@EA\def\@EA\pp!doifinstringelse\@EA##\@EA1#1##2##3\war % expand #1 here
% {\ppp!doifinstringelse##2\war}%
% \expanded{\pp!doifinstringelse#2#1@@\noexpand\war}} % expand #2 here
-%
+%
% \beginTEX
-%
+%
% \def\ppp!doifinstringelse#1#2\war%
% {\csname if\ifx#1@fals\else tru\fi e\endcsname}%
-%
+%
% \endTEX
-%
+%
% \beginETEX \unless
-%
+%
% \def\ppp!doifinstringelse#1#2\war%
% {\unless\ifx#1@}
-%
+%
% \endETEX
\beginETEX
@@ -2479,8 +2479,8 @@
%D \ifdone\endgroup#2\else\endgroup#3\fi}
%D \stoptypen
%D
-%D Or better:
-%D
+%D Or better:
+%D
%D \starttypen
%D \long\def\doifnumberelse#1%
%D {\begingroup\donefalse
@@ -2504,7 +2504,7 @@
%D \fi}
%D \starttypen
%D
-%D And before we had \type{\p!doifinstringelse} available, we
+%D And before we had \type{\p!doifinstringelse} available, we
%D used:
%D
%D \starttypen
@@ -2513,7 +2513,7 @@
%D \rawdoifinsetelse{\firstcharacter}{1,2,3,4,5,6,7,8,9,0}}
%D \stoptypen
%D
-%D The implementation using \type {\ifcase} is much faster, but
+%D The implementation using \type {\ifcase} is much faster, but
%D the next one is not, not even when testing milion calls.
%D
%D \starttypen
@@ -2526,14 +2526,14 @@
%D \long\def\doifnumberelse#1#2#3%
%D {\isitanumber{#1}\ifitsanumber#2\else#3\fi}
%D \stoptypen
-%D
+%D
%D After a while the next evolved and this one is the one we
%D will use. This one is some 5\% faster than the group/done
%D one (partly because it does not have to pass arguments).
%D Even more important is that this alternative is fully
-%D expandable!
+%D expandable!
-\long\def\doifnumberelse#1%
+\long\def\doifnumberelse#1%
{\ifcase0\ifcase1#1\or\or\or\or\or\or\or\or\or\else1\fi\space
\expandafter\secondoftwoarguments
\else
@@ -2584,23 +2584,23 @@
% \appendtocommalist is defined in syst-ext
-\def\makerawcommalist[#1]#2% use \processnext ... here
- {\def\domakerawcommalist##1% we don't expand ##1
+\def\makerawcommalist[#1]#2% use \processnext ... here
+ {\def\domakerawcommalist##1% we don't expand ##1
{\ifx#2\empty
\def#2{##1}%
\else
\@EA\def\@EA#2\@EA{#2,##1}%
- \fi}%
+ \fi}%
\let#2\empty
\processcommalist[#1]\domakerawcommalist}
-\def\rawprocesscommaitem#1,#2% #2 eats up preceding space
+\def\rawprocesscommaitem#1,#2% #2 eats up preceding space
{\if]#1\else
\csname\s!next\the\commalevel\endcsname{#1}%
\expandafter\rawprocesscommaitem
\fi#2}
-\def\rawprocesscommalist[#1]#2% accepteert ook [\cs]
+\def\rawprocesscommalist[#1]#2% accepteert ook [\cs]
{\global\advance\commalevel \plusone
\expandafter\let\csname\s!next\the\commalevel\endcsname#2%
\expandafter\rawprocesscommaitem#1,],% \relax
@@ -2614,7 +2614,7 @@
\def\@@rawempty{,,}
-\long\def\rawdoifinsetelse#1%
+\long\def\rawdoifinsetelse#1%
{\edef\@@@instring{,#1,}% expand #1 here
\ifx\@@@instring\@@rawempty
\@EA\thirdofthreearguments
@@ -2622,14 +2622,14 @@
\@EA\rawdodoifinsetelse
\fi}
-\long\def\rawdodoifinsetelse#1%
- {\p!doifinstringelse\@@@instring{,#1,}%
+\long\def\rawdodoifinsetelse#1%
+ {\p!doifinstringelse\@@@instring{,#1,}%
\@EA\firstoftwoarguments
\else
\@EA\secondoftwoarguments
\fi}
-\long\def\rawdoifinset#1%
+\long\def\rawdoifinset#1%
{\edef\@@@instring{,#1,}% expand #1 here
\ifx\@@@instring\@@rawempty
\@EA\gobbletwoarguments
@@ -2637,8 +2637,8 @@
\@EA\rawdodoifinset
\fi}
-\long\def\rawdodoifinset#1%%
- {\p!doifinstringelse\@@@instring{,#1,}%
+\long\def\rawdodoifinset#1%%
+ {\p!doifinstringelse\@@@instring{,#1,}%
\@EA\firstofoneargument
\else
\@EA\gobbleoneargument
@@ -2938,9 +2938,9 @@
\def\xdogetparameters#1]%
{\processcommalist[#1]\p!dogetparameter}
-%D The next alternative is much faster but also uglier. Because
-%D in \XML\ processing we will probably set much more parameters
-%D than normally we need this faster one.
+%D The next alternative is much faster but also uglier. Because
+%D in \XML\ processing we will probably set much more parameters
+%D than normally we need this faster one.
\def\dogetparameters#1[#2]#3[#4%
{\if\noexpand#4]%
@@ -2962,7 +2962,7 @@
% \fi#2}
\long\def\xprocesscommaitem#1,#2% #2 takes space before ,
- {\if,#1,% dirty trick for testing #1=empty
+ {\if,#1,% dirty trick for testing #1=empty
\@EA\xprocesscommaitem
\else\if]#1%
\@EAEAEA\gobbleoneargument
@@ -2992,8 +2992,8 @@
\def\xshowassignerror#1#2#3%
{\showassignerror{#2}{\the\inputlineno\space(#1)}}
-%D Now we also have to change the other macros that depend
-%D on this low level one.
+%D Now we also have to change the other macros that depend
+%D on this low level one.
% \def\doassign [#1][#2]{\p!doassign\dosetvalue #1\@relax@#2==\@relax@}
% \def\doeassign [#1][#2]{\p!doassign\dosetevalue #1\@relax@#2==\@relax@}
@@ -3610,22 +3610,22 @@
%D Because some of these are called quite often, we will now
%D replace the more general version by alternatives tuned for
-%D speed.
+%D speed.
\def\dosingleempty#1%
- {\noshowargumenterror % \relax % prevents lookahead, brr
+ {\noshowargumenterror % \relax % prevents lookahead, brr
\doifnextcharelse[%
{\firstargumenttrue#1}
{\dosinglefakeempty#1}}
-\def\dodoubleempty#1%
+\def\dodoubleempty#1%
{\noshowargumenterror % \relax % prevents lookahead, brr
\doifnextcharelse[%
{\dodoubletestempty#1}
{\dodoublefakeempty#1}}
-\def\dotripleempty#1%
- {\noshowargumenterror % \relax % prevents lookahead, brr
+\def\dotripleempty#1%
+ {\noshowargumenterror % \relax % prevents lookahead, brr
\doifnextcharelse[%
{\dotripletestempty#1}
{\dotriplefakeempty#1}}
@@ -3640,20 +3640,20 @@
{\firstargumentfalse\secondargumentfalse\thirdargumentfalse#1[][][]}
\long\def\dodoubletestempty#1[#2]%
- {\firstargumenttrue
+ {\firstargumenttrue
\doifnextcharelse[%
{\secondargumenttrue #1[{#2}]}
{\secondargumentfalse#1[{#2}][]}}
\long\def\dotripletestempty#1[#2]%
- {\firstargumenttrue
+ {\firstargumenttrue
\doifnextcharelse[%
{\dotripletestemptyx #1[{#2}]}
{\secondargumentfalse
\thirdargumentfalse #1[{#2}][][]}}
\long\def\dotripletestemptyx#1[#2][#3]%
- {\secondargumenttrue
+ {\secondargumenttrue
\doifnextcharelse[%
{\thirdargumenttrue #1[{#2}][{#3}]}
{\thirdargumentfalse#1[{#2}][{#3}][]}}
@@ -3735,13 +3735,13 @@
%D {strippedcsname}
%D
%D The next macro can be very useful when using \type{\csname}
-%D like in:
+%D like in:
%D
%D \starttypen
%D \csname if\strippedcsname\something\endcsname
%D \stoptypen
%D
-%D This expands to \type{\ifsomething}.
+%D This expands to \type{\ifsomething}.
\def\strippedcsname%
{\expandafter\gobbleoneargument\string}
@@ -3787,34 +3787,34 @@
%D but changed into more versatile (more object oriented) ones
%D using the \type{\get..argument} commands.
-% This method is needed when traditional tex is used with
-% the efficient definition (marked **) below.
+% This method is needed when traditional tex is used with
+% the efficient definition (marked **) below.
-% an old one:
+% an old one:
%
-% \def\setnameofcommand#1% handles {abc} as well as \abc
+% \def\setnameofcommand#1% handles {abc} as well as \abc
% {\begingroup
% \escapechar=-1
% \globaldefs=0 % pretty important!
% \xdef\nameofcommand{\string#1}%
% \endgroup}
-%
+%
% \def\complexorsimple#1%
% {\setnameofcommand{#1}%
% \doifnextcharelse{[}
% {\firstargumenttrue \getvalue{\s!complex\nameofcommand}}
% {\firstargumentfalse\getvalue{\s!simple \nameofcommand}}}
-%
+%
% \def\complexorsimpleempty#1%
% {\setnameofcommand{#1}%
% \doifnextcharelse{[}
% {\firstargumenttrue \getvalue{\s!complex\nameofcommand}}
% {\firstargumentfalse\getvalue{\s!complex\nameofcommand}[]}}
%
-% a newer one:
+% a newer one:
\def\complexorsimple#1%
- {% \relax % prevents lookahead, brrr
+ {% \relax % prevents lookahead, brrr
\doifnextcharelse[%
{\firstargumenttrue \csname\s!complex\strippedcsname#1\endcsname}
{\firstargumentfalse\csname\s!simple \strippedcsname#1\endcsname}}
@@ -3832,36 +3832,36 @@
%D worthwile to offer two more alternatives. Watch the build
%D in protection.
-% See earlier. Because we don't want \type {\simple..} and
-% \type {\complex..} commands to show up in expansions, we need
-% to pass them as \type {simple..} and \type {complex..}.
+% See earlier. Because we don't want \type {\simple..} and
+% \type {\complex..} commands to show up in expansions, we need
+% to pass them as \type {simple..} and \type {complex..}.
% \beginTEX
-%
+%
% \def\definewithnameofcommand#1#2%
% {\setnameofcommand{#2}%
% \@EA\def\@EA#2\@EA{\@EA\donottest\@EA#1\@EA{\nameofcommand}}}
-%
+%
% \def\definecomplexorsimple%
% {\definewithnameofcommand\complexorsimple}
-%
+%
% \def\definecomplexorsimpleempty%
% {\definewithnameofcommand\complexorsimpleempty}
-%
+%
% \endTEX
-%
+%
% \beginETEX \protected
-%
+%
% \def\definecomplexorsimple#1%
% {\normalprotected\def#1{\complexorsimple#1}}
-%
+%
% \def\definecomplexorsimpleempty#1%
% {\normalprotected\def#1{\complexorsimpleempty#1}}
-%
+%
% \endETEX
-% However, since this one uses an idirect method, things go
-% okay (at the cost of extra macros).
+% However, since this one uses an idirect method, things go
+% okay (at the cost of extra macros).
% \def\definecomplexorsimple#1%
% {\unexpanded\def#1{\complexorsimple#1}}
@@ -3869,7 +3869,7 @@
% \def\definecomplexorsimpleempty#1%
% {\unexpanded\def#1{\complexorsimpleempty#1}}
%
-% faster, since no \strippedcsname needed in call, but more spacy
+% faster, since no \strippedcsname needed in call, but more spacy
\def\docomplexorsimple#1#2%
{\doifnextcharelse[{\firstargumenttrue#1}{\firstargumentfalse#2}}
@@ -4179,14 +4179,14 @@
%D
%D And alike.
-%D \macros
-%D {firstofoneargument, firstoftwoarguments, firstofthreearguments
-%D secondoftwoarguments, secondofthreearguments,
+%D \macros
+%D {firstofoneargument, firstoftwoarguments, firstofthreearguments
+%D secondoftwoarguments, secondofthreearguments,
%D thirdofthreearguments}
%D
-%D The next six macros (dedicated to Taco) can conveniently
-%D used to select arguments. Their names explain their
-%D functionality.
+%D The next six macros (dedicated to Taco) can conveniently
+%D used to select arguments. Their names explain their
+%D functionality.
\long\def\firstofoneargument #1{#1}
\long\def\firstoftwoarguments #1#2{#1}
@@ -4199,10 +4199,10 @@
\long\def\thirdoffourarguments #1#2#3#4{#3}
\long\def\fourthoffourarguments #1#2#3#4{#4}
-%D \macros
+%D \macros
%D {globalletempty,letempty,letvalueempty,letgvalueempty}
%D
-%D Trivial:
+%D Trivial:
\def\letempty #1{\let#1\empty}
\def\globalletempty#1{\global\let#1\empty}
@@ -4308,10 +4308,10 @@
\@EA\writestring\@EA{\the\scratchtoks\space:\space#2}%
\endgroup}
-%D Because we're grouped, we could have initialized at forehand:
-%D
-%D \starttypen
-%D \statuscounter\statuswidth
+%D Because we're grouped, we could have initialized at forehand:
+%D
+%D \starttypen
+%D \statuscounter\statuswidth
%D \stoptypen
%D The next implementation saves only some 10 words of format
@@ -4333,9 +4333,9 @@
%D \space:\space#2}}
%D \stoptypen
-%D Okay then. More obscure but slightly faster: no split grabs
-%D the do split part and skipping the else branch has to happen
-%D anyway, so:
+%D Okay then. More obscure but slightly faster: no split grabs
+%D the do split part and skipping the else branch has to happen
+%D anyway, so:
\def\dosplitstatus#1%
{\advance\statuscounter \minusone
@@ -4376,6 +4376,4 @@
%D Well, the real final command is the one that resets the
%D unprotected characters \type{@}, \type{?} and \type{!}.
-\protect
-
-\endinput
+\protect \endinput \ No newline at end of file
diff --git a/tex/context/base/syst-omg.tex b/tex/context/base/syst-omg.tex
index f515ddc0d..e01bdf371 100644
--- a/tex/context/base/syst-omg.tex
+++ b/tex/context/base/syst-omg.tex
@@ -1,20 +1,20 @@
%D \module
%D [ file=syst-omg,
-%D version=2000.09.09,
+%D version=2000.09.09,
%D title=\CONTEXT\ System Macros,
-%D subtitle=A couple of Omega goodies,
+%D subtitle=A couple of Omega goodies,
%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.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
-%D This module will become obsolete as soon as Omega
-%D supports \ETEX\ functionality.
+%D This module will become obsolete as soon as Omega
+%D supports \ETEX\ functionality.
-\ifx\OmegaVersion\undefined \endinput \fi
+\ifx\OmegaVersion\undefined \endinput \fi
% \def\newcount {\myalloc@0\count \countdef \@@maxallocation}
% \def\newdimen {\myalloc@1\dimen \dimendef \@@maxallocation}
@@ -26,19 +26,19 @@
% \def\newwrite {\myalloc@7\write \chardef \@@minallocation}
% \def\newmarks {\myalloc@8\marks \mathchardef\@@maxallocation}
% \def\newlanguage{\myalloc@9\language\chardef \@@minallocation}
-%
-% \def\newfam#1{\chardef#1=15 }
-%
-% \count18=1
-%
+%
+% \def\newfam#1{\chardef#1=15 }
+%
+% \count18=1
+%
% \mathchardef\@@minallocation= 16
% \mathchardef\@@medallocation= 256
% \mathchardef\@@maxallocation=32767
-% \chardef \@@insallocation= 8
-%
+% \chardef \@@insallocation= 8
+%
% \def\myalloc@#1#2#3#4#5%
% {\global\advance\count1#1by\@ne
-% \ifnum\count1#1>\@@medallocation \else
+% \ifnum\count1#1>\@@medallocation \else
% \global\advance\insc@unt by -\@@insallocation
% \ifnum\count1#1<\insc@unt \else
% \global\count1#1=\@@medallocation % \wait
@@ -53,7 +53,7 @@
% \global#3#5=\allocationnumber
% \wlog{\string#5=\string#2\the\allocationnumber}}
-\unprotect
+\unprotect
\def\newcount {\myalloc@0\count \countdef \@@maxallocation}
\def\newdimen {\myalloc@1\dimen \dimendef \@@maxallocation}
@@ -66,19 +66,19 @@
\def\newmarks {\myalloc@8\marks \mathchardef\@@maxallocation}
\def\newlanguage{\myalloc@9\language\chardef \@@minallocation}
-\def\newfam#1{\chardef#1=15 }
+\def\newfam#1{\chardef#1=15 }
-\count18=1
+\count18=1
\mathchardef\@@minallocation = 16
\mathchardef\@@medallocation = 256
\mathchardef\@@maxallocation = 32767
-\chardef\@@insallocation=8
+\chardef\@@insallocation=8
\def\myalloc@#1#2#3#4#5%
{\global\advance\count1#1by\@ne
- \ifnum\count1#1>\@@medallocation \else
+ \ifnum\count1#1>\@@medallocation \else
\global\advance\insc@unt by -\@@insallocation
\ifnum\count1#1<\insc@unt \else
\global\count1#1=\@@medallocation % \wait
@@ -93,10 +93,10 @@
\global#3#5=\allocationnumber
\wlog{\string#5=\string#2\the\allocationnumber}}
-%D We need to catch a (rather crappy) automatic OMEGA
-%D mechanism. Unfortunately loading of the SGML vectors
-%D happens automatically without control over the regime
-%D under which it takes place.
+%D We need to catch a (rather crappy) automatic OMEGA
+%D mechanism. Unfortunately loading of the SGML vectors
+%D happens automatically without control over the regime
+%D under which it takes place.
\ifx\SGMLFontEntity\undefined \else
@@ -108,6 +108,6 @@
{\normalSGMLFontEntity{#1}{#2}{#3}{#4}{#5}}
{\normalSGMLFontEntity{#1}{#2}{\string#3}{#4}{#5}}}
-\fi
+\fi
-\protect \endinput
+\protect \endinput \ No newline at end of file
diff --git a/tex/context/base/type-enc.tex b/tex/context/base/type-enc.tex
index 3a71a8843..fd3bdc746 100644
--- a/tex/context/base/type-enc.tex
+++ b/tex/context/base/type-enc.tex
@@ -22,16 +22,16 @@
% Computer & Latin Modern Roman (DEK/AMS/BJ)
% \usetypescript [all] [latin-modern] [texnansi]
-%
+%
% \setupbodyfont[reset] \setupbodyfont[cmr]
-%
+%
% \starttext \showfont[Serif] \stoptext
-\starttypescript [all] [latin-modern] [texnansi,qx]
+\starttypescript [all] [latin-modern] [texnansi,qx]
\loadmapfile[\typescriptthree-lm.map]
- % Regular
+ % Regular
\definefontsynonym [cmr5] [\typescriptthree-lmr5] [encoding=\typescriptthree]
\definefontsynonym [cmr6] [\typescriptthree-lmr6] [encoding=\typescriptthree]
@@ -41,7 +41,7 @@
\definefontsynonym [cmr10] [\typescriptthree-lmr10] [encoding=\typescriptthree]
\definefontsynonym [cmr12] [\typescriptthree-lmr12] [encoding=\typescriptthree]
\definefontsynonym [cmr17] [\typescriptthree-lmr17] [encoding=\typescriptthree]
-
+
\definefontsynonym [cmbx5] [\typescriptthree-lmbx5] [encoding=\typescriptthree]
\definefontsynonym [cmbx6] [\typescriptthree-lmbx6] [encoding=\typescriptthree]
\definefontsynonym [cmbx7] [\typescriptthree-lmbx7] [encoding=\typescriptthree]
@@ -54,13 +54,13 @@
\definefontsynonym [cmsl12] [\typescriptthree-lmro12] [encoding=\typescriptthree]
\definefontsynonym [cmsl8] [\typescriptthree-lmro8] [encoding=\typescriptthree]
\definefontsynonym [cmsl9] [\typescriptthree-lmro9] [encoding=\typescriptthree]
-
+
\definefontsynonym [cmti7] [\typescriptthree-lmri7] [encoding=\typescriptthree]
\definefontsynonym [cmti8] [\typescriptthree-lmri8] [encoding=\typescriptthree]
\definefontsynonym [cmti9] [\typescriptthree-lmri9] [encoding=\typescriptthree]
\definefontsynonym [cmti10] [\typescriptthree-lmri10] [encoding=\typescriptthree]
\definefontsynonym [cmti12] [\typescriptthree-lmri12] [encoding=\typescriptthree]
-
+
\definefontsynonym [cmb10] [\typescriptthree-lmb10] [encoding=\typescriptthree]
\definefontsynonym [cmbsl10] [\typescriptthree-lmbo10] [encoding=\typescriptthree]
\definefontsynonym [cmbxsl10] [\typescriptthree-lmbxo10] [encoding=\typescriptthree]
@@ -69,7 +69,7 @@
\definefontsynonym [cmcsc10] [\typescriptthree-lmcsc10] [encoding=\typescriptthree]
\definefontsynonym [cmcscsl10][\typescriptthree-lmcsco10] [encoding=\typescriptthree]
- % Mono
+ % Mono
\definefontsynonym [cmtt8] [\typescriptthree-lmtt8] [encoding=\typescriptthree]
\definefontsynonym [cmtt9] [\typescriptthree-lmtt9] [encoding=\typescriptthree]
@@ -84,25 +84,25 @@
\definefontsynonym [cmcsc10] [\typescriptthree-lmcsc10] [encoding=\typescriptthree]
- % Sans
+ % Sans
\definefontsynonym [cmss8] [\typescriptthree-lmss8] [encoding=\typescriptthree]
\definefontsynonym [cmss9] [\typescriptthree-lmss9] [encoding=\typescriptthree]
\definefontsynonym [cmss10] [\typescriptthree-lmss10] [encoding=\typescriptthree]
\definefontsynonym [cmss12] [\typescriptthree-lmss12] [encoding=\typescriptthree]
\definefontsynonym [cmss17] [\typescriptthree-lmss17] [encoding=\typescriptthree]
-
+
\definefontsynonym [cmssi10] [\typescriptthree-lmsso10] [encoding=\typescriptthree]
\definefontsynonym [cmssi12] [\typescriptthree-lmsso12] [encoding=\typescriptthree]
\definefontsynonym [cmssi17] [\typescriptthree-lmsso17] [encoding=\typescriptthree]
\definefontsynonym [cmssi8] [\typescriptthree-lmsso8] [encoding=\typescriptthree]
\definefontsynonym [cmssi9] [\typescriptthree-lmsso9] [encoding=\typescriptthree]
-
+
\definefontsynonym [cmssq8] [\typescriptthree-lmssq8] [encoding=\typescriptthree]
\definefontsynonym [cmssqb8] [\typescriptthree-lmssqbx8] [encoding=\typescriptthree]
\definefontsynonym [cmssqbi8] [\typescriptthree-lmssqbo8] [encoding=\typescriptthree]
\definefontsynonym [cmssqi8] [\typescriptthree-lmssqo8] [encoding=\typescriptthree]
-
+
\definefontsynonym [cmssbx10] [\typescriptthree-lmssbx10] [encoding=\typescriptthree]
\definefontsynonym [cmssdc10] [\typescriptthree-lmssdc10] [encoding=\typescriptthree]
\definefontsynonym [cmssbi10] [\typescriptthree-lmssbo10] [encoding=\typescriptthree]
@@ -110,11 +110,11 @@
\stoptypescript
-\starttypescript [all] [latin-modern] [ec]
+\starttypescript [all] [latin-modern] [ec]
\loadmapfile[cork-lm.map]
- % Regular
+ % Regular
\definefontsynonym [cmr5] [cork-lmr5] [encoding=cork]
\definefontsynonym [cmr6] [cork-lmr6] [encoding=cork]
@@ -124,7 +124,7 @@
\definefontsynonym [cmr10] [cork-lmr10] [encoding=cork]
\definefontsynonym [cmr12] [cork-lmr12] [encoding=cork]
\definefontsynonym [cmr17] [cork-lmr17] [encoding=cork]
-
+
\definefontsynonym [cmbx5] [cork-lmbx5] [encoding=cork]
\definefontsynonym [cmbx6] [cork-lmbx6] [encoding=cork]
\definefontsynonym [cmbx7] [cork-lmbx7] [encoding=cork]
@@ -137,13 +137,13 @@
\definefontsynonym [cmsl12] [cork-lmro12] [encoding=cork]
\definefontsynonym [cmsl8] [cork-lmro8] [encoding=cork]
\definefontsynonym [cmsl9] [cork-lmro9] [encoding=cork]
-
+
\definefontsynonym [cmti7] [cork-lmri7] [encoding=cork]
\definefontsynonym [cmti8] [cork-lmri8] [encoding=cork]
\definefontsynonym [cmti9] [cork-lmri9] [encoding=cork]
\definefontsynonym [cmti10] [cork-lmri10] [encoding=cork]
\definefontsynonym [cmti12] [cork-lmri12] [encoding=cork]
-
+
\definefontsynonym [cmb10] [cork-lmb10] [encoding=cork]
\definefontsynonym [cmbsl10] [cork-lmbo10] [encoding=cork]
\definefontsynonym [cmbxsl10] [cork-lmbxo10] [encoding=cork]
@@ -152,7 +152,7 @@
\definefontsynonym [cmcsc10] [cork-lmcsc10] [encoding=cork]
\definefontsynonym [cmcscsl10][cork-lmcsco10] [encoding=cork]
- % Mono
+ % Mono
\definefontsynonym [cmtt8] [cork-lmtt8] [encoding=cork]
\definefontsynonym [cmtt9] [cork-lmtt9] [encoding=cork]
@@ -167,25 +167,25 @@
\definefontsynonym [cmcsc10] [cork-lmcsc10] [encoding=cork]
- % Sans
+ % Sans
\definefontsynonym [cmss8] [cork-lmss8] [encoding=cork]
\definefontsynonym [cmss9] [cork-lmss9] [encoding=cork]
\definefontsynonym [cmss10] [cork-lmss10] [encoding=cork]
\definefontsynonym [cmss12] [cork-lmss12] [encoding=cork]
\definefontsynonym [cmss17] [cork-lmss17] [encoding=cork]
-
+
\definefontsynonym [cmssi10] [cork-lmsso10] [encoding=cork]
\definefontsynonym [cmssi12] [cork-lmsso12] [encoding=cork]
\definefontsynonym [cmssi17] [cork-lmsso17] [encoding=cork]
\definefontsynonym [cmssi8] [cork-lmsso8] [encoding=cork]
\definefontsynonym [cmssi9] [cork-lmsso9] [encoding=cork]
-
+
\definefontsynonym [cmssq8] [cork-lmssq8] [encoding=cork]
\definefontsynonym [cmssqb8] [cork-lmssqbx8] [encoding=cork]
\definefontsynonym [cmssqbi8] [cork-lmssqbo8] [encoding=cork]
\definefontsynonym [cmssqi8] [cork-lmssqo8] [encoding=cork]
-
+
\definefontsynonym [cmssbx10] [cork-lmssbx10] [encoding=cork]
\definefontsynonym [cmssdc10] [cork-lmssdc10] [encoding=cork]
\definefontsynonym [cmssbi10] [cork-lmssbo10] [encoding=cork]
@@ -393,11 +393,11 @@
%D with this definition. The letters cyrillicYO and
%D cyrillicyo, as well as number sign (textnumero) and
%D guillemots won't be typeset properly, because these symbols
-%D have different positions in t2a and MS CP1251 encodings.
+%D have different positions in t2a and MS CP1251 encodings.
%D
-%D I think that the russian lh fonts and|/|or cm-super provide
-%D better alternatives (type1). Therefore, the names below
-%D match those of cm-super (\type {0NNN} instead of \type
+%D I think that the russian lh fonts and|/|or cm-super provide
+%D better alternatives (type1). Therefore, the names below
+%D match those of cm-super (\type {0NNN} instead of \type
%D {NNN}, i.e.\ four digit numbers).
\starttypescript [all] [computer-modern] [cyr]
@@ -461,57 +461,57 @@
\definefontsynonym [cmb10] [larb1000] [encoding=t2a]
\definefontsynonym [cmbx10] [labx1000] [encoding=t2a]
\definefontsynonym [cmbx12] [labx1200] [encoding=t2a]
- \definefontsynonym [cmbx5] [labx0500] [encoding=t2a]
- \definefontsynonym [cmbx6] [labx0600] [encoding=t2a]
- \definefontsynonym [cmbx7] [labx0700] [encoding=t2a]
- \definefontsynonym [cmbx8] [labx0800] [encoding=t2a]
- \definefontsynonym [cmbx9] [labx0900] [encoding=t2a]
+ \definefontsynonym [cmbx5] [labx0500] [encoding=t2a]
+ \definefontsynonym [cmbx6] [labx0600] [encoding=t2a]
+ \definefontsynonym [cmbx7] [labx0700] [encoding=t2a]
+ \definefontsynonym [cmbx8] [labx0800] [encoding=t2a]
+ \definefontsynonym [cmbx9] [labx0900] [encoding=t2a]
\definefontsynonym [cmbxsl10] [labl1000] [encoding=t2a]
\definefontsynonym [cmbxti10] [labi1000] [encoding=t2a]
\definefontsynonym [cmcsc10] [lacc1000] [encoding=t2a]
\definefontsynonym [cmdunh10] [ladh1000] [encoding=t2a]
\definefontsynonym [cmff10] [laff1000] [encoding=t2a]
\definefontsynonym [cmfi10] [lafi1000] [encoding=t2a]
- \definefontsynonym [cmfib8] [lafb0800] [encoding=t2a]
+ \definefontsynonym [cmfib8] [lafb0800] [encoding=t2a]
%\definefontsynonym [cminch] [lainch00] [encoding=t2a]
\definefontsynonym [cmitt10] [lait1000] [encoding=t2a]
\definefontsynonym [cmr10] [larm1000] [encoding=t2a]
\definefontsynonym [cmr12] [larm1200] [encoding=t2a]
\definefontsynonym [cmr17] [larm1700] [encoding=t2a]
- \definefontsynonym [cmr5] [larm0500] [encoding=t2a]
- \definefontsynonym [cmr6] [larm0600] [encoding=t2a]
- \definefontsynonym [cmr7] [larm0700] [encoding=t2a]
- \definefontsynonym [cmr8] [larm0800] [encoding=t2a]
- \definefontsynonym [cmr9] [larm0900] [encoding=t2a]
+ \definefontsynonym [cmr5] [larm0500] [encoding=t2a]
+ \definefontsynonym [cmr6] [larm0600] [encoding=t2a]
+ \definefontsynonym [cmr7] [larm0700] [encoding=t2a]
+ \definefontsynonym [cmr8] [larm0800] [encoding=t2a]
+ \definefontsynonym [cmr9] [larm0900] [encoding=t2a]
\definefontsynonym [cmsl10] [lasl1000] [encoding=t2a]
\definefontsynonym [cmsl12] [lasl1200] [encoding=t2a]
- \definefontsynonym [cmsl8] [lasl0800] [encoding=t2a]
- \definefontsynonym [cmsl9] [lasl0900] [encoding=t2a]
+ \definefontsynonym [cmsl8] [lasl0800] [encoding=t2a]
+ \definefontsynonym [cmsl9] [lasl0900] [encoding=t2a]
\definefontsynonym [cmsltt10] [last1000] [encoding=t2a]
\definefontsynonym [cmss10] [lass1000] [encoding=t2a]
\definefontsynonym [cmss12] [lass1200] [encoding=t2a]
\definefontsynonym [cmss17] [lass1700] [encoding=t2a]
- \definefontsynonym [cmss8] [lass0800] [encoding=t2a]
- \definefontsynonym [cmss9] [lass0900] [encoding=t2a]
+ \definefontsynonym [cmss8] [lass0800] [encoding=t2a]
+ \definefontsynonym [cmss9] [lass0900] [encoding=t2a]
\definefontsynonym [cmssbx10] [lasx1000] [encoding=t2a]
%\definefontsynonym [cmssdc10] [lassdc1000] [encoding=t2a]
\definefontsynonym [cmssi10] [lasi1000] [encoding=t2a]
\definefontsynonym [cmssi12] [lasi1200] [encoding=t2a]
\definefontsynonym [cmssi17] [lasi1700] [encoding=t2a]
- \definefontsynonym [cmssi8] [lasi0800] [encoding=t2a]
- \definefontsynonym [cmssi9] [lasi0900] [encoding=t2a]
- \definefontsynonym [cmssq8] [lass0800] [encoding=t2a]
- \definefontsynonym [cmssqi8] [lasi0800] [encoding=t2a]
+ \definefontsynonym [cmssi8] [lasi0800] [encoding=t2a]
+ \definefontsynonym [cmssi9] [lasi0900] [encoding=t2a]
+ \definefontsynonym [cmssq8] [lass0800] [encoding=t2a]
+ \definefontsynonym [cmssqi8] [lasi0800] [encoding=t2a]
\definefontsynonym [cmtcsc10] [latc1000] [encoding=t2a]
\definefontsynonym [cmti10] [lati1000] [encoding=t2a]
\definefontsynonym [cmti12] [lati1200] [encoding=t2a]
- \definefontsynonym [cmti7] [lati0700] [encoding=t2a]
- \definefontsynonym [cmti8] [lati0800] [encoding=t2a]
- \definefontsynonym [cmti9] [lati0900] [encoding=t2a]
+ \definefontsynonym [cmti7] [lati0700] [encoding=t2a]
+ \definefontsynonym [cmti8] [lati0800] [encoding=t2a]
+ \definefontsynonym [cmti9] [lati0900] [encoding=t2a]
\definefontsynonym [cmtt10] [latt1000] [encoding=t2a]
\definefontsynonym [cmtt12] [latt1200] [encoding=t2a]
- \definefontsynonym [cmtt8] [latt0800] [encoding=t2a]
- \definefontsynonym [cmtt9] [latt0900] [encoding=t2a]
+ \definefontsynonym [cmtt8] [latt0800] [encoding=t2a]
+ \definefontsynonym [cmtt9] [latt0900] [encoding=t2a]
\definefontsynonym [cmu10] [laui1000] [encoding=t2a]
\definefontsynonym [cmvtt10] [lavt1000] [encoding=t2a]
\stoptypescript
@@ -520,57 +520,57 @@
\definefontsynonym [cmb10] [lbrb1000] [encoding=t2b]
\definefontsynonym [cmbx10] [lbbx1000] [encoding=t2b]
\definefontsynonym [cmbx12] [lbbx1200] [encoding=t2b]
- \definefontsynonym [cmbx5] [lbbx0500] [encoding=t2b]
- \definefontsynonym [cmbx6] [lbbx0600] [encoding=t2b]
- \definefontsynonym [cmbx7] [lbbx0700] [encoding=t2b]
- \definefontsynonym [cmbx8] [lbbx0800] [encoding=t2b]
- \definefontsynonym [cmbx9] [lbbx0900] [encoding=t2b]
+ \definefontsynonym [cmbx5] [lbbx0500] [encoding=t2b]
+ \definefontsynonym [cmbx6] [lbbx0600] [encoding=t2b]
+ \definefontsynonym [cmbx7] [lbbx0700] [encoding=t2b]
+ \definefontsynonym [cmbx8] [lbbx0800] [encoding=t2b]
+ \definefontsynonym [cmbx9] [lbbx0900] [encoding=t2b]
\definefontsynonym [cmbxsl10] [lbbl1000] [encoding=t2b]
\definefontsynonym [cmbxti10] [lbbi1000] [encoding=t2b]
\definefontsynonym [cmcsc10] [lbcc1000] [encoding=t2b]
\definefontsynonym [cmdunh10] [lbdh1000] [encoding=t2b]
\definefontsynonym [cmff10] [lbff1000] [encoding=t2b]
\definefontsynonym [cmfi10] [lbfi1000] [encoding=t2b]
- \definefontsynonym [cmfib8] [lbfb0800] [encoding=t2b]
+ \definefontsynonym [cmfib8] [lbfb0800] [encoding=t2b]
%\definefontsynonym [cminch] [lbinch00] [encoding=t2b]
\definefontsynonym [cmitt10] [lbit1000] [encoding=t2b]
\definefontsynonym [cmr10] [lbrm1000] [encoding=t2b]
\definefontsynonym [cmr12] [lbrm1200] [encoding=t2b]
\definefontsynonym [cmr17] [lbrm1700] [encoding=t2b]
- \definefontsynonym [cmr5] [lbrm0500] [encoding=t2b]
- \definefontsynonym [cmr6] [lbrm0600] [encoding=t2b]
- \definefontsynonym [cmr7] [lbrm0700] [encoding=t2b]
- \definefontsynonym [cmr8] [lbrm0800] [encoding=t2b]
- \definefontsynonym [cmr9] [lbrm0900] [encoding=t2b]
+ \definefontsynonym [cmr5] [lbrm0500] [encoding=t2b]
+ \definefontsynonym [cmr6] [lbrm0600] [encoding=t2b]
+ \definefontsynonym [cmr7] [lbrm0700] [encoding=t2b]
+ \definefontsynonym [cmr8] [lbrm0800] [encoding=t2b]
+ \definefontsynonym [cmr9] [lbrm0900] [encoding=t2b]
\definefontsynonym [cmsl10] [lbsl1000] [encoding=t2b]
\definefontsynonym [cmsl12] [lbsl1200] [encoding=t2b]
- \definefontsynonym [cmsl8] [lbsl0800] [encoding=t2b]
- \definefontsynonym [cmsl9] [lbsl0900] [encoding=t2b]
+ \definefontsynonym [cmsl8] [lbsl0800] [encoding=t2b]
+ \definefontsynonym [cmsl9] [lbsl0900] [encoding=t2b]
\definefontsynonym [cmsltt10] [lbst1000] [encoding=t2b]
\definefontsynonym [cmss10] [lbss1000] [encoding=t2b]
\definefontsynonym [cmss12] [lbss1200] [encoding=t2b]
\definefontsynonym [cmss17] [lbss1700] [encoding=t2b]
- \definefontsynonym [cmss8] [lbss0800] [encoding=t2b]
- \definefontsynonym [cmss9] [lbss0900] [encoding=t2b]
+ \definefontsynonym [cmss8] [lbss0800] [encoding=t2b]
+ \definefontsynonym [cmss9] [lbss0900] [encoding=t2b]
\definefontsynonym [cmssbx10] [lbsx1000] [encoding=t2b]
%\definefontsynonym [cmssdc10] [lbssdc1000] [encoding=t2b]
\definefontsynonym [cmssi10] [lbsi1000] [encoding=t2b]
\definefontsynonym [cmssi12] [lbsi1200] [encoding=t2b]
\definefontsynonym [cmssi17] [lbsi1700] [encoding=t2b]
- \definefontsynonym [cmssi8] [lbsi0800] [encoding=t2b]
- \definefontsynonym [cmssi9] [lbsi0900] [encoding=t2b]
- \definefontsynonym [cmssq8] [lbss0800] [encoding=t2b]
- \definefontsynonym [cmssqi8] [lbsi0800] [encoding=t2b]
+ \definefontsynonym [cmssi8] [lbsi0800] [encoding=t2b]
+ \definefontsynonym [cmssi9] [lbsi0900] [encoding=t2b]
+ \definefontsynonym [cmssq8] [lbss0800] [encoding=t2b]
+ \definefontsynonym [cmssqi8] [lbsi0800] [encoding=t2b]
\definefontsynonym [cmtcsc10] [lbtc1000] [encoding=t2b]
\definefontsynonym [cmti10] [lbti1000] [encoding=t2b]
\definefontsynonym [cmti12] [lbti1200] [encoding=t2b]
- \definefontsynonym [cmti7] [lbti0700] [encoding=t2b]
- \definefontsynonym [cmti8] [lbti0800] [encoding=t2b]
- \definefontsynonym [cmti9] [lbti0900] [encoding=t2b]
+ \definefontsynonym [cmti7] [lbti0700] [encoding=t2b]
+ \definefontsynonym [cmti8] [lbti0800] [encoding=t2b]
+ \definefontsynonym [cmti9] [lbti0900] [encoding=t2b]
\definefontsynonym [cmtt10] [lbtt1000] [encoding=t2b]
\definefontsynonym [cmtt12] [lbtt1200] [encoding=t2b]
- \definefontsynonym [cmtt8] [lbtt0800] [encoding=t2b]
- \definefontsynonym [cmtt9] [lbtt0900] [encoding=t2b]
+ \definefontsynonym [cmtt8] [lbtt0800] [encoding=t2b]
+ \definefontsynonym [cmtt9] [lbtt0900] [encoding=t2b]
\definefontsynonym [cmu10] [lbui1000] [encoding=t2b]
\definefontsynonym [cmvtt10] [lbvt1000] [encoding=t2b]
\stoptypescript
@@ -579,57 +579,57 @@
\definefontsynonym [cmb10] [lcrb1000] [encoding=t2c]
\definefontsynonym [cmbx10] [lcbx1000] [encoding=t2c]
\definefontsynonym [cmbx12] [lcbx1200] [encoding=t2c]
- \definefontsynonym [cmbx5] [lcbx0500] [encoding=t2c]
- \definefontsynonym [cmbx6] [lcbx0600] [encoding=t2c]
- \definefontsynonym [cmbx7] [lcbx0700] [encoding=t2c]
- \definefontsynonym [cmbx8] [lcbx0800] [encoding=t2c]
- \definefontsynonym [cmbx9] [lcbx0900] [encoding=t2c]
+ \definefontsynonym [cmbx5] [lcbx0500] [encoding=t2c]
+ \definefontsynonym [cmbx6] [lcbx0600] [encoding=t2c]
+ \definefontsynonym [cmbx7] [lcbx0700] [encoding=t2c]
+ \definefontsynonym [cmbx8] [lcbx0800] [encoding=t2c]
+ \definefontsynonym [cmbx9] [lcbx0900] [encoding=t2c]
\definefontsynonym [cmbxsl10] [lcbl1000] [encoding=t2c]
\definefontsynonym [cmbxti10] [lcbi1000] [encoding=t2c]
\definefontsynonym [cmcsc10] [lccc1000] [encoding=t2c]
\definefontsynonym [cmdunh10] [lcdh1000] [encoding=t2c]
\definefontsynonym [cmff10] [lcff1000] [encoding=t2c]
\definefontsynonym [cmfi10] [lcfi1000] [encoding=t2c]
- \definefontsynonym [cmfib8] [lcfb0800] [encoding=t2c]
+ \definefontsynonym [cmfib8] [lcfb0800] [encoding=t2c]
%\definefontsynonym [cminch] [lcinch00] [encoding=t2c]
\definefontsynonym [cmitt10] [lcit1000] [encoding=t2c]
\definefontsynonym [cmr10] [lcrm1000] [encoding=t2c]
\definefontsynonym [cmr12] [lcrm1200] [encoding=t2c]
\definefontsynonym [cmr17] [lcrm1700] [encoding=t2c]
- \definefontsynonym [cmr5] [lcrm0500] [encoding=t2c]
- \definefontsynonym [cmr6] [lcrm0600] [encoding=t2c]
- \definefontsynonym [cmr7] [lcrm0700] [encoding=t2c]
- \definefontsynonym [cmr8] [lcrm0800] [encoding=t2c]
- \definefontsynonym [cmr9] [lcrm0900] [encoding=t2c]
+ \definefontsynonym [cmr5] [lcrm0500] [encoding=t2c]
+ \definefontsynonym [cmr6] [lcrm0600] [encoding=t2c]
+ \definefontsynonym [cmr7] [lcrm0700] [encoding=t2c]
+ \definefontsynonym [cmr8] [lcrm0800] [encoding=t2c]
+ \definefontsynonym [cmr9] [lcrm0900] [encoding=t2c]
\definefontsynonym [cmsl10] [lcsl1000] [encoding=t2c]
\definefontsynonym [cmsl12] [lcsl1200] [encoding=t2c]
- \definefontsynonym [cmsl8] [lcsl0800] [encoding=t2c]
- \definefontsynonym [cmsl9] [lcsl0900] [encoding=t2c]
+ \definefontsynonym [cmsl8] [lcsl0800] [encoding=t2c]
+ \definefontsynonym [cmsl9] [lcsl0900] [encoding=t2c]
\definefontsynonym [cmsltt10] [lcst1000] [encoding=t2c]
\definefontsynonym [cmss10] [lcss1000] [encoding=t2c]
\definefontsynonym [cmss12] [lcss1200] [encoding=t2c]
\definefontsynonym [cmss17] [lcss1700] [encoding=t2c]
- \definefontsynonym [cmss8] [lcss0800] [encoding=t2c]
- \definefontsynonym [cmss9] [lcss0900] [encoding=t2c]
+ \definefontsynonym [cmss8] [lcss0800] [encoding=t2c]
+ \definefontsynonym [cmss9] [lcss0900] [encoding=t2c]
\definefontsynonym [cmssbx10] [lcsx1000] [encoding=t2c]
%\definefontsynonym [cmssdc10] [lcssdc1000] [encoding=t2c]
\definefontsynonym [cmssi10] [lcsi1000] [encoding=t2c]
\definefontsynonym [cmssi12] [lcsi1200] [encoding=t2c]
\definefontsynonym [cmssi17] [lcsi1700] [encoding=t2c]
- \definefontsynonym [cmssi8] [lcsi0800] [encoding=t2c]
- \definefontsynonym [cmssi9] [lcsi0900] [encoding=t2c]
- \definefontsynonym [cmssq8] [lcss0800] [encoding=t2c]
- \definefontsynonym [cmssqi8] [lcsi0800] [encoding=t2c]
+ \definefontsynonym [cmssi8] [lcsi0800] [encoding=t2c]
+ \definefontsynonym [cmssi9] [lcsi0900] [encoding=t2c]
+ \definefontsynonym [cmssq8] [lcss0800] [encoding=t2c]
+ \definefontsynonym [cmssqi8] [lcsi0800] [encoding=t2c]
\definefontsynonym [cmtcsc10] [lctc1000] [encoding=t2c]
\definefontsynonym [cmti10] [lcti1000] [encoding=t2c]
\definefontsynonym [cmti12] [lcti1200] [encoding=t2c]
- \definefontsynonym [cmti7] [lcti0700] [encoding=t2c]
- \definefontsynonym [cmti8] [lcti0800] [encoding=t2c]
- \definefontsynonym [cmti9] [lcti0900] [encoding=t2c]
+ \definefontsynonym [cmti7] [lcti0700] [encoding=t2c]
+ \definefontsynonym [cmti8] [lcti0800] [encoding=t2c]
+ \definefontsynonym [cmti9] [lcti0900] [encoding=t2c]
\definefontsynonym [cmtt10] [lctt1000] [encoding=t2c]
\definefontsynonym [cmtt12] [lctt1200] [encoding=t2c]
- \definefontsynonym [cmtt8] [lctt0800] [encoding=t2c]
- \definefontsynonym [cmtt9] [lctt0900] [encoding=t2c]
+ \definefontsynonym [cmtt8] [lctt0800] [encoding=t2c]
+ \definefontsynonym [cmtt9] [lctt0900] [encoding=t2c]
\definefontsynonym [cmu10] [lcui1000] [encoding=t2c]
\definefontsynonym [cmvtt10] [lcvt1000] [encoding=t2c]
\stoptypescript
@@ -638,57 +638,57 @@
\definefontsynonym [cmb10] [rxrb1000] [encoding=x2]
\definefontsynonym [cmbx10] [rxbx1000] [encoding=x2]
\definefontsynonym [cmbx12] [rxbx1200] [encoding=x2]
- \definefontsynonym [cmbx5] [rxbx0500] [encoding=x2]
- \definefontsynonym [cmbx6] [rxbx0600] [encoding=x2]
- \definefontsynonym [cmbx7] [rxbx0700] [encoding=x2]
- \definefontsynonym [cmbx8] [rxbx0800] [encoding=x2]
- \definefontsynonym [cmbx9] [rxbx0900] [encoding=x2]
+ \definefontsynonym [cmbx5] [rxbx0500] [encoding=x2]
+ \definefontsynonym [cmbx6] [rxbx0600] [encoding=x2]
+ \definefontsynonym [cmbx7] [rxbx0700] [encoding=x2]
+ \definefontsynonym [cmbx8] [rxbx0800] [encoding=x2]
+ \definefontsynonym [cmbx9] [rxbx0900] [encoding=x2]
\definefontsynonym [cmbxsl10] [rxbl1000] [encoding=x2]
\definefontsynonym [cmbxti10] [rxbi1000] [encoding=x2]
\definefontsynonym [cmcsc10] [rxcc1000] [encoding=x2]
\definefontsynonym [cmdunh10] [rxdh1000] [encoding=x2]
\definefontsynonym [cmff10] [rxff1000] [encoding=x2]
\definefontsynonym [cmfi10] [rxfi1000] [encoding=x2]
- \definefontsynonym [cmfib8] [rxfb0800] [encoding=x2]
+ \definefontsynonym [cmfib8] [rxfb0800] [encoding=x2]
%\definefontsynonym [cminch] [rxinch00] [encoding=x2]
\definefontsynonym [cmitt10] [rxit1000] [encoding=x2]
\definefontsynonym [cmr10] [rxrm1000] [encoding=x2]
\definefontsynonym [cmr12] [rxrm1200] [encoding=x2]
\definefontsynonym [cmr17] [rxrm1700] [encoding=x2]
- \definefontsynonym [cmr5] [rxrm0500] [encoding=x2]
- \definefontsynonym [cmr6] [rxrm0600] [encoding=x2]
- \definefontsynonym [cmr7] [rxrm0700] [encoding=x2]
- \definefontsynonym [cmr8] [rxrm0800] [encoding=x2]
- \definefontsynonym [cmr9] [rxrm0900] [encoding=x2]
+ \definefontsynonym [cmr5] [rxrm0500] [encoding=x2]
+ \definefontsynonym [cmr6] [rxrm0600] [encoding=x2]
+ \definefontsynonym [cmr7] [rxrm0700] [encoding=x2]
+ \definefontsynonym [cmr8] [rxrm0800] [encoding=x2]
+ \definefontsynonym [cmr9] [rxrm0900] [encoding=x2]
\definefontsynonym [cmsl10] [rxsl1000] [encoding=x2]
\definefontsynonym [cmsl12] [rxsl1200] [encoding=x2]
- \definefontsynonym [cmsl8] [rxsl0800] [encoding=x2]
- \definefontsynonym [cmsl9] [rxsl0900] [encoding=x2]
+ \definefontsynonym [cmsl8] [rxsl0800] [encoding=x2]
+ \definefontsynonym [cmsl9] [rxsl0900] [encoding=x2]
\definefontsynonym [cmsltt10] [rxst1000] [encoding=x2]
\definefontsynonym [cmss10] [rxss1000] [encoding=x2]
\definefontsynonym [cmss12] [rxss1200] [encoding=x2]
\definefontsynonym [cmss17] [rxss1700] [encoding=x2]
- \definefontsynonym [cmss8] [rxss0800] [encoding=x2]
- \definefontsynonym [cmss9] [rxss0900] [encoding=x2]
+ \definefontsynonym [cmss8] [rxss0800] [encoding=x2]
+ \definefontsynonym [cmss9] [rxss0900] [encoding=x2]
\definefontsynonym [cmssbx10] [rxsx1000] [encoding=x2]
%\definefontsynonym [cmssdc10] [rxssdc1000] [encoding=x2]
\definefontsynonym [cmssi10] [rxsi1000] [encoding=x2]
\definefontsynonym [cmssi12] [rxsi1200] [encoding=x2]
\definefontsynonym [cmssi17] [rxsi1700] [encoding=x2]
- \definefontsynonym [cmssi8] [rxsi0800] [encoding=x2]
- \definefontsynonym [cmssi9] [rxsi0900] [encoding=x2]
- \definefontsynonym [cmssq8] [rxss0800] [encoding=x2]
- \definefontsynonym [cmssqi8] [rxsi0800] [encoding=x2]
+ \definefontsynonym [cmssi8] [rxsi0800] [encoding=x2]
+ \definefontsynonym [cmssi9] [rxsi0900] [encoding=x2]
+ \definefontsynonym [cmssq8] [rxss0800] [encoding=x2]
+ \definefontsynonym [cmssqi8] [rxsi0800] [encoding=x2]
\definefontsynonym [cmtcsc10] [rxtc1000] [encoding=x2]
\definefontsynonym [cmti10] [rxti1000] [encoding=x2]
\definefontsynonym [cmti12] [rxti1200] [encoding=x2]
- \definefontsynonym [cmti7] [rxti0700] [encoding=x2]
- \definefontsynonym [cmti8] [rxti0800] [encoding=x2]
- \definefontsynonym [cmti9] [rxti0900] [encoding=x2]
+ \definefontsynonym [cmti7] [rxti0700] [encoding=x2]
+ \definefontsynonym [cmti8] [rxti0800] [encoding=x2]
+ \definefontsynonym [cmti9] [rxti0900] [encoding=x2]
\definefontsynonym [cmtt10] [rxtt1000] [encoding=x2]
\definefontsynonym [cmtt12] [rxtt1200] [encoding=x2]
- \definefontsynonym [cmtt8] [rxtt0800] [encoding=x2]
- \definefontsynonym [cmtt9] [rxtt0900] [encoding=x2]
+ \definefontsynonym [cmtt8] [rxtt0800] [encoding=x2]
+ \definefontsynonym [cmtt9] [rxtt0900] [encoding=x2]
\definefontsynonym [cmu10] [rxui1000] [encoding=x2]
\definefontsynonym [cmvtt10] [rxvt1000] [encoding=x2]
\stoptypescript
@@ -756,7 +756,7 @@
\definefontsynonym [cmvtt10] [lhvtt10] [encoding=lcy]
\stoptypescript
-\starttypescript [all] [computer-modern] [ec]
+\starttypescript [all] [computer-modern] [ec]
\definefontsynonym [cmb10] [ecrb1000] [encoding=ec]
\definefontsynonym [cmbx10] [ecbx1000] [encoding=ec]
\definefontsynonym [cmbx12] [ecbx1200] [encoding=ec]
@@ -813,7 +813,7 @@
\definefontsynonym [cmtt9] [ectt0900] [encoding=ec]
\definefontsynonym [cmu10] [ecui1000] [encoding=ec]
\definefontsynonym [cmvtt10] [ecvt1000] [encoding=ec]
-\stoptypescript
+\stoptypescript
\starttypescript [serif] [computer-modern] [default]
\definefontsynonym [ComputerModern] [cmr10]
@@ -883,6 +883,53 @@
\definefontsynonym [AMS-SymbolB] [msbm10]
\stoptypescript
+% Fourier (Utopia)
+
+\starttypescript [math] [fourier] [default,ec]
+ % \definefontsynonym [Fourier-Math-Letters] [futr8t] [encoding=ec]
+ \definefontsynonym [Fourier-Math-Letters] [futmi]
+ \definefontsynonym [Fourier-Math-Letters-Italic] [futmii]
+ \definefontsynonym [Fourier-Math-Symbols] [futsy]
+ \definefontsynonym [Fourier-Math-Extension] [fourier-mex]
+\stoptypescript
+
+\starttypescript [serif] [fourier] [ec]
+ \definefontsynonym [Fourier-Regular] [futr8t] [encoding=ec]
+ \definefontsynonym [Fourier-Slanted] [futro8t] [encoding=ec]
+ \definefontsynonym [Fourier-Italic] [futri8t] [encoding=ec]
+ \definefontsynonym [Fourier-RegularCaps] [futrc8t] [encoding=ec]
+ \definefontsynonym [Fourier-Bold] [futb8t] [encoding=ec]
+ \definefontsynonym [Fourier-BoldSlanted] [futbo8t] [encoding=ec]
+ \definefontsynonym [Fourier-BoldItalic] [futbi8t] [encoding=ec]
+ \definefontsynonym [Fourier-BoldCaps] [futbc8t] [encoding=ec]
+
+ \definefontsynonym [Fourier-Regular-Expert] [futr9e] [encoding=ec]
+ \definefontsynonym [Fourier-Slanted-Expert] [futro9e] [encoding=ec]
+ \definefontsynonym [Fourier-Italic-Expert] [futri9e] [encoding=ec]
+ \definefontsynonym [Fourier-RegularCaps-Expert] [futrc9e] [encoding=ec]
+ \definefontsynonym [Fourier-Semi-Expert] [futs9e] [encoding=ec]
+ \definefontsynonym [Fourier-SemiSlanted-Expert] [futso9e] [encoding=ec]
+ \definefontsynonym [Fourier-SemiItalic-Expert] [futsi9e] [encoding=ec]
+ \definefontsynonym [Fourier-SemiCaps-Expert] [futsc9e] [encoding=ec]
+ \definefontsynonym [Fourier-Bold-Expert] [futb9e] [encoding=ec]
+ \definefontsynonym [Fourier-BoldSlanted-Expert] [futbo9e] [encoding=ec]
+ \definefontsynonym [Fourier-BoldItalic-Expert] [futbi9e] [encoding=ec]
+ \definefontsynonym [Fourier-Black-Expert] [futc9e] [encoding=ec]
+
+ \definefontsynonym [Fourier-Regular-OldStyle] [futr9d] [encoding=ec]
+ \definefontsynonym [Fourier-Slanted-OldStyle] [futro9d] [encoding=ec]
+ \definefontsynonym [Fourier-Italic-OldStyle] [futri9d] [encoding=ec]
+ \definefontsynonym [Fourier-RegularCaps-OldStyle] [futrc9d] [encoding=ec]
+ \definefontsynonym [Fourier-Semi-OldStyle] [futs9d] [encoding=ec]
+ \definefontsynonym [Fourier-SemiSlanted-OldStyle] [futso9d] [encoding=ec]
+ \definefontsynonym [Fourier-SemiItalic-OldStyle] [futsi9d] [encoding=ec]
+ \definefontsynonym [Fourier-SemiCaps-OldStyle] [futsc9d] [encoding=ec]
+ \definefontsynonym [Fourier-Bold-OldStyle] [futb9d] [encoding=ec]
+ \definefontsynonym [Fourier-BoldSlanted-OldStyle] [futbo9d] [encoding=ec]
+ \definefontsynonym [Fourier-BoldItalic-OldStyle] [futbi9d] [encoding=ec]
+ \definefontsynonym [Fourier-Black-OldStyle] [futc9d] [encoding=ec]
+\stoptypescript
+
% Courier (URW)
\starttypescript [mono] [courier] [texnansi,ec,8r]
diff --git a/tex/context/base/type-exa.tex b/tex/context/base/type-exa.tex
index 4283f412c..0e0455605 100644
--- a/tex/context/base/type-exa.tex
+++ b/tex/context/base/type-exa.tex
@@ -1,8 +1,8 @@
%D \module
%D [ file=type-exa,
-%D version=2001.04.12,
+%D version=2001.04.12,
%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=Example scripts,
+%D subtitle=Example scripts,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -25,7 +25,7 @@
\starttypescript [postscript] [texnansi,ec,8r]
\definetypeface [postscript] [rm] [serif] [times] [default] [encoding=\typescripttwo]
-\definetypeface [postscript] [mm] [math] [times] [default]
+\definetypeface [postscript] [mm] [math] [times] [default]
\definetypeface [postscript] [ss] [sans] [helvetica] [default] [rscale=.9,encoding=\typescripttwo]
\definetypeface [postscript] [tt] [mono] [courier] [default] [rscale=1.1,encoding=\typescripttwo]
@@ -43,10 +43,18 @@
\starttypescript [palatino] [texnansi,ec,8r]
\definetypeface [palatino] [rm] [serif] [palatino] [default] [encoding=\typescripttwo]
-\definetypeface [palatino] [mm] [math] [palatino] [default] [encoding=\typescripttwo]
-\definetypeface [palatino] [tt] [mono] [computer-modern] [default] [rscale=1.075]
+\definetypeface [palatino] [mm] [math] [palatino] [default] [encoding=default]
+\definetypeface [palatino] [tt] [mono] [computer-modern] [default] [rscale=1.075,encoding=\typescripttwo]
-% to do (rscaled): tt->computer-modern ss->??
+\stoptypescript
+
+\starttypescript [fourier] [ec]
+
+\definetypeface [fourier] [rm] [serif] [fourier] [default] [encoding=ec]
+\definetypeface [fourier] [mm] [math] [fourier] [default] [encoding=default]
+\definetypeface [fourier] [tt] [mono] [latin-modern] [default] [rscale=1.070,encoding=ec]
+
+\usemathcollection[fou]
\stoptypescript
@@ -58,7 +66,7 @@
\definetypeface [lucida] [mm] [math] [lucida] [default] [encoding=\typescripttwo]
\definetypeface [lucida] [hw] [handwriting] [lucida] [default] [encoding=\typescripttwo]
-\usemathcollection[lbr]
+\usemathcollection[lbr]
\stoptypescript
@@ -128,4 +136,4 @@
\stoptypescript
-\endinput
+\endinput \ No newline at end of file
diff --git a/tex/context/base/type-map.tex b/tex/context/base/type-map.tex
index 55097b8e7..e6c3320f5 100644
--- a/tex/context/base/type-map.tex
+++ b/tex/context/base/type-map.tex
@@ -1,8 +1,8 @@
%D \module
%D [ file=type-map,
-%D version=2001.04.12,
+%D version=2001.04.12,
%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=Mapfile scripts,
+%D subtitle=Mapfile scripts,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -11,66 +11,69 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+%D Beware, this may change to run time loading once pdftex can do
+%D that per page.
+
%D We cannot be too clever here since loading the mapfile is
-%D a time sensitive operation. Better to load a couple more
-%D then to run into problems.
+%D a time sensitive operation. Better to load a couple more
+%D then to run into problems.
\starttypescript [map] [all]
\loadmapfile[original-ams-cmr.map]
\loadmapfile[original-ams-euler.map]
-\stoptypescript
+\stoptypescript
\starttypescript [map] [lm]
\loadmapfile[original-ams-lmr.map]
-\stoptypescript
+\stoptypescript
\starttypescript [map] [il2]
\loadmapfile[il2-ams-cmr.map]
-\stoptypescript
+\stoptypescript
\starttypescript [map] [pl0]
\loadmapfile[pl0-ams-cmr.map]
-\stoptypescript
+\stoptypescript
% beware, this one will not handle \usetypescript [map] [x,y]
-%
-% \starttypescript [map] [ec,texnansi,8r]
+%
+% \starttypescript [map] [ec,texnansi,8r]
% \loadmapfile[\typescripttwo-urw-times.map]
% \loadmapfile[\typescripttwo-urw-helvetica.map]
-% \stoptypescript
+% \stoptypescript
\starttypescript [map] [8r]
\loadmapfile[8r-adobe-utopia.map]
\loadmapfile[8r-bit-charter.map]
\loadmapfile[8r-public-antp.map]
\loadmapfile[8r-public-antt.map]
- \loadmapfile[8r-urw-bookman.map]
+ \loadmapfile[8r-urw-bookman.map]
\loadmapfile[8r-urw-courier.map]
\loadmapfile[8r-urw-helvetica.map]
\loadmapfile[8r-urw-palatino.map]
\loadmapfile[8r-urw-times.map]
\loadmapfile[8r-urw-zapfchan.map]
-\stoptypescript
+\stoptypescript
\starttypescript [map] [ec]
\loadmapfile[ec-adobe-utopia.map]
\loadmapfile[ec-bit-charter.map]
\loadmapfile[ec-public-antp.map]
\loadmapfile[ec-public-antt.map]
- \loadmapfile[ec-urw-bookman.map]
+ \loadmapfile[ec-urw-bookman.map]
\loadmapfile[ec-urw-courier.map]
\loadmapfile[ec-urw-helvetica.map]
\loadmapfile[ec-urw-palatino.map]
\loadmapfile[ec-urw-times.map]
\loadmapfile[ec-urw-zapfchan.map]
-\stoptypescript
+\stoptypescript
-\starttypescript [map] [texnansi]
+\starttypescript [map] [texnansi]
\loadmapfile[texnansi-adobe-utopia.map]
\loadmapfile[texnansi-bit-charter.map]
\loadmapfile[texnansi-public-antp.map]
\loadmapfile[texnansi-public-antt.map]
- \loadmapfile[texnansi-urw-bookman.map]
+ \loadmapfile[texnansi-urw-bookman.map]
\loadmapfile[texnansi-urw-courier.map]
\loadmapfile[texnansi-urw-helvetica.map]
\loadmapfile[texnansi-urw-palatino.map]
@@ -81,28 +84,31 @@
\starttypescript [map] [ec,texnansi,8r]
\loadmapfile[original-youngryu-px.map]
\loadmapfile[original-youngryu-tx.map]
-\stoptypescript
+\stoptypescript
-% to do
+% to do
\starttypescript [map] [default]
\loadmapfile[original-micropress-informal.map]
-\stoptypescript
+\stoptypescript
-\starttypescript [map] [texnansi]
+\starttypescript [map] [texnansi]
\loadmapfile[texnansi-bh-lucida.map]
-\stoptypescript
+\stoptypescript
-\starttypescript [map] [ec]
+\starttypescript [map] [ec]
\loadmapfile[ec-bh-lucida.map]
-\stoptypescript
+ % this may change to original-*.map
+ \loadmapfile[fourier.map]
+ \loadmapfile[fourier-utopia-expert.map]
+\stoptypescript
-\starttypescript [map] [8r]
+\starttypescript [map] [8r]
\loadmapfile[8r-bh-lucida.map]
-\stoptypescript
+\stoptypescript
-%\starttypescript [math] [helvetica] [all]
+%\starttypescript [math] [helvetica] [all]
% \loadmapfile[original-micropress-helvetica.map]
-%\stoptypescript
+%\stoptypescript
-\endinput
+\endinput \ No newline at end of file
diff --git a/tex/context/base/type-pre.tex b/tex/context/base/type-pre.tex
index 49a4cb2a7..3a4ad7af4 100644
--- a/tex/context/base/type-pre.tex
+++ b/tex/context/base/type-pre.tex
@@ -11,6 +11,9 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+%D This file defines some typescripts that simulate the pre-typescript way
+%D of defining fonts. This file will not be extended.
+
%D The Computer Modern Roman is derived from the Monotype~8a
%D Times Roman. In this module, that is loaded by default, we
%D define all relevant alternatives.
@@ -67,13 +70,13 @@
\stoptypescript
-\starttypescript [lh-ec]
+\starttypescript [lh-ec]
\usetypescript [serif,sans,mono,math] [computer-modern] [default,name,size,ec]
\usemathcollection[default]
-\stoptypescript
+\stoptypescript
\starttypescript [lh-t2a]
@@ -267,4 +270,4 @@
\usetypescript [berry] [ec]
\stoptypescript
-\endinput
+\endinput \ No newline at end of file
diff --git a/tex/context/base/type-siz.tex b/tex/context/base/type-siz.tex
index 8cb6e08d4..4a69acc2a 100644
--- a/tex/context/base/type-siz.tex
+++ b/tex/context/base/type-siz.tex
@@ -1,8 +1,8 @@
%D \module
%D [ file=type-siz,
-%D version=2001.04.12,
+%D version=2001.04.12,
%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=Sizing scripts,
+%D subtitle=Sizing scripts,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -11,62 +11,62 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\unprotect
+\unprotect
-\starttypescript [serif] [default] [size]
- \definebodyfont
- [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt]
+\starttypescript [serif] [default] [size]
+ \definebodyfont
+ [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt]
[rm] [default]
-\stoptypescript
+\stoptypescript
-\starttypescript [sans] [default] [size]
- \definebodyfont
- [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt]
+\starttypescript [sans] [default] [size]
+ \definebodyfont
+ [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt]
[ss] [default]
-\stoptypescript
+\stoptypescript
\starttypescript [mono] [default] [size]
- \definebodyfont
- [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt]
+ \definebodyfont
+ [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt]
[tt] [default]
-\stoptypescript
+\stoptypescript
\starttypescript [math,boldmath] [default] [size]
- \definebodyfont
- [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt]
+ \definebodyfont
+ [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt]
[mm] [default]
-\stoptypescript
+\stoptypescript
\starttypescript [bfmath] [default] [size]
- \definebodyfont
- [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt]
+ \definebodyfont
+ [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt]
[mm] [bfmath]
-\stoptypescript
+\stoptypescript
-\starttypescript [handwriting] [default] [size]
- \definebodyfont
- [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt]
+\starttypescript [handwriting] [default] [size]
+ \definebodyfont
+ [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt]
[hw] [default]
-\stoptypescript
+\stoptypescript
-\starttypescript [calligraphy] [default] [size]
- \definebodyfont
- [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt]
+\starttypescript [calligraphy] [default] [size]
+ \definebodyfont
+ [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt]
[cg] [default]
-\stoptypescript
+\stoptypescript
-\starttypescript [casual] [default] [size] % maps onto rm !
- \definebodyfont
- [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt]
+\starttypescript [casual] [default] [size] % maps onto rm !
+ \definebodyfont
+ [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt]
[rm] [default]
-\stoptypescript
+\stoptypescript
\starttypescript [all] [dtp] [size]
\definebodyfontenvironment
[4pt]
[ \s!text=4pt, \s!script=4pt, \s!scriptscript=4pt,
- \c!x=4pt, \c!xx=4pt,
+ \c!x=4pt, \c!xx=4pt,
\c!groot=6pt, \c!klein=4pt]
\definebodyfontenvironment
@@ -137,116 +137,116 @@
\stoptypescript
-\starttypescript [serif] [dtp] [size]
- \definebodyfont
+\starttypescript [serif] [dtp] [size]
+ \definebodyfont
[5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,13pt,14pt,16pt,18pt,22pt,28pt]
[rm] [default]
-\stoptypescript
+\stoptypescript
-\starttypescript [sans] [dtp] [size]
- \definebodyfont
+\starttypescript [sans] [dtp] [size]
+ \definebodyfont
[5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,13pt,14pt,16pt,18pt,22pt,28pt]
[ss] [default]
-\stoptypescript
+\stoptypescript
\starttypescript [mono] [dtp] [size]
- \definebodyfont
+ \definebodyfont
[5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,13pt,14pt,16pt,18pt,22pt,28pt]
[tt] [default]
-\stoptypescript
+\stoptypescript
\starttypescript [math,boldmath] [dtp] [size]
- \definebodyfont
+ \definebodyfont
[5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,13pt,14pt,16pt,18pt,22pt,28pt]
[mm] [default]
-\stoptypescript
+\stoptypescript
-% cmr
+% cmr
-\starttypescript [serif] [computer-modern] [size]
+\starttypescript [serif] [computer-modern] [size]
-\definebodyfont [12pt] [rm]
+\definebodyfont [12pt] [rm]
[tf=cmr12,
bf=cmbx12,
it=cmti12,
sl=cmsl12,
- bi=cmbxti10 at 12pt,
- bs=cmbxsl10 at 12pt,
+ bi=cmbxti10 at 12pt,
+ bs=cmbxsl10 at 12pt,
sc=cmcsc10 at 12pt]
-\definebodyfont [11pt] [rm]
- [tf=cmr10 at 11pt,
- bf=cmbx10 at 11pt,
- sl=cmsl10 at 11pt,
- it=cmti10 at 11pt,
- bi=cmbxti10 at 11pt,
- bs=cmbxsl10 at 11pt,
+\definebodyfont [11pt] [rm]
+ [tf=cmr10 at 11pt,
+ bf=cmbx10 at 11pt,
+ sl=cmsl10 at 11pt,
+ it=cmti10 at 11pt,
+ bi=cmbxti10 at 11pt,
+ bs=cmbxsl10 at 11pt,
sc=cmcsc10 at 11pt]
-\definebodyfont [10pt] [rm]
+\definebodyfont [10pt] [rm]
[tf=cmr10,
bf=cmbx10,
it=cmti10,
sl=cmsl10,
- bi=cmbxti10,
- bs=cmbxsl10,
+ bi=cmbxti10,
+ bs=cmbxsl10,
sc=cmcsc10]
-\definebodyfont [9pt] [rm]
+\definebodyfont [9pt] [rm]
[tf=cmr9,
bf=cmbx9,
it=cmti9,
sl=cmsl9,
- bi=cmbxti10 at 9pt,
- bs=cmbxsl10 at 9pt,
+ bi=cmbxti10 at 9pt,
+ bs=cmbxsl10 at 9pt,
sc=cmcsc10 at 9pt]
-\definebodyfont [8pt] [rm]
+\definebodyfont [8pt] [rm]
[tf=cmr8,
bf=cmbx8,
it=cmti8,
sl=cmsl8,
- bi=cmbxti10 at 8pt,
- bs=cmbxsl10 at 8pt,
+ bi=cmbxti10 at 8pt,
+ bs=cmbxsl10 at 8pt,
sc=cmcsc10 at 8pt]
-\definebodyfont [7pt] [rm]
+\definebodyfont [7pt] [rm]
[tf=cmr7,
bf=cmbx7,
it=cmti10 at 7pt,
sl=cmsl10 at 7pt,
- bi=cmbxti10 at 7pt,
- bs=cmbxsl10 at 7pt,
+ bi=cmbxti10 at 7pt,
+ bs=cmbxsl10 at 7pt,
sc=cmcsc10 at 7pt]
-\definebodyfont [6pt] [rm]
+\definebodyfont [6pt] [rm]
[tf=cmr6,
bf=cmbx6,
it=cmti10 at 6pt,
sl=cmsl10 at 6pt,
- bi=cmbxti10 at 6pt,
- bs=cmbxsl10 at 6pt,
+ bi=cmbxti10 at 6pt,
+ bs=cmbxsl10 at 6pt,
sc=cmcsc10 at 6pt]
-\definebodyfont [5pt] [rm]
+\definebodyfont [5pt] [rm]
[tf=cmr5,
bf=cmbx5,
it=cmti10 at 5pt,
sl=cmsl10 at 5pt,
- bi=cmbxti10 at 5pt,
- bs=cmbxsl10 at 5pt,
+ bi=cmbxti10 at 5pt,
+ bs=cmbxsl10 at 5pt,
sc=cmcsc10 at 5pt]
-\definebodyfont [4pt] [rm]
+\definebodyfont [4pt] [rm]
[tf=cmr10 at 4pt,
bf=cmbx10 at 4pt,
it=cmti10 at 4pt,
sl=cmsl10 at 4pt,
- bi=cmbxti10 at 4pt,
+ bi=cmbxti10 at 4pt,
bs=cmbxsl10 at 4pt,
- sc=cmr10 at 4pt]
+ sc=cmr10 at 4pt]
-\definebodyfont [14.4pt,17.3pt,20.7pt] [rm]
+\definebodyfont [14.4pt,17.3pt,20.7pt] [rm]
[tf=cmr12 sa 1,
bf=cmbx12 sa 1,
it=cmti12 sa 1,
@@ -255,11 +255,11 @@
bs=cmbxsl10 sa 1,
sc=cmcsc10 sa 1]
-\stoptypescript
+\stoptypescript
-\starttypescript [sans] [computer-modern] [size]
+\starttypescript [sans] [computer-modern] [size]
-\definebodyfont [12pt] [ss]
+\definebodyfont [12pt] [ss]
[tf=cmss12,
bf=cmssbx10 at 12pt,
it=cmssi12,
@@ -268,79 +268,79 @@
bs=cmssbx10 at 12pt,
sc=cmss10 at 12pt]
-\definebodyfont [11pt] [ss]
- [tf=cmss10 at 11pt,
- bf=cmssbx10 at 11pt,
- it=cmssi10 at 11pt,
- sl=cmssi10 at 11pt,
- bi=cmssbx10 at 11pt,
- bs=cmssbx10 at 11pt,
+\definebodyfont [11pt] [ss]
+ [tf=cmss10 at 11pt,
+ bf=cmssbx10 at 11pt,
+ it=cmssi10 at 11pt,
+ sl=cmssi10 at 11pt,
+ bi=cmssbx10 at 11pt,
+ bs=cmssbx10 at 11pt,
sc=cmss10 at 11pt]
-\definebodyfont [10pt] [ss]
+\definebodyfont [10pt] [ss]
[tf=cmss10,
- bf=cmssbx10,
+ bf=cmssbx10,
it=cmssi10,
sl=cmssi10,
- bi=cmssbx10,
- bs=cmssbx10,
+ bi=cmssbx10,
+ bs=cmssbx10,
sc=cmss10]
-\definebodyfont [9pt] [ss]
+\definebodyfont [9pt] [ss]
[tf=cmss9,
- bf=cmssbx10 at 9pt,
+ bf=cmssbx10 at 9pt,
it=cmssi9,
sl=cmssi9,
- bi=cmssbx10 at 9pt,
- bs=cmssbx10 at 9pt,
+ bi=cmssbx10 at 9pt,
+ bs=cmssbx10 at 9pt,
sc=cmss9]
-\definebodyfont [8pt] [ss]
+\definebodyfont [8pt] [ss]
[tf=cmss8,
- bf=cmssbx10 at 8pt,
+ bf=cmssbx10 at 8pt,
it=cmssi8,
sl=cmssi8,
- bi=cmssbx10 at 8pt,
- bs=cmssbx10 at 8pt,
+ bi=cmssbx10 at 8pt,
+ bs=cmssbx10 at 8pt,
sc=cmss8]
-\definebodyfont [7pt] [ss]
+\definebodyfont [7pt] [ss]
[tf=cmss10 at 7pt,
- bf=cmssbx10 at 7pt,
+ bf=cmssbx10 at 7pt,
it=cmssi10 at 7pt,
sl=cmssi10 at 7pt,
bs=cmssbx10 at 7pt,
bi=cmssbx10 at 7pt,
sc=cmss10 at 7pt]
-\definebodyfont [6pt] [ss]
+\definebodyfont [6pt] [ss]
[tf=cmss10 at 6pt,
- bf=cmssbx10 at 6pt,
+ bf=cmssbx10 at 6pt,
it=cmssi10 at 6pt,
sl=cmssi10 at 6pt,
bs=cmssbx10 at 6pt,
bi=cmssbx10 at 6pt,
sc=cmss10 at 6pt]
-\definebodyfont [5pt] [ss]
+\definebodyfont [5pt] [ss]
[tf=cmss10 at 5pt,
- bf=cmssbx10 at 5pt,
+ bf=cmssbx10 at 5pt,
it=cmssi10 at 5pt,
sl=cmssi10 at 5pt,
bs=cmssbx10 at 5pt,
bi=cmssbx10 at 5pt,
sc=cmss10 at 5pt]
-\definebodyfont [4pt] [ss]
+\definebodyfont [4pt] [ss]
[tf=cmss10 at 4pt,
- bf=cmssbx10 at 4pt,
+ bf=cmssbx10 at 4pt,
it=cmssi10 at 4pt,
sl=cmssi10 at 4pt,
bs=cmssbx10 at 4pt,
bi=cmssbx10 at 4pt,
sc=cmss10 at 4pt]
-\definebodyfont [14.4pt,17.3pt,20.7pt] [ss]
+\definebodyfont [14.4pt,17.3pt,20.7pt] [ss]
[tf=cmss12 sa 1,
bf=cmssbx10 sa 1,
it=cmssi12 sa 1,
@@ -349,65 +349,65 @@
bs=cmssbx10 sa 1,
sc=cmss12 sa 1]
-\stoptypescript
+\stoptypescript
-\starttypescript [mono] [computer-modern] [size]
+\starttypescript [mono] [computer-modern] [size]
-\definebodyfont [12pt] [tt]
+\definebodyfont [12pt] [tt]
[tf=cmtt12,
sl=cmsltt10 at 12pt,
it=cmitt10 at 12pt]
-\definebodyfont [11pt] [tt]
+\definebodyfont [11pt] [tt]
[tf=cmtt10 at 11pt,
sl=cmsltt10 at 11pt,
it=cmitt10 at 11pt]
-\definebodyfont [10pt] [tt]
+\definebodyfont [10pt] [tt]
[tf=cmtt10,
sl=cmsltt10,
it=cmitt10]
-\definebodyfont [9pt] [tt]
+\definebodyfont [9pt] [tt]
[tf=cmtt9,
sl=cmsltt10 at 9pt,
it=cmitt10 at 9pt]
-\definebodyfont [8pt] [tt]
+\definebodyfont [8pt] [tt]
[tf=cmtt8,
sl=cmsltt10 at 8pt,
it=cmitt10 at 8pt]
-\definebodyfont [7pt] [tt]
+\definebodyfont [7pt] [tt]
[tf=cmtt10 at 7pt,
sl=cmsltt10 at 7pt,
it=cmitt10 at 7pt]
-\definebodyfont [6pt] [tt]
+\definebodyfont [6pt] [tt]
[tf=cmtt10 at 6pt,
sl=cmsltt10 at 6pt,
it=cmitt10 at 6pt]
-\definebodyfont [5pt] [tt]
+\definebodyfont [5pt] [tt]
[tf=cmtt10 at 5pt,
sl=cmsltt10 at 5pt,
it=cmitt10 at 5pt]
-\definebodyfont [4pt] [tt]
+\definebodyfont [4pt] [tt]
[tf=cmtt10 at 4pt,
sl=cmsltt10 at 4pt,
it=cmitt10 at 4pt]
-\definebodyfont [14.4pt,17.3pt,20.7pt] [tt]
+\definebodyfont [14.4pt,17.3pt,20.7pt] [tt]
[tf=cmtt12 sa 1,
sl=cmsltt10 sa 1,
it=cmitt10 sa 1]
-\stoptypescript
+\stoptypescript
-\starttypescript [math] [computer-modern] [size]
+\starttypescript [math] [computer-modern] [size]
-% hack to prevent mapping of filenames, watch the space!
+% hack to prevent mapping of filenames, watch the space!
\definefontsynonym[xcmr12][cmr12 ]
\definefontsynonym[xcmr10][cmr10 ]
@@ -417,77 +417,77 @@
\definefontsynonym[xcmr6] [cmr6 ]
\definefontsynonym[xcmr5] [cmr5 ]
-\definebodyfont [12pt] [mm]
+\definebodyfont [12pt] [mm]
[mr=xcmr12,
ex=cmex10 at 12pt,
mi=cmmi12,
- sy=cmsy10 at 12pt]
+ sy=cmsy10 at 12pt]
-\definebodyfont [11pt] [mm]
+\definebodyfont [11pt] [mm]
[mr=xcmr10 at 11pt,
ex=cmex10 at 11pt,
mi=cmmi10 at 11pt,
sy=cmsy10 at 11pt]
-\definebodyfont [10pt] [mm]
+\definebodyfont [10pt] [mm]
[mr=xcmr10,
- ex=cmex10,
+ ex=cmex10,
mi=cmmi10,
- sy=cmsy10]
+ sy=cmsy10]
-\definebodyfont [9pt] [mm]
+\definebodyfont [9pt] [mm]
[mr=xcmr9,
- ex=cmex10 at 9pt,
+ ex=cmex10 at 9pt,
mi=cmmi9,
- sy=cmsy9]
+ sy=cmsy9]
-\definebodyfont [8pt] [mm]
+\definebodyfont [8pt] [mm]
[mr=xcmr8,
- ex=cmex10 at 8pt,
+ ex=cmex10 at 8pt,
mi=cmmi8,
- sy=cmsy8]
+ sy=cmsy8]
-\definebodyfont [7pt] [mm]
+\definebodyfont [7pt] [mm]
[mr=xcmr7,
- ex=cmex10 at 7pt,
+ ex=cmex10 at 7pt,
mi=cmmi7,
- sy=cmsy7]
+ sy=cmsy7]
-\definebodyfont [6pt] [mm]
+\definebodyfont [6pt] [mm]
[mr=xcmr6,
- ex=cmex10 at 6pt,
+ ex=cmex10 at 6pt,
mi=cmmi6,
- sy=cmsy6]
+ sy=cmsy6]
-\definebodyfont [5pt] [mm]
+\definebodyfont [5pt] [mm]
[mr=xcmr5,
- ex=cmex10 at 5pt,
+ ex=cmex10 at 5pt,
mi=cmmi5,
- sy=cmsy5]
+ sy=cmsy5]
-\definebodyfont [4pt] [mm]
+\definebodyfont [4pt] [mm]
[mr=xcmr5 at 4pt,
- ex=cmex10 at 4pt,
+ ex=cmex10 at 4pt,
mi=cmmi5 at 4pt,
- sy=cmsy5 at 4pt]
+ sy=cmsy5 at 4pt]
-\definebodyfont [14.4pt,17.3pt,20.7pt] [mm]
+\definebodyfont [14.4pt,17.3pt,20.7pt] [mm]
[mr=xcmr12 sa 1,
ex=cmex10 sa 1,
mi=cmmi12 sa 1,
sy=cmsy10 sa 1]
-\stoptypescript
+\stoptypescript
-\starttypescript [serif] [concrete] [size]
+\starttypescript [serif] [concrete] [size]
-\definebodyfont [10pt,11pt,12pt,14.4pt,17.3pt] [rm]
+\definebodyfont [10pt,11pt,12pt,14.4pt,17.3pt] [rm]
[tf=ccr10 sa 1,
it=ccti10 sa 1,
sl=ccsl10 sa 1,
sc=cccsc10 sa 1]
-\definebodyfont [5pt,6pt,7pt,8pt,9pt] [rm]
+\definebodyfont [5pt,6pt,7pt,8pt,9pt] [rm]
[it=ccr9 sa 1,
sl=ccr9 sa 1,
sc=ccr9 sa 1]
@@ -498,11 +498,126 @@
\definebodyfont [6pt] [rm] [tf=ccr6]
\definebodyfont [5pt] [rm] [tf=ccr5]
-\stoptypescript
-
-\starttypescript [math] [euler] [size]
+\stoptypescript
-\definebodyfont [12pt,11pt,10pt,9pt] [mm]
+% \starttypescript [serif] [fourier] [size] % experimental
+
+% \definebodyfont
+% [17.3pt,14.4pt,12pt,11pt,10pt,9pt,8pt,7pt,6pt,5pt,4pt]
+% [rm]
+% [bc=SerifBoldCaps sa 1,
+% bca=SerifBoldCaps sa a,
+% bcb=SerifBoldCaps sa b,
+% bcc=SerifBoldCaps sa c,
+% bcd=SerifBoldCaps sa d,
+% bcx=SerifBoldCaps sa x,
+% bcxx=SerifBoldCaps sa xx]
+
+% \stoptypescript
+
+% \starttypescript [serif] [fourier-expert] [size] % experimental
+
+% \definebodyfont
+% [17.3pt,14.4pt,12pt,11pt,10pt,9pt,8pt,7pt,6pt,5pt,4pt]
+% [rm]
+% [tf=Serif-Expert sa 1,
+% it=SerifItalic-Expert sa 1,
+% sl=SerifSlanted-Expert sa 1,
+% sc=SerifCaps-Expert sa 1,
+% db=SerifSemiBold-Expert sa 1,
+% dba=SerifSemiBold-Expert sa a,
+% dbb=SerifSemiBold-Expert sa b,
+% dbc=SerifSemiBold-Expert sa c,
+% dbd=SerifSemiBold-Expert sa d,
+% dbx=SerifSemiBold-Expert sa x,
+% dbxx=SerifSemiBold-Expert sa xx,
+% di=SerifSemiItalic-Expert sa 1,
+% dia=SerifSemiItalic-Expert sa a,
+% dib=SerifSemiItalic-Expert sa b,
+% dic=SerifSemiItalic-Expert sa c,
+% did=SerifSemiItalic-Expert sa d,
+% dix=SerifSemiItalic-Expert sa x,
+% dixx=SerifSemiItalic-Expert sa xx,
+% ds=SerifSemiSlanted-Expert sa 1,
+% dsa=SerifSemiSlanted-Expert sa a,
+% dsb=SerifSemiSlanted-Expert sa b,
+% dsc=SerifSemiSlanted-Expert sa c,
+% dsd=SerifSemiSlanted-Expert sa d,
+% dsx=SerifSemiSlanted-Expert sa x,
+% dsxx=SerifSemiSlanted-Expert sa xx,
+% dc=SerifSemiCaps-Expert sa 1,
+% dca=SerifSemiCaps-Expert sa a,
+% dcb=SerifSemiCaps-Expert sa b,
+% dcc=SerifSemiCaps-Expert sa c,
+% dcd=SerifSemiCaps-Expert sa d,
+% dcx=SerifSemiCaps-Expert sa x,
+% dcxx=SerifSemiCaps-Expert sa xx,
+% bf=SerifBold-Expert sa 1,
+% bi=SerifBoldItalic-Expert sa 1,
+% bs=SerifBoldSlanted-Expert sa 1,
+% eb=SerifBlack-Expert sa 1,
+% eba=SerifBlack-Expert sa a,
+% ebb=SerifBlack-Expert sa b,
+% ebc=SerifBlack-Expert sa c,
+% ebd=SerifBlack-Expert sa d,
+% ebx=SerifBlack-Expert sa x,
+% ebxx=SerifBlack-Expert sa xx]
+
+% \stoptypescript
+
+% \starttypescript [serif] [fourier-oldstyle] [size] % experimental
+
+% \definebodyfont
+% [17.3pt,14.4pt,12pt,11pt,10pt,9pt,8pt,7pt,6pt,5pt,4pt]
+% [rm]
+% [tf=Serif-OldStyle sa 1,
+% it=SerifItalic-OldStyle sa 1,
+% sl=SerifSlanted-OldStyle sa 1,
+% sc=SerifCaps-OldStyle sa 1,
+% db=SerifSemiBold-OldStyle sa 1,
+% dba=SerifSemiBold-OldStyle sa a,
+% dbb=SerifSemiBold-OldStyle sa b,
+% dbc=SerifSemiBold-OldStyle sa c,
+% dbd=SerifSemiBold-OldStyle sa d,
+% dbx=SerifSemiBold-OldStyle sa x,
+% dbxx=SerifSemiBold-OldStyle sa xx,
+% di=SerifSemiItalic-OldStyle sa 1,
+% dia=SerifSemiItalic-OldStyle sa a,
+% dib=SerifSemiItalic-OldStyle sa b,
+% dic=SerifSemiItalic-OldStyle sa c,
+% did=SerifSemiItalic-OldStyle sa d,
+% dix=SerifSemiItalic-OldStyle sa x,
+% dixx=SerifSemiItalic-OldStyle sa xx,
+% ds=SerifSemiSlanted-OldStyle sa 1,
+% dsa=SerifSemiSlanted-OldStyle sa a,
+% dsb=SerifSemiSlanted-OldStyle sa b,
+% dsc=SerifSemiSlanted-OldStyle sa c,
+% dsd=SerifSemiSlanted-OldStyle sa d,
+% dsx=SerifSemiSlanted-OldStyle sa x,
+% dsxx=SerifSemiSlanted-OldStyle sa xx,
+% dc=SerifSemiCaps-OldStyle sa 1,
+% dca=SerifSemiCaps-OldStyle sa a,
+% dcb=SerifSemiCaps-OldStyle sa b,
+% dcc=SerifSemiCaps-OldStyle sa c,
+% dcd=SerifSemiCaps-OldStyle sa d,
+% dcx=SerifSemiCaps-OldStyle sa x,
+% dcxx=SerifSemiCaps-OldStyle sa xx,
+% eb=SerifBlack-OldStyle sa 1,
+% eba=SerifBlack-OldStyle sa a,
+% ebb=SerifBlack-OldStyle sa b,
+% ebc=SerifBlack-OldStyle sa c,
+% ebd=SerifBlack-OldStyle sa d,
+% ebx=SerifBlack-OldStyle sa x,
+% ebxx=SerifBlack-OldStyle sa xx,
+% bf=SerifBold-OldStyle sa 1,
+% bi=SerifBoldItalic-OldStyle sa 1,
+% bs=SerifBoldSlanted-OldStyle sa 1]
+
+% \stoptypescript
+
+\starttypescript [math] [euler] [size]
+
+\definebodyfont [12pt,11pt,10pt,9pt] [mm]
[mi=eurm10 sa 1,
ex=euex10 sa 1,
ma=euex10 sa 1,
@@ -523,9 +638,9 @@
mb=eusm5,
mc=eufm5]
-\stoptypescript
+\stoptypescript
-\starttypescript [math] [ams] [size]
+\starttypescript [math] [ams] [size]
\definebodyfont [17.3pt,14.4pt,12pt,11pt,10pt,9pt] [mm]
[ma=msam10 sa 1,
mb=msbm10 sa 1]
@@ -537,9 +652,9 @@
mb=msbm5 sa 1]
\stoptypescript
-% math times
+% math times
-\starttypescript [math] [times] [size]
+\starttypescript [math] [times] [size]
\mapfontsize [5pt] [6.0pt]
\mapfontsize [6pt] [6.8pt]
@@ -551,6 +666,6 @@
\mapfontsize [12pt] [11.6pt]
\mapfontsize [14.4pt] [13.2pt]
-\stoptypescript
+\stoptypescript
\protect \endinput
diff --git a/tex/context/base/type-spe.tex b/tex/context/base/type-spe.tex
index 91fce0bf4..df663d8ae 100644
--- a/tex/context/base/type-spe.tex
+++ b/tex/context/base/type-spe.tex
@@ -1,8 +1,8 @@
%D \module
%D [ file=type-spe,
-%D version=2001.04.12,
+%D version=2001.04.12,
%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=Special scripts,
+%D subtitle=Special scripts,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -11,28 +11,32 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\starttypescript [mono] [courier,lucida] [special]
+\starttypescript [mono] [courier,lucida] [special]
\def\controlspace{\getglyph{ComputerModernMono}{\char32}}
-\stoptypescript
+\stoptypescript
-\starttypescript [math] [computer-modern] [special]
+\starttypescript [math] [computer-modern] [special]
\usemathcollection[default]
\stoptypescript
-\starttypescript [math,boldmath] [lucida] [special]
+\starttypescript [math,boldmath] [lucida] [special]
\usemathcollection[lbr]
\stoptypescript
-\starttypescript [math] [ams] [special]
+\starttypescript [math] [ams] [special]
\usemathcollection[ams]
\stoptypescript
-\starttypescript [math] [times] [special]
+\starttypescript [math] [times] [special]
\usemathcollection[ams]
\stoptypescript
-\starttypescript [math] [palatino] [special]
+\starttypescript [math] [palatino] [special]
\usemathcollection[ams]
\stoptypescript
-\endinput
+\starttypescript [math] [fourier] [special]
+ \usemathcollection[fou]
+\stoptypescript
+
+\endinput \ No newline at end of file
diff --git a/tex/context/base/type-syn.tex b/tex/context/base/type-syn.tex
index c153d93fb..dcbf912d0 100644
--- a/tex/context/base/type-syn.tex
+++ b/tex/context/base/type-syn.tex
@@ -64,12 +64,12 @@
\starttypescript [serif] [computer-modern-vari] [name]
\definefontsynonym [Serif] [ComputerModernMono-Variable]
- \definefontsynonym [SerifBold] [Serif]
- \definefontsynonym [SerifItalic] [Serif]
+ \definefontsynonym [SerifBold] [Serif]
+ \definefontsynonym [SerifItalic] [Serif]
\definefontsynonym [SerifSlanted] [SerifItalic]
- \definefontsynonym [SerifBoldItalic] [SerifItalic]
- \definefontsynonym [SerifBoldSlanted] [SerifSlanted]
- \definefontsynonym [SerifCaps] [Serif]
+ \definefontsynonym [SerifBoldItalic] [SerifItalic]
+ \definefontsynonym [SerifBoldSlanted] [SerifSlanted]
+ \definefontsynonym [SerifCaps] [Serif]
\stoptypescript
% This will change some day.
@@ -272,6 +272,53 @@
\definefontsynonym [SerifCaps] [Utopia-Regular-Caps]
\stoptypescript
+% Fourier : Michael Bovani
+
+\starttypescript [serif] [fourier] [name]
+ \definefontsynonym [Serif] [Fourier-Regular]
+ \definefontsynonym [SerifSlanted] [Fourier-Slanted]
+ \definefontsynonym [SerifItalic] [Fourier-Italic]
+ \definefontsynonym [SerifCaps] [Fourier-RegularCaps]
+ \definefontsynonym [SerifBold] [Fourier-Bold]
+ \definefontsynonym [SerifBoldSlanted] [Fourier-BoldSlanted]
+ \definefontsynonym [SerifBoldItalic] [Fourier-BoldItalic]
+ \definefontsynonym [SerifBoldCaps] [Fourier-BoldCaps]
+
+ \definefontsynonym [Serif-Expert] [Fourier-Regular-Expert]
+ \definefontsynonym [SerifSlanted-Expert] [Fourier-Slanted-Expert]
+ \definefontsynonym [SerifItalic-Expert] [Fourier-Italic-Expert]
+ \definefontsynonym [SerifCaps-Expert] [Fourier-RegularCaps-Expert]
+ \definefontsynonym [SerifSemiBold-Expert] [Fourier-Semi-Expert]
+ \definefontsynonym [SerifSemiSlanted-Expert] [Fourier-SemiSlanted-Expert]
+ \definefontsynonym [SerifSemiItalic-Expert] [Fourier-SemiItalic-Expert]
+ \definefontsynonym [SerifSemiCaps-Expert] [Fourier-SemiCaps-Expert]
+ \definefontsynonym [SerifBold-Expert] [Fourier-Bold-Expert]
+ \definefontsynonym [SerifBoldSlanted-Expert] [Fourier-BoldSlanted-Expert]
+ \definefontsynonym [SerifBoldItalic-Expert] [Fourier-BoldItalic-Expert]
+ \definefontsynonym [SerifBlack-Expert] [Fourier-Black-Expert]
+
+ \definefontsynonym [Serif-OldStyle] [Fourier-Regular-OldStyle]
+ \definefontsynonym [SerifSlanted-OldStyle] [Fourier-Slanted-OldStyle]
+ \definefontsynonym [SerifItalic-OldStyle] [Fourier-Italic-OldStyle]
+ \definefontsynonym [SerifCaps-OldStyle] [Fourier-RegularCaps-OldStyle]
+ \definefontsynonym [SerifSemiBold-OldStyle] [Fourier-Semi-OldStyle]
+ \definefontsynonym [SerifSemiSlanted-OldStyle] [Fourier-SemiSlanted-OldStyle]
+ \definefontsynonym [SerifSemiItalic-OldStyle] [Fourier-SemiItalic-OldStyle]
+ \definefontsynonym [SerifSemiCaps-OldStyle] [Fourier-SemiCaps-OldStyle]
+ \definefontsynonym [SerifBold-OldStyle] [Fourier-Bold-OldStyle]
+ \definefontsynonym [SerifBoldSlanted-OldStyle] [Fourier-BoldSlanted-OldStyle]
+ \definefontsynonym [SerifBoldItalic-OldStyle] [Fourier-BoldItalic-OldStyle]
+ \definefontsynonym [SerifBlack-OldStyle] [Fourier-Black-OldStyle]
+ \definefontsynonym [SerifBlackSlanted-OldStyle] [Fourier-BlackSlanted-OldStyle]
+\stoptypescript
+
+\starttypescript [math] [fourier] [name]
+ \definefontsynonym [MathRoman] [Fourier-Math-Letters]
+ \definefontsynonym [MathItalic] [Fourier-Math-Letters-Italic]
+ \definefontsynonym [MathSymbol] [Fourier-Math-Symbols]
+ \definefontsynonym [MathExtension] [Fourier-Math-Extension]
+\stoptypescript
+
% Charter :
\starttypescript [serif] [charter] [name]
@@ -364,4 +411,4 @@
\definefontsynonym [MathBeta] [Palatino-Math-SymbolsB]
\stoptypescript
-\endinput
+\endinput \ No newline at end of file
diff --git a/tex/context/base/x-xml-01.tex b/tex/context/base/x-xml-01.tex
index 9660b288c..093261e22 100644
--- a/tex/context/base/x-xml-01.tex
+++ b/tex/context/base/x-xml-01.tex
@@ -10,17 +10,17 @@
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
% texexec --use=xml-format yourfile.x** [--mode=packed,wide]
%
% pdftotext yourfile.pdf yournewfile.x**
-\doifnothing {\inputfilename} {\end}
-\doiffileelse {\inputfilename} {} {\end}
+\doifnothing {\inputfilename} {\end}
+\doiffileelse {\inputfilename} {} {\end}
-% The following makes pdftotext too slow:
+% The following makes pdftotext too slow:
%
% \definepapersize
% [mine]
@@ -39,23 +39,23 @@
% \setuppapersize
% [A0][A0]
%
-% but normal A4 combined with 1 pt font size is the best
+% but normal A4 combined with 1 pt font size is the best
%
-% An alternative is to use a small size, but this leads to
-% too many messages
+% An alternative is to use a small size, but this leads to
+% too many messages
%
% \setupbodyfont
% [1pt,tt]
%
-% so we stick to a more normal alternive.
+% so we stick to a more normal alternive.
-\unprotect
+\unprotect
% \setuplayout
% [backspace=0cm,
% topspace=0cm,
-% %width=40em,
-% width=middle,
+% %width=40em,
+% width=middle,
% height=middle,
% header=0cm,
% footer=0cm]
@@ -63,19 +63,19 @@
\setuplayout
[\c!rugwit=0cm,
\c!kopwit=0cm,
- %\c!breedte=40em,
- \c!breedte=\v!midden,
+ %\c!breedte=40em,
+ \c!breedte=\v!midden,
\c!hoogte=\v!midden,
\c!hoofd=0cm,
\c!voet=0cm]
-% \setupbodyfont [tt,10pt]
+% \setupbodyfont [tt,10pt]
% \setuptolerance [verytolerant]
% \setupalign [broad,right]
% \setupXMLfile [level=2]
-\setupbodyfont [tt,10pt]
+\setupbodyfont [tt,10pt]
\setuptolerance [\v!zeersoepel]
\setupalign [\v!ruim,\v!rechts]
\setupXMLfile [\c!niveau=2]
@@ -94,16 +94,16 @@
\stopmode
-\protect
+\protect
-% The main text:
+% The main text:
\def\XMLbannerprocessor#1{\string<\string ?xml #1\string ?\string>\endgraf}
\defineXMLprocessor [xml] {\XMLbannerprocessor}
-\starttext
+\starttext
\dontcomplain \showXMLfile{\inputfilename}
-\stoptext
+\stoptext \ No newline at end of file
diff --git a/tex/context/base/xtag-ext.tex b/tex/context/base/xtag-ext.tex
index 8f2c89b34..a700fcfae 100644
--- a/tex/context/base/xtag-ext.tex
+++ b/tex/context/base/xtag-ext.tex
@@ -2,7 +2,7 @@
%D [ file=xtag-ext,
%D version=2001.03.21,
%D title=\CONTEXT\ XML Support,
-%D subtitle=Extra Macros,
+%D subtitle=Extra Macros,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -11,30 +11,30 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\beginTEX
+\beginTEX
\writestatus{xml}{sorry, xml is only supported in (pdf)etex}
- \expandafter \endinput
-\endTEX
+ \expandafter \endinput
+\endTEX
\writestatus{loading}{Context XML Macros (extras)}
-\unprotect
+\unprotect
-%D \macros
+%D \macros
%D {startXMLmapping}
-%D
-%D You can define macros within a namespace, so that they
-%D will not conflict (don't confuse this with \XML\
+%D
+%D You can define macros within a namespace, so that they
+%D will not conflict (don't confuse this with \XML\
%D namespaces.)
%D
%D \starttypen
%D \startXMLmapping [tag] | [-] [tag] | [+] [tag]
-%D definitions
-%D \stopXMLmapping
-%D \stoptypen
-%D
-%D When a \type {[+]} is specified, the mappings will
-%D nest.
+%D definitions
+%D \stopXMLmapping
+%D \stoptypen
+%D
+%D When a \type {[+]} is specified, the mappings will
+%D nest.
\let\normal@@XMLelement\@@XMLelement
@@ -47,7 +47,7 @@
\def\startXMLmapping
{\dodoubleempty\dostartXMLmapping}
-% \def\dostartXMLmapping[#1][#2]% sneller maken
+% \def\dostartXMLmapping[#1][#2]% sneller maken
% {\pushmacro\@@XMLelement
% \pushmacro\@@XMLmapping
% \ifsecondargument
@@ -92,34 +92,34 @@
\popmacro\@@XMLmapping
\popmacro\@@XMLelement}
-%D \macros
+%D \macros
%D {startXMLmappinggroup}
-%D
-%D Imagine something:
%D
-%D \starttypen
+%D Imagine something:
+%D
+%D \starttypen
%D \defineXMLenvironment [something]
%D {\startXMLmapping[whatever]}
%D {\stopXMLmapping}
-%D \stoptypen
-%D
-%D Here the \type {\stopXMLmapping} will never be reached
-%D because we are in a mapping. Therefore we need:
+%D \stoptypen
+%D
+%D Here the \type {\stopXMLmapping} will never be reached
+%D because we are in a mapping. Therefore we need:
-\def\startXMLmappinggroup
+\def\startXMLmappinggroup
{\dodoubleempty\dostartXMLmappinggroup}
\def\dostartXMLmappinggroup[#1][#2]%
{\bgroup
\letcscsname\savedXMLmeaning\csname\@@XMLelement:/\currentXMLelement\endcsname
- \dostartXMLmapping[#1][#2]% do ! else wrong !
+ \dostartXMLmapping[#1][#2]% do ! else wrong !
\letcsnamecs\csname\@@XMLelement:/\currentXMLelement\endcsname\savedXMLmeaning}
-\def\stopXMLmappinggroup
+\def\stopXMLmappinggroup
{\stopXMLmapping
\egroup}
-%D Context Directives:
+%D Context Directives:
\def\@@CTXML{@@CTXML}
@@ -128,11 +128,11 @@
\long\def\dodefineXMLdirective[#1][#2]#3%
{\defineXMLprocessor[context-#1-directive]{\dohandleXMLdirective{#1}{#3}}%
- \ifsecondargument
+ \ifsecondargument
\long\setvalue{\@@CTXML-#1-#2}{#3}%
\fi}
-\def\dohandleXMLdirective#1#2#3%
+\def\dohandleXMLdirective#1#2#3%
{\dodohandleXMLdirective#3 @ @ @\end{#1}{#2}}
%\def\dodohandleXMLdirective#1 #2 #3 #4\end#5#6%
@@ -144,8 +144,8 @@
{\executeifdefined{\@@CTXML-#5-#1}{#6[#1]}[#2=#3]}
% \defineXMLdirective [mathml] \setupMMLappearance % [#1][#2=#3]
-% \defineXMLdirective [flowchart] [shapes] \setupFLOWshapes % [#2=#3]
-% \defineXMLdirective [flowchart] [lines] \setupFLOWlines % [#2=#3]
+% \defineXMLdirective [flowchart] [shapes] \setupFLOWshapes % [#2=#3]
+% \defineXMLdirective [flowchart] [lines] \setupFLOWlines % [#2=#3]
\defineXMLprocessor [context-begin-group] {\begingroup\gobbleoneargument}
\defineXMLprocessor [context-end-group] {\endgroup \gobbleoneargument}
@@ -153,22 +153,22 @@
% \def\XMLnspart#1:#2\empty{#1} % call ...:\empty\empty
% \def\XMLidpart#1:#2#3\empty{\ifx#2\empty#1\else\XMLidpart#2#3\empty\empty\fi}
-% trial macros (used in setupx), to be sped up !
+% trial macros (used in setupx), to be sped up !
\bgroup \catcode`\<=\active
-\gdef\saveXMLasdata#1#2% name raw data
- {\dodoglobal\setevalue{\@@XMLsave:#1}{#2}} % \edef!
+\gdef\saveXMLasdata#1#2% name raw data
+ {\dodoglobal\setevalue{\@@XMLsave:#1}{#2}} % \edef!
\gdef\saveXMLdata#1#2% name data-name ; definitely no \edef
{\dodoglobal\copycsname\@@XMLsave:#1\endcsname\csname\@@XMLdata:#2\endcsname}
-\gdef\saveXMLdatainelement#1#2#3% name element data
- {\dodoglobal\setevalue{\@@XMLsave:#1}% todo: one level expansion
+\gdef\saveXMLdatainelement#1#2#3% name element data
+ {\dodoglobal\setevalue{\@@XMLsave:#1}% todo: one level expansion
{<#2 \currentXMLarguments>\XMLflush{#3}</#2>}}
\gdef\saveXMLdatastructure#1#2#3#4#5#6% name element args before data after
- {\dodoglobal\setevalue{\@@XMLsave:#1}% todo: one level expansion
+ {\dodoglobal\setevalue{\@@XMLsave:#1}% todo: one level expansion
{<#2 #3 \currentXMLarguments>#4\XMLflush{#5}#6</#2>}}
\gdef\gsaveXMLasdata {\doglobal\saveXMLasdata}
@@ -213,7 +213,7 @@
\else
\let#2\ascii
\fi}
-
+
\gdef\flushXMLelement#1%
{\csname
\@@XMLsave:\ifcsname\@@XMLsave:#1\endcsname#1\else\@@XMLsave\fi
@@ -224,12 +224,12 @@
\gdef\showXMLelement#1%
{\showvalue{\@@XMLsave:#1}}
-\gdef\eraseXMLelement#1%
+\gdef\eraseXMLelement#1%
{\dodoglobal\letbeundefined{\@@XMLsave:#1}}
\gdef\processXMLelement#1%
{\bgroup
- \enableXMLelements
+ \enableXMLelements
\getvalue{\@@XMLsave:#1}%
\egroup}
@@ -246,7 +246,7 @@
\setXMLentity{quot}{\string'}%
\setXMLentity{dquot}{\string"}}
-\gdef\reduceXMLelement#1\to#2%
+\gdef\reduceXMLelement#1\to#2%
{\ifcsname\@@XMLsave:#1\endcsname
\bgroup
\reduceXMLescapetokens
@@ -255,7 +255,7 @@
\else
\let#2\empty
\fi}
-
+
\egroup
\def\potentialXMLentity#1%
@@ -266,4 +266,4 @@
\def\writtenXMLend #1{</#1>}
\def\writtenXMLempty #1{<#1/>}
-\protect \endinput
+\protect \endinput \ No newline at end of file
diff --git a/tex/context/extra/setup-qr.tex b/tex/context/extra/setup-qr.tex
index d78943cce..466f5e68a 100644
--- a/tex/context/extra/setup-qr.tex
+++ b/tex/context/extra/setup-qr.tex
@@ -1,32 +1,32 @@
-% output=pdftex tex=pdfetex
+% output=pdftex interface=en
%D \module
%D [ file=setup-qr,
%D version=1997.07.22,
%D title=\CONTEXT\ Style File,
-%D subtitle=Quick Reference Document / Efficient,
+%D subtitle=Quick Reference Document / Efficient,
%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.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
%D This is a stripped down version of the good old quick
%D reference document. This version is more compact and
%D therefore better suited for local processing and printing.
-%D The slightly more fancy version can be fetched from the
-%D \CONTEXT\ web site.
+%D The slightly more fancy version can be fetched from the
+%D \CONTEXT\ web site.
-\dontcomplain \silentmode
+\dontcomplain \silentmode
\unprotect
\setupbodyfont
[9pt]
-\stellayoutin
+\setuplayout
[\c!rugwit=1cm,
\c!kopwit=1cm,
\c!hoofd=0cm,
@@ -49,7 +49,7 @@
\starttekst
\startmakeup[\v!standaard]
- \steluitlijnenin[\v!midden]
+ \setupalign[\v!midden]
\definedfont[RegularBold at 60pt]\setstrut
\strut Con\TeX t \par
\vskip24pt
@@ -70,8 +70,8 @@
\startinterface romanian \strut rom\^{a}n\u{a} \par \stopinterface
\stopmakeup
-\protect
+\protect
-\placesetup
+\placesetup
-\stoptekst
+\stoptekst \ No newline at end of file