diff options
33 files changed, 284 insertions, 158 deletions
diff --git a/scripts/context/ruby/base/tex.rb b/scripts/context/ruby/base/tex.rb index 6132e5a26..2654c4732 100644 --- a/scripts/context/ruby/base/tex.rb +++ b/scripts/context/ruby/base/tex.rb @@ -670,8 +670,8 @@ class TEX ['mode','mode'], ['ctx','ctxfile'], ['version','contextversion'], - ['format','texformat'], - ['interface','texformat'] + ['format','texformats'], + ['interface','texformats'] ] def scantexpreamble(filename) @@ -699,37 +699,37 @@ class TEX end def scantexcontent(filename) - if FileTest.file?(filename) and tex = File.open(filename) then + if FileTest.file?(filename) and tex = File.open(filename) then while str = tex.gets do case str.chomp when /^\%/o then # next when /\\(starttekst|stoptekst|startonderdeel|startdocument|startoverzicht)/o then - setvariable('texformat','nl') ; break + setvariable('texformats','nl') ; break when /\\(stelle|verwende|umgebung|benutze)/o then - setvariable('texformat','de') ; break + setvariable('texformats','de') ; break when /\\(stel|gebruik|omgeving)/o then - setvariable('texformat','nl') ; break + setvariable('texformats','nl') ; break when /\\(use|setup|environment)/o then - setvariable('texformat','en') ; break + setvariable('texformats','en') ; break when /\\(usa|imposta|ambiente)/o then - setvariable('texformat','it') ; break + setvariable('texformats','it') ; break when /(height|width|style)=/o then - setvariable('texformat','en') ; break + setvariable('texformats','en') ; break when /(hoehe|breite|schrift)=/o then - setvariable('texformat','de') ; break + setvariable('texformats','de') ; break when /(hoogte|breedte|letter)=/o then - setvariable('texformat','nl') ; break + setvariable('texformats','nl') ; break when /(altezza|ampiezza|stile)=/o then - setvariable('texformat','it') ; break + setvariable('texformats','it') ; break when /externfiguur/o then - setvariable('texformat','nl') ; break + setvariable('texformats','nl') ; break when /externalfigure/o then - setvariable('texformat','en') ; break + setvariable('texformats','en') ; break when /externeabbildung/o then - setvariable('texformat','de') ; break + setvariable('texformats','de') ; break when /figuraesterna/o then - setvariable('texformat','it') ; break + setvariable('texformats','it') ; break end end tex.close @@ -1250,7 +1250,6 @@ class TEX scantexpreamble(rawname) scantexcontent(rawname) if getvariable('texformats').standard? end - result = File.suffixed(rawname,suffix) unless suffix.empty? pushresult(rawname,result) diff --git a/scripts/context/ruby/base/texutil.rb b/scripts/context/ruby/base/texutil.rb index e4c9ec60d..e05e88cdc 100644 --- a/scripts/context/ruby/base/texutil.rb +++ b/scripts/context/ruby/base/texutil.rb @@ -509,8 +509,9 @@ class TeXUtil @sortkey.downcase, @sortkey, @texthowto.ljust(10,' '), - @state, - (@realpage ||'').rjust(6,' '), + # @state, # no, messes up things + (@realpage ||'').rjust(6,' ').gsub(/0/,' '), + # (@realpage ||'').rjust(6,' '), @pagehowto ].join(@@split) end diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex index 87d53cb68..8a33961ec 100644 --- a/tex/context/base/cont-new.tex +++ b/tex/context/base/cont-new.tex @@ -1342,7 +1342,8 @@ %\ifgridsnapping \else \baselinecorrection \fi % ! ! ! test test test ! ! ! ! \doplacefloatbox \doinsertfloatinfo - \dochecknextindentation\??bk} + \dochecknextindentation\??bk + \dorechecknextindentation} % todo: switch koppelen aan par scheelt pos diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex index 4b350c4a6..45df4fdac 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.14} +\def\contextversion{2005.11.15} %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 f2612be3d..c7f4a976e 100644 --- a/tex/context/base/core-des.tex +++ b/tex/context/base/core-des.tex @@ -326,7 +326,8 @@ \endgroup \descriptionparameter\c!after \egroup % temporary hack - \dochecknextindentation{\??dd#1}}% \currentdescription}} + \dochecknextindentation{\??dd#1}% \currentdescription}} + \dorechecknextindentation} \def\@@dodescription {\dostartattributes{\??dd\currentdescription}\c!style\c!color\empty diff --git a/tex/context/base/core-itm.tex b/tex/context/base/core-itm.tex index 28bba5e11..bfac72d57 100644 --- a/tex/context/base/core-itm.tex +++ b/tex/context/base/core-itm.tex @@ -505,6 +505,7 @@ \stopcolumns \doglobal\newcounter\itemcolumndepth \getitemparameter\itemlevel\c!after + \dontrechecknextindentation \else \ifnum\itemlevel=\plusone \doitembreak\allowbreak % toegevoegd @@ -518,13 +519,15 @@ \or \getitemparameter\itemlevel\c!after \fi + \dontrechecknextindentation \fi \fi \endgroup \doglobal\decrement(\itemlevel,\itemincrement)% \egroup % new needed in sidefloats (surfaced in volker's proceedings) - \iftextitems\else\par\fi} + \iftextitems\else\par\fi + \dorechecknextindentation} \newtoks\itemgroupcommands diff --git a/tex/context/base/core-mat.tex b/tex/context/base/core-mat.tex index 10f8d16f3..0d0731cb4 100644 --- a/tex/context/base/core-mat.tex +++ b/tex/context/base/core-mat.tex @@ -150,18 +150,18 @@ \else \let\hetsubnummer\empty \fi - \doifsomething{#1}{\rawreference{\s!for}{#1}{\hetnummer\hetsubnummer}}% + \doifsomething{#1}{\rawreference{\s!for}{#1}{\composedsectionnumber\hetsubnummer}}% \setbox0\hbox{\ignorespaces#4\unskip}% \ifdim\wd0>\zeropoint \edef\hetsubnummer{#4}% \fi - \doifsomething{#3}{\rawreference\s!for{#3}{\hetnummer\hetsubnummer}}% + \doifsomething{#3}{\rawreference\s!for{#3}{\composedsectionnumber\hetsubnummer}}% \rm % nodig ? \@@fmnumbercommand {\dostartattributes\??fm\c!numberstyle\c!numbercolor \strut \@@fmleft - \preparethenumber\??fm\hetnummer\preparednumber + \preparethenumber\??fm\composedsectionnumber\preparednumber \labeltexts\v!formula {\ignorespaces\preparednumber\ignorespaces\hetsubnummer\unskip}% \@@fmright @@ -333,7 +333,8 @@ \resetlastlinewidth \nonoindentation \dochecknextindentation{\??fm\currentformula}% - \egroup} + \egroup + \dorechecknextindentation} % here ? \newif\ifinformula diff --git a/tex/context/base/core-not.tex b/tex/context/base/core-not.tex index 73c5c2555..a3aad6e1f 100644 --- a/tex/context/base/core-not.tex +++ b/tex/context/base/core-not.tex @@ -553,8 +553,8 @@ \fi \incrementnumber[\currentnote]% \makesectionnumber[\currentnote]% - \rawreference\s!fnt{#1}\hetnummer - \let\lastnotenumber\hetnummer}% + \rawreference\s!fnt{#1}\composedsectionnumber + \let\lastnotenumber\composedsectionnumber}% \dostartnote} %D The main typesetting routine is more or less the same as the diff --git a/tex/context/base/core-reg.tex b/tex/context/base/core-reg.tex index 010aa4d42..0b70df889 100644 --- a/tex/context/base/core-reg.tex +++ b/tex/context/base/core-reg.tex @@ -250,12 +250,12 @@ \def\registertexthowto{#2}}% \def\doregistertexthowto#1#2% - {\dostartattributes{\??id#1\registertexthowto}\c!textstyle\c!textcolor{}% + {\dostartattributes{\??id#1\registertexthowto}\c!textstyle\c!textcolor\empty \getvalue{\??id#1\c!textcommand}{#2}% \dostopattributes} \def\doregisterpagehowto#1#2% - {\dostartattributes{\??id#1\registerpagehowto}\c!pagestyle\c!pagecolor{}% + {\dostartattributes{\??id#1\registerpagehowto}\c!pagestyle\c!pagecolor\empty \getvalue{\??id#1\c!pagecommand}{#2}% \dostopattributes} @@ -348,6 +348,13 @@ \donetrue \fi\fi\fi \ifdone + \begingroup +% +\doifelsevalue{\??id#2\c!prefix}\v!none % default v!both + {\chardef\pageprefixmode\zerocount}% + {\doifvalue{\??id#2\c!prefix}\v!first % only first in range (1.2-4) + {\ifnum#1=3 \chardef\pageprefixmode\zerocount \fi}}% +% \doifelsevalue{\??id#2\c!interaction}\v!pagenumber {\bgroup \setbox0\hbox @@ -355,6 +362,7 @@ \gotonextinternal{\s!ind}{#4}{#6}{\box0}%{\copy0}% \egroup} {\hbox{\doregisterpage{#2}[#5]\ifnum#1=2\/\fi}}% +\endgroup \ignorespaces \global\chardef\lastregisterpagestatus#1\relax \fi @@ -762,10 +770,8 @@ \global\let\currentregisterentry\empty \global\firstsubentrytrue % not needed \global\firstsubsubentrytrue % not needed too - \setvalue{#1\s!entrya}##1% - {\dosetautoregisterentrya{#1}{##1}}% - \setvalue{#1\s!entry}##1% - {\dosetpageregisterletter{#1}{##1}}} + \setvalue{#1\s!entrya}##1{\dosetautoregisterentrya{#1}{##1}}% + \setvalue{#1\s!entry }##1{\dosetpageregisterletter{#1}{##1}}} \def\dosetautoregisterentrya#1#2% {\global\utilitydonetrue @@ -896,6 +902,7 @@ \c!maxwidth=, \c!number=\v!no, \c!unknownreference=\v!empty, + \c!prefix=\v!both, \c!expansion=, \c!keyexpansion=]% \presetheadtext[#1=\Word{#1}]% diff --git a/tex/context/base/core-sec.tex b/tex/context/base/core-sec.tex index 1d91e66e0..3d55fec00 100644 --- a/tex/context/base/core-sec.tex +++ b/tex/context/base/core-sec.tex @@ -197,7 +197,7 @@ % \def\makesectionnumber[#1]% % {\makeprecedingsectionnumber[#1]% -% \xdef\hetnummer% +% \xdef\composedsectionnumber% % {\precedingsectionnumber\convertednumber[#1]}}% % % hack needed for chinese and oldstyle in normal tex, will change @@ -206,7 +206,7 @@ {\bgroup \forceunexpanded % i don't like this hack \makeprecedingsectionnumber[#1]% - \xdef\hetnummer% was \xdef maar dat gaat fout met font switches + \xdef\composedsectionnumber% was \xdef maar dat gaat fout met font switches {\precedingsectionnumber\convertednumber[#1]}% \egroup} @@ -218,17 +218,17 @@ \edef\numberseparator{\getvalue{#1\c!separator}}% \edef#3{\@EA\separatednumber\@EA{#2}}}} % hm, etex -\def\lossenummer[#1]% +\def\sectionnumberonly[#1]% {\makesectionnumber[#1]% - \hetnummer} + \composedsectionnumber} \def\currentnumber[#1]% kan tekst hier weg ? - {\dotextprefix{\getvalue{\@@thenumber{#1}\c!text}}\lossenummer[#1]} + {\dotextprefix{\getvalue{\@@thenumber{#1}\c!text}}\sectionnumberonly[#1]} \def\nextnumber[#1][#2][#3]% {\incrementnumber[#1]% \currentnumber[#1]% - \rawreference{#2}{#3}{\hetnummer}} + \rawreference{#2}{#3}{\composedsectionnumber}} % sectioning @@ -1266,23 +1266,23 @@ \let\fullsectionnumber\limitedfullsectionnumber -% \dodododosomekop IS NON GROUPED, SO WE NEED TO RESTORE !!!! +% \dodododoconstructhead IS NON GROUPED, SO WE NEED TO RESTORE !!!! % % dit kan dus beter \everyaroundhead zijn \let\currentheadnumber\empty \let\currentheadtext \empty -\def\dodosomekop#1[#2]#3% [ref] {title} +\def\dodoconstructhead#1[#2]#3% [ref] {title} {\doifelsevalue{\??ko#1\c!ownnumber}\v!yes - {\doquadruplegroupempty\dododosomekop{#1}{#2}{#3}} - {\fourthargumentfalse \dododosomekop{#1}{#2}{#3}{}}} + {\doquadruplegroupempty\dododoconstructhead{#1}{#2}{#3}} + {\fourthargumentfalse \dododoconstructhead{#1}{#2}{#3}{}}} -\def\dododosomekop#1#2#3#4% [ref] {own} {title} +\def\dododoconstructhead#1#2#3#4% [ref] {own} {title} {\iffourthargument - \def\next{\dodododosomekop{#1}[#2]{#3}{#4}}% + \def\next{\dodododoconstructhead{#1}[#2]{#3}{#4}}% \else - \def\next{\dodododosomekop{#1}[#2]{\finalsectionnumber}{#3}}% + \def\next{\dodododoconstructhead{#1}[#2]{\finalsectionnumber}{#3}}% \fi \next} @@ -1307,7 +1307,7 @@ % \def\headparameter#1% to do: everywhere in core-sec % {\csname\??ko\currenthead#1\endcsname} -\def\dodododosomekop#1[#2]#3#4% [ref] {number} {title} +\def\dodododoconstructhead#1[#2]#3#4% [ref] {number} {title} {\def\currenthead{#1}% dus #1 overal vervangen \let\finalsectionnumber\dofinalsectionnumber % overloaded ungrouped -) \unexpanded\def\\{\space}% @@ -2194,9 +2194,7 @@ {\definemarking[#1]% \couplemarking[#1][\getvalue{\??ko#1\c!section}]% \definemarking[#1\v!number]% -% klopt dit wel ? \couplemarking[#1\v!number][\getvalue{\??ko#1\c!section}]}}% -% \couplemarking[#1\v!nummer][\getvalue{\??ko#1\c!sectie}\v!nummer]}}% \doifundefined{\??li#1}{\definelist[#1]}} {\ConvertToConstant\doifelse{#1}{#2} {\doifundefined{\??li#1}{\definelist[#1]}} @@ -2221,13 +2219,13 @@ \setevalue{\??sk#1}{\getvalue{\??ko#1\c!coupling}}% \setevalue{\??by#1}{\getvalue{\??ko#1\c!section}}% \setevalue{\??by\v!by#1}{\getvalue{\??ko#1\c!section}}% - \setvalue{#1}{\dodoubleempty\dosomekop[#1]}} + \setvalue{#1}{\dodoubleempty\doconstructhead[#1]}} \def\definehead {\dodoubleemptywithset\dodefinehead} -\def\dosomekop[#1][#2]% - {\dowithpargument{\dodosomekop{#1}[#2]}} +\def\doconstructhead[#1][#2]% + {\dowithpargument{\dodoconstructhead{#1}[#2]}} \def\dosetuphead[#1][#2]% {\getparameters[\??ko#1][#2]% @@ -2281,50 +2279,47 @@ \definesectionblock [\v!appendix] [\v!appendices] [\c!number=\v!yes] \definesectionblock [\v!backpart] [\v!backmatter] [\c!number=\v!no] -\definesection[\v!sectionlevel-1] % part -\definesection[\v!sectionlevel-2] % chapter -\definesection[\v!sectionlevel-3] % section -\definesection[\v!sectionlevel-4] % subsection -\definesection[\v!sectionlevel-5] % subsubsection -\definesection[\v!sectionlevel-6] % subsubsubsection -\definesection[\v!sectionlevel-7] % subsubsubsubsection +\definesection[\s!section-1] % part +\definesection[\s!section-2] % chapter +\definesection[\s!section-3] % section +\definesection[\s!section-4] % subsection +\definesection[\s!section-5] % subsubsection +\definesection[\s!section-6] % subsubsubsection +\definesection[\s!section-7] % subsubsubsubsection % \c!eigennummer ook hier? \definehead [\v!part] - [\c!section=\v!sectionlevel-1] + [\c!section=\s!section-1] \definehead [\v!chapter] - [\c!section=\v!sectionlevel-2] + [\c!section=\s!section-2] \definehead [\v!section] - [\c!section=\v!sectionlevel-3] + [\c!section=\s!section-3] \definehead [\v!subsection] - [\c!section=\v!sectionlevel-4, + [\c!section=\s!section-4, \c!default=\v!section] \definehead [\v!subsubsection] - [\c!section=\v!sectionlevel-5, - %\c!default=\v!section] - \c!default=\v!subsection] % nieuw + [\c!section=\s!section-5, + \c!default=\v!subsection] \definehead [\v!subsubsubsection] - [\c!section=\v!sectionlevel-6, - %\c!default=\v!section] - \c!default=\v!subsubsection] % nieuw + [\c!section=\s!section-6, + \c!default=\v!subsubsection] \definehead [\v!subsubsubsubsection] - [\c!section=\v!sectionlevel-7, - %\c!default=\v!section] - \c!default=\v!subsubsubsection] % nieuw + [\c!section=\s!section-7, + \c!default=\v!subsubsubsection] \definehead [\v!title] @@ -2363,7 +2358,7 @@ \c!incrementnumber=\v!no] \setupsection - [\v!sectionlevel-2] + [\s!section-2] [\v!appendix\c!conversion=\v!Character, \c!previousnumber=\v!no] diff --git a/tex/context/base/core-spa.tex b/tex/context/base/core-spa.tex index 0603ef8ef..c0a1fd1e5 100644 --- a/tex/context/base/core-spa.tex +++ b/tex/context/base/core-spa.tex @@ -1348,6 +1348,101 @@ \def\notoggleindentation {\gdef\checkindentation{\global\indentationtrue\dotoggleindentation}} +% we need to save the state if we want to adapt behaviour to empty lines +% +% \def\setlasthvmode +% {\global\chardef\savedhvmode\ifhmode\plusone\else\ifvmode\plustwo\else\zerocount\fi\fi} +% +% \def\resetlasthvmode +% {\global\chardef\savedhvmode\zerocount} +% +% \chardef\savedhvmode\zerocount + +% This is a user requested hack (using the auto-hook). + +\chardef\recheckindentationmode\zerocount + +\def\dontrechecknextindentation + {\global\chardef\recheckindentationmode\zerocount} + +\def\dorechecknextindentation + {\ifcase\recheckindentationmode + % nothing + \or + \dontrechecknextindentation + \expandafter\doautoindentation + \fi} + +\def\doautoindentation + {\doifnextcharelse\par\donothing\noindentation} + +\def\autoindentation + {\global\chardef\recheckindentationmode\plusone} + +%D An example of usage: +%D +%D \starttyping +%D \setupindenting[small,yes] +%D +%D \setupitemize [indentnext=auto] +%D \setuptyping [indentnext=auto] +%D \setupformulas[indentnext=auto] +%D +%D \input tufte +%D +%D \startitemize +%D \item itemize +%D \stopitemize +%D \input tufte +%D +%D \startitemize +%D \item itemize +%D \stopitemize +%D +%D \input tufte +%D +%D \startitemize +%D \item itemize +%D \stopitemize +%D +%D \page +%D +%D \input tufte +%D +%D \starttyping +%D verbatim +%D \stoptyping +%D \input tufte +%D +%D \starttyping +%D verbatim +%D \stoptyping +%D +%D \input tufte +%D +%D \starttyping +%D verbatim +%D \stoptyping +%D +%D \page +%D +%D \input tufte +%D +%D \startformula +%D a = b +%D \stopformula +%D \input tufte +%D +%D \startformula +%D a = b +%D \stopformula +%D +%D \input tufte +%D +%D \startformula +%D a = b +%D \stopformula + % \frenchspacing leidt soms tot afbreken tussen -, vandaar % de variant \newfrenchspacing. diff --git a/tex/context/base/core-ver.tex b/tex/context/base/core-ver.tex index 1c152b165..6c734cbb1 100644 --- a/tex/context/base/core-ver.tex +++ b/tex/context/base/core-ver.tex @@ -793,7 +793,8 @@ {\stopverbatimcolor \stoppacked % includes \egroup \getvalue{\??tp#1\c!after}% - \dochecknextindentation{\??tp#1}} + \dochecknextindentation{\??tp#1}% + \dorechecknextindentation} %D \macros %D {setuptyping} diff --git a/tex/context/base/m-subsub.tex b/tex/context/base/m-subsub.tex index 3a29bc69f..3fc71cd50 100644 --- a/tex/context/base/m-subsub.tex +++ b/tex/context/base/m-subsub.tex @@ -59,35 +59,35 @@ subsubsubsubsubsubsubsubsubsubject: subsubsubsubsubsubsubsubsubonderwerp \stopvariables -\definesection[\v!sectionlevel-8] -\definesection[\v!sectionlevel-9] -\definesection[\v!sectionlevel-10] -\definesection[\v!sectionlevel-11] -\definesection[\v!sectionlevel-12] +\definesection[\s!section-8] +\definesection[\s!section-9] +\definesection[\s!section-10] +\definesection[\s!section-11] +\definesection[\s!section-12] \definehead [\v!subsubsubsubsubsection] - [\c!section=\v!sectionlevel-8, + [\c!section=\s!section-8, \c!default=\v!subsubsubsubsection] \definehead [\v!subsubsubsubsubsubsection] - [\c!section=\v!sectionlevel-9, + [\c!section=\s!section-9, \c!default=\v!subsubsubsubsubsection] \definehead [\v!subsubsubsubsubsubsubsection] - [\c!section=\v!sectionlevel-10, + [\c!section=\s!section-10, \c!default=\v!subsubsubsubsubsubsection] \definehead [\v!subsubsubsubsubsubsubsubsection] - [\c!section=\v!sectionlevel-11, + [\c!section=\s!section-11, \c!default=\v!subsubsubsubsubsubsubsection] \definehead [\v!subsubsubsubsubsubsubsubsubsection] - [\c!section=\v!sectionlevel-12, + [\c!section=\s!section-12, \c!default=\v!subsubsubsubsubsubsubsubsection] \definehead diff --git a/tex/context/base/mult-con.tex b/tex/context/base/mult-con.tex index 9a5068321..f7a37a982 100644 --- a/tex/context/base/mult-con.tex +++ b/tex/context/base/mult-con.tex @@ -175,9 +175,6 @@ german czech italian romanian - sectionlevel: sectie section - abschnitt oddil - paragrafo sectiune part: deel part teil cast parte parte @@ -1185,6 +1182,7 @@ process: proces process scope: scope scope bereich rozsah scope scop % GB + % beware: section is already used for 'paragraph' section: sectie section abschnitt oddil sezione sectiune @@ -2522,6 +2520,7 @@ process: proces process combinedlist: samengesteldelijst combinedlist kombiniereliste kombinovanyseznam elencocombinato listacombinata + % beware: section clashes with sectionlevel section: sectie section abschnitt oddil sezione sectiune diff --git a/tex/context/base/mult-ini.tex b/tex/context/base/mult-ini.tex index abc01562a..40e379648 100644 --- a/tex/context/base/mult-ini.tex +++ b/tex/context/base/mult-ini.tex @@ -842,14 +842,10 @@ {\let\c!internal!\c!internal!n \ifcsname\k!prefix!#3\endcsname \let\c!internal!\c!internal!y - % \@EAEAEA\def\@EA\@EA - % \csname#1\csname\k!prefix!#3\endcsname - % \endcsname\@EA{\csname#2\csname\k!prefix!#3\endcsname\endcsname}% \@EA\def\csname#1\csname\k!prefix!#3\endcsname \@EA\endcsname\@EA{\csname#2\csname\k!prefix!#3\endcsname\endcsname}% \else \let\c!internal!\c!internal!y - %\@EAEAEA\def\@EA\@EA\csname#1#3\endcsname\@EA{\csname#2#3\endcsname}% \@EA\def\csname#1#3\@EA\endcsname\@EA{\csname#2#3\endcsname}% \fi} diff --git a/tex/context/base/mult-sys.tex b/tex/context/base/mult-sys.tex index 5a398b25d..b9c45f01a 100644 --- a/tex/context/base/mult-sys.tex +++ b/tex/context/base/mult-sys.tex @@ -165,6 +165,8 @@ \definesystemconstant {font} +\definesystemconstant {section} \let\v!sectionlevel\s!section % for old times sake + %D A more experienced \TEX\ user will recognize the next four %D constants. We need these because font-definitions are %D partially english. diff --git a/tex/context/base/page-flt.tex b/tex/context/base/page-flt.tex index 67c8013d3..97b0e3f14 100644 --- a/tex/context/base/page-flt.tex +++ b/tex/context/base/page-flt.tex @@ -710,17 +710,17 @@ % {\twopassentry % {\s!float}% % {\numberedfloat}% -% {\hetnummer}}}% +% {\composedsectionnumber}}}% % \dodofloatreference} % \def\redofloatorder#1% % {\doglobal\increment\nofplacedfloats\relax % \gettwopassdata\s!float % \iftwopassdatafound -% \doifnot\hetnummer\twopassdata -% {\edef\oldhetnummer{\hetnummer}% -% \xdef\hetnummer{\twopassdata}% -% \showmessage\m!floatblocks1{\nofplacedfloats,#1 \oldhetnummer,\hetnummer}}% +% \doifnot\composedsectionnumber\twopassdata +% {\edef\oldcomposedsectionnumber{\composedsectionnumber}% +% \xdef\composedsectionnumber{\twopassdata}% +% \showmessage\m!floatblocks1{\nofplacedfloats,#1 \oldcomposedsectionnumber,\composedsectionnumber}}% % \fi} \def\dofloatreference @@ -730,17 +730,17 @@ {\noexpand\twopassentry {\s!float}% {\numberedfloat}% - {\hetnummer}}}}} + {\composedsectionnumber}}}}} \def\redofloatorder#1% {\doifnot\@@bknumbering\v!nocheck {\doglobal\increment\nofplacedfloats\relax \gettwopassdata\s!float \iftwopassdatafound - \doifnot\hetnummer\twopassdata - {\edef\oldhetnummer{\hetnummer}% - \xdef\hetnummer{\twopassdata}% - \showmessage\m!floatblocks1{\nofplacedfloats,#1 \oldhetnummer,\hetnummer}}% + \doifnot\composedsectionnumber\twopassdata + {\edef\oldcomposedsectionnumber{\composedsectionnumber}% + \xdef\composedsectionnumber{\twopassdata}% + \showmessage\m!floatblocks1{\nofplacedfloats,#1 \oldcomposedsectionnumber,\composedsectionnumber}}% \fi}} % In \dofloatinfomessage wordt {{ }} gebruikt omdat anders @@ -1135,20 +1135,20 @@ \else \incrementnumber[#1]% \makesectionnumber[#1]% - % \globallet\flhetnummer\hetnummer % beware, not unique should be done on a per class base - \letgvalue{@fl@n@#1}\hetnummer + % \globallet\flcomposedsectionnumber\composedsectionnumber % beware, not unique should be done on a per class base + \letgvalue{@fl@n@#1}\composedsectionnumber % indirect macro can be more efficient \setgvalue{@fl@r@#1}% {\dofloatreference \redofloatorder{#1}% - % \dowritetolist{#1}{\flhetnummer}{#3}{#1}% + % \dowritetolist{#1}{\flcomposedsectionnumber}{#3}{#1}% \dowritetolist{#1}{\getvalue{@fl@n@#1}}{#3}{#1}% \doglobal\convertargument#3\to\flasciititle % \asciititle is global - % \doifsomething{#2}{\rawreference\s!flt{#2}{{\flhetnummer}{\flasciititle}}}% + % \doifsomething{#2}{\rawreference\s!flt{#2}{{\flcomposedsectionnumber}{\flasciititle}}}% \doifsomething{#2}{\rawreference\s!flt{#2}{{\getvalue{@fl@n@#1}}{\flasciititle}}}% \letgvalue{@fl@r@#1}\relax}% nils \setgvalue{@fl@t@#1}% - % {\preparethenumber{\??kj#1}\flhetnummer\preparednumber + % {\preparethenumber{\??kj#1}\flcomposedsectionnumber\preparednumber {\preparethenumber{\??kj#1}{\getvalue{@fl@n@#1}}\preparednumber \doattributes{\??kj#1}\c!style\c!color {\doattributes{\??kj#1}\c!headstyle\c!headcolor @@ -1696,10 +1696,10 @@ {\unvbox\floatbox % no \vss, keep the depth \dofloatreference \redofloatorder{#1}% - \rawreference\s!flt{#2}{{\hetnummer}{\asciititle}}% - \dowritetolist{#3}{\hetnummer}{#6}{#3}}% + \rawreference\s!flt{#2}{{\composedsectionnumber}{\asciititle}}% + \dowritetolist{#3}{\composedsectionnumber}{#6}{#3}}% \egroup - \preparethenumber{\??kj#1}\hetnummer\preparednumber + \preparethenumber{\??kj#1}\composedsectionnumber\preparednumber \dofloat{#4}{\labeltexts{#5}{\preparednumber}}{#6}{#1}% \fi \fi diff --git a/tex/context/base/page-num.tex b/tex/context/base/page-num.tex index 358a30275..e452b55aa 100644 --- a/tex/context/base/page-num.tex +++ b/tex/context/base/page-num.tex @@ -489,13 +489,19 @@ {\dodopageprefix{#1}% \donexttracklevel{#1}} +\chardef\pageprefixmode\plusone + \def\pageprefix#1[#2]% - {\bgroup - \edef\pageprefixtype{#1}% - \edef\postprefix{\@@filternumberpart[#2]}% - \let\donexttrackcommando\dopageprefix - \donexttrackcommando\firstsection - \egroup} + {\ifcase\pageprefixmode + % skip + \or + \bgroup + \edef\pageprefixtype{#1}% + \edef\postprefix{\@@filternumberpart[#2]}% + \let\donexttrackcommando\dopageprefix + \donexttrackcommando\firstsection + \egroup + \fi} %D It was Marco Kuhlmann who uncovered the missing strut. This %D was a pretty old bug kind of covered up by the fact that non diff --git a/tex/context/base/page-one.tex b/tex/context/base/page-one.tex index 124232868..a94002fca 100644 --- a/tex/context/base/page-one.tex +++ b/tex/context/base/page-one.tex @@ -518,7 +518,8 @@ %\ifgridsnapping \else \baselinecorrection \fi % ! ! ! test test test ! ! ! ! \doplacefloatbox \doinsertfloatinfo - \dochecknextindentation\??bk} + \dochecknextindentation\??bk + \dorechecknextindentation} % \def\OTRONEsomefixdfloat % [#1] % {\docheckiffloatfits diff --git a/tex/context/base/s-chi-00.tex b/tex/context/base/s-chi-00.tex index bb41b5b05..7438f4d5c 100644 --- a/tex/context/base/s-chi-00.tex +++ b/tex/context/base/s-chi-00.tex @@ -18,11 +18,11 @@ \unprotect -\setupsection [\v!sectionlevel-1] [\c!headconversion=\s!chinese] -\setupsection [\v!sectionlevel-2] [\c!headconversion=\s!chinese] -\setupsection [\v!sectionlevel-3] [\c!headconversion=\s!chinese] +\setupsection [\s!section-1] [\c!headconversion=\s!chinese] +\setupsection [\s!section-2] [\c!headconversion=\s!chinese] +\setupsection [\s!section-3] [\c!headconversion=\s!chinese] -\setupsection [\v!sectionlevel-2] [\v!appendix\c!conversion=] +\setupsection [\s!section-2] [\v!appendix\c!conversion=] \setuphead [\v!chapter] [\c!distance=1.25em] \setuphead [\v!section] [\c!distance=1.25em] diff --git a/tex/context/base/syst-gen.tex b/tex/context/base/syst-gen.tex index 8c8a58465..5e4ed06de 100644 --- a/tex/context/base/syst-gen.tex +++ b/tex/context/base/syst-gen.tex @@ -3066,27 +3066,9 @@ \let\p!doassign\p!n!doassign -%D Here are the initializers. Later we will apply them. +%D And set: -\def\doset@p@expanded - {\let\dosetpvalue \dosetevalue % expand values - \let\p!doassign \p!e!doassign % provide \currentvalue - \let\reset@p@expanded\doreset@p@expanded} % reset afterwards - -\def\doreset@p@expanded - {\let\currentvalue \empty % prevent carry over - \let\dosetpvalue \dosetvalue % don't expand - \let\p!doassign \p!n!doassign % don't provide \currentvalue - \let\set@p@expanded \relax % don't prepare - \let\reset@p@expanded\relax} % speed up next round - -\doreset@p@expanded \def\expandparameters{\let\set@p@expanded\doset@p@expanded} - -%D We overload some previously defined macros: - -\def\getparameters{\dogetparameters\dosetpvalue} - -\let\dosetpvalue\dosetvalue % normal behaviour +\let\currentvalue\empty %D \macros {expandparameters} %D @@ -3106,12 +3088,24 @@ %D \getbuffer %D \stoplines -%D Here we hook in the code: +%D Here we hook in the code (beware, this is the optimized get **): -\def\xdogetparameters#1]% - {\set@p@expanded +\def\xdoget@n@parameters#1]% + {\xprocesscommaitem#1,],\@relax@} + +\def\xdoget@e@parameters#1]% + {\let\dosetnvalue\dosetvalue + \let\dosetvalue\dosetevalue + \let\p!doassign\p!e!doassign \xprocesscommaitem#1,],\@relax@ - \reset@p@expanded} + \let\p!doassign\p!n!doassign + \let\dosetvalue\dosetnvalue + \let\xdogetparameters\xdoget@n@parameters + \let\currentvalue\empty} + +\let\xdogetparameters\xdoget@n@parameters % ** + +\def\expandparameters{\let\xdogetparameters\xdoget@e@parameters} %D \macros %D {getemptyparameters} diff --git a/tex/context/interface/cont-cz.xml b/tex/context/interface/cont-cz.xml index 8872e79cc..d06945148 100644 --- a/tex/context/interface/cont-cz.xml +++ b/tex/context/interface/cont-cz.xml @@ -6463,6 +6463,11 @@ <cd:constant type="A"/> <cd:constant type="B"/> </cd:parameter> + <cd:parameter name="prefix"> + <cd:constant type="obe"/> + <cd:constant type="prvni"/> + <cd:constant type="zadny"/> + </cd:parameter> </cd:assignments> </cd:arguments> </cd:command> diff --git a/tex/context/interface/cont-de.xml b/tex/context/interface/cont-de.xml index 676afe97a..0f8ab1eb8 100644 --- a/tex/context/interface/cont-de.xml +++ b/tex/context/interface/cont-de.xml @@ -6463,6 +6463,11 @@ <cd:constant type="A"/> <cd:constant type="B"/> </cd:parameter> + <cd:parameter name="prefix"> + <cd:constant type="beide"/> + <cd:constant type="erste"/> + <cd:constant type="kein"/> + </cd:parameter> </cd:assignments> </cd:arguments> </cd:command> diff --git a/tex/context/interface/cont-en.xml b/tex/context/interface/cont-en.xml index d1a034180..16610c122 100644 --- a/tex/context/interface/cont-en.xml +++ b/tex/context/interface/cont-en.xml @@ -6463,6 +6463,11 @@ <cd:constant type="A"/> <cd:constant type="B"/> </cd:parameter> + <cd:parameter name="prefix"> + <cd:constant type="both"/> + <cd:constant type="first"/> + <cd:constant type="none"/> + </cd:parameter> </cd:assignments> </cd:arguments> </cd:command> diff --git a/tex/context/interface/cont-it.xml b/tex/context/interface/cont-it.xml index 4484dd075..43c74f284 100644 --- a/tex/context/interface/cont-it.xml +++ b/tex/context/interface/cont-it.xml @@ -6463,6 +6463,11 @@ <cd:constant type="A"/> <cd:constant type="B"/> </cd:parameter> + <cd:parameter name="prefisso"> + <cd:constant type="entrambi"/> + <cd:constant type="primo"/> + <cd:constant type="nessuno"/> + </cd:parameter> </cd:assignments> </cd:arguments> </cd:command> diff --git a/tex/context/interface/cont-nl.xml b/tex/context/interface/cont-nl.xml index d6c67575b..5e145acc4 100644 --- a/tex/context/interface/cont-nl.xml +++ b/tex/context/interface/cont-nl.xml @@ -6463,6 +6463,11 @@ <cd:constant type="A"/> <cd:constant type="B"/> </cd:parameter> + <cd:parameter name="prefix"> + <cd:constant type="beide"/> + <cd:constant type="eerste"/> + <cd:constant type="geen"/> + </cd:parameter> </cd:assignments> </cd:arguments> </cd:command> diff --git a/tex/context/interface/cont-ro.xml b/tex/context/interface/cont-ro.xml index eecf586d5..efde60e2d 100644 --- a/tex/context/interface/cont-ro.xml +++ b/tex/context/interface/cont-ro.xml @@ -6463,6 +6463,11 @@ <cd:constant type="A"/> <cd:constant type="B"/> </cd:parameter> + <cd:parameter name="prefix"> + <cd:constant type="ambele"/> + <cd:constant type="primul"/> + <cd:constant type="niciunul"/> + </cd:parameter> </cd:assignments> </cd:arguments> </cd:command> diff --git a/tex/context/interface/keys-cz.xml b/tex/context/interface/keys-cz.xml index 150dfbc99..12d7ebd82 100644 --- a/tex/context/interface/keys-cz.xml +++ b/tex/context/interface/keys-cz.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> -<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2005.11.14"> +<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2005.11.15"> <cd:variables> <cd:variable name="one" value="jedna"/> @@ -49,7 +49,6 @@ </cd:variables> <cd:variables> - <cd:variable name="sectionlevel" value="oddil"/> <cd:variable name="part" value="cast"/> <cd:variable name="chapter" value="kapitola"/> <cd:variable name="subject" value="tema"/> diff --git a/tex/context/interface/keys-de.xml b/tex/context/interface/keys-de.xml index b7cf214d9..a3833ce00 100644 --- a/tex/context/interface/keys-de.xml +++ b/tex/context/interface/keys-de.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> -<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2005.11.14"> +<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2005.11.15"> <cd:variables> <cd:variable name="one" value="eins"/> @@ -49,7 +49,6 @@ </cd:variables> <cd:variables> - <cd:variable name="sectionlevel" value="abschnitt"/> <cd:variable name="part" value="teil"/> <cd:variable name="chapter" value="kapitel"/> <cd:variable name="subject" value="thema"/> diff --git a/tex/context/interface/keys-en.xml b/tex/context/interface/keys-en.xml index eeb0b13a2..9dcfe5b04 100644 --- a/tex/context/interface/keys-en.xml +++ b/tex/context/interface/keys-en.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> -<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2005.11.14"> +<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2005.11.15"> <cd:variables> <cd:variable name="one" value="one"/> @@ -49,7 +49,6 @@ </cd:variables> <cd:variables> - <cd:variable name="sectionlevel" value="section"/> <cd:variable name="part" value="part"/> <cd:variable name="chapter" value="chapter"/> <cd:variable name="subject" value="subject"/> diff --git a/tex/context/interface/keys-it.xml b/tex/context/interface/keys-it.xml index d6b8f5afe..5c0fd2204 100644 --- a/tex/context/interface/keys-it.xml +++ b/tex/context/interface/keys-it.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> -<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2005.11.14"> +<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2005.11.15"> <cd:variables> <cd:variable name="one" value="uno"/> @@ -49,7 +49,6 @@ </cd:variables> <cd:variables> - <cd:variable name="sectionlevel" value="paragrafo"/> <cd:variable name="part" value="parte"/> <cd:variable name="chapter" value="capitolo"/> <cd:variable name="subject" value="argomento"/> diff --git a/tex/context/interface/keys-nl.xml b/tex/context/interface/keys-nl.xml index beead00ec..5c32973b1 100644 --- a/tex/context/interface/keys-nl.xml +++ b/tex/context/interface/keys-nl.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> -<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2005.11.14"> +<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2005.11.15"> <cd:variables> <cd:variable name="one" value="een"/> @@ -49,7 +49,6 @@ </cd:variables> <cd:variables> - <cd:variable name="sectionlevel" value="sectie"/> <cd:variable name="part" value="deel"/> <cd:variable name="chapter" value="hoofdstuk"/> <cd:variable name="subject" value="onderwerp"/> diff --git a/tex/context/interface/keys-ro.xml b/tex/context/interface/keys-ro.xml index 29497e15a..d92729fab 100644 --- a/tex/context/interface/keys-ro.xml +++ b/tex/context/interface/keys-ro.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> -<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2005.11.11"> +<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2005.11.15"> <cd:variables> <cd:variable name="one" value="unu"/> @@ -49,7 +49,6 @@ </cd:variables> <cd:variables> - <cd:variable name="sectionlevel" value="sectiune"/> <cd:variable name="part" value="parte"/> <cd:variable name="chapter" value="capitol"/> <cd:variable name="subject" value="subiect"/> |