summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2010-02-14 18:59:00 +0100
committerHans Hagen <pragma@wxs.nl>2010-02-14 18:59:00 +0100
commite3f0fbded1db3addc97fe1921f4957261c8a425f (patch)
treef42a9cb8cc76629c3914939790936f7490500c17
parentea6a2529249923eb8ea4d9ae94fb29bd62cd8e80 (diff)
downloadcontext-e3f0fbded1db3addc97fe1921f4957261c8a425f.tar.gz
beta 2010.02.14 18:59
-rw-r--r--tex/context/base/bibl-tra.lua4
-rw-r--r--tex/context/base/buff-ver.mkii5
-rw-r--r--tex/context/base/char-def.lua1
-rw-r--r--tex/context/base/cont-new.tex2
-rw-r--r--tex/context/base/context.tex2
-rw-r--r--tex/context/base/enco-def.mkii2
-rw-r--r--tex/context/base/lang-ini.mkii42
-rw-r--r--tex/context/base/lang-url.lua134
-rw-r--r--tex/context/base/lang-url.mkiv13
-rw-r--r--tex/context/base/lpdf-fld.lua1
-rw-r--r--tex/context/base/pack-rul.mkiv2
-rw-r--r--tex/context/base/scrn-fld.mkiv8
-rw-r--r--tex/context/base/scrn-int.mkiv4
-rw-r--r--tex/context/base/spac-ver.mkiv10
-rw-r--r--tex/context/base/strc-not.mkiv28
-rw-r--r--tex/context/base/strc-ren.mkiv2
-rw-r--r--tex/context/base/strc-sec.mkiv60
-rw-r--r--tex/generic/context/luatex-fonts-merged.lua2
18 files changed, 198 insertions, 124 deletions
diff --git a/tex/context/base/bibl-tra.lua b/tex/context/base/bibl-tra.lua
index 7a54ca810..6cf0544ec 100644
--- a/tex/context/base/bibl-tra.lua
+++ b/tex/context/base/bibl-tra.lua
@@ -54,7 +54,7 @@ function hacks.reset(m)
end
function hacks.add(str,listindex)
- if mode == 0 then
+ if not str or mode == 0 then
-- skip
elseif mode == 1 then
-- all locals but no duplicates
@@ -78,7 +78,7 @@ local function compare(a,b)
end
local function compare(a,b)
- local aa, bb = a[1], a[b]
+ local aa, bb = a[1], b[1]
if aa and bb then
return ordered[aa] < ordered[bb]
else
diff --git a/tex/context/base/buff-ver.mkii b/tex/context/base/buff-ver.mkii
index 6b3817a70..87a269ab9 100644
--- a/tex/context/base/buff-ver.mkii
+++ b/tex/context/base/buff-ver.mkii
@@ -144,7 +144,6 @@
\let\obeycharacters\setupprettytype
\let\obeytabs\ignoretabs}
-
\def\setupcommonverbatim
{\recatcodeuppercharactersfalse % obey regime / encoding
%
@@ -577,11 +576,13 @@
\veryraggedright}
\def\ignorehyphens
- {% \language\minusone % extra bonus, the \null should do the job too
+ {% \nohyphens % forgotten when no \par
+ \normallanguage\minusone % fails as the font redoes the language
\def\obeyedspace {\hskip\interwordspace\relax}% better than spaceskip
\def\controlspace{\hskip\zeropoint\hbox{\normalcontrolspace}\hskip\zeropoint\relax}%
\spaceskip.5em\relax}
+
\unexpanded\def\typ
{\bgroup
\let\@@tylines\v!hyphenated
diff --git a/tex/context/base/char-def.lua b/tex/context/base/char-def.lua
index 3aec401f1..7e41146ad 100644
--- a/tex/context/base/char-def.lua
+++ b/tex/context/base/char-def.lua
@@ -587,6 +587,7 @@ characters.data={
adobename="at",
category="po",
cjkwd="na",
+ contextname="textat",
description="COMMERCIAL AT",
direction="on",
linebreak="al",
diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex
index c96730065..2b24141ba 100644
--- a/tex/context/base/cont-new.tex
+++ b/tex/context/base/cont-new.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2010.02.11 15:41}
+\newcontextversion{2010.02.14 18:59}
%D This file is loaded at runtime, thereby providing an
%D excellent place for hacks, patches, extensions and new
diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex
index 21218fb96..3533e57eb 100644
--- a/tex/context/base/context.tex
+++ b/tex/context/base/context.tex
@@ -20,7 +20,7 @@
%D your styles an modules.
\edef\contextformat {\jobname}
-\edef\contextversion{2010.02.11 15:41}
+\edef\contextversion{2010.02.14 18:59}
%D For those who want to use this:
diff --git a/tex/context/base/enco-def.mkii b/tex/context/base/enco-def.mkii
index b6d66bb6c..4d8e280cb 100644
--- a/tex/context/base/enco-def.mkii
+++ b/tex/context/base/enco-def.mkii
@@ -41,6 +41,8 @@
\definecharacter textring 23
\definecharacter texttilde 126
+\definecharacter textat 64 % for mojca
+
\definecharacter textbottomcomma {\hbox{\lower.35ex\hbox{\tx,}}} % for mojca
\definecharacter dotlessi {\char"10 }
diff --git a/tex/context/base/lang-ini.mkii b/tex/context/base/lang-ini.mkii
index a55748a78..91ac59847 100644
--- a/tex/context/base/lang-ini.mkii
+++ b/tex/context/base/lang-ini.mkii
@@ -397,33 +397,39 @@
% \def\synchronizepatterns{\setnormallanguage
% {\csname\??la\currentlanguage\s!patterns\endcsname}}% called often
% of even better pre-expand in an ugly way:
-% \@EA\def\@EA\synchronizepatterns\@EA{\@EA\dosetnormallanguage
-% \csname\??la\currentlanguage\s!patterns\endcsname}%
-\edef\synchronizepatterns{\noexpand\dosetnormallanguage{\languageparameter\s!patterns}}%
- \donefalse
- \synchronizepatterns
- \ifdone\else
- \def\synchronizepatterns{\dosetnormallanguage\currentlanguage}%
+ \ifnum\normallanguage<\zerocount
+ % we've blocked hyphenation (e.g. verbatim)
+ \else
+ \edef\synchronizepatterns{\noexpand\dosetnormallanguage{\languageparameter\s!patterns}}%
+ \donefalse
\synchronizepatterns
\ifdone\else
- \ifx\currentdefaultlanguage\empty\else
-% \@EA\def\@EA\synchronizepatterns\@EA{\@EA\dosetnormallanguage
-% \csname\??la\currentdefaultlanguage\s!patterns\endcsname}%
-\edef\synchronizepatterns{\noexpand\dosetnormallanguage{\specificlanguageparameter\currentdefaultlanguage\s!patterns}}%
- \synchronizepatterns
- \ifdone\else
- \dosetnormallanguage\currentdefaultlanguage
+ \def\synchronizepatterns{\dosetnormallanguage\currentlanguage}%
+ \synchronizepatterns
+ \ifdone\else
+ \ifx\currentdefaultlanguage\empty\else
+ \edef\synchronizepatterns{\noexpand\dosetnormallanguage{\specificlanguageparameter\currentdefaultlanguage\s!patterns}}%
\synchronizepatterns
+ \ifdone\else
+ \dosetnormallanguage\currentdefaultlanguage
+ \synchronizepatterns
+ \fi
\fi
\fi
\fi
\fi}
+\normallanguage\zerocount
+
\def\dosetnormallanguage#1% #1 == \cs (no longer)
- {\dodosetnormallanguage{:\currentencoding:\currentmapping:}{#1}{%
- \dodosetnormallanguage{:\currentencoding:\s!default :}{#1}{%
- \dodosetnormallanguage{:\s!default :\currentmapping:}{#1}{%
- \dodosetnormallanguage{:\s!default :\s!default :}{#1}\empty}}}}
+ {\ifnum\normallanguage<\zerocount
+ % we've blocked hyphenation (e.g. verbatim)
+ \else
+ \dodosetnormallanguage{:\currentencoding:\currentmapping:}{#1}{%
+ \dodosetnormallanguage{:\currentencoding:\s!default :}{#1}{%
+ \dodosetnormallanguage{:\s!default :\currentmapping:}{#1}{%
+ \dodosetnormallanguage{:\s!default :\s!default :}{#1}\empty}}}%
+ \fi}
\def\dodosetnormallanguage#1#2%
{\ifcsname\??la\??la#1#2\endcsname
diff --git a/tex/context/base/lang-url.lua b/tex/context/base/lang-url.lua
index 40cf9a447..b0a71ec67 100644
--- a/tex/context/base/lang-url.lua
+++ b/tex/context/base/lang-url.lua
@@ -11,7 +11,7 @@ local utf = unicode.utf8
local utfcharacters, utfvalues = string.utfcharacters, string.utfvalues
local utfbyte, utfgsub = utf.byte, utf.gsub
-local ctxcatcodes = tex.ctxcatcodes
+local ctxcatcodes, texsprint = tex.ctxcatcodes, tex.sprint
commands = commands or { }
@@ -22,80 +22,80 @@ parsing, but the following solution suits as well. After all, we're mostly
dealing with <l n='ascii'/> characters.</p>
]]--
-do
-
- commands.hyphenatedurl = commands.hyphenatedurl or { }
-
- commands.hyphenatedurl.characters = {
- ["!"] = 1,
- ["\""] = 1,
- ["#"] = 1,
- ["$"] = 1,
- ["%"] = 1,
- ["&"] = 1,
- ["("] = 1,
- ["*"] = 1,
- ["+"] = 1,
- [","] = 1,
- ["-"] = 1,
- ["."] = 1,
- ["/"] = 1,
- [":"] = 1,
- [";"] = 1,
- ["<"] = 1,
- ["="] = 1,
- [">"] = 1,
- ["?"] = 1,
- ["@"] = 1,
- ["["] = 1,
- ["\\"] = 1,
- ["^"] = 1,
- ["_"] = 1,
- ["`"] = 1,
- ["{"] = 1,
- ["|"] = 1,
- ["~"] = 1,
-
- ["'"] = 2,
- [")"] = 2,
- ["]"] = 2,
- ["}"] = 2
- }
-
- commands.hyphenatedurl.lefthyphenmin = 2
- commands.hyphenatedurl.righthyphenmin = 3
-
- local chars = commands.hyphenatedurl.characters
+commands.hyphenatedurl = commands.hyphenatedurl or { }
+
+local hyphenatedurl = commands.hyphenatedurl
+
+hyphenatedurl.characters = {
+ ["!"] = 1,
+ ["\""] = 1,
+ ["#"] = 1,
+ ["$"] = 1,
+ ["%"] = 1,
+ ["&"] = 1,
+ ["("] = 1,
+ ["*"] = 1,
+ ["+"] = 1,
+ [","] = 1,
+ ["-"] = 1,
+ ["."] = 1,
+ ["/"] = 1,
+ [":"] = 1,
+ [";"] = 1,
+ ["<"] = 1,
+ ["="] = 1,
+ [">"] = 1,
+ ["?"] = 1,
+ ["@"] = 1,
+ ["["] = 1,
+ ["\\"] = 1,
+ ["^"] = 1,
+ ["_"] = 1,
+ ["`"] = 1,
+ ["{"] = 1,
+ ["|"] = 1,
+ ["~"] = 1,
+
+ ["'"] = 2,
+ [")"] = 2,
+ ["]"] = 2,
+ ["}"] = 2
+}
- function commands.hyphenatedurl.convert(str, left, right)
- local n = 0
- local b = math.max(left or commands.hyphenatedurl.lefthyphenmin,2)
- local e = math.min(#str-(right or commands.hyphenatedurl.righthyphenmin)+2,#str)
- str = utfgsub(str,"(.)",function(s)
- n = n + 1
+hyphenatedurl.lefthyphenmin = 2
+hyphenatedurl.righthyphenmin = 3
+hyphenatedurl.discretionary = nil
+
+local chars = hyphenatedurl.characters
+
+function hyphenatedurl.action(str, left, right, disc)
+ local n = 0
+ local b = math.max( left or hyphenatedurl.lefthyphenmin, 2)
+ local e = math.min(#str-(right or hyphenatedurl.righthyphenmin)+2,#str)
+ local d = disc or hyphenatedurl.discretionary
+ for s in utfcharacters(str) do
+ n = n + 1
+ if s == d then
+ texsprint(ctxcatcodes,"\\d{",utfbyte(s),"}")
+ else
local c = chars[s]
if not c or n<=b or n>=e then
- return "\\n{" .. utfbyte(s) .. "}"
+ texsprint(ctxcatcodes,"\\n{",utfbyte(s),"}")
elseif c == 1 then
- return "\\b{" .. utfbyte(s) .. "}"
+ texsprint(ctxcatcodes,"\\b{",utfbyte(s),"}")
elseif c == 2 then
- return "\\a{" .. utfbyte(s) .. "}"
+ texsprint(ctxcatcodes,"\\a{",utfbyte(s),"}")
end
- end )
- return str
- end
- function commands.hyphenatedurl.action(str, left, right)
- tex.sprint(ctxcatcodes,commands.hyphenatedurl.convert(str, left, right))
- end
-
- -- todo, no interface in mkiv yet
-
- function commands.hyphenatedurl.setcharacters(str,value) -- 1, 2 == before, after
- for s in utfcharacters(str) do
- chars[s] = value or 1
end
end
+end
- -- commands.hyphenatedurl.setcharacters("')]}",2)
+-- todo, no interface in mkiv yet
+function hyphenatedurl.setcharacters(str,value) -- 1, 2 == before, after
+ for s in utfcharacters(str) do
+ chars[s] = value or 1
+ end
end
+
+-- .hyphenatedurl.setcharacters("')]}",2)
diff --git a/tex/context/base/lang-url.mkiv b/tex/context/base/lang-url.mkiv
index 392a0285b..0f6b23d05 100644
--- a/tex/context/base/lang-url.mkiv
+++ b/tex/context/base/lang-url.mkiv
@@ -62,10 +62,13 @@
\def\dohyphenatedurlafter #1{\char#1\discretionary{}{\hyphenatedurlseparator}{}}%
\def\dohyphenatedurlbefore#1{\discretionary{\hyphenatedurlseparator}{}{}\char#1\relax}%
\def\dohyphenatedurlnormal#1{\char#1\relax}%
+\def\dohyphenatedurldisc #1{\discretionary{}{}{}}
-\def\sethyphenatedurlnormal#1{\ctxlua{commands.hyphenatedurl.setcharacters(\!!bs#1\!!es,0)}}
-\def\sethyphenatedurlbefore#1{\ctxlua{commands.hyphenatedurl.setcharacters(\!!bs#1\!!es,1)}}
-\def\sethyphenatedurlafter #1{\ctxlua{commands.hyphenatedurl.setcharacters(\!!bs#1\!!es,2)}}
+\def\sethyphenatedurlnormal #1{\ctxlua{commands.hyphenatedurl.setcharacters(\!!bs#1\!!es,0)}}
+\def\sethyphenatedurlbefore #1{\ctxlua{commands.hyphenatedurl.setcharacters(\!!bs#1\!!es,1)}}
+\def\sethyphenatedurlafter #1{\ctxlua{commands.hyphenatedurl.setcharacters(\!!bs#1\!!es,2)}}
+
+\def\hyphenatedurldiscretionary{}
% \sethyphenatedurlafter{ABCDEF}
@@ -79,10 +82,12 @@
\let\n\dohyphenatedurlnormal
\let\b\dohyphenatedurlbefore
\let\a\dohyphenatedurlafter
+ \let\d\dohyphenatedurldisc
\normalexpanded{\noexpand\ctxlua{commands.hyphenatedurl.action(
\!!bs\noexpand\detokenize{#1}\!!es,
\number\hyphenatedurllefthyphenmin,
- \number\hyphenatedurlrighthyphenmin
+ \number\hyphenatedurlrighthyphenmin,
+ "\hyphenatedurldiscretionary"
)}}%
\endgroup}
diff --git a/tex/context/base/lpdf-fld.lua b/tex/context/base/lpdf-fld.lua
index 20fbd94f8..62871e586 100644
--- a/tex/context/base/lpdf-fld.lua
+++ b/tex/context/base/lpdf-fld.lua
@@ -368,6 +368,7 @@ local function predefinesymbols(specification)
local symbols = aux.settings_to_array(values)
for i=1,#symbols do
local symbol = symbols[i]
+print(symbol)
local a, b = lpegmatch(splitter,symbol)
codeinjections.presetsymbol(a or symbol)
end
diff --git a/tex/context/base/pack-rul.mkiv b/tex/context/base/pack-rul.mkiv
index 79daf99e2..13f9111c0 100644
--- a/tex/context/base/pack-rul.mkiv
+++ b/tex/context/base/pack-rul.mkiv
@@ -902,7 +902,7 @@
\framedparameter\c!extras
% to get the right spacing
\edef\fontattributehash{\framedparameterhash\c!foregroundstyle}%
- \ifx\fontattributehash\empty\else\dosetfontattribute \fontattributehash\c!foregroundstyle\fi
+ \ifx\fontattributehash\empty\else\dosetfontattribute\fontattributehash\c!foregroundstyle\fi
% beware, both the frame and background offset can be overruled
%
\edef\doframedsetups{\framedparameter\c!setups}%
diff --git a/tex/context/base/scrn-fld.mkiv b/tex/context/base/scrn-fld.mkiv
index 4b9d170e2..9ea29c363 100644
--- a/tex/context/base/scrn-fld.mkiv
+++ b/tex/context/base/scrn-fld.mkiv
@@ -450,7 +450,7 @@
{\dotripleargument\dodefinefieldstack}
\def\dodefinefieldstack[#1][#2][#3]% name, symbols, settings
- {\ifcsname fieldstack:#1\endcsname
+ {\ifcsname fieldstack:#1\endcsname \else
\setgvalue{fieldstack:#1}{\dodofieldstack[#1][#2][#3]}%
\fi}
@@ -470,15 +470,15 @@
\begingroup
\getparameters[\??fd][\c!start=1,#3]%
\setupfields[\v!reset]%
- \definesymbol[\v!empty][]%
+ % \definesymbol[\v!empty][]%
\useJSscripts[fld][FieldStack]%
\newcounter\stackedfieldnumber
\def\dododofieldstack##1%
{\increment\stackedfieldnumber
\ifnum\stackedfieldnumber=\@@fdstart\relax
- \definefield[#1:\stackedfieldnumber][check][#1][##1,\v!empty][##1]%
+ \definefield[#1:\stackedfieldnumber][check][#1][##1,\empty][##1]% \v!empty fails
\else
- \definefield[#1:\stackedfieldnumber][check][#1][##1,\v!empty][\v!empty]%
+ \definefield[#1:\stackedfieldnumber][check][#1][##1,\empty][\empty]% \v!empty fails
\fi}%
\processcommalist[#2]\dododofieldstack
\setupfield[#1][\v!reset]% added
diff --git a/tex/context/base/scrn-int.mkiv b/tex/context/base/scrn-int.mkiv
index 739e16bba..e9510b6c5 100644
--- a/tex/context/base/scrn-int.mkiv
+++ b/tex/context/base/scrn-int.mkiv
@@ -92,7 +92,9 @@
\fi\fi
\ctxlua{backends.codeinjections.setupcanvas {
mode = "\@@scoption",
- doublesided = \ifsinglesided false\else\ifdoublesided true\else false\fi\fi,
+ % doublesided = \ifsinglesided false\else\ifdoublesided true\else false\fi\fi,
+ singlesided = \ifsinglesided true\else false\fi,
+ doublesided = \ifdoublesided true\else false\fi,
leftoffset = \number\dimexpr\backoffset\relax,
topoffset = \number\dimexpr\topoffset \relax,
width = \number\dimexpr\!!widtha \relax,
diff --git a/tex/context/base/spac-ver.mkiv b/tex/context/base/spac-ver.mkiv
index b8191f330..afd81717e 100644
--- a/tex/context/base/spac-ver.mkiv
+++ b/tex/context/base/spac-ver.mkiv
@@ -991,10 +991,17 @@
%D The plain ones:
+% \def\offinterlineskip
+% {\baselineskip-\thousandpoint
+% \lineskip\zeropoint
+% \lineskiplimit\maxdimen}
+
\def\offinterlineskip
{\baselineskip-\thousandpoint
\lineskip\zeropoint
- \lineskiplimit\maxdimen}
+ \lineskiplimit\maxdimen
+ % We also need this here now; thanks to taco for figuring that out!
+ \let\minimumlinedistance\zeropoint}
\def\nointerlineskip
{\prevdepth-\thousandpoint}
@@ -1008,6 +1015,7 @@
{\baselineskip\the\baselineskip
\lineskip\the\lineskip
\lineskiplimit\the\lineskiplimit
+ \noexpand\edef\noexpand\minimumlinedistance{\the\dimexpr\minimumlinedistance}%
\let\noexpand\offinterlineskip\noexpand\normaloffinterlineskip}}
\def\nopushinterlineskip
diff --git a/tex/context/base/strc-not.mkiv b/tex/context/base/strc-not.mkiv
index 0eb93a5e2..1eefdf04c 100644
--- a/tex/context/base/strc-not.mkiv
+++ b/tex/context/base/strc-not.mkiv
@@ -233,6 +233,7 @@
\c!text=,
\c!before=,
\c!after=]%
+ \doredefinenotecommands\currentnote
\setupenumerations
[\currentnote]
[\s!parent=\??vn\currentnote,
@@ -242,12 +243,35 @@
\getparameters
[\??vn\currentnote]
[\s!parent=\??vn,#2]%
- \definestructurecounter
- [\currentnote]%
+% \definestructurecounter
+% [\currentnote]%
\ctxlua{structure.notes.define("\currentnote","insert",\number\csname\??vn:\currentnote\endcsname)}%
\the\everysetupnote
\dochecknote}
+% \starttext
+% text \startfootnote Test.\stopfootnote
+% test \footnote{xxxx} \subfootnote{xxxx}
+% test \footnote{xxxx} \subfootnote{xxxx}
+% \stoptext
+
+\def\dodoredefinenotecommands#1#2#3%
+ {\unexpanded\expandafter\def\csname\e!start#3#1\expandafter\endcsname\expandafter
+ {\expandafter\dosingleempty\csname\s!do\e!start#3#1\endcsname}%
+ \unexpanded\expandafter\def\csname\s!do\e!start#3#1\expandafter\endcsname
+ \expandafter[\expandafter##\expandafter1\expandafter]\expandafter##\expandafter2\csname\e!stop#3#1\endcsname
+ {\begingroup
+ \doenumerationinit{#1}{#2}{#3}%
+ \@@notemakedescription[##1]{}{##2}%
+ \endgroup}}
+
+\def\doredefinenotecommands#1%
+ {\normalexpanded{\noexpand\dodoredefinenotecommands{#1}{1}{}}%
+ \let\@@subslevel\empty
+ \dostepwiserecurse{2}{\descriptionparameter\c!levels}{1}
+ {\normalexpanded{\noexpand\dodoredefinenotecommands{#1}{\recurselevel}{\@@subslevel\v!sub}}%
+ \edef\@@subslevel{\@@subslevel\v!sub}}}
+
\let\setupnotedefinition\setupenumerations
\appendtoks
diff --git a/tex/context/base/strc-ren.mkiv b/tex/context/base/strc-ren.mkiv
index 30edea322..2115d6287 100644
--- a/tex/context/base/strc-ren.mkiv
+++ b/tex/context/base/strc-ren.mkiv
@@ -134,7 +134,7 @@
\def\placestructureheadtext
{\doplacestructureheadtext\empty\getstructureheadtitle\getstructureheadsyncs}
-\def\placestructureheadnothing
+\def\placestructureheadempty
{\hbox \structureheadattribute {\getstructureheadsyncs}}
%D \starttyping
diff --git a/tex/context/base/strc-sec.mkiv b/tex/context/base/strc-sec.mkiv
index 5ec9e071a..ec7d97e6d 100644
--- a/tex/context/base/strc-sec.mkiv
+++ b/tex/context/base/strc-sec.mkiv
@@ -268,6 +268,7 @@
\newconditional\structureheaddoincrement
\newconditional\structureheaddoplace
\newconditional\structureheadleaveempty
+\newconditional\structureheadhidden
\newconditional\structureheadshownumber
\newconditional\structureheadisdisplay
@@ -316,11 +317,13 @@
\def\setstructureheadplacement
{\settrue\structureheaddoplace
\setfalse\structureheadleaveempty
+ \setfalse\structureheadhidden
\processaction
[\structureheadparameter\c!placehead]
[ \v!yes=>,
\v!empty=>\settrue\structureheadleaveempty,
- \v!no=>\settrue\structureheadleaveempty\setfalse\structureheaddoplace]}
+ \v!no=>\settrue\structureheadleaveempty\setfalse\structureheaddoplace,
+ \v!hidden=>\settrue\structureheadhidden\settrue\structureheadleaveempty\setfalse\structureheaddoplace]}
\def\setstructureheaddisplay
{\doifelsevalue{\??nh:\structureheadparameter\c!alternative}\v!horizontal
@@ -346,7 +349,7 @@
\setfalse\structureheadshownumber
\fi}
-\def\thestructureheadsynchonization
+\unexpanded\def\thestructureheadsynchonization
{\pagetype[\currentstructureheadcoupling]% hm also number
\normalexpanded{\noexpand\setmarking[\currentstructureheadcoupling]{\currentstructurelistnumber}}%
\currentstructuresynchronize}
@@ -470,13 +473,17 @@
\placestructureheadtext
\fi
\dostructureheadspacingafteryes
+ \else\ifconditional\structureheadhidden
+ \doregisterstructurehead{#1}{#2}{#3}% after optional \page
+ \let\getstructureheadsyncs\thestructureheadsynchonization
+ \placestructureheadhidden % only something when tracing
\else
\dostructureheadspacingbeforenop % toegevoegd ivm subpaginanr / tug sheets
\doregisterstructurehead{#1}{#2}{#3}% after optional \page
\let\getstructureheadsyncs\thestructureheadsynchonization
- \placestructureheadnothing % just flush 'm
+ \placestructureheadempty % just flush 'm
\dostructureheadspacingafternop
- \fi
+ \fi\fi
\else
\ifconditional\structureheaddoplace
\dostructureheadspacingbeforeyes
@@ -485,14 +492,18 @@
\let\getstructureheadtitle\fullstructureheadtitle
\placestructureheadtext
\dostructureheadspacingafteryes
+ \else\ifconditional\structureheadhidden
+ \doregisterstructurehead{#1}{#2}{#3}% after optional \page
+ \let\getstructureheadsyncs\thestructureheadsynchonization
+ \placestructureheadhidden % only something when tracing
\else
% do nothing / should be vbox to 0pt
\dostructureheadspacingbeforenop
\doregisterstructurehead{#1}{#2}{#3}% after optional \page
\let\getstructureheadsyncs\thestructureheadsynchonization
- \placestructureheadnothing % just flush 'm
+ \placestructureheadempty % just flush 'm
\dostructureheadspacingafternop
- \fi
+ \fi\fi
\fi
\flushingcolumnfloatstrue
\setfalse\ignorehandlepagebreak
@@ -513,9 +524,33 @@
{\getstructureheadtitle
\getstructureheadsyncs}
-\def\placestructureheadnothing % dummy, will be overloaded
+\def\placestructureheadempty % dummy, will be overloaded
{\getstructureheadsyncs}
+\def\placestructureheadhidden
+ {\setxvalue{\currentstructurehead:sync}%
+ {\noexpand\pagetype[\currentstructureheadcoupling]% hm also number
+ \noexpand\setmarking[\currentstructureheadcoupling]{\currentstructurelistnumber}%
+ \currentstructuresynchronize}}
+
+\def\synchronizestructurehead#1%
+ {\getvalue{#1:sync}}
+
+\unexpanded\def\placerawheaddata [#1]{\synchronizestructurehead {#1}}
+\unexpanded\def\placerawheadtext [#1]{\getspecificstructuretitle{\thenamedstructureheadlevel{#1}}}
+\unexpanded\def\placerawheadnumber[#1]{\getfullstructurenumber {\thenamedstructureheadlevel{#1}}}
+
+% \setuphead[chapter][placehead=hidden]
+% \chapter {test}
+%
+% %(\synchronizestructurehead{chapter}) % \getstructureheadsyncs
+% %(\getfullstructurenumber{\thenamedstructureheadlevel{chapter}})
+% %(\getspecificstructuretitle{\thenamedstructureheadlevel{chapter}})
+%
+% (\placerawheaddata [chapter])
+% (\placerawheadnumber[chapter])
+% (\placerawheadtext [chapter])
+
% pagebreaks
\newcount\precedingstructurelevel \precedingstructurelevel\plusone
@@ -712,17 +747,6 @@
\unexpanded\def\structureheadnumber
{\dodoubleempty\dostructureheadnumber}
-% \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}}
diff --git a/tex/generic/context/luatex-fonts-merged.lua b/tex/generic/context/luatex-fonts-merged.lua
index c936fd8f6..77fb528e7 100644
--- a/tex/generic/context/luatex-fonts-merged.lua
+++ b/tex/generic/context/luatex-fonts-merged.lua
@@ -1,6 +1,6 @@
-- merged file : c:/data/develop/context/texmf/tex/generic/context/luatex-fonts-merged.lua
-- parent file : c:/data/develop/context/texmf/tex/generic/context/luatex-fonts.lua
--- merge date : 02/12/10 10:26:48
+-- merge date : 02/14/10 19:03:57
do -- begin closure to overcome local limits and interference