From e3f0fbded1db3addc97fe1921f4957261c8a425f Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Sun, 14 Feb 2010 18:59:00 +0100 Subject: beta 2010.02.14 18:59 --- tex/context/base/bibl-tra.lua | 4 +- tex/context/base/buff-ver.mkii | 5 +- tex/context/base/char-def.lua | 1 + tex/context/base/cont-new.tex | 2 +- tex/context/base/context.tex | 2 +- tex/context/base/enco-def.mkii | 2 + tex/context/base/lang-ini.mkii | 42 +++++---- tex/context/base/lang-url.lua | 134 ++++++++++++++-------------- tex/context/base/lang-url.mkiv | 13 ++- tex/context/base/lpdf-fld.lua | 1 + tex/context/base/pack-rul.mkiv | 2 +- tex/context/base/scrn-fld.mkiv | 8 +- tex/context/base/scrn-int.mkiv | 4 +- tex/context/base/spac-ver.mkiv | 10 ++- tex/context/base/strc-not.mkiv | 28 +++++- tex/context/base/strc-ren.mkiv | 2 +- tex/context/base/strc-sec.mkiv | 60 +++++++++---- tex/generic/context/luatex-fonts-merged.lua | 2 +- 18 files changed, 198 insertions(+), 124 deletions(-) (limited to 'tex') 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 characters.

]]-- -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 -- cgit v1.2.3