summaryrefslogtreecommitdiff
path: root/tex/context/base/strc-sec.mkiv
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2010-01-18 22:43:00 +0100
committerHans Hagen <pragma@wxs.nl>2010-01-18 22:43:00 +0100
commite1cd565bd3872eb5665b95a0ca93e9ba6982c929 (patch)
tree645d840cbec918941bfffdeacb38de331110a72e /tex/context/base/strc-sec.mkiv
parent4e362156550b2624811c01de388d3d695f444d77 (diff)
downloadcontext-e1cd565bd3872eb5665b95a0ca93e9ba6982c929.tar.gz
beta 2010.01.18 22:43
Diffstat (limited to 'tex/context/base/strc-sec.mkiv')
-rw-r--r--tex/context/base/strc-sec.mkiv50
1 files changed, 37 insertions, 13 deletions
diff --git a/tex/context/base/strc-sec.mkiv b/tex/context/base/strc-sec.mkiv
index d2e43138c..5ec9e071a 100644
--- a/tex/context/base/strc-sec.mkiv
+++ b/tex/context/base/strc-sec.mkiv
@@ -41,12 +41,14 @@
% lua interface / names and interface might change
-\def\setstructurelevel #1#2{\ctxlua{structure.sections.setlevel("#1","#2")}} % name, level|parent
-\def\getstructurelevel #1{\ctxlua{structure.sections.getcurrentlevel("#1")}}% name
-\def\setstructurenumber #1#2{\ctxlua{structure.sections.setnumber(#1,"#2")}} % level, number (+/-)
-\def\getstructurenumber #1{\ctxlua{structure.sections.getnumber(#1)}} % level
-\def\getfullstructurenumber #1{\ctxlua{structure.sections.fullnumber(#1)}} % level
-\def\getspecificstructuretitle#1{\ctxlua{structure.sections.structuredata(#1,"titledata.title",nil,"\structureheadparameter\s!catcodes")}}%
+\def\setstructurelevel #1#2{\ctxlua{structure.sections.setlevel("#1","#2")}} % name, level|parent
+\def\getstructurelevel #1{\ctxlua{structure.sections.getcurrentlevel("#1")}}% name
+\def\setstructurenumber #1#2{\ctxlua{structure.sections.setnumber(#1,"#2")}} % level, number (+/-)
+\def\getstructurenumber #1{\ctxlua{structure.sections.getnumber(#1)}} % level
+\def\getsomestructurenumber #1#2{\ctxlua{structure.sections.getnumber(#1,"#2")}} % level, what
+\def\getfullstructurenumber #1{\ctxlua{structure.sections.fullnumber(#1)}} % level
+\def\getsomefullstructurenumber#1#2{\ctxlua{structure.sections.fullnumber(#1,"#2")}}
+\def\getspecificstructuretitle #1{\ctxlua{structure.sections.structuredata(#1,"titledata.title",nil,"\structureheadparameter\s!catcodes")}}%
% interface
@@ -380,6 +382,7 @@
\c!sectionseparatorset=\structureheadparameter\c!sectionseparatorset,
\c!sectionconversionset=\structureheadparameter\c!sectionconversionset,
\c!sectionconversion=\structureheadparameter\c!conversion, % just for compatibility
+ \c!sectionstarter=\structureheadparameter\c!sectionstarter,
\c!sectionstopper=\structureheadparameter\c!sectionstopper,
\c!sectionset=\structureheadparameter\c!sectionset,
\c!sectionsegments=\structureheadparameter\c!sectionsegments,
@@ -698,19 +701,40 @@
\def\currentstructureheadnumber{0} % ==> \currentheadnumber
-\def\determineheadnumber[#1]%
+\unexpanded\def\determineheadnumber[#1]%
{\xdef\currentstructureheadnumber{\getstructurenumber{\thenamedstructureheadlevel{#1}}}}
% The previous macro is been replaced by the expandable:
-\def\namedheadnumber#1{\getstructurenumber{\thenamedstructureheadlevel{#1}}}
+\def\namedheadnumber #1{\getstructurenumber {\thenamedstructureheadlevel{#1}}}
+\def\somenamedheadnumber#1#2{\getsomestructurenumber{\thenamedstructureheadlevel{#1}}{#2}}
-\def\structureheadnumber
- {\dosingleempty\dostructureheadnumber}
+\unexpanded\def\structureheadnumber
+ {\dodoubleempty\dostructureheadnumber}
-\def\dostructureheadnumber[#1]% simple case is just a number
-% {\getfullstructurenumber{\iffirstargument\thecurrentstructureheadlevel{#1}\fi}}
- {\getfullstructurenumber{\iffirstargument\thenamedstructureheadlevel{#1}\fi}}
+% \def\dostructureheadnumber[#1][#2]% simple case is just a number
+% {\iffirstargument
+% \ifsecondargument
+% \getsomefullstructurenumber{\thenamedstructureheadlevel{#1}}{#2}%
+% \else
+% \getfullstructurenumber{\thenamedstructureheadlevel{#1}}%
+% \fi
+% \else
+% \getfullstructurenumber{\thenamedstructureheadlevel{#1}}
+% \fi}
+
+\def\dostructureheadnumber[#1][#2]% simple case is just a number
+ {\getsomefullstructurenumber{\iffirstargument\thenamedstructureheadlevel{#1}\fi}{#2}}
+
+\def\somestructureheadnumber
+ {\dodoubleempty\dosomestructureheadnumber}
+
+\def\dosomestructureheadnumber[#1][#2]%
+ {\dontleavehmode
+ \begingroup
+ \edef\currentstructurehead{#1}%
+ \getsomefullstructurenumber{\thenamedstructureheadlevel{#1}}{#2}%
+ \endgroup}
% compatibility code (after all, we might offer different structure handlers as well
% but we might as well remove the 'structure' substring at some point (we needed it