summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2005-11-15 00:00:00 +0100
committerHans Hagen <pragma@wxs.nl>2005-11-15 00:00:00 +0100
commit840798e323e582f82ca9fba1294b9ec996d86c0d (patch)
treecc537fd22490476013e57348fa57e8bb864d73e1
parentc8b4e7c266dfeb30b306fd1e43c3fae1aa28e049 (diff)
downloadcontext-840798e323e582f82ca9fba1294b9ec996d86c0d.tar.gz
stable 2005.11.15
-rw-r--r--scripts/context/ruby/base/tex.rb33
-rw-r--r--scripts/context/ruby/base/texutil.rb5
-rw-r--r--tex/context/base/cont-new.tex3
-rw-r--r--tex/context/base/context.tex2
-rw-r--r--tex/context/base/core-des.tex3
-rw-r--r--tex/context/base/core-itm.tex5
-rw-r--r--tex/context/base/core-mat.tex9
-rw-r--r--tex/context/base/core-not.tex4
-rw-r--r--tex/context/base/core-reg.tex19
-rw-r--r--tex/context/base/core-sec.tex75
-rw-r--r--tex/context/base/core-spa.tex95
-rw-r--r--tex/context/base/core-ver.tex3
-rw-r--r--tex/context/base/m-subsub.tex20
-rw-r--r--tex/context/base/mult-con.tex5
-rw-r--r--tex/context/base/mult-ini.tex4
-rw-r--r--tex/context/base/mult-sys.tex2
-rw-r--r--tex/context/base/page-flt.tex36
-rw-r--r--tex/context/base/page-num.tex18
-rw-r--r--tex/context/base/page-one.tex3
-rw-r--r--tex/context/base/s-chi-00.tex8
-rw-r--r--tex/context/base/syst-gen.tex42
-rw-r--r--tex/context/interface/cont-cz.xml5
-rw-r--r--tex/context/interface/cont-de.xml5
-rw-r--r--tex/context/interface/cont-en.xml5
-rw-r--r--tex/context/interface/cont-it.xml5
-rw-r--r--tex/context/interface/cont-nl.xml5
-rw-r--r--tex/context/interface/cont-ro.xml5
-rw-r--r--tex/context/interface/keys-cz.xml3
-rw-r--r--tex/context/interface/keys-de.xml3
-rw-r--r--tex/context/interface/keys-en.xml3
-rw-r--r--tex/context/interface/keys-it.xml3
-rw-r--r--tex/context/interface/keys-nl.xml3
-rw-r--r--tex/context/interface/keys-ro.xml3
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"/>