From 9c6a401a440d27c602da80d8aa3efec2c310dd24 Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Wed, 30 Nov 2005 00:00:00 +0100 Subject: stable 2005.11.30 --- context/data/cont-nl-scite.properties | 4 +- context/data/context-jedit-nl.xml | 4 +- context/data/type-tmf.dat | 69 +++++----- metapost/context/base/mp-spec.mp | 158 +++-------------------- scripts/context/perl/fdf2tan.pl | 121 ------------------ scripts/context/perl/fdf2tex.pl | 213 ------------------------------- scripts/context/perl/makempy.pl | 6 +- scripts/context/ruby/base/kpse.rb | 6 +- scripts/context/ruby/newtexexec.rb | 7 ++ scripts/context/ruby/texmfstart.rb | 10 +- tex/context/base/context.tex | 2 +- tex/context/base/core-des.tex | 4 +- tex/context/base/core-itm.tex | 27 +++- tex/context/base/core-mar.tex | 224 ++++++++++++++++++++++++++++----- tex/context/base/core-new.tex | 228 ---------------------------------- tex/context/base/core-not.tex | 4 +- tex/context/base/core-rul.tex | 19 +-- tex/context/base/core-sec.tex | 66 +++++++++- tex/context/base/core-spa.tex | 63 ++++++++-- tex/context/base/core-var.tex | 228 ++++++++++++++++++++++++++++++++++ tex/context/base/hand-def.tex | 2 +- tex/context/base/lang-ini.tex | 32 +++-- tex/context/base/m-dratex.tex | 21 ++++ tex/context/base/meta-ini.tex | 18 ++- tex/context/base/mult-com.tex | 6 +- tex/context/base/page-set.tex | 82 +++++++++++- tex/context/base/s-pre-60.tex | 10 ++ tex/context/base/s-syn-01.tex | 54 ++++++++ tex/context/base/supp-mpe.tex | 34 ++++- tex/context/base/supp-pdf.tex | 3 + tex/context/base/syst-ext.tex | 2 +- tex/context/base/type-exa.tex | 11 ++ tex/context/base/type-map.tex | 56 ++++++--- tex/context/interface/cont-cz.xml | 1 + tex/context/interface/cont-de.xml | 1 + tex/context/interface/cont-en.xml | 1 + tex/context/interface/cont-it.xml | 1 + tex/context/interface/cont-nl.xml | 3 +- tex/context/interface/cont-ro.xml | 1 + tex/context/interface/keys-cz.xml | 2 +- tex/context/interface/keys-de.xml | 2 +- tex/context/interface/keys-en.xml | 2 +- tex/context/interface/keys-it.xml | 2 +- tex/context/interface/keys-nl.xml | 8 +- tex/context/interface/keys-ro.xml | 2 +- 45 files changed, 962 insertions(+), 858 deletions(-) delete mode 100644 scripts/context/perl/fdf2tan.pl delete mode 100644 scripts/context/perl/fdf2tex.pl create mode 100644 tex/context/base/m-dratex.tex create mode 100644 tex/context/base/s-syn-01.tex diff --git a/context/data/cont-nl-scite.properties b/context/data/cont-nl-scite.properties index 0d1637ba5..5ca7901d0 100644 --- a/context/data/cont-nl-scite.properties +++ b/context/data/cont-nl-scite.properties @@ -41,7 +41,7 @@ keywordclass.macros.context.nl=\ selecteerblokken selecteerpapier selecteerversie som soortpagina spatie \ spiegel splitsplaatsblok start startachtergrond startcitaat startcommentaar \ startgeg startinteractiemenu startkantlijn startkleur startomgeving startonderdeel \ - startopelkaar startprodukt startproject starttekstlijn startversie stelachtergrondenin \ + startopelkaar startprodukt startprojekt starttekstlijn startversie stelachtergrondenin \ stelachtergrondin stelalineasin stelarrangerenin stelblankoin stelblokin stelblokjesin \ stelblokkopjein stelblokkopjesin stelbovenin stelboventekstenin stelbufferin stelbuttonsin \ stelciterenin stelclipin stelcombinatiesin stelcommentaarin steldoordefinierenin steldoornummerenin \ @@ -63,7 +63,7 @@ keywordclass.macros.context.nl=\ steluitlijnenin steluitvoerin stelurlin stelveldenin stelveldin stelversiesin \ stelvoetin stelvoetnootdefinitiein stelvoetnotenin stelvoettekstenin stelwitruimtein stop \ stopachtergrond stopcitaat stopcommentaar stopgeg stopinteractiemenu stopkantlijn \ - stopkleur stopomgeving stoponderdeel stopopelkaar stopprodukt stopproject \ + stopkleur stopomgeving stoponderdeel stopopelkaar stopprodukt stopprojekt \ stoptekstlijn stopversie suggestie switchnaarkorps switchtorawfont sym \ symbool synchronisatiebalk synchroniseer taal tab tekstlijn \ tekstreferentie tekstvariabele tex toevoegen toonexternefiguren toongrid \ diff --git a/context/data/context-jedit-nl.xml b/context/data/context-jedit-nl.xml index 9779ec0fa..d9da1606d 100644 --- a/context/data/context-jedit-nl.xml +++ b/context/data/context-jedit-nl.xml @@ -259,7 +259,7 @@ \startonderdeel \startopelkaar \startprodukt - \startproject + \startprojekt \starttekstlijn \startversie \stelachtergrondenin @@ -394,7 +394,7 @@ \stoponderdeel \stopopelkaar \stopprodukt - \stopproject + \stopprojekt \stoptekstlijn \stopversie \suggestie diff --git a/context/data/type-tmf.dat b/context/data/type-tmf.dat index 942bcdfc4..a226e9362 100644 --- a/context/data/type-tmf.dat +++ b/context/data/type-tmf.dat @@ -3,70 +3,73 @@ # texfont --encoding=ec --batch texfont.dat # # where 'ec' can be replaced by 'texnansi', '8r' or otherwise. +# +# The TEXMFTE and TEXMFGW paths are used by gwtex. + # public antp ---en=? --ve=public --co=antp --so=auto --ro=TEXMFMAIN +--en=? --ve=public --co=antp --so=auto --ro=TEXMFMAIN,TEXMFTE,TEXMFGW # no longer needed, public antt # -# --en=? --ve=public --co=antt --so=auto --ro=TEXMFMAIN +# --en=? --ve=public --co=antt --so=auto --ro=TEXMFMAIN,TEXMFTE,TEXMFGW # urw helvetica ---en=? --ve=urw --co=helvetica --so=auto --ro=TEXMFMAIN +--en=? --ve=urw --co=helvetica --so=auto --ro=TEXMFMAIN,TEXMFTE,TEXMFGW # urw courier ---en=? --ve=urw --co=courier --so=auto --ro=TEXMFMAIN +--en=? --ve=urw --co=courier --so=auto --ro=TEXMFMAIN,TEXMFTE,TEXMFGW # urw zapfchan ---en=? --ve=urw --co=zapfchan --so=auto --ro=TEXMFMAIN +--en=? --ve=urw --co=zapfchan --so=auto --ro=TEXMFMAIN,TEXMFTE,TEXMFGW # urw times ---en=? --ve=urw --co=times --so=auto --ro=TEXMFMAIN ---en=? --ve=urw --co=times --so=auto --ca=* utmr8a --ro=TEXMFMAIN ---en=? --ve=urw --co=times --so=auto --sl=* utmr8a --ro=TEXMFMAIN ---en=? --ve=urw --co=times --so=auto --sl=* utmb8a --ro=TEXMFMAIN +--en=? --ve=urw --co=times --so=auto --ro=TEXMFMAIN,TEXMFTE,TEXMFGW +--en=? --ve=urw --co=times --so=auto --ca=* utmr8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW +--en=? --ve=urw --co=times --so=auto --sl=* utmr8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW +--en=? --ve=urw --co=times --so=auto --sl=* utmb8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW # urw palatino ---en=? --ve=urw --co=palatino --so=auto --ro=TEXMFMAIN ---en=? --ve=urw --co=palatino --so=auto --ca=* uplr8a --ro=TEXMFMAIN ---en=? --ve=urw --co=palatino --so=auto --sl=* uplr8a --ro=TEXMFMAIN ---en=? --ve=urw --co=palatino --so=auto --sl=* uplb8a --ro=TEXMFMAIN +--en=? --ve=urw --co=palatino --so=auto --ro=TEXMFMAIN,TEXMFTE,TEXMFGW +--en=? --ve=urw --co=palatino --so=auto --ca=* uplr8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW +--en=? --ve=urw --co=palatino --so=auto --sl=* uplr8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW +--en=? --ve=urw --co=palatino --so=auto --sl=* uplb8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW # adobe utopia ---en=? --ve=adobe --co=utopia --so=auto --ro=TEXMFMAIN ---en=? --ve=adobe --co=utopia --so=auto --ca=* putr8a --ro=TEXMFMAIN ---en=? --ve=adobe --co=utopia --so=auto --sl=* putr8a --ro=TEXMFMAIN ---en=? --ve=adobe --co=utopia --so=auto --sl=* putb8a --ro=TEXMFMAIN +--en=? --ve=adobe --co=utopia --so=auto --ro=TEXMFMAIN,TEXMFTE,TEXMFGW +--en=? --ve=adobe --co=utopia --so=auto --ca=* putr8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW +--en=? --ve=adobe --co=utopia --so=auto --sl=* putr8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW +--en=? --ve=adobe --co=utopia --so=auto --sl=* putb8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW ---en=? --ve=adobe --co=utopia --so=auto --ro=TEXMFEXTRA # texlive 2003+ ---en=? --ve=adobe --co=utopia --so=auto --ca=* putr8a --ro=TEXMFEXTRA # texlive 2003+ ---en=? --ve=adobe --co=utopia --so=auto --sl=* putr8a --ro=TEXMFEXTRA # texlive 2003+ ---en=? --ve=adobe --co=utopia --so=auto --sl=* putb8a --ro=TEXMFEXTRA # texlive 2003+ +--en=? --ve=adobe --co=utopia --so=auto --ro=TEXMFMAIN,TEXMFEXTRA,TEXMFTE,TEXMFGW +--en=? --ve=adobe --co=utopia --so=auto --ca=* putr8a --ro=TEXMFMAIN,TEXMFEXTRA,TEXMFTE,TEXMFGW +--en=? --ve=adobe --co=utopia --so=auto --sl=* putr8a --ro=TEXMFMAIN,TEXMFEXTRA,TEXMFTE,TEXMFGW +--en=? --ve=adobe --co=utopia --so=auto --sl=* putb8a --ro=TEXMFMAIN,TEXMFEXTRA,TEXMFTE,TEXMFGW # bitstream charter ---en=? --ve=bitstrea --co=charter --so=auto --ro=TEXMFMAIN ---en=? --ve=bitstrea --co=charter --so=auto --ca=* bchr8a --ro=TEXMFMAIN ---en=? --ve=bitstrea --co=charter --so=auto --sl=* bchr8a --ro=TEXMFMAIN ---en=? --ve=bitstrea --co=charter --so=auto --sl=* bchb8a --ro=TEXMFMAIN +--en=? --ve=bitstrea --co=charter --so=auto --ro=TEXMFMAIN,TEXMFTE,TEXMFGW +--en=? --ve=bitstrea --co=charter --so=auto --ca=* bchr8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW +--en=? --ve=bitstrea --co=charter --so=auto --sl=* bchr8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW +--en=? --ve=bitstrea --co=charter --so=auto --sl=* bchb8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW # uwr bookman ---en=? --ve=urw --co=bookman --so=auto --ro=TEXMFMAIN ---en=? --ve=urw --co=bookman --so=auto --ca=* ubkl8a --ro=TEXMFMAIN ---en=? --ve=urw --co=bookman --so=auto --sl=* ubkl8a --ro=TEXMFMAIN ---en=? --ve=urw --co=bookman --so=auto --sl=* ubkd8a --ro=TEXMFMAIN +--en=? --ve=urw --co=bookman --so=auto --ro=TEXMFMAIN,TEXMFTE,TEXMFGW +--en=? --ve=urw --co=bookman --so=auto --ca=* ubkl8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW +--en=? --ve=urw --co=bookman --so=auto --sl=* ubkl8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW +--en=? --ve=urw --co=bookman --so=auto --sl=* ubkd8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW # uwr schoolbook ---en=? --ve=urw --co=ncntrsbk --so=auto --ro=TEXMFMAIN ---en=? --ve=urw --co=ncntrsbk --so=auto --ca=* uncr8a --ro=TEXMFMAIN ---en=? --ve=urw --co=ncntrsbk --so=auto --sl=* uncr8a --ro=TEXMFMAIN ---en=? --ve=urw --co=ncntrsbk --so=auto --sl=* uncb8a --ro=TEXMFMAIN +--en=? --ve=urw --co=ncntrsbk --so=auto --ro=TEXMFMAIN,TEXMFTE,TEXMFGW +--en=? --ve=urw --co=ncntrsbk --so=auto --ca=* uncr8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW +--en=? --ve=urw --co=ncntrsbk --so=auto --sl=* uncr8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW +--en=? --ve=urw --co=ncntrsbk --so=auto --sl=* uncb8a --ro=TEXMFMAIN,TEXMFTE,TEXMFGW diff --git a/metapost/context/base/mp-spec.mp b/metapost/context/base/mp-spec.mp index 9965199f2..7d72a1dda 100644 --- a/metapost/context/base/mp-spec.mp +++ b/metapost/context/base/mp-spec.mp @@ -35,6 +35,8 @@ numeric _special_counter_ ; _special_counter_ := 0 ; numeric _color_counter_ ; _color_counter_ := 11 ; % < 10 reserved numeric _special_signal_ ; _special_signal_ := 123 ; +numeric _special_div_ ; _special_div_ := 1000 ; + %D When set to \type {true}, shading will be supported. Some %D day I will also write an additional directive. @@ -63,7 +65,7 @@ string _local_specials_ ; _local_specials_ := "" ; vardef add_special_signal = % write the version number if (length _global_specials_ <> 0) or (length _local_specials_ <> 0) : - special ("%%MetaPostSpecials: 1.0 " & decimal _special_signal_ ) ; + special ("%%MetaPostSpecials: 2.0 " & decimal _special_signal_ & " " & decimal _special_div_) ; fi ; enddef ; @@ -282,12 +284,12 @@ enddef ; primarydef p withshade sc = % == p withcolor shadecolor(sh) hide (_color_counter_ := _color_counter_ + 1) - p withcolor (_special_signal_/1000,_color_counter_/1000,sc/1000) + p withcolor (_special_signal_/_special_div_,_color_counter_/_special_div_,sc/_special_div_) enddef ; vardef shadecolor(expr sc) = hide (_color_counter_ := _color_counter_ + 1) - (_special_signal_/1000,_color_counter_/1000,sc/1000) + (_special_signal_/_special_div_,_color_counter_/_special_div_,sc/_special_div_) enddef ; %D Figure inclusion. @@ -307,8 +309,7 @@ def doexternalfigure (expr filename) text transformation = addto p contour unitsquare scaled 0 ; setbounds p to unitsquare transformed t ; _color_counter_ := _color_counter_ + 1 ; - draw p withcolor (_special_signal_/1000,_color_counter_/1000,_special_counter_/1000) ; -%draw p withcolor (_special_signal_/1000,cef/1000,_special_counter_/1000) ; + draw p withcolor (_special_signal_/_special_div_,_color_counter_/_special_div_,_special_counter_/_special_div_) ; endgroup ; enddef ; @@ -331,11 +332,9 @@ def dohyperpath (expr destination) expr somepath = flush_special(20, 7, ddecimal (xpart llcorner somepath, ypart llcorner somepath) & " " & ddecimal (xpart urcorner somepath, ypart urcorner somepath) & " " & destination) ; -% currenthyperlink := currenthyperlink + 1 ; _color_counter_ := _color_counter_ + 1 ; fill boundingbox unitsquare scaled 0 withcolor - (_special_signal_/1000,_color_counter_/1000,_special_counter_/1000) ; -% (_special_signal_/1000,currenthyperlink/1000,_special_counter_/1000) ; + (_special_signal_/_special_div_,_color_counter_/_special_div_,_special_counter_/_special_div_) ; endgroup ; enddef ; @@ -399,14 +398,14 @@ vardef cmyk(expr c,m,y,k) = if not ok : save s ; string s ; s := dddecimal (c,m,y) & " " & decimal k ; _cmyk_counter_ := _cmyk_counter_ + 1 ; - cmykcolorpattern[_cmyk_counter_/1000] := s ; + cmykcolorpattern[_cmyk_counter_/_special_div_] := s ; cmykcolorhash[c][m][y][k] := _cmyk_counter_ ; flush_special(1, 7, decimal _cmyk_counter_ & " " & s) ; _local_specials_ := _local_specials_ & " cmykcolorhash[" & decimal c & "][" & decimal m & "][" & decimal y & "][" & decimal k & "] := -1 ; " ; fi ; - (_special_signal_/1000,1/1000,cmykcolorhash[c][m][y][k]/1000) + (_special_signal_/_special_div_,1/_special_div_,cmykcolorhash[c][m][y][k]/_special_div_) else : (1-c-k,1-m-k,1-y-k) fi @@ -433,68 +432,6 @@ resetspotcolors ; boolean spotcolors ; spotcolors := false ; % true string spotcolorpattern[] ; % needed for transparancies -% vardef spotcolor(expr p, s) = -% if spotcolors : -% save ok, pc_tag ; boolean ok ; string pc_tag ; -% pc_tag := "_pct_"&p ; -% if not unstringed(pc_tag) : -% _spotcolor_number_ := _spotcolor_number_ + 1 ; -% setunstringed(pc_tag,_spotcolor_number_) ; -% fi ; -% pp := getunstringed(pc_tag) ; -% if unknown spotcolorhash[pp][s] : -% ok := false ; % not yet defined -% elseif spotcolorhash[pp][s] = -1 : -% ok := false ; % locally defined and undefined -% else : -% ok := true ; % globally already defined -% fi ; -% if not ok : -% save ss ; string ss ; ss := p & " " & decimal s ; -% _spotcolor_counter_ := _spotcolor_counter_ + 1 ; -% spotcolorpattern[_spotcolor_counter_/1000] := ss ; -% spotcolorhash[pp][s] := _spotcolor_counter_ ; -% flush_special(2, 5, decimal _spotcolor_counter_ & " " & ss) ; -% _local_specials_ := _local_specials_ & -% "spotcolorhash["&decimal pp&"]["&decimal s&"]:=-1;" ; -% fi ; -% (_special_signal_/1000,2/1000,spotcolorhash[pp][s]/1000) -% else : -% (1-s,1-s,1-s) -% fi -% enddef ; - -% vardef spotcolor(expr p, s) = -% if spotcolors : -% save ok, pc_tag ; boolean ok ; string pc_tag ; -% pc_tag := "_pct_"&p ; -% if not unstringed(pc_tag) : -% _spotcolor_number_ := _spotcolor_number_ + 1 ; -% setunstringed(pc_tag,_spotcolor_number_) ; -% fi ; -% pp := getunstringed(pc_tag) ; -% if unknown spotcolorhash[pp][s] : -% ok := false ; % not yet defined -% elseif spotcolorhash[pp][s] = -1 : -% ok := false ; % locally defined and undefined -% else : -% ok := true ; % globally already defined -% fi ; -% if not ok : -% save ss ; string ss ; ss := p & " " & decimal s ; -% _spotcolor_counter_ := _spotcolor_counter_ + 1 ; -% spotcolorpattern[_spotcolor_counter_/1000] := ss ; -% spotcolorhash[pp][s] := _spotcolor_counter_ ; -% flush_special(2, 5, decimal _spotcolor_counter_ & " " & ss) ; -% _local_specials_ := _local_specials_ & -% "spotcolorhash["&decimal pp&"]["&decimal s&"]:=-1;" ; -% fi ; -% (_special_signal_/1000,2/1000,spotcolorhash[pp][s]/1000) -% else : -% (1-s,1-s,1-s) -% fi -% enddef ; - vardef spotcolor(expr p, s) = multitonecolor(p, 1, "", decimal s) enddef ; @@ -524,13 +461,13 @@ vardef multitonecolor(expr n, f, d, p) = % name fractions names factors if not ok : save ss ; string ss ; ss := n & " " & decimal f & " " & if d = "" : n else : d fi & " " & p ; _spotcolor_counter_ := _spotcolor_counter_ + 1 ; - spotcolorpattern[_spotcolor_counter_/1000] := ss ; + spotcolorpattern[_spotcolor_counter_/_special_div_] := ss ; spotcolorhash[pp][ps] := _spotcolor_counter_ ; flush_special(2, 7, decimal _spotcolor_counter_ & " " & ss) ; _local_specials_ := _local_specials_ & "spotcolorhash["&decimal pp&"]["&decimal ps&"]:=-1;" ; fi ; - (_special_signal_/1000,2/1000,spotcolorhash[pp][ps]/1000) + (_special_signal_/_special_div_,2/_special_div_,spotcolorhash[pp][ps]/_special_div_) else : .5white fi @@ -550,63 +487,6 @@ differencetransparent := 11 ; exclusiontransparent := 12 ; % fill fullcircle scaled 10cm withcolor transparant(.8,3,color) ; -% vardef transparent(expr n, t, c) = -% save s, ss, nn, cc, is_cmyk, is_spot, ok ; -% string s, ss ; numeric nn ; color cc ; boolean is_cmyk, is_spot, ok ; -% % transparancy type -% if string n : -% if expandafter known scantokens(n&"transparent") : -% nn := scantokens(n&"transparent") ; -% else : -% nn := 0 ; -% fi -% else : % nn := min(n,13) -% nn := if n<13 : n else : nn := 0 fi ; -% fi ; -% % we need to expand the color (can be cmyk(..) or predefined) -% cc := c ; % expand color -% % check for cmyk special -% is_cmyk := (redpart cc = _special_signal_/1000) -% and (greenpart cc = 1/1000) ; -% is_spot := (redpart cc = _special_signal_/1000) -% and (greenpart cc = 2/1000) ; -% % build special string, fetch cmyk components -% s := decimal nn & " " & decimal t & " " & -% if is_cmyk : cmykcolorpattern[bluepart cc] -% elseif is_spot : spotcolorpattern[bluepart cc] -% else : dddecimal cc fi ; -% % check if this one is already used -% ss := "tr_" & s ; -% % efficiency hack -% if expandafter unknown scantokens(ss) : -% ok := false ; % not yet defined -% elseif scantokens(ss) < 0 : -% ok := false ; % locally defined and undefined -% else : -% ok := true ; % globally already defined -% fi ; -% if not ok : -% if is_spot : -% flush_special(5, 6, s) ; -% elseif is_cmyk : -% flush_special(4, 8, s) ; -% else : -% flush_special(3, 7, s) ; -% fi ; -% scantokens(ss) := _special_counter_ ; -% _local_specials_ := _local_specials_ & -% "scantokens(" & ditto & ss & ditto & ") := -1 ;" ; -% fi ; -% % go ahead -% if is_spot : -% (_special_signal_/1000,5/1000,scantokens(ss)/1000) -% elseif is_cmyk : -% (_special_signal_/1000,4/1000,scantokens(ss)/1000) -% else : -% (_special_signal_/1000,3/1000,scantokens(ss)/1000) -% fi -% enddef ; - vardef transparent(expr n, t, c) = save s, ss, nn, cc, is_cmyk, is_spot, ok ; string s, ss ; numeric nn ; color cc ; boolean is_cmyk, is_spot, ok ; @@ -623,10 +503,10 @@ vardef transparent(expr n, t, c) = % we need to expand the color (can be cmyk(..) or predefined) cc := c ; % expand color % check for cmyk special - is_cmyk := (redpart cc = _special_signal_/1000) - and (greenpart cc = 1/1000) ; - is_spot := (redpart cc = _special_signal_/1000) - and (greenpart cc = 2/1000) ; + is_cmyk := (redpart cc = _special_signal_/_special_div_) + and (greenpart cc = 1/_special_div_) ; + is_spot := (redpart cc = _special_signal_/_special_div_) + and (greenpart cc = 2/_special_div_) ; % build special string, fetch cmyk components s := decimal nn & " " & decimal t & " " & if is_cmyk : cmykcolorpattern[bluepart cc] @@ -661,11 +541,11 @@ vardef transparent(expr n, t, c) = fi ; % go ahead if is_spot : - (_special_signal_/1000,5/1000,scantokens(ss)/1000) + (_special_signal_/_special_div_,5/_special_div_,scantokens(ss)/_special_div_) elseif is_cmyk : - (_special_signal_/1000,4/1000,scantokens(ss)/1000) + (_special_signal_/_special_div_,4/_special_div_,scantokens(ss)/_special_div_) else : - (_special_signal_/1000,3/1000,scantokens(ss)/1000) + (_special_signal_/_special_div_,3/_special_div_,scantokens(ss)/_special_div_) fi enddef ; @@ -731,7 +611,7 @@ endinput ; % vardef normalgray(expr s ) = (s,s,s) enddef ; % vardef normalrgb (expr r,g,b ) = (r,g,b) enddef ; -% vardef normalcmyk(expr c,m,y,k) = if cmykcolors : save ok ; boolean ok ; if unknown cmykcolorhash[c][m][y][k] : ok := false ; elseif cmykcolorhash[c][m][y][k] = -1 : ok := false ; else : ok := true ; fi ; if not ok : save s ; string s ; s := dddecimal (c,m,y) & " " & decimal k ; _cmyk_counter_ := _cmyk_counter_ + 1 ; cmykcolorpattern[_cmyk_counter_/1000] := s ; cmykcolorhash[c][m][y][k] := _cmyk_counter_ ; flush_special(1, 7, decimal _cmyk_counter_ & " " & s) ; _local_specials_ := _local_specials_ & " cmykcolorhash[" & decimal c & "][" & decimal m & "][" & decimal y & "][" & decimal k & "] := -1 ; " ; fi ; (_special_signal_/1000,1/1000,cmykcolorhash[c][m][y][k]/1000) else : (1-c-k,1-m-k,1-y-k) fi enddef ; +% vardef normalcmyk(expr c,m,y,k) = if cmykcolors : save ok ; boolean ok ; if unknown cmykcolorhash[c][m][y][k] : ok := false ; elseif cmykcolorhash[c][m][y][k] = -1 : ok := false ; else : ok := true ; fi ; if not ok : save s ; string s ; s := dddecimal (c,m,y) & " " & decimal k ; _cmyk_counter_ := _cmyk_counter_ + 1 ; cmykcolorpattern[_cmyk_counter_/_special_div_] := s ; cmykcolorhash[c][m][y][k] := _cmyk_counter_ ; flush_special(1, 7, decimal _cmyk_counter_ & " " & s) ; _local_specials_ := _local_specials_ & " cmykcolorhash[" & decimal c & "][" & decimal m & "][" & decimal y & "][" & decimal k & "] := -1 ; " ; fi ; (_special_signal_/_special_div_,1/_special_div_,cmykcolorhash[c][m][y][k]/_special_div_) else : (1-c-k,1-m-k,1-y-k) fi enddef ; % vardef gray(expr s) = normalgray(s ) enddef ; % vardef rgb (expr r,g,b) = normalrgb (r,g,b ) enddef ; diff --git a/scripts/context/perl/fdf2tan.pl b/scripts/context/perl/fdf2tan.pl deleted file mode 100644 index c612f9886..000000000 --- a/scripts/context/perl/fdf2tan.pl +++ /dev/null @@ -1,121 +0,0 @@ -eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $argv:q' - if 0; - -#D \module -#D [ file=fdf2tan.pl, -#D version=2000.02.06, -#D title=converting \FDF\ annotations, -#D subtitle=fdf2tan, -#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 licen-en.pdf for -#C details. - -#D This is a preliminary version, that will probably be changed -#D and merged into a more general module. - -use Text::Wrap ; - -my $filename = $ARGV[0] ; exit if ($filename eq '') ; - -$filename =~ s/\..*$//o ; - -my $D = "[0-9\-\.]" ; -my $nn = 0 ; - -my %stack ; - -sub saveobject - { $n = shift ; $str = shift ; - if ($n>$max) { $max = $n } - if ($str =~ s/\/Type\s+\/Annot\s+\/Subtype\s+\/Text//o) - { ++$nn ; - $str =~ s/\/Page\s+(\d+)//o ; - $page = $1 ; ++$page ; - $str =~ s/\/Rect\s+\[\s*(.*?)\s*\]//o ; - $rec = $1 ; - if ($rec =~ /($D+)\s*($D+)\s*($D+)\s*($D+)/o) - { $FDFllx = $1 ; $FDFlly = $2 ; $FDFurx = $3 ; $FDFury = $4 } - $X = $FDFllx - $PDFllx ; - $Y = $PDFury - $FDFury ; - $str =~ s/\/M\s.*$//o ; - $str =~ s/\/T\s.*$//o ; - $str =~ s/^.*\/Contents\s.*?\(//o ; - $str =~ s/\)\s+$//o ; - $str =~ s/\\\\r/@@@@@@/o ; - $str =~ s/\\r/\n/go; - $str =~ s/@@@@@@/\\r/o ; - $str =~ s/\\([\<\>\(\)\{\}\\])/$1/go ; - $stack{sprintf("test:%3d %3d %3d\n",$page,$Y,$X)} = - "\\startFDFcomment[$page]" . - sprintf("[%.3f,%.3f]",$X,$Y) . - "\n$str\n\\stopFDFcomment\n\n" } } - -exit unless (open (PDF,"<$filename.pdf")) ; binmode PDF ; -exit unless (open (FDF,"<$filename.fdf")) ; -exit unless (open (TAN,">$filename.tan")) ; - -print "processing $filename ... " ; - -$PDFllx = 0 ; $PDFlly = 0 ; $PDFurx = 597 ; $PDFury = 847 ; - -while () - { if (/\/MediaBox\s*\[\s*($D+)\s*($D+)\s*($D+)\s*($D+)/o) - { $PDFllx = $1 ; $PDFlly = $2 ; $PDFurx = $3 ; $PDFury = $4 ; - last } } - -$_ = "" ; while ($Line=) { chomp $Line; $_ .= $Line } - -s/\\n/ /go ; -s/\\\s//go ; - -s/\\225/\\\/L/go ; s/\\226/\\OE/go ; s/\\227/\\vS/go ; -s/\\230/\\"Y/go ; s/\\231/\\vZ/go ; s/\\233/\\\/l/go ; -s/\\234/\\oe/go ; s/\\235/\\vs/go ; s/\\236/\\vz/go ; -s/\\253/\\<>/go ; s/\\300/\\`A/go ; -s/\\301/\\'A/go ; s/\\302/\\^A/go ; s/\\303/\\~A/go ; -s/\\304/\\"A/go ; s/\\305/\\oA/go ; s/\\306/\\AE/go ; -s/\\307/\\,C/go ; s/\\310/\\`E/go ; s/\\311/\\'E/go ; -s/\\312/\\^E/go ; s/\\313/\\"E/go ; s/\\314/\\`I/go ; -s/\\315/\\'I/go ; s/\\316/\\^I/go ; s/\\317/\\"I/go ; -s/\\321/\\~N/go ; s/\\322/\\`O/go ; s/\\323/\\'O/go ; -s/\\324/\\^O/go ; s/\\325/\\~O/go ; s/\\326/\\"O/go ; -s/\\330/\\\/O/go ; s/\\331/\\`U/go ; s/\\332/\\'U/go ; -s/\\333/\\^U/go ; s/\\334/\\"U/go ; s/\\335/\\'Y/go ; -s/\\337/\\SS/go ; s/\\340/\\`a/go ; s/\\341/\\'a/go ; -s/\\342/\\^a/go ; s/\\343/\\~a/go ; s/\\344/\\"a/go ; -s/\\345/\\oa/go ; s/\\346/\\ae/go ; s/\\347/\\,c/go ; -s/\\350/\\`e/go ; s/\\351/\\'e/go ; s/\\352/\\^e/go ; -s/\\353/\\"e/go ; s/\\354/\\`i/go ; s/\\355/\\'i/go ; -s/\\356/\\^i/go ; s/\\357/\\"i/go ; s/\\361/\\~n/go ; -s/\\362/\\`o/go ; s/\\363/\\'o/go ; s/\\364/\\^o/go ; -s/\\365/\\~o/go ; s/\\366/\\"o/go ; s/\\370/\\\/o/go ; -s/\\371/\\`u/go ; s/\\372/\\'u/go ; s/\\373/\\^u/go ; -s/\\374/\\"u/go ; s/\\375/\\'y/go ; s/\\377/\\"y/go ; - -s/\\(\d\d\d)/[$1]/go ; - -while (s/(\d+)(\s+\d+\s+obj)(.*?)endobj/saveobject($1,$3)/goe) { } - -$wrap::columns = 80 ; - -foreach $key (sort keys %stack) - { print TAN wrap("","",$stack{$key}) } - -close (PDF) ; close (FDF) ; close (TAN) ; - -if (open (TAN,">fdf-tan.tex")) - { print TAN "% interface=en output=pdftex\n\n" . - "\\setupcolors[state=start]\n\n" . - "\\setupinteraction[state=start]\n\n" . - "\\setupbodyfont[pos,10pt]\n\n" . - "\\starttext\n\n" . - "\\usemodule[fdfann]\n\n" . - "\\annotatepages[$filename]\n\n" . - "\\stoptext\n" ; - close (TAN) } - -print "$nn annotations found, run 'texexec fdf-tan'\n" ; diff --git a/scripts/context/perl/fdf2tex.pl b/scripts/context/perl/fdf2tex.pl deleted file mode 100644 index f9684cd9f..000000000 --- a/scripts/context/perl/fdf2tex.pl +++ /dev/null @@ -1,213 +0,0 @@ -eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $argv:q' - if 0; - -# not yet public - -# We're dealing with: - -$InpFile = $ARGV[0] ; $OutFile = $ARGV[1] ; $Field = $ARGV[2] ; - -# beware: fields are funny sorted - -$Program = "fdf2tex 1.02 - ConTeXt / PRAGMA 1997-2000" ; - -if ($Field eq "") - { print "\n$Program\n\n" } - -# filter \type{filename.fdf} into \type{filename.fdt} - -unless ($OutFile) - { $OutFile = $InpFile ; - $OutFile =~ s/\..*// } - -unless ($InpFile=~/\./) - { if (-e "$InpFile.fdf") - { $InpFile .= ".fdf" } - elsif (-e "$InpFile.xml") - { $InpFile .= ".xml" } } - -unless ($OutFile=~/\./) - { $OutFile .= ".fdt" } - -if (open (FDF, "<$InpFile")) - { binmode FDF ; - open (FDT, ">$OutFile") ; - if ($Field eq "") - { print " input file : $InpFile\n" ; - print " output file : $OutFile\n" } } -else - { if ($Field eq "") - { print " error : $InpFile not found\n" } - exit } - -# load the whole file in the buffer - -$_ = "" ; while ($Line=) { chomp $Line; $_ .= $Line } - -# or faster: dan ///s gebruiken (ipv m) - -# $/ = "\0777" ; $_ = ; - -# zoom in on the objects and remove the header and trialer - -if ($InpFile =~ /\.xml$/) - -{ # begin kind of xml alternative - -s/\>\s*\\/\\FDFfield\[$1\]\n/goms ; -s/(name|value)\=\"(.*?)\"/$1=\{$2\}/goms ; -s/\} (name|value)/\}\,$1/goms ; -s/\(.*?)\<\/fdfobject\>/\\beginFDFobject\n$1\\endFDFobject\n/goms ; -s/\(.*?)\<\/fdfdata\>/\\beginFDFdata\n$1\\endFDFdata\n/goms ; -s/\(.*?)\<\/fdffields\>/\\beginFDFfields\n$1\\endFDFfields\n/goms ; - -} # end kind of xml alternative - -else - -{ # begin fdf alternative - -s/.*?obj\s*?<<(.*?)>>\s*?endobj/\n\\beginFDFobject$1\n\\endFDFobject/go; -s/trailer.*//; - -# zoom in on the FDF data - -s/\/FDF.*?<<(.*)>>/\n\\beginFDFdata$1\n\\endFDFdata/go; - -# zoom in on the Field collection and remove whatever else - -s/\/Fields.*?\[.*?<<.*?(.*).*?>>.*?\]/\n\\beginFDFfields<<$1>>\n\\endFDFfields/go; -s/\\endFDFfields.*\n\\endFDFdata/\\endFDFfields\n\\endFDFdata/go; - -# tag each field - -$N = s/\<<(.*?)>>/\n\\FDFfield[$1]/go; - -# remove non relevant entries, but keep \type{/T} and \type{/V} - -s/\s*?\/[Kids|Opt]\s*?<<.*?>>//go; -s/\s*?\/[Ff|setFf|ClrFf|F|SetF|ClrF]\s*?\d*?//go; -s/\s*?\/[AP|A|AS]\s*?\[.*?\]//go; -s/\s*?\/AS\s*?\/.*?\s//go; - -# format the field identifier - -s/(.*?)\/T.*?\((.*?)\)/$1 name=$2,/go; - -# format the value, which can be a name or string - -s/\/V\s?\((.*?)\)/value=\{$1\},/go; -s/\/V\s?\/(.*?)[\s|\/]/value=\{$1\},/go; - -# sanitize some special \TeX\ tokens - -s/(\#|\$|\&|\^|\_|\|)/\\$1/go; - -# remove spaces and commas - -#s/\s?([name|value])/$1/go; -s/\[\s*/\[/go; -s/,\]/\]/go; - -# convert PDFDocEncoding - -s/\\225/\\\/L/ ; -s/\\226/\\OE/ ; -s/\\227/\\vS/ ; -s/\\230/\\"Y/ ; -s/\\231/\\vZ/ ; -s/\\233/\\\/l/ ; -s/\\234/\\oe/ ; -s/\\235/\\vs/ ; -s/\\236/\\vz/ ; -s/\\253/\\<>/ ; -s/\\300/\\`A/ ; -s/\\301/\\'A/ ; -s/\\302/\\^A/ ; -s/\\303/\\~A/ ; -s/\\304/\\"A/ ; -s/\\305/\\oA/ ; -s/\\306/\\AE/ ; -s/\\307/\\,C/ ; -s/\\310/\\`E/ ; -s/\\311/\\'E/ ; -s/\\312/\\^E/ ; -s/\\313/\\"E/ ; -s/\\314/\\`I/ ; -s/\\315/\\'I/ ; -s/\\316/\\^I/ ; -s/\\317/\\"I/ ; -s/\\321/\\~N/ ; -s/\\322/\\`O/ ; -s/\\323/\\'O/ ; -s/\\324/\\^O/ ; -s/\\325/\\~O/ ; -s/\\326/\\"O/ ; -s/\\330/\\\/O/ ; -s/\\331/\\`U/ ; -s/\\332/\\'U/ ; -s/\\333/\\^U/ ; -s/\\334/\\"U/ ; -s/\\335/\\'Y/ ; -s/\\337/\\ss/ ; -s/\\340/\\`a/ ; -s/\\341/\\'a/ ; -s/\\342/\\^a/ ; -s/\\343/\\~a/ ; -s/\\344/\\"a/ ; -s/\\345/\\oa/ ; -s/\\346/\\ae/ ; -s/\\347/\\,c/ ; -s/\\350/\\`e/ ; -s/\\351/\\'e/ ; -s/\\352/\\^e/ ; -s/\\353/\\"e/ ; -s/\\354/\\`i/ ; -s/\\355/\\'i/ ; -s/\\356/\\^i/ ; -s/\\357/\\"i/ ; -s/\\361/\\~n/ ; -s/\\362/\\`o/ ; -s/\\363/\\'o/ ; -s/\\364/\\^o/ ; -s/\\365/\\~o/ ; -s/\\366/\\"o/ ; -s/\\370/\\\/o/ ; -s/\\371/\\`u/ ; -s/\\372/\\'u/ ; -s/\\373/\\^u/ ; -s/\\374/\\"u/ ; -s/\\375/\\'y/ ; -s/\\377/\\"y/ ; - -s/\\\/\>/ ; -s/\\\(/\(/ ; -s/\\\)/\)/ ; -s/\#/\\#/ ; - -# convert newline and return commands - -s/\\n/ /go; -s/\\r/\\par /go; - -} # end fdf alternative - -# flush buffer - -print FDT $_ ; - -close FDT ; -close FDF ; - -# report some characteristics - -if ($Field eq "") - { print " number of fields : $N\n" } -else - { if (/\\FDFfield\[value\=\{(.*)\}\,\s*name=$Field/mos) - { print "$1" } - elsif (/\\FDFfield\[name=$Field\,\s*value\=\{(.*)\}/mos) - { print "$1" } } diff --git a/scripts/context/perl/makempy.pl b/scripts/context/perl/makempy.pl index 49fd9bbd2..f263dd425 100644 --- a/scripts/context/perl/makempy.pl +++ b/scripts/context/perl/makempy.pl @@ -46,8 +46,6 @@ my $format = "plain" ; # can be "context" for plain users too "force" => \$force , "pdftops" => \$pmethod , "xpdf" => \$pmethod , -# "acrobat" => \$amethod , # nowadays the reader is not that clear about this being permitted - "reader" => \$amethod , "gs" => \$gmethod , "ghostscript" => \$gmethod , "noclean" => \$noclean ) ; @@ -202,15 +200,13 @@ sub show_help_info report ("--force : force processing (ignore checksum)" ) ; report ("--silent : don't show messages" ) ; print "\n" ; - report ("--acrobat : use acrobat (reader) for pdf->ps (on unix)") ; report ("--pdftops : use pdftops (xpdf) pdf->ps") ; report ("--ghostscript : use ghostscript (gs) for pdf->ps") ; print "\n" ; report ("input file : metapost file with graphics") ; report ("programs needed : texexec and english context") ; report (" : pdftops from the xpdf suite, or") ; # page size buggy - report (" : pdf2ps and ghostscript, or") ; - report (" : acrobat reader for unix, and") ; + report (" : pdf2ps and ghostscript, and") ; report (" : pstoedit and ghostscript") ; report ("output file : metapost file with pictures") ; exit } diff --git a/scripts/context/ruby/base/kpse.rb b/scripts/context/ruby/base/kpse.rb index dc4898ffc..7a7964127 100644 --- a/scripts/context/ruby/base/kpse.rb +++ b/scripts/context/ruby/base/kpse.rb @@ -32,7 +32,11 @@ module Kpse @@crossover = true @@mswindows = Config::CONFIG['host_os'] =~ /mswin/ - @@distribution = 'miktex' if ENV['PATH'] =~ /miktex[\\\/]bin/o + # @@distribution = 'miktex' if ENV['PATH'] =~ /miktex[\\\/]bin/o + + if ENV['PATH'] =~ /(.*?)miktex[\\\/]bin/i then + @@distribution = 'miktex' unless $1 =~ /(texmf\-mswin[\/\\]bin|bin[\/\\]win32)/i + end @@usekpserunner = false || ENV['KPSEFAST'] == 'yes' diff --git a/scripts/context/ruby/newtexexec.rb b/scripts/context/ruby/newtexexec.rb index 43d840e5b..8caf9de0f 100644 --- a/scripts/context/ruby/newtexexec.rb +++ b/scripts/context/ruby/newtexexec.rb @@ -525,6 +525,13 @@ class Commands end +# we will make this pluggable, i.e. load plugins from base/tex that +# extend the class and may even add switches +# +# commandline.load_plugins('base/tex') +# +# maybe it's too slow so for a while keep the --pdf* in here + logger = Logger.new(banner.shift) commandline = CommandLine.new diff --git a/scripts/context/ruby/texmfstart.rb b/scripts/context/ruby/texmfstart.rb index 94b89d170..4bea5e979 100644 --- a/scripts/context/ruby/texmfstart.rb +++ b/scripts/context/ruby/texmfstart.rb @@ -2,7 +2,7 @@ # program : texmfstart # copyright : PRAGMA Advanced Document Engineering -# version : 1.5.5 - 2003/2005 +# version : 1.7.1 - 2003/2005 # author : Hans Hagen # # project : ConTeXt / eXaMpLe @@ -36,7 +36,7 @@ require "rbconfig" $mswindows = Config::CONFIG['host_os'] =~ /mswin/ $separator = File::PATH_SEPARATOR -$version = "1.7.0" +$version = "1.7.1" if $mswindows then @@ -65,6 +65,7 @@ $predefined['texexec'] = 'texexec.pl' $predefined['texutil'] = 'texutil.pl' $predefined['texfont'] = 'texfont.pl' +$predefined['makempy'] = 'makempy.pl' $predefined['mptopdf'] = 'mptopdf.pl' $predefined['pstopdf'] = 'pstopdf.rb' @@ -82,10 +83,15 @@ $predefined['exatools'] = 'exatools.rb' $predefined['xmltools'] = 'xmltools.rb' $makelist = [ + # context 'texexec', 'texutil', + 'texfont', + # mp/ps 'pstopdf', 'mptopdf', + 'makempy', + # misc 'ctxtools', 'pdftools', 'xmltools', diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex index 047ea3570..b9b3d014a 100644 --- a/tex/context/base/context.tex +++ b/tex/context/base/context.tex @@ -31,7 +31,7 @@ %D 2004.8.30 the low level interface is english. Watch out and adapt %D your styles an modules. -\def\contextversion{2005.11.24} +\def\contextversion{2005.11.30} %D For those who want to use this: diff --git a/tex/context/base/core-des.tex b/tex/context/base/core-des.tex index c7f4a976e..9d610ef5f 100644 --- a/tex/context/base/core-des.tex +++ b/tex/context/base/core-des.tex @@ -321,8 +321,8 @@ \def\@@stopdescription#1% {\def\currentdescription{#1}% - \dostopattributes - \par % maybe better after \dostopattributes + % was \par \dostopattributes % here, else problems with interlinespace and font change + \dostopparbasedattributes % == \settrue\parbasedattributes \dostopattributes \endgroup \descriptionparameter\c!after \egroup % temporary hack diff --git a/tex/context/base/core-itm.tex b/tex/context/base/core-itm.tex index 478575184..09fcea312 100644 --- a/tex/context/base/core-itm.tex +++ b/tex/context/base/core-itm.tex @@ -121,6 +121,7 @@ \c!stopper,\c!placestopper,\c!indenting, \c!n,\c!inner,\c!symbol,\c!margin,\c!items, \c!leftmargin,\c!rightmargin,\c!indentnext, + \c!command, \c!start,\c!lefttext,\c!righttext]} \def\setupitemgroups @@ -635,7 +636,7 @@ \else \par \fi - \ignorespaces +% \ignorespaces \increment\noflistelements \ifnum\itemcolumndepth=\zerocount \ifconditional\optimizelistitem \ifnum\noflistelements=\plusone % tgv bv kolommen/nesting @@ -720,7 +721,7 @@ \setfalse\headlistitem \setfalse\sublistitem \setfalse\symbollistitem - \EveryPar{\ignorespaces}% + \EveryPar{\ignorespaces}% needed ? \ignorespaces} % For Frank Grieshaber and Mojca Miklavec: @@ -752,7 +753,7 @@ \else \par \fi - \ignorespaces +% \ignorespaces \ifconditional\concatnextitem % new, concat \doitembreak\nobreak % new, concat \fi % new, concat @@ -793,8 +794,9 @@ \vskip-\lineheight % new, concat \nobreak % new, concat \fi % new, concat - \ignorespaces +% \ignorespaces \dolistitem + \relax \ifconditional\packlistitem \setupwhitespace[\v!none]% \fi @@ -810,8 +812,24 @@ \strut % added 11-08-99 \setfalse\concatnextitem % new, concat \hskip\itemsignal % new, concat + \getitemparameter\itemlevel\c!command} % \defaultitemcommand + +\def\defaultitemcommand + {\EveryPar{\ignorespaces}% needed ? \ignorespaces} +% For Giuseppe "Oblomov" Bilotta, inspired on a suggestion by Taco +% Hoekwater. +% +% \def\MyItemCommand#1{{\bf#1}\quad} +% \setupitemgroup[itemize][command=\MyItemCommand] +% +% \startitemize +% \item {test} is this okay? +% \item {test} is this okay? +% \item {test} is this okay? +% \stopitemize + \def\complexitem[#1]#2\par % todo: no two pass data {\startitemgroup[#1] \complexdoitemgroupitem[]\ignorespaces\begstrut#2\unskip\endstrut\par @@ -932,6 +950,7 @@ \c!righttext=), \c!start=1, \c!option=, + \c!command=\defaultitemcommand, \c!symbol=\itemlevel] % \v!niveau \def\defineitemgroup diff --git a/tex/context/base/core-mar.tex b/tex/context/base/core-mar.tex index cdc09838e..836d90430 100644 --- a/tex/context/base/core-mar.tex +++ b/tex/context/base/core-mar.tex @@ -103,14 +103,17 @@ \ifx\decouplemarking\undefined \def\decouplemarking[#1]{} \fi +\let\alldefinedmarks\empty + \def\dododefinemarking[#1][#2]% {\getparameters[\??mk#1] - [\c!expansion=\v!no, % saves a macro - \c!separator={ --- }, % watch the spaces + [\c!expansion=\v!no, % saves a macro + \c!separator={\space\emdash\space}, \c!limittext=\@@kolimittext, \c!state=\v!start]% \decouplemarking[#1]% % no coupling with sections \setevalue{\??mk#1\c!coupling}{#2}% + \doglobal\addtocommalist{#2}\alldefinedmarks \expandafter\newmark\csname\??mk#2\endcsname \showmessage\m!systems{13}{#1,[#2]}} @@ -138,64 +141,221 @@ {\doifdefinedelse{\??mk#1}} % \def\fetchmark[#1][#2]% never \unexpanded -% {\@EA\@EA\csname\??mk\??mk#2\endcsname -% \csname\??mk\mainmarking{#1}\endcsname} +% {\@EA\csname\??mk\??mk#2\@EA\endcsname\csname\??mk\mainmarking{#1}\endcsname} + +% \beginTEX +% +% \def\fetchmark[#1][#2]% never \unexpanded +% {\@EA\ifx\csname\??mk#1\c!coupling\endcsname\relax\else +% \csname\??mk\??mk#2\@EA\endcsname +% \csname\??mk\csname\??mk#1\c!coupling\endcsname\endcsname +% \fi} +% +% \endTEX +% +% \beginETEX \ifcsname +% +% \def\fetchmark[#1][#2]% never \unexpanded +% {\ifcsname\??mk#1\c!coupling\endcsname +% \csname\??mk\??mk#2\@EA\endcsname +% \csname\??mk\csname\??mk#1\c!coupling\endcsname\endcsname +% \fi} +% +% \endETEX +% +% \def\fetchtwomarks[#1]% +% {\doifsomething{\fetchmark[#1][\v!first]} +% {\fetchmark[#1][\v!first]% +% \doifsomething{\fetchmark[#1][\v!last]} +% {\doifnot{\fetchmark[#1][\v!first]}{\fetchmark[#1][\v!last]} +% {\getvalue{\??mk#1\c!separator}\fetchmark[#1][\v!last]}}}} +% +% \def\fetchallmarks[#1]% +% {\doifsomething{\fetchmark[#1][\v!first]} +% {\doifsomething{\fetchmark[#1][\v!previous]} +% {\doifnot{\fetchmark[#1][\v!previous]}{\fetchmark[#1][\v!first]} +% {\fetchmark[#1][\v!previous]\getvalue{\??mk#1\c!separator}}}}% +% \fetchtwomarks[#1]} +% +% \def\dogetmarking[#1][#2]% +% {\doifvalue{\??mk#1\c!state}\v!start +% {\bgroup +% %\def\nomarking##1{\unknown\ }% +% \def\nomarking{\splitsequence{\getvalue{\??mk#1\c!limittext}}}% +% \setfullsectionnumber{\??mk#1}% +% \processaction % slow +% [#2] +% [ \v!both=>{\fetchtwomarks[#1]}, +% \v!all=>{\fetchallmarks[#1]}, +% \s!default=>{\fetchmark [#1][\v!first]}, +% \s!unknown=>{\fetchmark [#1][#2]}]% +% \egroup}} +% +% \def\nogetmarking[#1][#2]% +% {} +% +% \unexpanded\def\getmarking +% {\dodoubleargument\dogetmarking} \beginTEX -\def\fetchmark[#1][#2]% never \unexpanded - {\@EA\ifx\csname\??mk#1\c!coupling\endcsname\else - \@EA\@EA\csname\??mk\??mk#2\endcsname - \csname\??mk\csname\??mk#1\c!coupling\endcsname\endcsname +\def\fetchmark[#1][#2]% % expandable / never use \unexpanded + {\@EA\ifx\csname\??mk::#1\endcsname\relax + \@EA\ifx\csname\??mk#1\c!coupling\endcsname\relax + % nothing + \else + \csname\??mk\??mk#2\@EA\endcsname + \csname\??mk\csname\??mk#1\c!coupling\endcsname\endcsname + \fi + \else + \csname\??mk::\??mk::#2\@EA\@EA\@EA\endcsname + \csname\??mk::#1\endcsname \fi} \endTEX \beginETEX \ifcsname -\def\fetchmark[#1][#2]% never \unexpanded - {\ifcsname\??mk#1\c!coupling\endcsname - % \@EA\@EA\csname\??mk\??mk#2\endcsname - % \csname\??mk\csname\??mk#1\c!coupling\endcsname\endcsname +\def\fetchmark[#1][#2]% % expandable / never use \unexpanded + {\ifcsname\??mk::#1\endcsname % saved mark + \csname\??mk::\??mk::#2\@EA\@EA\@EA\endcsname + \csname\??mk::#1\endcsname + \else\ifcsname\??mk#1\c!coupling\endcsname % real mark \csname\??mk\??mk#2\@EA\endcsname \csname\??mk\csname\??mk#1\c!coupling\endcsname\endcsname - \fi} + \fi\fi} \endETEX +\def\fetchmark[#1][#2]% % expandable / never use \unexpanded + {\ifcsname\??mk::#1\endcsname % saved mark + \csname\??mk::\??mk::#2\@EA\@EA\@EA\endcsname + \csname\??mk::#1\endcsname + \else\ifcsname\??mk#1\c!coupling\endcsname % real mark + \csname\??mk\??mk#2\@EA\endcsname + \csname\??mk\csname\??mk#1\c!coupling\endcsname\endcsname + \fi\fi} + +\letvalue{\??mk::\??mk::\v!previous}\firstoffourarguments +\letvalue{\??mk::\??mk::\v!first }\secondoffourarguments +\letvalue{\??mk::\??mk::\v!last }\thirdoffourarguments +\letvalue{\??mk::\??mk::\v!current }\fourthoffourarguments + +% this version can be used when a page is built up in steps without +% feedback of the otr'd list to the mvl (i.e.\ a page made of pages, +% as in column sets where content is buffered) + +% reset at begin +% preset before page +% bubble in column +% refresh at end + +\def\refreshsavedmark[#1][#2]% mark tag (packing saves many hash entries) + {\setxvalue{\??mk::#1:#2}% + {{\@EA\ifx\csname\??mk::#1:pp\endcsname\relax + % empty + \else + \csname\??mk::#1:pp\endcsname + \fi}% + {\@EA\ifx\csname\??mk::#1:ff\endcsname\relax + \fetchmark[#1][\v!first]% + \else + \csname\??mk::#1:ff\endcsname + \fi}% + {\fetchmark[#1][\v!last]}% + {\fetchmark[#1][\v!current]}}% + \setxvalue{\??mk::#1:pp}{\fetchmark[#1][\v!first]}% + \letgvalue{\??mk::#1:ff}\relax + } + +\def\bubblesavedmark[#1][#2]% no packing (not now, maybe make a six-pack later) + {\@EA\ifx\csname\??mk::#1:ff\endcsname\relax + \setxvalue{\??mk::#1:ff}{\fetchmark[#1][\v!first]}% + \fi} + +\def\resetsavedmark[#1][#2]% mark tag + {\doifelsenothing{\fetchmark[#1][\v!previous]} + {\letgvalue{\??mk::#1:pp}\relax} + {\setxvalue{\??mk::#1:pp}{\fetchmark[#1][\v!previous]}}% + \doifelsenothing{\fetchmark[#1][\v!first]} + {\letgvalue{\??mk::#1:ff}\relax} + {\setxvalue{\??mk::#1:ff}{\fetchmark[#1][\v!first]}}% + \letgvalue{\??mk::#1:#2}\emptysavedmark} + +\def\presetsavedmark[#1][#2]% mark tag + {\letgvalue{\??mk::#1:#2}\emptysavedmark} + +\def\emptysavedmark{{}{}{}{}} + +% new (can be used in column sets) +% +% \getsavedmarking[M][previous] +% \getsavedmarking[M][first] +% \getsavedmarking[M][last] + +\def\getsavedmarking + {\dodoubleargument\dogetsavedmarking} + +\def\dogetsavedmarking[#1][#2]% + {\doifelse{#2}\v!previous + {\getmarking[#1][1][\v!previous]} + {\doifelse{#2}\v!first + {\getmarking[#1][1][\v!first]} + {\getmarking[#1][\v!last]}}} + +% fetching + \def\fetchtwomarks[#1]% - {\doifsomething{\fetchmark[#1][\v!first]} - {\fetchmark[#1][\v!first]% - \doifsomething{\fetchmark[#1][\v!last]} - {\doifnot{\fetchmark[#1][\v!first]}{\fetchmark[#1][\v!last]} - {\getvalue{\??mk#1\c!separator}\fetchmark[#1][\v!last]}}}} + {\dofetchtwomarks[#1][#1]} \def\fetchallmarks[#1]% - {\doifsomething{\fetchmark[#1][\v!first]} - {\doifsomething{\fetchmark[#1][\v!previous]} - {\doifnot{\fetchmark[#1][\v!previous]}{\fetchmark[#1][\v!first]} - {\fetchmark[#1][\v!previous]\getvalue{\??mk#1\c!separator}}}}% - \fetchtwomarks[#1]} + {\dofetchallmarks[#1][#1]} + +\def\dofetchtwomarks[#1][#2]% class class:tag + {\doifsomething{\fetchmark[#2][\v!first]} + {\fetchmark[#2][\v!first]% + \doifsomething{\fetchmark[#2][\v!last]} + {\doifnot{\fetchmark[#2][\v!first]}{\fetchmark[#2][\v!last]} + {\getvalue{\??mk#1\c!separator}\fetchmark[#2][\v!last]}}}} + +\def\dofetchallmarks[#1][#2]% + {\doifsomething{\fetchmark[#2][\v!first]} + {\doifsomething{\fetchmark[#2][\v!previous]} + {\doifnot{\fetchmark[#2][\v!previous]}{\fetchmark[#2][\v!first]} + {\fetchmark[#2][\v!previous]\getvalue{\??mk#1\c!separator}}}}% + \fetchtwomarks[#1][#2]} + +% \newtoks \everymarking -\def\dogetmarking[#1][#2]% +\def\dogetmarking[#1][#2][#3]% {\doifvalue{\??mk#1\c!state}\v!start {\bgroup + \the\everymarking %\def\nomarking##1{\unknown\ }% \def\nomarking{\splitsequence{\getvalue{\??mk#1\c!limittext}}}% \setfullsectionnumber{\??mk#1}% - \processaction % slow - [#2] - [ \v!both=>{\fetchtwomarks[#1]}, - \v!all=>{\fetchallmarks[#1]}, - \s!default=>{\fetchmark [#1][\v!first]}, - \s!unknown=>{\fetchmark [#1][#2]}]% + \ifthirdargument + \processaction % slow + [#3] + [ \v!both=>{\dofetchtwomarks[#1][#1:#2]}, + \v!all=>{\dofetchallmarks[#1][#1:#2]}, + \s!default=>{\fetchmark [#1:#2][\v!first]}, + \s!unknown=>{\fetchmark [#1:#2][#3]}]% + \else + \processaction % slow + [#2] + [ \v!both=>{\dofetchtwomarks[#1][#1]}, + \v!all=>{\dofetchallmarks[#1][#1]}, + \s!default=>{\fetchmark [#1][\v!first]}, + \s!unknown=>{\fetchmark [#1][#2]}]% + \fi \egroup}} -\def\nogetmarking[#1][#2]% +\def\nogetmarking[#1][#2][#3]% {} \unexpanded\def\getmarking - {\dodoubleargument\dogetmarking} + {\dotripleargument\dogetmarking} \let\setsomemark\setmark diff --git a/tex/context/base/core-new.tex b/tex/context/base/core-new.tex index 71be6466a..0f3cb0c1a 100644 --- a/tex/context/base/core-new.tex +++ b/tex/context/base/core-new.tex @@ -15,234 +15,6 @@ \unprotect -% Some kind of new feature, for the moment a private one. -% -% \enablemode[screen,paper,bound] -% -% \doifmodeelse {paper} {this} {that} -% \doifmode {paper,screen} {this} -% \doifnotmode {paper,bound} {that} -% -% \startmode [list] -% \stopmode -% -% \startnotmode [list] -% \stopnotmode -% -% system modes have a * as prefix -% -% to be implemented: mode naar texutil/scherm + message -% : geen #2 en nesting (\startregels) - -%D Sometimes, we want to prevent a mode for being set. Think -%D of situations where a style enables a mode, but an outer -%D level style does not want that. Preventing can be -%D considered a permanent disabling on forehand. - -% \def\systemmodeprefix{*} -% -% \let\currentmode \empty -% \let\preventedmodes\empty -% -% \def\preventmode[#1]% -% {\expanded{\addtocommalist{#1}\noexpand\preventedmodes}} -% -% \def\enablemode[#1]% -% {\expanded -% {\doifnotinset{#1}{\preventedmodes} -% {\noexpand\addtocommalist{#1}\noexpand\currentmode}}} -% -% \def\disablemode[#1]% -% {\expanded{\removefromcommalist{#1}\noexpand\currentmode}} -% -% \def\doifmodeelse{\unprotect\dodoifmodeelse} -% \def\doifmode {\unprotect\dodoifmode } -% \def\doifnotmode {\unprotect\dodoifnotmode } -% \def\startmode {\unprotect\dostartmode } -% \def\startnotmode{\unprotect\dostartnotmode} -% -% \long\def\dodoifmodeelse#1% -% {\protect\expanded{\doifcommonelse{#1}{\currentmode}}} -% -% \long\def\dodoifmode#1% -% {\protect\expanded{\doifcommon {#1}{\currentmode}}} -% -% \long\def\dodoifnotmode#1% -% {\protect\expanded{\doifnotcommon {#1}{\currentmode}}} -% -% \let\stopmode \relax -% \let\stopnotmode\relax -% -% \long\def\dostartmode[#1]% -% {\protect -% \expanded{\doifnotcommon{#1}{\currentmode}}{\gobbleuntil\stopmode}} -% -% \long\def\dostartnotmode[#1]% -% {\protect -% \expanded{\doifcommon {#1}{\currentmode}}{\gobbleuntil\stopnotmode}} -% -% \def\doifallmodeselse{\unprotect\dodoifallmodeselse} -% \def\doifallmodes {\unprotect\dodoifallmodes} -% \def\doifnotallmodes {\unprotect\dodoifnotallmodes} -% \def\startallmodes {\unprotect\dostartallmodes} -% \def\startnotallmodes{\unprotect\dostartnotallmodes} -% -% \long\def\dodoifallmodeselse#1% -% {\protect\expanded{\doifallcommonelse{#1}{\currentmode}}} -% -% \long\def\dodoifallmodes#1% -% {\protect\expanded{\doifallcommon {#1}{\currentmode}}} -% -% \long\def\dodoifnotallmodes#1% -% {\protect\expanded{\doifnotallcommon {#1}{\currentmode}}} -% -% \let\stopallmodes \relax -% \let\stopnotallmodes\relax -% -% \long\def\dostartallmodes[#1]% -% {\protect -% \expanded{\doifnotallcommon{#1}{\currentmode}}{\gobbleuntil\stopallmodes}} -% -% \long\def\dostartnotallmodes[#1]% -% {\protect -% \expanded{\doifallcommon {#1}{\currentmode}}{\gobbleuntil\stopnotallmodes}} - -% faster - -\def\@mode@{@md@} - -\def\systemmodeprefix{*} - -\def\disabledmode {0} -\def\enabledmode {1} -\def\preventedmode {2} - -% fast internal ones - -\def\setmode #1{\@EA\let\csname\@mode@#1\endcsname\enabledmode } -\def\resetmode#1{\@EA\let\csname\@mode@#1\endcsname\disabledmode} - -\def\setsystemmode #1{\@EA\let\csname\@mode@\systemmodeprefix#1\endcsname\enabledmode } -\def\resetsystemmode#1{\@EA\let\csname\@mode@\systemmodeprefix#1\endcsname\disabledmode} - -% user ones - -\def\preventmode{\unprotect\dopreventmode} -\def\enablemode {\unprotect\doenablemode } -\def\disablemode{\unprotect\dodisablemode} - -% \def\dopreventmode[#1]{\protect\rawprocesscommalist[#1]\dodopreventmode} -% \def\doenablemode [#1]{\protect\rawprocesscommalist[#1]\dodoenablemode } -% \def\dodisablemode[#1]{\protect\rawprocesscommalist[#1]\dododisablemode} -% -% better: - -\def\dopreventmode[#1]{\protect\cleanuplabel{#1}\rawprocesscommalist[\cleanlabel]\dodopreventmode} -\def\doenablemode [#1]{\protect\cleanuplabel{#1}\rawprocesscommalist[\cleanlabel]\dodoenablemode } -\def\dodisablemode[#1]{\protect\cleanuplabel{#1}\rawprocesscommalist[\cleanlabel]\dododisablemode} - -\def\dodopreventmode#1% - {\@EA\let\csname\@mode@#1\endcsname\preventedmode} - -\def\dodoenablemode#1% - {\ifcase0\csname\@mode@#1\endcsname\relax - \@EA\let\csname\@mode@#1\endcsname\enabledmode - \fi} - -\def\dododisablemode#1% - {\ifcase0\csname\@mode@#1\endcsname\or - \@EA\let\csname\@mode@#1\endcsname\disabledmode - \fi} - -% check macros - -\newif\ifcheckedmode - -\def\dodocheckformode#1% - {\ifcase0\csname\@mode@#1\endcsname\or\checkedmodetrue\fi} - -% \def\docheckformode#1#2#3% will be sped up with a quit -% {\protect\checkedmodefalse\rawprocesscommalist[#3]\dodocheckformode -% \ifcheckedmode\@EA#1\else\@EA#2\fi} -% -% better: - -\def\docheckformode#1#2#3% will be sped up with a quit - {\cleanuplabel{#3}% - \protect\checkedmodefalse\rawprocesscommacommand[\cleanlabel]\dodocheckformode - \ifcheckedmode\@EA#1\else\@EA#2\fi} - -\def\dodocheckforallmodes#1% - {\ifcase0\csname\@mode@#1\endcsname\relax - \checkedmodefalse\or\or\checkedmodefalse\fi} - -% \def\docheckforallmodes#1#2#3% will be sped up with a quit -% {\protect\checkedmodetrue\rawprocesscommalist[#3]\dodocheckforallmodes -% \ifcheckedmode\@EA#1\else\@EA#2\fi} -% -% better: - -\def\docheckforallmodes#1#2#3% will be sped up with a quit - {\cleanuplabel{#3}% - \protect\checkedmodetrue\rawprocesscommacommand[\cleanlabel]\dodocheckforallmodes - \ifcheckedmode\@EA#1\else\@EA#2\fi} - -% simple ones - -\def\doifmodeelse{\unprotect\dodoifmodeelse} -\def\doifmode {\unprotect\dodoifmode} -\def\doifnotmode {\unprotect\dodoifnotmode} -\def\startmode {\unprotect\dostartmode} -\def\startnotmode{\unprotect\dostartnotmode} - -\def\dodoifmodeelse - {\docheckformode\firstoftwoarguments\secondoftwoarguments} - -\def\dodoifmode - {\docheckformode\firstofoneargument\gobbleoneargument} - -\def\dodoifnotmode - {\docheckformode\gobbleoneargument\firstofoneargument} - -\long\def\dostartmode[#1]% - {\docheckformode\donothing\dostopmode{#1}} - -\long\def\dostartnotmode[#1]% - {\docheckformode\dostopnotmode\donothing{#1}} - -\let\stopmode \donothing -\let\stopnotmode\donothing - -\long\def\dostopmode #1\stopmode {} -\long\def\dostopnotmode#1\stopnotmode{} - -\def\doifallmodeselse{\unprotect\dodoifallmodeselse} -\def\doifallmodes {\unprotect\dodoifallmodes} -\def\doifnotallmodes {\unprotect\dodoifnotallmodes} -\def\startallmodes {\unprotect\dostartallmodes} -\def\startnotallmodes{\unprotect\dostartnotallmodes} - -\def\doifallmodeselse - {\docheckforallmodes\firstoftwoarguments\secondoftwoarguments} - -\def\doifallmodes - {\docheckforallmodes\firstofoneargument\gobbleoneargument} - -\def\doifnotallmodes - {\docheckforallmodes\gobbleoneargument\firstofoneargument} - -\long\def\dostartallmodes[#1]% - {\docheckforallmodes\donothing\dostopallmodes{#1}} - -\long\def\dostartnotallmodes[#1]% - {\docheckforallmodes\dostopallmodes\donothing{#1}} - -\let\stopallmodes \donothing -\let\stopnotallmodes\donothing - -\long\def\dostopallmodes #1\stopallmodes {} -\long\def\dostopnotallmodes#1\stopnotallmodes{} - % \def\setups % {\dosingleargument\dosetups} % diff --git a/tex/context/base/core-not.tex b/tex/context/base/core-not.tex index a3aad6e1f..b97745b50 100644 --- a/tex/context/base/core-not.tex +++ b/tex/context/base/core-not.tex @@ -478,7 +478,7 @@ \else \global\notesymboltrue \fi - \ifvisible + \ifvisible % misty feature, make it obsolete \ifreshapingbox \@EAEAEA\gobbletwoarguments \else @@ -506,6 +506,8 @@ \newif\ifnotesenabled \notesenabledtrue +\appendtoks \notesenabledfalse \to \everymarking + \newconditional\pagewisenotes % saves two hash entries \def\lastnotepage{1} diff --git a/tex/context/base/core-rul.tex b/tex/context/base/core-rul.tex index e21d6385a..1825797c4 100644 --- a/tex/context/base/core-rul.tex +++ b/tex/context/base/core-rul.tex @@ -2709,6 +2709,7 @@ \stopcolor \egroup \doif{#2}\v!none\insidefloattrue % new + \doif{\framedtextparameter{#1}\c!location}\v!none\insidefloattrue % newer \ifinsidefloat \box\framebox \else @@ -3126,8 +3127,10 @@ \setbox0\vbox\bgroup \vbox to \lineheight{}\vskip\zeropoint \blank[\v!disable] - \advance\hsize -\@@agleftoffset - \advance\hsize -\@@agrightoffset} + % \advance\hsize -\@@agleftoffset + % \advance\hsize -\@@agrightoffset + \leftskip \@@agleftoffset % new ** + \rightskip\@@agrightoffset} % new ** %D This dummy line is removed by \type{\setbox2=\vsplit0 to %D \lineheight}. That way \type{\topskip} takes care of the @@ -3138,6 +3141,7 @@ {\endgraf \removelastskip \egroup + \dimen2\leftskip % new ** \forgetall \splitmaxdepth\boxmaxdepth \splittopskip\topskip @@ -3172,14 +3176,13 @@ \vfill} \@@agbefore \ifcase\backgroundsplit\or\or % partial split -\ifdim\pagegoal<\maxdimen - \pagegoal=1.2\pagegoal % be a bit more tolerant -\fi + \ifdim\pagegoal<\maxdimen + \pagegoal=1.2\pagegoal % be a bit more tolerant + \fi \fi \startlinecorrection - \localframed - [\??ag][\c!offset=\v!overlay] - {\hskip\@@agleftoffset\box2\hskip\@@agrightoffset}% + %\localframed[\??ag][\c!offset=\v!overlay]{\hskip\@@agleftoffset\box2\hskip\@@agrightoffset}% + \hskip\dimen2\localframed[\??ag][\c!offset=\v!overlay]{\box2}% new ** \stoplinecorrection \ifcase\backgroundsplit % no split \@@agafter diff --git a/tex/context/base/core-sec.tex b/tex/context/base/core-sec.tex index e0712673d..7725d293b 100644 --- a/tex/context/base/core-sec.tex +++ b/tex/context/base/core-sec.tex @@ -305,6 +305,29 @@ \def\decouplemarking[#1]% {\couplemarking[#1][]} +% \def\definesection[#1]% +% {\doifundefined{\??se#1} +% {\doifelsenothing\firstsection +% {\def\firstsection{#1}% +% \setevalue{\??se#1\c!before}{\v!text}% +% \setevalue{\??se\v!text\c!after}{#1}} +% {\setevalue{\??se\commalistelement\c!after}{#1}% +% \setevalue{\??se#1\c!before}{\lastsection}% +% \setevalue{\??se\lastsection\c!after}{#1}}% +% \advance\nofsections \plusone +% \setevalue{\??se#1\c!level}{\the\nofsections}% +% \letvalue{\??se#1\c!after}\empty +% \setvalue{\e!next#1}{\@@nextsectionnumber{#1}}% +% \setvalue{#1\c!number}{\@@longsectionnumber{#1}}% +% \setvalue{#1\s!format}{\@@longformatnumber{#1}}% +% \setevalue{\??by#1}{#1}% +% \setevalue{\??by\v!by#1}{#1}% +% \makecounter{\??se#1}% +% \edef\lastsection{#1}% +% \setvalue{\??sk#1}{#1}% +% \letvalue{\??se#1\c!marking}\empty +% \setupsection[#1][\c!previousnumber=\v!yes]}}% + \def\definesection[#1]% {\doifundefined{\??se#1} {\doifelsenothing\firstsection @@ -323,6 +346,7 @@ \setevalue{\??by#1}{#1}% \setevalue{\??by\v!by#1}{#1}% \makecounter{\??se#1}% + \makecounter{\??se\v!last#1}% GB \edef\lastsection{#1}% \setvalue{\??sk#1}{#1}% \letvalue{\??se#1\c!marking}\empty @@ -331,16 +355,46 @@ \def\previoussection#1{\csname\??se#1\c!before\endcsname} \def\nextsection #1{\csname\??se#1\c!after \endcsname} +\let\preservedsection\v!unknown % \def\preservedsection{\firstsection} + +\def\checkpreservevalueafter#1% GB + {\ifnum\getvalue{\??se#1\c!level}<\nofsections + \edef\preservedsection{\getvalue{\??se#1\c!after}}% + \ifconditional\@@resetsubheadnumbers + \setcounter{\??se\v!last\preservedsection}\zerocount % {0}% + \else + \setcounter{\??se\v!last\preservedsection}{\countervalue{\??se\preservedsection}}% + \fi + \fi} + +% \def\@@setsectionnumber#1#2% +% {\letgvalueempty{\??se#1\s!start}% signal i.p.v. boolean +% \setcounter{\??se#1}{#2}% +% \ifconditional\@@resetsubheadnumbers\resetsectioncounters{#1}\fi +% \checkpagecounter} + \def\@@setsectionnumber#1#2% {\letgvalueempty{\??se#1\s!start}% signal i.p.v. boolean \setcounter{\??se#1}{#2}% - \ifconditional\@@resetsubheadnumbers\resetsectioncounters{#1}\fi + \checkpreservevalueafter{#1}% GB + \resetsectioncounters{#1}% \checkpagecounter} -\def\@@nextsectionnumber#1% +% \def\@@nextsectionnumber#1% +% {\letgvalueempty{\??se#1\s!start}% signal i.p.v. boolean +% \pluscounter{\??se#1}% +% \ifconditional\@@resetsubheadnumbers\resetsectioncounters{#1}\fi +% \checkpagecounter} + +\def\@@nextsectionnumber#1% patched by GB {\letgvalueempty{\??se#1\s!start}% signal i.p.v. boolean + \ifnum\countervalue{\??se\v!last#1}>\zerocount + \setcounter{\??se#1}{\countervalue{\??se\v!last#1}}% + \setcounter{\??se\v!last#1}\zerocount % {0}% + \fi \pluscounter{\??se#1}% - \ifconditional\@@resetsubheadnumbers\resetsectioncounters{#1}\fi + \checkpreservevalueafter{#1}% + \resetsectioncounters{#1}% \checkpagecounter} \def\@@sectionvalue#1% % nog niet overal doorgevoerd @@ -868,7 +922,7 @@ \def\dosetlocalsectionblock#1#2#3% new \edef's {\edef\@@sectiontype {#1}% - \edef\@@sectionblock {#2}% + \edef\@@sectionblock {#2}% \edef\@@sectionblocks{#3}} % beware, the \resetsectionmarks generates some nodes that @@ -1722,8 +1776,8 @@ % \getvalue{\??ko#1\c!commandbefore}% strange, why here? moved 21/11/2005 \placeheadmargintexts{#1}% binnen #3? \ifdisplaysectionhead - \getvalue{\??ko#1\c!numbercommand}% - {\setstrut\begstrut#3\endstrut}% can be nilled with \setnostrut + % can be nilled with \setnostrut + \getvalue{\??ko#1\c!numbercommand}{\setstrut\begstrut#3\endstrut}% \else \getvalue{\??ko#1\c!numbercommand}{#3}% \fi diff --git a/tex/context/base/core-spa.tex b/tex/context/base/core-spa.tex index c0a1fd1e5..f6181648e 100644 --- a/tex/context/base/core-spa.tex +++ b/tex/context/base/core-spa.tex @@ -35,6 +35,8 @@ \appendtoks \simplesetupspacing \to \everybodyfont % nieuw \appendtoks \setdisplayskips \to \everybodyfont % nieuw +\appendtoks \setrelativeinterlinespace \to \everybodyfont + \appendtoks \updateraggedskips \to \everyfontswitch % under test \prependtoks \let\par\endgraf \to \everypagebody % see \fillinline @@ -171,14 +173,43 @@ \setfontparameters % redundant, can be \setstrut, test first \updateraggedskips} % yes indeed +% \let\currentrelativeinterlinespace\empty +% +% \def\setuprelativeinterlinespace[#1]% +% {\processallactionsinset +% [#1] +% [ \v!on=>\oninterlineskip, +% \v!off=>\offinterlineskip, +% \v!reset=>\let\currentrelativeinterlinespace\empty +% \setfontparameters,% just \setstrut, test first +% \s!unknown=>\assignvalue{#1}\currentrelativeinterlinespace{1.00}{1.25}{1.50}% +% \spacing\currentrelativeinterlinespace]} + +% \setupinterlinespace[big] \switchtobodyfont[11pt] -> forgotten +% \setupinterlinespace[auto,big] \switchtobodyfont[11pt] -> remembered + +\let\currentrelativeinterlinespace\empty + \def\setuprelativeinterlinespace[#1]% - {\processallactionsinset % \regelwit = dummy ! + {\processallactionsinset [#1] [ \v!on=>\oninterlineskip, \v!off=>\offinterlineskip, - \v!reset=>\setfontparameters,% just \setstrut, test first - \s!unknown=>\assignvalue{#1}\regelwit{1.00}{1.25}{1.50}% - \spacing\regelwit]} + \v!reset=>\let\currentrelativeinterlinespace\empty + \let\setrelativeinterlinespace\relax + \setfontparameters, + \v!auto=>\let\setrelativeinterlinespace\dosetrelativeinterlinespace, + \s!unknown=>\assignvalue\commalistelement\currentrelativeinterlinespace{1.00}{1.25}{1.50}% + \spacing\currentrelativeinterlinespace]} + +\def\dosetrelativeinterlinespace + {\ifx\currentrelativeinterlinespace\empty\else + \spacing\currentrelativeinterlinespace + \fi} + +\let\setrelativeinterlinespace\relax + +% \appendtoks \setrelativeinterlinespace \to \everybodyfont \def\complexsetupinterlinespace[#1]% \commalistelement ipv #1 {\doifassignmentelse{#1}\setupspecifiedinterlinespace\setuprelativeinterlinespace[#1]} @@ -3060,12 +3091,26 @@ \endETEX +\newconditional \parbasedattributes + +\def\finishparbasedattributes + {\ifconditional\parbasedattributes + \setfalse\parbasedattributes + \par + \fi} + +\def\dostopparbasedattributes + {\settrue\parbasedattributes + \dostopattributes} + \unexpanded\def\@@dostopattributes {\stopcolor + \finishparbasedattributes \endgroup} \unexpanded\def\@@nostopattributes - {\endgroup} + {\finishparbasedattributes + \endgroup} \unexpanded\def\doattributes#1#2#3#4% {\dostartattributes{#1}{#2}{#3}{#4}\dostopattributes} @@ -3088,10 +3133,12 @@ % % \unexpanded\def\@@dostopattributes% % {\stopcolor +% \finishparbasedattributes % \endgroup} % % \unexpanded\def\@@nostopattributes% -% {\endgroup} +% {\finishparbasedattributes +% \endgroup} \unexpanded\def\dostartattributes#1#2#3% {\begingroup % geen \bgroup, anders in mathmode lege \hbox @@ -3112,10 +3159,12 @@ \unexpanded\def\@@dostopattributes {\doglobalstopcolor + \finishparbasedattributes \endgroup} \unexpanded\def\@@nostopattributes - {\endgroup} + {\finishparbasedattributes + \endgroup} \endETEX diff --git a/tex/context/base/core-var.tex b/tex/context/base/core-var.tex index 1fe89af0e..5d0cc1d5d 100644 --- a/tex/context/base/core-var.tex +++ b/tex/context/base/core-var.tex @@ -15,6 +15,233 @@ \unprotect +%D Modes: +%D +%D \starttyping +%D \enablemode[screen,paper,bound] +%D +%D \doifmodeelse {paper} {this} {that} +%D \doifmode {paper,screen} {this} +%D \doifnotmode {paper,bound} {that} +%D +%D \startmode [list] +%D \stopmode +%D +%D \startnotmode [list] +%D \stopnotmode +%D \stoptyping +%D +%D system modes have a * as prefix +%D +%D Sometimes, we want to prevent a mode for being set. Think +%D of situations where a style enables a mode, but an outer +%D level style does not want that. Preventing can be +%D considered a permanent disabling on forehand. + +% \def\systemmodeprefix{*} +% +% \let\currentmode \empty +% \let\preventedmodes\empty +% +% \def\preventmode[#1]% +% {\expanded{\addtocommalist{#1}\noexpand\preventedmodes}} +% +% \def\enablemode[#1]% +% {\expanded +% {\doifnotinset{#1}{\preventedmodes} +% {\noexpand\addtocommalist{#1}\noexpand\currentmode}}} +% +% \def\disablemode[#1]% +% {\expanded{\removefromcommalist{#1}\noexpand\currentmode}} +% +% \def\doifmodeelse{\unprotect\dodoifmodeelse} +% \def\doifmode {\unprotect\dodoifmode } +% \def\doifnotmode {\unprotect\dodoifnotmode } +% \def\startmode {\unprotect\dostartmode } +% \def\startnotmode{\unprotect\dostartnotmode} +% +% \long\def\dodoifmodeelse#1% +% {\protect\expanded{\doifcommonelse{#1}{\currentmode}}} +% +% \long\def\dodoifmode#1% +% {\protect\expanded{\doifcommon {#1}{\currentmode}}} +% +% \long\def\dodoifnotmode#1% +% {\protect\expanded{\doifnotcommon {#1}{\currentmode}}} +% +% \let\stopmode \relax +% \let\stopnotmode\relax +% +% \long\def\dostartmode[#1]% +% {\protect +% \expanded{\doifnotcommon{#1}{\currentmode}}{\gobbleuntil\stopmode}} +% +% \long\def\dostartnotmode[#1]% +% {\protect +% \expanded{\doifcommon {#1}{\currentmode}}{\gobbleuntil\stopnotmode}} +% +% \def\doifallmodeselse{\unprotect\dodoifallmodeselse} +% \def\doifallmodes {\unprotect\dodoifallmodes} +% \def\doifnotallmodes {\unprotect\dodoifnotallmodes} +% \def\startallmodes {\unprotect\dostartallmodes} +% \def\startnotallmodes{\unprotect\dostartnotallmodes} +% +% \long\def\dodoifallmodeselse#1% +% {\protect\expanded{\doifallcommonelse{#1}{\currentmode}}} +% +% \long\def\dodoifallmodes#1% +% {\protect\expanded{\doifallcommon {#1}{\currentmode}}} +% +% \long\def\dodoifnotallmodes#1% +% {\protect\expanded{\doifnotallcommon {#1}{\currentmode}}} +% +% \let\stopallmodes \relax +% \let\stopnotallmodes\relax +% +% \long\def\dostartallmodes[#1]% +% {\protect +% \expanded{\doifnotallcommon{#1}{\currentmode}}{\gobbleuntil\stopallmodes}} +% +% \long\def\dostartnotallmodes[#1]% +% {\protect +% \expanded{\doifallcommon {#1}{\currentmode}}{\gobbleuntil\stopnotallmodes}} + +% faster + +\def\@mode@{@md@} + +\def\systemmodeprefix{*} + +\def\disabledmode {0} +\def\enabledmode {1} +\def\preventedmode {2} + +% fast internal ones + +\def\setmode #1{\@EA\let\csname\@mode@#1\endcsname\enabledmode } +\def\resetmode#1{\@EA\let\csname\@mode@#1\endcsname\disabledmode} + +\def\setsystemmode #1{\@EA\let\csname\@mode@\systemmodeprefix#1\endcsname\enabledmode } +\def\resetsystemmode#1{\@EA\let\csname\@mode@\systemmodeprefix#1\endcsname\disabledmode} + +% user ones + +\def\preventmode{\unprotect\dopreventmode} +\def\enablemode {\unprotect\doenablemode } +\def\disablemode{\unprotect\dodisablemode} + +% \def\dopreventmode[#1]{\protect\rawprocesscommalist[#1]\dodopreventmode} +% \def\doenablemode [#1]{\protect\rawprocesscommalist[#1]\dodoenablemode } +% \def\dodisablemode[#1]{\protect\rawprocesscommalist[#1]\dododisablemode} +% +% better: + +\def\dopreventmode[#1]{\protect\cleanuplabel{#1}\rawprocesscommalist[\cleanlabel]\dodopreventmode} +\def\doenablemode [#1]{\protect\cleanuplabel{#1}\rawprocesscommalist[\cleanlabel]\dodoenablemode } +\def\dodisablemode[#1]{\protect\cleanuplabel{#1}\rawprocesscommalist[\cleanlabel]\dododisablemode} + +\def\dodopreventmode#1% + {\@EA\let\csname\@mode@#1\endcsname\preventedmode} + +\def\dodoenablemode#1% + {\ifcase0\csname\@mode@#1\endcsname\relax + \@EA\let\csname\@mode@#1\endcsname\enabledmode + \fi} + +\def\dododisablemode#1% + {\ifcase0\csname\@mode@#1\endcsname\or + \@EA\let\csname\@mode@#1\endcsname\disabledmode + \fi} + +% check macros + +\newif\ifcheckedmode + +\def\dodocheckformode#1% + {\ifcase0\csname\@mode@#1\endcsname\or\checkedmodetrue\fi} + +% \def\docheckformode#1#2#3% will be sped up with a quit +% {\protect\checkedmodefalse\rawprocesscommalist[#3]\dodocheckformode +% \ifcheckedmode\@EA#1\else\@EA#2\fi} +% +% better: + +\def\docheckformode#1#2#3% will be sped up with a quit + {\cleanuplabel{#3}% + \protect\checkedmodefalse\rawprocesscommacommand[\cleanlabel]\dodocheckformode + \ifcheckedmode\@EA#1\else\@EA#2\fi} + +\def\dodocheckforallmodes#1% + {\ifcase0\csname\@mode@#1\endcsname\relax + \checkedmodefalse\or\or\checkedmodefalse\fi} + +% \def\docheckforallmodes#1#2#3% will be sped up with a quit +% {\protect\checkedmodetrue\rawprocesscommalist[#3]\dodocheckforallmodes +% \ifcheckedmode\@EA#1\else\@EA#2\fi} +% +% better: + +\def\docheckforallmodes#1#2#3% will be sped up with a quit + {\cleanuplabel{#3}% + \protect\checkedmodetrue\rawprocesscommacommand[\cleanlabel]\dodocheckforallmodes + \ifcheckedmode\@EA#1\else\@EA#2\fi} + +% simple ones + +\def\doifmodeelse{\unprotect\dodoifmodeelse} +\def\doifmode {\unprotect\dodoifmode} +\def\doifnotmode {\unprotect\dodoifnotmode} +\def\startmode {\unprotect\dostartmode} +\def\startnotmode{\unprotect\dostartnotmode} + +\def\dodoifmodeelse + {\docheckformode\firstoftwoarguments\secondoftwoarguments} + +\def\dodoifmode + {\docheckformode\firstofoneargument\gobbleoneargument} + +\def\dodoifnotmode + {\docheckformode\gobbleoneargument\firstofoneargument} + +\long\def\dostartmode[#1]% + {\docheckformode\donothing\dostopmode{#1}} + +\long\def\dostartnotmode[#1]% + {\docheckformode\dostopnotmode\donothing{#1}} + +\let\stopmode \donothing +\let\stopnotmode\donothing + +\long\def\dostopmode #1\stopmode {} +\long\def\dostopnotmode#1\stopnotmode{} + +\def\doifallmodeselse{\unprotect\dodoifallmodeselse} +\def\doifallmodes {\unprotect\dodoifallmodes} +\def\doifnotallmodes {\unprotect\dodoifnotallmodes} +\def\startallmodes {\unprotect\dostartallmodes} +\def\startnotallmodes{\unprotect\dostartnotallmodes} + +\def\doifallmodeselse + {\docheckforallmodes\firstoftwoarguments\secondoftwoarguments} + +\def\doifallmodes + {\docheckforallmodes\firstofoneargument\gobbleoneargument} + +\def\doifnotallmodes + {\docheckforallmodes\gobbleoneargument\firstofoneargument} + +\long\def\dostartallmodes[#1]% + {\docheckforallmodes\donothing\dostopallmodes{#1}} + +\long\def\dostartnotallmodes[#1]% + {\docheckforallmodes\dostopallmodes\donothing{#1}} + +\let\stopallmodes \donothing +\let\stopnotallmodes\donothing + +\long\def\dostopallmodes #1\stopallmodes {} +\long\def\dostopnotallmodes#1\stopnotallmodes{} + %D \macros %D {every...} %D @@ -44,6 +271,7 @@ \newevery \everybeginofpar \relax \newevery \everyendofpar \relax \newevery \everylistentry \relax +\newevery \everymarking \relax %D For shared \type {\everymath} and \type {\everydisplay}: diff --git a/tex/context/base/hand-def.tex b/tex/context/base/hand-def.tex index 591370cda..0a19ce270 100644 --- a/tex/context/base/hand-def.tex +++ b/tex/context/base/hand-def.tex @@ -476,7 +476,7 @@ % \stopfonthandling % \definefonthandling [noligs] [noligs] [type=tag] -% \setupfontsynonym[Serif][handling=noligs] + % \setupfontsynonym[Serif][handling=noligs] % \definefont[test][Serif at 12.34pt] % % {``fi--ffl---ffi'' \test ``fi--ffl---ffi''} diff --git a/tex/context/base/lang-ini.tex b/tex/context/base/lang-ini.tex index e435c2420..d4a6b37ea 100644 --- a/tex/context/base/lang-ini.tex +++ b/tex/context/base/lang-ini.tex @@ -165,11 +165,31 @@ %D the languages. The current langage is saved in the macro %D \type {\currentlanguage}. The setup macro is mainly used %D for cosmetic purposes. +%D +%D \starttyping +%D \dorecurse{3} +%D {\language[nl] +%D \startmode[*en] english \stopmode +%D \startmode[*nl] dutch \stopmode +%D \language[en] +%D \startmode[*en] english \stopmode +%D \startmode[*nl] dutch \stopmode} +%D \stoptyping \let\currentlanguage \empty \let\currentmainlanguage\empty -\def\setupcurrentlanguage[#1]{\def\currentlanguage{#1}} +\def\setupcurrentlanguage[#1]{\setcurrentlanguage\currentmainlanguage{#1}} + +\def\setcurrentlanguage#1#2% sets modes: **id (currentmain) *id (current) + {\doifsomething{#1} + {\ifx\currentmainlanguage\empty\else\resetsystemmode{\systemmodeprefix\currentmainlanguage}\fi + \edef\currentmainlanguage{#1}% + \setsystemmode{\systemmodeprefix\currentmainlanguage}}% + \doifsomething{#2} + {\ifx\currentlanguage\empty\else\resetsystemmode\currentlanguage\fi + \edef\currentlanguage{#2}% + \setsystemmode\currentlanguage}} %D The internal macros will be defined later. @@ -593,7 +613,7 @@ \ifcsname\l!prefix!\askedlanguage\endcsname \edef\askedlanguage{\csname\l!prefix!\askedlanguage\endcsname}% \ifx\currentlanguage\askedlanguage \else - \let\currentlanguage\askedlanguage + \setcurrentlanguage\currentmainlanguage\askedlanguage \docomplexlanguage \fi \else @@ -613,7 +633,7 @@ \else \edef\askedlanguage{\csname\l!prefix!\askedlanguage\endcsname}% \ifx\currentlanguage\askedlanguage \else - \let\currentlanguage\askedlanguage + \setcurrentlanguage\currentmainlanguage\askedlanguage \docomplexlanguage \fi \fi @@ -633,8 +653,7 @@ \ifcsname\l!prefix!\askedlanguage\endcsname \edef\askedlanguage{\csname\l!prefix!\askedlanguage\endcsname}% \ifx\currentmainlanguage\askedlanguage \else - \let\currentmainlanguage\askedlanguage - \let\currentlanguage\askedlanguage + \setcurrentlanguage\askedlanguage\askedlanguage \docomplexlanguage \fi \fi @@ -650,8 +669,7 @@ \@EA\ifx\csname\l!prefix!\askedlanguage\endcsname\relax\else \edef\askedlanguage{\csname\l!prefix!\askedlanguage\endcsname}% \ifx\currentmainlanguage\askedlanguage \else - \let\currentmainlanguage\askedlanguage - \let\currentlanguage\askedlanguage + \setcurrentlanguage\askedlanguage\askedlanguage \docomplexlanguage \fi \fi diff --git a/tex/context/base/m-dratex.tex b/tex/context/base/m-dratex.tex new file mode 100644 index 000000000..6c088daf9 --- /dev/null +++ b/tex/context/base/m-dratex.tex @@ -0,0 +1,21 @@ +%D \module +%D [ file=m-dratex, +%D version=2005.11.25, +%D title=\CONTEXT\ Extra Modules, +%D subtitle=\DRATEX\ Loading Macros, +%D author=Hans Hagen, +%D date=\currentdate, +%D copyright=PRAGMA-ADE] +%C +%C This module is part of the \CONTEXT\ macro||package and is +%C therefore copyrighted by \PRAGMA. See mreadme.pdf for +%C details + +\readfile{DraTex.sty}{}{\readfile{dratex.sty}{}{\endinput}} + +\letvalue{:NewCount}\newcount +\letvalue{:NewDimen}\newdimen + +\readfile{AlDraTex.sty}{}{\readfile{aldratex.sty}{}{\endinput}} + +\endinput diff --git a/tex/context/base/meta-ini.tex b/tex/context/base/meta-ini.tex index d628e5e6c..799d441ad 100644 --- a/tex/context/base/meta-ini.tex +++ b/tex/context/base/meta-ini.tex @@ -668,9 +668,13 @@ \convertargument#2\to\ascii \dodoglobal\letvalue{\@@MPT#1}\ascii} -\def\MPtext #1{\getvalue{\@@MPT#1}} -\def\MPstring #1{"\getvalue{\@@MPT#1}"} -\def\MPbetex #1{btex \getvalue{\@@MPT#1} etex} +% \def\MPtext #1{\getvalue{\@@MPT#1}} +% \def\MPstring #1{"\getvalue{\@@MPT#1}"} +% \def\MPbetex #1{btex \getvalue{\@@MPT#1} etex} + +\def\MPtext #1{\executeifdefined{\@@MPT#1}\empty} +\def\MPstring #1{"\executeifdefined{\@@MPT#1}\empty"} +\def\MPbetex #1{btex \executeifdefined{\@@MPT#1}\empty etex} %D Unfortunately \METAPOST\ does not have \CMYK\ support %D built in, but by means of specials we can supply the @@ -961,6 +965,14 @@ % \appendtoks \closeMPgraphicfiles \to \everystoptext +%D New: + +\newconditional\manyMPspecials % when set to true, > 1000 specials can be used + +\prependtoks + _special_div_ := 1000\ifconditional\manyMPspecials0\fi ; +\to \MPextensions + \protect \endinput % also: diff --git a/tex/context/base/mult-com.tex b/tex/context/base/mult-com.tex index 805f68f6c..d5fe1f47a 100644 --- a/tex/context/base/mult-com.tex +++ b/tex/context/base/mult-com.tex @@ -1513,16 +1513,16 @@ moveformula: verplaatsformule moveformula stopproduct: stopprodukt stopproduct stopprodukt stopprodukt terminaprodotto stopprodus - startproject: startproject startproject + startproject: startprojekt startproject startprojekt startprojekt iniziaprogetto startproiect - stopproject: stopproject stopproject + stopproject: stopprojekt stopproject stopprojekt stopprojekt terminaprogetto stopproiect setups: instellingen setups einstellungen nastaveni impostazioni setari - project: project project + project: projekt project projekt projekt progetto proiect component: onderdeel component diff --git a/tex/context/base/page-set.tex b/tex/context/base/page-set.tex index 76866c563..67a56bf47 100644 --- a/tex/context/base/page-set.tex +++ b/tex/context/base/page-set.tex @@ -84,6 +84,72 @@ % \startcolumnset [three] \dorecurse {1}{\input tufte \par} \stopcolumnset % \stoptext +%D Marks in columnsets: +%D +%D \starttyping +%D \definemarking[M] +%D \setupheadertexts[\setups{show-M-marks}] +%D \definecolumnset[test][n=3] +%D +%D \startsetups show-M-marks +%D \getmarking[M][1][previous]/\getmarking[M][1][first]/\getmarking[M][1][last]\quad +%D \getmarking[M][2][previous]/\getmarking[M][2][first]/\getmarking[M][2][last]\quad +%D \getmarking[M][3][previous]/\getmarking[M][3][first]/\getmarking[M][3][last]\quad +%D \getmarking[M][1][previous]/\getmarking[M][1][first]/\getmarking[M][last]\quad +%D \getsavedmarking[M][previous]/\getsavedmarking[M][first]/\getsavedmarking[M][last] +%D \stopsetups +%D +%D \startbuffer +%D \section{Knuth} [K1]\marking[M]{k1} [K2]\marking[M]{k2} \input knuth +%D \section{Zapf} [Z]\marking[M]{z} \input zapf +%D \stopbuffer +%D +%D \startbuffer +%D \section{Ward} [W]\marking[M]{w} \input ward +%D \placefigure[here]{none}{\externalfigure[a][height=2cm]} +%D \section{Davis} [D]\marking[M]{d} \input davis +%D \section{Zapf} [Z]\marking[M]{z} \input zapf +%D \stopbuffer +%D +%D \startbuffer +%D \section{Ward} [W]\marking[M]{w} \input ward +%D \placefigure[here]{none}{\externalfigure[a][height=2cm]} +%D \section{Davis} [D]\marking[M]{d} \input davis +%D \section{Zapf} [Z]\marking[M]{z} \input zapf +%D \section{Douglas} [O]\marking[M]{o} \input douglas +%D \stopbuffer +%D +%D \starttext +%D \startcolumnset[test] +%D \dorecurse{5}{\getbuffer} +%D \placefigure[here]{none}{\externalfigure[a][height=2cm]} +%D % \column % sometimes needed +%D \stopcolumnset +%D \stoptext +%D \stoptyping + +% not ok yet, for column sets we need a special case: within a column we +% need to bubble-up the marks; the indirectness permits overloading here + +\let\saveOTRSETmark \refreshsavedmark +\let\bubbleOTRSETmark\bubblesavedmark +\let\resetOTRSETmark \resetsavedmark +\let\presetOTRSETmark\presetsavedmark + +\def\doregisterOTRSETmarks#1{\saveOTRSETmark [#1][\number\mofcolumns]} +\def\dobubbleOTRSETmarks #1{\bubbleOTRSETmark[#1][\number\mofcolumns]} +\def\doresetOTRSETmarks #1{\resetOTRSETmark [#1][\recurselevel]} +\def\dopresetOTRSETmarks #1{\presetOTRSETmark[#1][\recurselevel]} + +\def\registerOTRSETmarks + {\processcommacommand[\alldefinedmarks]\doregisterOTRSETmarks} +\def\bubbleOTRSETmarks + {\processcommacommand[\alldefinedmarks]\dobubbleOTRSETmarks} +\def\resetOTRSETmarks + {\dorecurse\nofcolumns{\processcommacommand[\alldefinedmarks]\doresetOTRSETmarks}} +\def\presetOTRSETmarks + {\dorecurse\nofcolumns{\processcommacommand[\alldefinedmarks]\dopresetOTRSETmarks}} + %D test case of Vit Zika (context list): %D %D \starttyping @@ -529,17 +595,19 @@ \def\OTRSETdoflush {\ifcollectingcontent + \registerOTRSETmarks \global\mofcolumns\plusone \else \OTRSETdofinalflush \OTRSETdofinaloutput -\ifnum\columnsetpage>0 - \dorecurse\nofcolumns{\doresetcolumnsetlines\recurselevel}% -\fi -\doglobal\increment\columnsetpage + \ifnum\columnsetpage>0 + \dorecurse\nofcolumns{\doresetcolumnsetlines\recurselevel}% + \fi + \doglobal\increment\columnsetpage \OTRSETinitializecolumns %\OTRSETdoflushfloats \OTRSETstartnextpage +\presetOTRSETmarks \initializecolumntextareas \fi} @@ -893,7 +961,9 @@ {\OTRSETsetfreecells\mofcolumns\columnlastcell \ifsomefreecolumncells % okay + \bubbleOTRSETmarks % not robust because we reenter \else + \registerOTRSETmarks % not robust because we reenter \global\advance\mofcolumns \plusone \ifnum\mofcolumns>\nofcolumns \OTRSETdoflush @@ -1708,6 +1778,7 @@ {\increment\columnsetlevel\relax \globallet\localcolumnmaxcells\!!zerocount \global\chardef\OTRSETfinish\zerocount + \resetOTRSETmarks \ifnum\columnsetlevel=\plusone \bgroup \saveinterlinespace @@ -1875,7 +1946,7 @@ {\vskip-\struttotal\verticalstrut\vfill\eject}% \else \ifnum\mofcolumns>\plusone - \donetrue + \donetrue \else\ifdim\pagetotal>\zeropoint % too dangerous, we loose data \donetrue \else @@ -1889,6 +1960,7 @@ \fi \vfill \eject +\registerOTRSETmarks % brr, may result in empty page after nicely fit text % or if left, then lost of first column only text \ifnum\mofcolumns>\plusone diff --git a/tex/context/base/s-pre-60.tex b/tex/context/base/s-pre-60.tex index baedffaa3..9945847c2 100644 --- a/tex/context/base/s-pre-60.tex +++ b/tex/context/base/s-pre-60.tex @@ -11,6 +11,16 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. +\startmode[paper] + \let\StartSteps\relax + \let\StopSteps \relax + \let\FlushStep \relax + \let\ResetStep \relax + \let\StartBusy\relax + \let\StopBusy \relax + \endinput +\stopmode + \newcounter\StepCounter \newcounter\StepMaximum diff --git a/tex/context/base/s-syn-01.tex b/tex/context/base/s-syn-01.tex new file mode 100644 index 000000000..d797be61e --- /dev/null +++ b/tex/context/base/s-syn-01.tex @@ -0,0 +1,54 @@ +%D \module +%D [ file=s-syn-01, +%D version=0000.00.00, +%D title=\CONTEXT\ Style File, +%D subtitle=Preliminary Syntax Stuff, +%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. + +%D This is needed for the \METAFUN\ manual (this module was +%D called \type {p-syn-01} on my machine). + +\unprotect + +\def\Indent #1{\ifvmode\noindent\hbox to 2em{\hss#1}\else#1\fi} +\def\Sugar #1{\ifhmode\unskip\unskip\unskip\fi\kern.25em{#1}\kern.25em\ignorespaces} +\def\Something#1{\Sugar{\mathematics{\langle\hbox{#1}\rangle}}} +\def\Lbrace {\Sugar{\tttf\leftargument}} +\def\Rbrace {\Sugar{\tttf\rightargument}} +\def\Or {\Sugar{\mathematics{\vert}}} +\def\Optional #1{\Sugar{\mathematics{[\hbox{#1}]}}} +\def\Means {\Sugar{\mathematics{\rightarrow}}} +\def\Tex #1{\Sugar{\type{#1}}} +\def\Literal #1{\Sugar{\type{#1}}} +\def\Syntax #1{\strut\kern-.25em{#1}\kern-.25em} +\def\Next {\crlf\hbox to 2em{}\nobreak} +\def\Whatever #1{\Sugar{\mathematics{(\hbox{#1})}}} +\def\Quote #1{\Sugar{\quote{#1}}} + +\def\Or {\Sugar{\Indent{\mathematics{\vert}}}} +\def\Means {\Sugar{\Indent{\mathematics{\rightarrow}}}} + +\def\StartSyntax + {\goodbreak + \startlines + \catcode`\#=12 + \let\L \Literal + \let\S \Something + \def\FL##1{\color[darkred]{\L{##1}}} + \def\FS##1{\S{\color[darkred]{##1}}} + \let\M \Means + \let\O \Or + \let\Q \Quote + \let\LB\Lbrace + \let\RB\Rbrace} + +\def\StopSyntax + {\stoplines} + +\protect \endinput diff --git a/tex/context/base/supp-mpe.tex b/tex/context/base/supp-mpe.tex index da1641d3d..23a2410ab 100644 --- a/tex/context/base/supp-mpe.tex +++ b/tex/context/base/supp-mpe.tex @@ -160,14 +160,30 @@ %D version and revision number are not used. Any version number %D greater than zero will enable special support. -\def\handleMPspecialscomment #1.#2 #3 % version.revision signal +\newconditional\manyMPspecials % \settrue\manyMPspecials + +\def\handleMPspecialscomment #1.#2 #3 % version.revision signal #4=div=1000|10000 {\doresetMPstack \chardef\MPspecialversion #1% \chardef\MPspecialrevision#2% \chardef\MPspecialsignal #3% \let\handleMPsequence\dohandleMPsequence + \ifnum#1=\plusone + \expandafter\handleMPsequence + \else + \expandafter\handleMPspecialscommentx + \fi} + +\def\handleMPspecialscommentx #1 % version 2 + {\doifelse{#1}{10000}{\settrue\manyMPspecials}{\setfalse\manyMPspecials}% local \handleMPsequence} +% one can say (in meta-ini): +% +% \prependtoks +% _special_div_ := 1000\ifconditional\manyMPspecials0\fi ; +% \to \MPextensions + %D In case of \PDF, we need to prepare resourcs. \newtoks\MPstartresources @@ -256,8 +272,20 @@ %D Now we can handle special color signals. We only do this %D when special are detected. -\def\MPrgbnumber#1{\expandafter\doMPrgbnumber#1000.0000\relax} -\def\doMPrgbnumber#1.#2#3#4#5\relax{#2#3#4} +% \def\MPrgbnumber#1{\expandafter\doMPrgbnumber#1000.0000\relax} +% \def\doMPrgbnumber#1.#2#3#4#5\relax{#2#3#4} + +%D We cannot use \type {\everyMPtoPDFconversion} because in \MPTOPDF\ +%D we don't have the \type {\appendtoks} macro available. + +\def\setMPextensions + {\ifconditional\manyMPspecials + \def\MPrgbnumber##1{\expandafter\doMPrgbnumber##10000.00000\relax}% + \def\doMPrgbnumber##1.##2##3##4##5##6\relax{##2##3##4##5}% + \else + \def\MPrgbnumber##1{\expandafter\doMPrgbnumber##1000.0000\relax}% + \def\doMPrgbnumber##1.##2##3##4##5\relax{##2##3##4}% + \fi} %D The naive case looks like: %D diff --git a/tex/context/base/supp-pdf.tex b/tex/context/base/supp-pdf.tex index e6a6007f5..9543d3e57 100644 --- a/tex/context/base/supp-pdf.tex +++ b/tex/context/base/supp-pdf.tex @@ -2072,6 +2072,8 @@ \let\finishMPgraphic\egroup \doprocessMPtoPDFfile} +\let\setMPextensions\relax + \def\doprocessMPtoPDFfile#1#2#3% file xscale yscale {% the following line is needed for latex where onepoint is not % onepoint but a number (maxdimen); some day i'll make a latex @@ -2082,6 +2084,7 @@ \let\onepoint\onerealpoint % \setMPspecials + \setMPextensions \the\everyMPtoPDFconversion \catcode`\^^M=\@@endofline \startMPscanning diff --git a/tex/context/base/syst-ext.tex b/tex/context/base/syst-ext.tex index 579eb0112..f7fef569b 100644 --- a/tex/context/base/syst-ext.tex +++ b/tex/context/base/syst-ext.tex @@ -2352,7 +2352,7 @@ \def\resetcounter#1% {\letgvalue{#1}\zerocountervalue} -\def\setcounter#1#2% +\def\setcounter#1#2% or: \setxvalue{#1}{\number#2} {\scratchcounter#2% \setxvalue{#1}{\the\scratchcounter}} diff --git a/tex/context/base/type-exa.tex b/tex/context/base/type-exa.tex index d08b565f4..71da7f0ad 100644 --- a/tex/context/base/type-exa.tex +++ b/tex/context/base/type-exa.tex @@ -212,6 +212,17 @@ \stoptypescript +\starttypescript [serif,sans,mono] [handling] [noligs] + + \setupfontsynonym [\typescriptprefix\typescriptone ] [handling=\typescriptthree] + \setupfontsynonym [\typescriptprefix\typescriptone Bold] [handling=\typescriptthree] + \setupfontsynonym [\typescriptprefix\typescriptone Slanted] [handling=\typescriptthree] + \setupfontsynonym [\typescriptprefix\typescriptone Italic] [handling=\typescriptthree] + \setupfontsynonym [\typescriptprefix\typescriptone BoldSlanted] [handling=\typescriptthree] + \setupfontsynonym [\typescriptprefix\typescriptone BoldItalic] [handling=\typescriptthree] + +\stoptypescript + % handy \starttypescript [serif] [simple] [name] % bad, will be changed but in sycn with manuals that use it diff --git a/tex/context/base/type-map.tex b/tex/context/base/type-map.tex index ddcacfee0..3b210a299 100644 --- a/tex/context/base/type-map.tex +++ b/tex/context/base/type-map.tex @@ -91,36 +91,56 @@ \loadmapfile[\typescriptthree-bitstrea-charter.map] \stoptypescript -% \starttypescript [map] [antykwa-torunska] [ec,texnansi,t5,8r] -% \loadmapfile[\typescriptthree-public-antt.map] +% \starttypescript [map] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond] [texnansi,ec,qx,t5,t2a,t2b,t2c,default] +% \loadmapfile[\typescriptthree-antt.map] +% \loadmapfile[rm-antt.map] +% \loadmapfile[mi-antt.map] +% \loadmapfile[sy-antt.map] +% \loadmapfile[ex-antt.map] % \stoptypescript \starttypescript [map] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond] [texnansi,ec,qx,t5,t2a,t2b,t2c,default] - \loadmapfile[\typescriptthree-antt.map] - \loadmapfile[rm-antt.map] - \loadmapfile[mi-antt.map] - \loadmapfile[sy-antt.map] - \loadmapfile[ex-antt.map] + \loadmapfile[antt-\typescriptthree.map] + \loadmapfile[antt-rm.map] + \loadmapfile[antt-mi.map] + \loadmapfile[antt-sy.map] + \loadmapfile[antt-ex.map] \stoptypescript \starttypescript [map] [antykwa-poltawskiego] [ec,texnansi,qx,t5] \loadmapfile[\typescriptthree-public-antp.map] \stoptypescript +% \starttypescript [map] [iwona,iwona-light,iwona-medium,iwona-heavy] [ec,texnansi,qx,t5] +% \loadmapfile[\typescriptthree-iwona.map] +% \loadmapfile[rm-iwona.map] +% \loadmapfile[mi-iwona.map] +% \loadmapfile[sy-iwona.map] +% \loadmapfile[ex-iwona.map] +% \stoptypescript + \starttypescript [map] [iwona,iwona-light,iwona-medium,iwona-heavy] [ec,texnansi,qx,t5] - \loadmapfile[\typescriptthree-iwona.map] - \loadmapfile[rm-iwona.map] - \loadmapfile[mi-iwona.map] - \loadmapfile[sy-iwona.map] - \loadmapfile[ex-iwona.map] -\stoptypescript + \loadmapfile[iwona-\typescriptthree.map] + \loadmapfile[iwona-rm.map] + \loadmapfile[iwona-mi.map] + \loadmapfile[iwona-sy.map] + \loadmapfile[iwona-ex.map] +\stoptypescript + +% \starttypescript [map] [kurier,kurier-light,kurier-medium,kurier-heavy] [ec,texnansi,qx,t5,default] +% \loadmapfile[\typescriptthree-kurier.map] +% \loadmapfile[rm-kurier.map] +% \loadmapfile[mi-kurier.map] +% \loadmapfile[sy-kurier.map] +% \loadmapfile[ex-kurier.map] +% \stoptypescript \starttypescript [map] [kurier,kurier-light,kurier-medium,kurier-heavy] [ec,texnansi,qx,t5,default] - \loadmapfile[\typescriptthree-kurier.map] - \loadmapfile[rm-kurier.map] - \loadmapfile[mi-kurier.map] - \loadmapfile[sy-kurier.map] - \loadmapfile[ex-kurier.map] + \loadmapfile[kurier-\typescriptthree.map] + \loadmapfile[kurier-rm.map] + \loadmapfile[kurier-mi.map] + \loadmapfile[kurier-sy.map] + \loadmapfile[kurier-ex.map] \stoptypescript \starttypescript [map] [bookman] [ec,texnansi,t5,8r] diff --git a/tex/context/interface/cont-cz.xml b/tex/context/interface/cont-cz.xml index d06945148..2c0da61f3 100644 --- a/tex/context/interface/cont-cz.xml +++ b/tex/context/interface/cont-cz.xml @@ -4024,6 +4024,7 @@ + diff --git a/tex/context/interface/cont-de.xml b/tex/context/interface/cont-de.xml index 0f8ab1eb8..83291e975 100644 --- a/tex/context/interface/cont-de.xml +++ b/tex/context/interface/cont-de.xml @@ -4024,6 +4024,7 @@ + diff --git a/tex/context/interface/cont-en.xml b/tex/context/interface/cont-en.xml index 16610c122..74b84d064 100644 --- a/tex/context/interface/cont-en.xml +++ b/tex/context/interface/cont-en.xml @@ -4024,6 +4024,7 @@ + diff --git a/tex/context/interface/cont-it.xml b/tex/context/interface/cont-it.xml index 43c74f284..2c84db728 100644 --- a/tex/context/interface/cont-it.xml +++ b/tex/context/interface/cont-it.xml @@ -4024,6 +4024,7 @@ + diff --git a/tex/context/interface/cont-nl.xml b/tex/context/interface/cont-nl.xml index 5e145acc4..e76700875 100644 --- a/tex/context/interface/cont-nl.xml +++ b/tex/context/interface/cont-nl.xml @@ -3974,7 +3974,7 @@ - + @@ -4024,6 +4024,7 @@ + diff --git a/tex/context/interface/cont-ro.xml b/tex/context/interface/cont-ro.xml index efde60e2d..805cd7dc6 100644 --- a/tex/context/interface/cont-ro.xml +++ b/tex/context/interface/cont-ro.xml @@ -4024,6 +4024,7 @@ + diff --git a/tex/context/interface/keys-cz.xml b/tex/context/interface/keys-cz.xml index 7bb8886fc..792c4bd8e 100644 --- a/tex/context/interface/keys-cz.xml +++ b/tex/context/interface/keys-cz.xml @@ -1,6 +1,6 @@ - + diff --git a/tex/context/interface/keys-de.xml b/tex/context/interface/keys-de.xml index f4d9ed144..936340f9d 100644 --- a/tex/context/interface/keys-de.xml +++ b/tex/context/interface/keys-de.xml @@ -1,6 +1,6 @@ - + diff --git a/tex/context/interface/keys-en.xml b/tex/context/interface/keys-en.xml index e53c0f2fc..c73683d17 100644 --- a/tex/context/interface/keys-en.xml +++ b/tex/context/interface/keys-en.xml @@ -1,6 +1,6 @@ - + diff --git a/tex/context/interface/keys-it.xml b/tex/context/interface/keys-it.xml index e2e571890..edaf1375f 100644 --- a/tex/context/interface/keys-it.xml +++ b/tex/context/interface/keys-it.xml @@ -1,6 +1,6 @@ - + diff --git a/tex/context/interface/keys-nl.xml b/tex/context/interface/keys-nl.xml index 869f146fc..9b5671aea 100644 --- a/tex/context/interface/keys-nl.xml +++ b/tex/context/interface/keys-nl.xml @@ -1,6 +1,6 @@ - + @@ -1412,10 +1412,10 @@ - - + + - + diff --git a/tex/context/interface/keys-ro.xml b/tex/context/interface/keys-ro.xml index acdf123ef..03559bf7d 100644 --- a/tex/context/interface/keys-ro.xml +++ b/tex/context/interface/keys-ro.xml @@ -1,6 +1,6 @@ - + -- cgit v1.2.3