diff options
author | Hans Hagen <pragma@wxs.nl> | 2003-09-25 00:00:00 +0200 |
---|---|---|
committer | Hans Hagen <pragma@wxs.nl> | 2003-09-25 00:00:00 +0200 |
commit | 006ade39648b1d3cdc89a4bdc16cbe29882d70d3 (patch) | |
tree | 53aba5fd547553e9702ab1a81721a929e57bed50 | |
parent | 309b7e1b8d2422eb36e584f3c57591d960bcc402 (diff) | |
download | context-006ade39648b1d3cdc89a4bdc16cbe29882d70d3.tar.gz |
stable 2003.09.25
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 |