summaryrefslogtreecommitdiff
path: root/tex/context/base/strc-sec.mkiv
diff options
context:
space:
mode:
authorMarius <mariausol@gmail.com>2012-07-10 01:40:15 +0300
committerMarius <mariausol@gmail.com>2012-07-10 01:40:15 +0300
commit6f124794f7dc253f8b83f2517c26ce17e50d66ff (patch)
treeb60c4965f6564da448d06ccc7333fc9275c09d42 /tex/context/base/strc-sec.mkiv
parentf7f5e6779a6e1db630c21151d30858a2c8c97cbd (diff)
downloadcontext-6f124794f7dc253f8b83f2517c26ce17e50d66ff.tar.gz
beta 2012.07.10 00:14
Diffstat (limited to 'tex/context/base/strc-sec.mkiv')
-rw-r--r--tex/context/base/strc-sec.mkiv33
1 files changed, 27 insertions, 6 deletions
diff --git a/tex/context/base/strc-sec.mkiv b/tex/context/base/strc-sec.mkiv
index 29f3c07ea..0eb531832 100644
--- a/tex/context/base/strc-sec.mkiv
+++ b/tex/context/base/strc-sec.mkiv
@@ -447,13 +447,34 @@
\def\resetcurrentstructuremarks {\resetmarking[\lastsectionname]} % will become option
%def\resetcurrentstructuremarkswithpage{\resetmarking[\lastsectionname]} % will become option
-% -2=text -1=manual 0=block 1+=structurelevel
+% We could use a commandhandler here but sections are somewhat special in the
+% sense that we have two ways of chaining: the main section (levels) as well
+% as rendering (head).
+
+% -2 = text
+% -1 = manual
+% 0 = block
+% +1 = structurelevel 1 .. n
\newcount\maxstructuredepth
\def\sectionlevel#1%
{\csname\??headlevel\ifcsname\??headlevel#1\endcsname#1\else\v!none\fi\endcsname}
+\def\namedsectionlevel#1#2% direct indirect
+ {\csname\??headlevel
+ \ifcsname\??headlevel#1\endcsname
+ #1%
+ \else\ifcsname\??headlevel#2\endcsname
+ #2%
+ \else
+ \v!none
+ \fi\fi
+ \endcsname}
+
+\def\xthenamedheadlevel#1%
+ {\namedsectionlevel{#1}{\sectionheadsection{\sectionheadcoupling{#1}}}}
+
\setvalue{\??headlevel\v!block}{0}
\setvalue{\??headlevel\v!none }{-1}
\setvalue{\??headlevel\v!text }{-2}
@@ -481,16 +502,16 @@
\fi}
\unexpanded\def\setupsection
- {\dotripleempty\dosetupsection}
+ {\dotripleempty\strc_sectioning_setup}
-\def\dosetupsection[#1][#2][#3]%
+\def\strc_sectioning_setup[#1][#2][#3]%
{\ifcsname\??headlevel#1\endcsname
- \dodosetupsection[#1][#2][#3]%
+ \strc_sectioning_setup_indeed[#1][#2][#3]%
\else
- \dodosetupsection[\sectionheadsection{#1}][#2][#3]%
+ \strc_sectioning_setup_indeed[\sectionheadsection{#1}][#2][#3]%
\fi}
-\def\dodosetupsection[#1][#2][#3]%
+\def\strc_sectioning_setup_indeed[#1][#2][#3]%
{\pushmacro\currenthead
\ifthirdargument
\edef\currenthead{#1#2}% % not used at any more in mkiv (sets now)