summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius <mariausol@gmail.com>2010-12-21 12:00:15 +0200
committerMarius <mariausol@gmail.com>2010-12-21 12:00:15 +0200
commit6d053ffca163b4e5880fdb8429fc7f7eb0184235 (patch)
tree5b4486f88c31d121ab7b6cb4d578c8cdd80078c4
parent5dd3f2c9d50740c2898e8311c48fabebcd812c9c (diff)
downloadcontext-6d053ffca163b4e5880fdb8429fc7f7eb0184235.tar.gz
beta 2010.12.21 10:50
-rw-r--r--scripts/context/lua/mtxrun.lua4
-rw-r--r--scripts/context/stubs/mswin/mtxrun.lua4
-rw-r--r--scripts/context/stubs/unix/mtxrun4
-rw-r--r--tex/context/base/cont-new.tex2
-rw-r--r--tex/context/base/context.tex2
-rw-r--r--tex/context/base/font-mis.lua2
-rw-r--r--tex/context/base/font-otf.lua35
-rw-r--r--tex/context/base/lxml-tab.lua4
-rw-r--r--tex/context/base/m-database.lua2
-rw-r--r--tex/context/base/mult-de.tex1
-rw-r--r--tex/context/base/mult-def.lua4
-rw-r--r--tex/context/base/mult-en.tex1
-rw-r--r--tex/context/base/mult-fr.tex1
-rw-r--r--tex/context/base/mult-it.tex1
-rw-r--r--tex/context/base/mult-nl.tex1
-rw-r--r--tex/context/base/mult-pe.tex1
-rw-r--r--tex/context/base/mult-ro.tex1
-rw-r--r--tex/context/base/regi-ini.lua12
-rw-r--r--tex/context/base/strc-flt.mkiv73
-rw-r--r--tex/context/base/syst-ini.tex4
-rw-r--r--tex/context/base/tabl-tsp.mkiv33
-rw-r--r--tex/context/interface/keys-cs.xml1
-rw-r--r--tex/context/interface/keys-de.xml1
-rw-r--r--tex/context/interface/keys-en.xml1
-rw-r--r--tex/context/interface/keys-fr.xml1
-rw-r--r--tex/context/interface/keys-it.xml1
-rw-r--r--tex/context/interface/keys-nl.xml1
-rw-r--r--tex/context/interface/keys-pe.xml1
-rw-r--r--tex/context/interface/keys-ro.xml1
-rw-r--r--tex/generic/context/luatex-fonts-merged.lua37
30 files changed, 152 insertions, 85 deletions
diff --git a/scripts/context/lua/mtxrun.lua b/scripts/context/lua/mtxrun.lua
index d8a8e89e5..0da5ff01c 100644
--- a/scripts/context/lua/mtxrun.lua
+++ b/scripts/context/lua/mtxrun.lua
@@ -5848,6 +5848,10 @@ The find based parser can be found in l-xml-edu.lua along with other older code.
<p>Beware, the interface may change. For instance at, ns, tg, dt may get more
verbose names. Once the code is stable we will also remove some tracing and
optimize the code.</p>
+
+<p>I might even decide to reimplement the parser using the latest <l n='lpeg'/> trickery
+as the current variant was written when <l n='lpeg'/> showed up and it's easier now to
+build tables in one go.</p>
--ldx]]--
xml = xml or { }
diff --git a/scripts/context/stubs/mswin/mtxrun.lua b/scripts/context/stubs/mswin/mtxrun.lua
index d8a8e89e5..0da5ff01c 100644
--- a/scripts/context/stubs/mswin/mtxrun.lua
+++ b/scripts/context/stubs/mswin/mtxrun.lua
@@ -5848,6 +5848,10 @@ The find based parser can be found in l-xml-edu.lua along with other older code.
<p>Beware, the interface may change. For instance at, ns, tg, dt may get more
verbose names. Once the code is stable we will also remove some tracing and
optimize the code.</p>
+
+<p>I might even decide to reimplement the parser using the latest <l n='lpeg'/> trickery
+as the current variant was written when <l n='lpeg'/> showed up and it's easier now to
+build tables in one go.</p>
--ldx]]--
xml = xml or { }
diff --git a/scripts/context/stubs/unix/mtxrun b/scripts/context/stubs/unix/mtxrun
index d8a8e89e5..0da5ff01c 100644
--- a/scripts/context/stubs/unix/mtxrun
+++ b/scripts/context/stubs/unix/mtxrun
@@ -5848,6 +5848,10 @@ The find based parser can be found in l-xml-edu.lua along with other older code.
<p>Beware, the interface may change. For instance at, ns, tg, dt may get more
verbose names. Once the code is stable we will also remove some tracing and
optimize the code.</p>
+
+<p>I might even decide to reimplement the parser using the latest <l n='lpeg'/> trickery
+as the current variant was written when <l n='lpeg'/> showed up and it's easier now to
+build tables in one go.</p>
--ldx]]--
xml = xml or { }
diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex
index 4e4c99cb6..6b002fc4a 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.12.18 21:03}
+\newcontextversion{2010.12.21 10:50}
%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 339fa0460..5417ffe44 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.12.18 21:03}
+\edef\contextversion{2010.12.21 10:50}
%D For those who want to use this:
diff --git a/tex/context/base/font-mis.lua b/tex/context/base/font-mis.lua
index 964378a8a..216af0155 100644
--- a/tex/context/base/font-mis.lua
+++ b/tex/context/base/font-mis.lua
@@ -11,7 +11,7 @@ local lower, strip = string.lower, string.strip
fonts.otf = fonts.otf or { }
-fonts.otf.version = fonts.otf.version or 2.706
+fonts.otf.version = fonts.otf.version or 2.707
fonts.otf.cache = containers.define("fonts", "otf", fonts.otf.version, true)
function fonts.otf.loadcached(filename,format,sub)
diff --git a/tex/context/base/font-otf.lua b/tex/context/base/font-otf.lua
index ba64b1326..bfd3262ba 100644
--- a/tex/context/base/font-otf.lua
+++ b/tex/context/base/font-otf.lua
@@ -57,7 +57,7 @@ local definers = fonts.definers
otf.glists = { "gsub", "gpos" }
-otf.version = 2.706 -- beware: also sync font-mis.lua
+otf.version = 2.707 -- beware: also sync font-mis.lua
otf.cache = containers.define("fonts", "otf", otf.version, true)
local loadmethod = "table" -- table, mixed, sparse
@@ -964,23 +964,27 @@ actions["reorganize subtables"] = function(data,filename,raw)
end
end
+-- the next one is still messy but will get better when we have
+-- flattened map/enc tables in the font loader
+
actions["prepare unicodes"] = function(data,filename,raw)
local luatex = data.luatex
- local indices, unicodes, multiples, internals = { }, { }, { }, { }
- local mapmap = data.map or raw.map
- local mapenc = nil -- will go away
- if not mapmap then
- report_otf("no map in %s",filename)
+ local indices, unicodes, multiples, internals= { }, { }, { }, { }
+ local mapdata = data.map or raw.map -- map already moved
+ local mapmap
+ if not mapdata then
+ report_otf("no mapdata in '%s'",filename)
mapmap = { }
- data.map = { map = mapmap }
- elseif not mapmap.map then
- report_otf("no unicode map in %s",filename)
+ mapdata = { map = mapmap }
+ data.map = mapdata
+ elseif not mapdata.map then
+ report_otf("no map in mapdata of '%s'",filename)
mapmap = { }
- data.map.map = mapmap
+ mapdata.map = mapmap
else
- mapenc = mapmap.enc -- will go away
- mapmap = mapmap.map
+ mapmap = mapdata.map
end
+ local encname = lower(data.enc_name or raw.enc_name or mapdata.enc_name or "")
local criterium = fonts.privateoffset
local private = criterium
local glyphs = data.glyphs
@@ -1026,12 +1030,9 @@ actions["prepare unicodes"] = function(data,filename,raw)
end
end
-- beware: the indices table is used to initialize the tfm table
- local encname = lower(data.enc_name or (mapenc and mapenc[1] and mapenc[1].enc_name) or "") -- mapenc will go away
- -- will become: local encname = lower(data.enc_name or "")
---~ if encname == "" or encname == "unicodebmp" or encname == "unicodefull" then -- maybe find(encname,"unicode")
- if find(encname,"unicode") then
+ if find(encname,"unicode") then -- unicodebmp, unicodefull, ...
if trace_loading then
- report_otf("using extra unicode map")
+ report_otf("using embedded unicode map '%s'",encname)
end
-- ok -- we can also consider using the altuni
for unicode, index in next, mapmap do
diff --git a/tex/context/base/lxml-tab.lua b/tex/context/base/lxml-tab.lua
index 0e95fe358..6a1ab85d4 100644
--- a/tex/context/base/lxml-tab.lua
+++ b/tex/context/base/lxml-tab.lua
@@ -24,6 +24,10 @@ The find based parser can be found in l-xml-edu.lua along with other older code.
<p>Beware, the interface may change. For instance at, ns, tg, dt may get more
verbose names. Once the code is stable we will also remove some tracing and
optimize the code.</p>
+
+<p>I might even decide to reimplement the parser using the latest <l n='lpeg'/> trickery
+as the current variant was written when <l n='lpeg'/> showed up and it's easier now to
+build tables in one go.</p>
--ldx]]--
xml = xml or { }
diff --git a/tex/context/base/m-database.lua b/tex/context/base/m-database.lua
index 66bc89649..59e875ee4 100644
--- a/tex/context/base/m-database.lua
+++ b/tex/context/base/m-database.lua
@@ -39,7 +39,7 @@ function buffers.database.process(settings)
data = filename ~= "" and io.loaddata(filename)
data = data and string.splitlines(data)
else
- data = buffers.getcontent(settings.database)
+ data = buffers.getlines(settings.database)
end
if data and #data > 0 then
local separatorchar, quotechar, commentchar = settings.separator, settings.quotechar, settings.commentchar
diff --git a/tex/context/base/mult-de.tex b/tex/context/base/mult-de.tex
index fa3ed479b..a7aaf52f9 100644
--- a/tex/context/base/mult-de.tex
+++ b/tex/context/base/mult-de.tex
@@ -953,6 +953,7 @@
\setinterfaceconstant{sub}{unter}
\setinterfaceconstant{subtitle}{untertitel}
\setinterfaceconstant{suffix}{suffix}
+\setinterfaceconstant{suffixseparator}{suffixseparator}
\setinterfaceconstant{surnamesep}{surnamesep}
\setinterfaceconstant{sx}{sx}
\setinterfaceconstant{sy}{sy}
diff --git a/tex/context/base/mult-def.lua b/tex/context/base/mult-def.lua
index 6fced681d..d503215b4 100644
--- a/tex/context/base/mult-def.lua
+++ b/tex/context/base/mult-def.lua
@@ -10234,6 +10234,10 @@ return {
["pe"]="پسوند",
["ro"]="suffix",
},
+ ["suffixseparator"]={
+ ["en"]="suffixseparator",
+ ["nl"]="suffixscheider",
+ },
["sx"]={
["cs"]="sx",
["de"]="sx",
diff --git a/tex/context/base/mult-en.tex b/tex/context/base/mult-en.tex
index c6765ce3f..3da09fdbf 100644
--- a/tex/context/base/mult-en.tex
+++ b/tex/context/base/mult-en.tex
@@ -953,6 +953,7 @@
\setinterfaceconstant{sub}{sub}
\setinterfaceconstant{subtitle}{subtitle}
\setinterfaceconstant{suffix}{suffix}
+\setinterfaceconstant{suffixseparator}{suffixseparator}
\setinterfaceconstant{surnamesep}{surnamesep}
\setinterfaceconstant{sx}{sx}
\setinterfaceconstant{sy}{sy}
diff --git a/tex/context/base/mult-fr.tex b/tex/context/base/mult-fr.tex
index 84974bb43..e8ed2ce99 100644
--- a/tex/context/base/mult-fr.tex
+++ b/tex/context/base/mult-fr.tex
@@ -953,6 +953,7 @@
\setinterfaceconstant{sub}{sous}
\setinterfaceconstant{subtitle}{soustitre}
\setinterfaceconstant{suffix}{suffix}
+\setinterfaceconstant{suffixseparator}{suffixseparator}
\setinterfaceconstant{surnamesep}{surnamesep}
\setinterfaceconstant{sx}{sx}
\setinterfaceconstant{sy}{sy}
diff --git a/tex/context/base/mult-it.tex b/tex/context/base/mult-it.tex
index bae816c40..97f3675cd 100644
--- a/tex/context/base/mult-it.tex
+++ b/tex/context/base/mult-it.tex
@@ -953,6 +953,7 @@
\setinterfaceconstant{sub}{sotto}
\setinterfaceconstant{subtitle}{sottotitolo}
\setinterfaceconstant{suffix}{suffix}
+\setinterfaceconstant{suffixseparator}{suffixseparator}
\setinterfaceconstant{surnamesep}{surnamesep}
\setinterfaceconstant{sx}{sx}
\setinterfaceconstant{sy}{sy}
diff --git a/tex/context/base/mult-nl.tex b/tex/context/base/mult-nl.tex
index d0acd81eb..2036b9cb7 100644
--- a/tex/context/base/mult-nl.tex
+++ b/tex/context/base/mult-nl.tex
@@ -953,6 +953,7 @@
\setinterfaceconstant{sub}{sub}
\setinterfaceconstant{subtitle}{subtitel}
\setinterfaceconstant{suffix}{suffix}
+\setinterfaceconstant{suffixseparator}{suffixscheider}
\setinterfaceconstant{surnamesep}{surnamesep}
\setinterfaceconstant{sx}{sx}
\setinterfaceconstant{sy}{sy}
diff --git a/tex/context/base/mult-pe.tex b/tex/context/base/mult-pe.tex
index 7ea06050c..94a6c1c11 100644
--- a/tex/context/base/mult-pe.tex
+++ b/tex/context/base/mult-pe.tex
@@ -953,6 +953,7 @@
\setinterfaceconstant{sub}{زیر}
\setinterfaceconstant{subtitle}{زیرعنوان}
\setinterfaceconstant{suffix}{پسوند}
+\setinterfaceconstant{suffixseparator}{suffixseparator}
\setinterfaceconstant{surnamesep}{surnamesep}
\setinterfaceconstant{sx}{sx}
\setinterfaceconstant{sy}{sy}
diff --git a/tex/context/base/mult-ro.tex b/tex/context/base/mult-ro.tex
index 8c852215f..d420db837 100644
--- a/tex/context/base/mult-ro.tex
+++ b/tex/context/base/mult-ro.tex
@@ -953,6 +953,7 @@
\setinterfaceconstant{sub}{sub}
\setinterfaceconstant{subtitle}{subtitlu}
\setinterfaceconstant{suffix}{suffix}
+\setinterfaceconstant{suffixseparator}{suffixseparator}
\setinterfaceconstant{surnamesep}{surnamesep}
\setinterfaceconstant{sx}{sx}
\setinterfaceconstant{sy}{sy}
diff --git a/tex/context/base/regi-ini.lua b/tex/context/base/regi-ini.lua
index 979a39994..d3444e6f4 100644
--- a/tex/context/base/regi-ini.lua
+++ b/tex/context/base/regi-ini.lua
@@ -127,7 +127,7 @@ function regimes.translate(line,regime)
end
local sequencers = utilities.sequencers
-local textfileactions = resolvers.openers.helpers.textfileactions
+local textlineactions = resolvers.openers.helpers.textlineactions
function regimes.process(s)
return regimes.translate(s,regimes.currentregime)
@@ -137,16 +137,16 @@ function regimes.enable(regime)
regime = synonyms[regime] or regime
if data[regime] then
regimes.currentregime = regime
- sequencers.enableaction(textfileactions,"regimes.process")
+ sequencers.enableaction(textlineactions,"regimes.process")
else
- sequencers.disableaction(textfileactions,"regimes.process")
+ sequencers.disableaction(textlineactions,"regimes.process")
end
end
function regimes.disable()
regimes.currentregime = "utf"
- sequencers.disableaction(textfileactions,"regimes.process")
+ sequencers.disableaction(textlineactions,"regimes.process")
end
-utilities.sequencers.prependaction(textfileactions,"system","regimes.process")
-utilities.sequencers.disableaction(textfileactions,"regimes.process")
+utilities.sequencers.prependaction(textlineactions,"system","regimes.process")
+utilities.sequencers.disableaction(textlineactions,"regimes.process")
diff --git a/tex/context/base/strc-flt.mkiv b/tex/context/base/strc-flt.mkiv
index ce101c870..6e8c0b5dd 100644
--- a/tex/context/base/strc-flt.mkiv
+++ b/tex/context/base/strc-flt.mkiv
@@ -21,9 +21,9 @@
%D strc-flt.tex and page-flt.mkiv cq. page-flt.mkii.
\ifdefined\addlocalbackgroundtobox\else \def\addlocalbackgroundtobox{\resetglobal\gobbleoneargument} \fi
-
+
\unexpanded\def\placefloats{\doflushfloats} % keep this one
-
+
\let\currentfloat\empty
\def\letfloatparameter #1{\expandafter\let\csname\??fl\currentfloat#1\endcsname}
@@ -120,7 +120,8 @@
% \c!separator=\@@koseparator,
% \c!starter=\@@kostarter,
% \c!stopper=\@@kostopper,
- % \c!suffix=\floatcaptionsuffix, % hook
+ \c!suffixseparator=, % currently rather hard coded
+ \c!suffix=\floatcaptionsuffix,
\c!distance=1em,
\c!conversion=\v!numbers,
\c!command=]
@@ -301,11 +302,27 @@
\installstructurelistprocessor{float}{\usestructurelistprocessor{number+title}}
+% \def\thecurrentfloatnumber
+% {\ifnofloatcaption \else \ifnofloatnumber \else
+% \ifx\currentfloatnumber\relax\else
+% \dostarttagged\t!floattag\empty
+% \labeltexts\currentfloat{\ctxlua{structures.lists.savedprefixednumber("\currentfloat",\currentfloatnumber)}}%
+% \dostoptagged
+% \fi
+% \fi \fi}
+
+\unexpanded\def\thecurrentfloatnumbersuffix
+ {\doifsomething{\floatcaptionparameter\c!suffix}
+ {\floatcaptionparameter\c!suffixseparator
+ \floatcaptionparameter\c!suffix}}
+
\def\thecurrentfloatnumber
{\ifnofloatcaption \else \ifnofloatnumber \else
\ifx\currentfloatnumber\relax\else
\dostarttagged\t!floattag\empty
- \labeltexts\currentfloat{\ctxlua{structures.lists.savedprefixednumber("\currentfloat",\currentfloatnumber)}}%
+ \labeltexts\currentfloat
+ {\ctxlua{structures.lists.savedprefixednumber("\currentfloat",\currentfloatnumber)}%
+ \thecurrentfloatnumbersuffix}%
\dostoptagged
\fi
\fi \fi}
@@ -506,7 +523,7 @@
\newconditional\retainfloatnumber
-\def\preparefloatnumber#1%
+\def\preparefloatnumber#1% use in special case see below
{\xdef\floatcaptionnumber{#1}%
\doifelsenodelocation{\v!float\@@thenumber{#1}}
\donothing {\nodelocationmode\zerocount}%
@@ -755,6 +772,8 @@
attr \destinationattribute \currentfloatattribute
\fi \fi \fi}
+\newconditional\usesamefloatnumber
+
\long\def\docompletefloat#1#2#3#4#5% #1:floatclass #2:reference #3:optionlist #4:caption #5:box number
{\presetfloatvariables{#1}{#3}{#2}{#5}% check this one
\bgroup
@@ -762,24 +781,32 @@
%
% \dofloatcomponent[\c!name=#1,\c!reference=#2,\c!bookmark=,\c!title={#4}][]% ifnofloatnumber ifnofloatcaption \tracefloatnumber{#1}%
%
- \dostructurecountercomponent
- {float}%
- \getcaptionparameters
- \floatcaptionparameter
- \detokenizedcaptionparameter
- \relax
- \relax
- \relax
- [\c!name=\currentfloat,\s!counter=\@@thestructurecounter\currentfloat,%
- \s!hascaption=\ifnofloatcaption \v!no\else\v!yes\fi,%
- \s!hasnumber=\ifnofloatnumber \v!no\else\v!yes\fi,%
- \s!hastitle=\ifemptyfloatcaption\v!no\else\v!yes\fi,%
- \c!reference=#2,\c!title={#4},\c!bookmark=]%
- []%
- \globallet\currentfloatnumber \laststructurecounternumber
- \globallet\currentfloatattribute \laststructurecounterattribute
- \globallet\currentfloatsynchronize\laststructurecountersynchronize
+ \ifconditional\usesamefloatnumber
+ \globallet\currentfloatnumber \previousfloatnumber
+ \globallet\currentfloatattribute \empty
+ \globallet\currentfloatsynchronize\relax
+ \else
+ \dostructurecountercomponent
+ {float}%
+ \getcaptionparameters
+ \floatcaptionparameter
+ \detokenizedcaptionparameter
+ \relax
+ \relax
+ \relax
+ [\c!name=\currentfloat,\s!counter=\@@thestructurecounter\currentfloat,%
+ \s!hascaption=\ifnofloatcaption \v!no\else\v!yes\fi,%
+ \s!hasnumber=\ifnofloatnumber \v!no\else\v!yes\fi,%
+ \s!hastitle=\ifemptyfloatcaption\v!no\else\v!yes\fi,%
+ \c!reference=#2,\c!title={#4},\c!bookmark=]%
+ []%
+ \globallet\previousfloatnumber \laststructurecounternumber
+ \globallet\currentfloatnumber \laststructurecounternumber
+ \globallet\currentfloatattribute \laststructurecounterattribute
+ \globallet\currentfloatsynchronize\laststructurecountersynchronize
+ \fi
%
+ \global\setfalse\usesamefloatnumber % one shot
% check float box
\setnaturalfloatdimensions#5%
\global\setbox\floatbox\vbox{\floatparameter\c!command{\box#5}}%
@@ -833,7 +860,7 @@
\fi}
\appendtoks
- \let\rightorleftpageaction\doifrightpagefloatelse
+ \let\rightorleftpageaction\doifrightpagefloatelse
\to \everyinsidefloat
\newif\ifextrafloatactions \extrafloatactionstrue
diff --git a/tex/context/base/syst-ini.tex b/tex/context/base/syst-ini.tex
index fb3732074..c37f6850e 100644
--- a/tex/context/base/syst-ini.tex
+++ b/tex/context/base/syst-ini.tex
@@ -441,6 +441,10 @@
\newif\ifdone
+%D Potential primitive in \LUATEX:
+
+\ifdefined\htdp \else \def\htdp#1{\dimexpr\ht#1+\dp#1\relax} \fi
+
%D \macros
%D {@@escape,@@begingroup,@@endgroup,@@mathshift,@@alignment,
%D @@endofline,@@parameter,@@superscript,@@subscript,
diff --git a/tex/context/base/tabl-tsp.mkiv b/tex/context/base/tabl-tsp.mkiv
index af14e00f6..d274df6cb 100644
--- a/tex/context/base/tabl-tsp.mkiv
+++ b/tex/context/base/tabl-tsp.mkiv
@@ -13,14 +13,11 @@
\writestatus{loading}{ConTeXt Table Macros / Splitting}
-%D The code in this file is move here from other places.
+%D The code in this file is move here from other places and needs
+%D a mkiv cleanup.
\unprotect
-% only to be used with single tokens (will be prim)
-
-\ifx\htdp\undefined \def\htdp#1{\dimexpr\ht#1+\dp#1\relax} \fi
-
%D Although the name resembles floats, and therefore this should be
%D a page module, we decided to make it core functionality because the
%D table code depends on it. Othrwise there would be too much
@@ -29,12 +26,9 @@
% \splitfloat [settings] {\placetable[optional args]{test}} {content}
-% \def\s!noftablesplits{nofsplittables}
+% there is no need for a tracked structure number here
-\definenumber % we need a nicer name like nofsplittables, we then also need to set \s!parent
- [\??si]
- [\c!way=\v!by\v!text,
- \c!conversion=\@@siconversion]
+\newcount\noffloatssplits
\unexpanded\def\setupfloatsplitting
{\dodoubleargument\getparameters[\??si]}
@@ -59,8 +53,8 @@
\insidefloattrue
\insidesplitfloattrue
\getparameters[\??si][#1]%
- \resetnumber[\??si]%
- \def\floatcaptionsuffix{\convertednumber[\??si]}%
+ \global\noffloatssplits\zerocount
+ \def\floatcaptionsuffix{\convertnumber\@@siconversion\noffloatssplits}%
\let\extrasplitfloatlines\@@silines
\the\everysplitfloatsetup
\def\splitfloatcommand{#2}%
@@ -114,14 +108,19 @@
\dontcomplain
\global\settrue\splitfloatdone
\nodelocationmode\zerocount % bypass auto-renumbering
- \incrementnumber[\??si]%
- \ifcase\rawnumber[\??si]\or \ifconditional\onlyonesplitofffloat
- \let\floatcaptionsuffix\empty
- \fi \fi
+ \global\advance\noffloatssplits\plusone
+ \ifcase\noffloatssplits\relax
+ \or
+ \ifconditional\onlyonesplitofffloat
+ \let\floatcaptionsuffix\empty
+ \fi
+ \else
+ \global\settrue\usesamefloatnumber % one shot
+ \fi
\bgroup
\ifconditional\somenextplitofffloat
\settrue\retainfloatnumber
-\notesenabledfalse % best here, experimental, brrr; test with note in caption
+ \notesenabledfalse % best here, experimental, brrr; test with note in caption
\else
\setfalse\retainfloatnumber
\fi
diff --git a/tex/context/interface/keys-cs.xml b/tex/context/interface/keys-cs.xml
index a16abecfe..9038deb62 100644
--- a/tex/context/interface/keys-cs.xml
+++ b/tex/context/interface/keys-cs.xml
@@ -959,6 +959,7 @@
<cd:constant name='sub' value='pod'/>
<cd:constant name='subtitle' value='podtitulek'/>
<cd:constant name='suffix' value='suffix'/>
+ <cd:constant name='suffixseparator' value='suffixseparator'/>
<cd:constant name='surnamesep' value='surnamesep'/>
<cd:constant name='sx' value='sx'/>
<cd:constant name='sy' value='sy'/>
diff --git a/tex/context/interface/keys-de.xml b/tex/context/interface/keys-de.xml
index 355b11feb..bb53fecb6 100644
--- a/tex/context/interface/keys-de.xml
+++ b/tex/context/interface/keys-de.xml
@@ -959,6 +959,7 @@
<cd:constant name='sub' value='unter'/>
<cd:constant name='subtitle' value='untertitel'/>
<cd:constant name='suffix' value='suffix'/>
+ <cd:constant name='suffixseparator' value='suffixseparator'/>
<cd:constant name='surnamesep' value='surnamesep'/>
<cd:constant name='sx' value='sx'/>
<cd:constant name='sy' value='sy'/>
diff --git a/tex/context/interface/keys-en.xml b/tex/context/interface/keys-en.xml
index 43a4fcfd7..bc30b0790 100644
--- a/tex/context/interface/keys-en.xml
+++ b/tex/context/interface/keys-en.xml
@@ -959,6 +959,7 @@
<cd:constant name='sub' value='sub'/>
<cd:constant name='subtitle' value='subtitle'/>
<cd:constant name='suffix' value='suffix'/>
+ <cd:constant name='suffixseparator' value='suffixseparator'/>
<cd:constant name='surnamesep' value='surnamesep'/>
<cd:constant name='sx' value='sx'/>
<cd:constant name='sy' value='sy'/>
diff --git a/tex/context/interface/keys-fr.xml b/tex/context/interface/keys-fr.xml
index 87a189e5d..2cb38889b 100644
--- a/tex/context/interface/keys-fr.xml
+++ b/tex/context/interface/keys-fr.xml
@@ -959,6 +959,7 @@
<cd:constant name='sub' value='sous'/>
<cd:constant name='subtitle' value='soustitre'/>
<cd:constant name='suffix' value='suffix'/>
+ <cd:constant name='suffixseparator' value='suffixseparator'/>
<cd:constant name='surnamesep' value='surnamesep'/>
<cd:constant name='sx' value='sx'/>
<cd:constant name='sy' value='sy'/>
diff --git a/tex/context/interface/keys-it.xml b/tex/context/interface/keys-it.xml
index b6f56e964..9dafa4972 100644
--- a/tex/context/interface/keys-it.xml
+++ b/tex/context/interface/keys-it.xml
@@ -959,6 +959,7 @@
<cd:constant name='sub' value='sotto'/>
<cd:constant name='subtitle' value='sottotitolo'/>
<cd:constant name='suffix' value='suffix'/>
+ <cd:constant name='suffixseparator' value='suffixseparator'/>
<cd:constant name='surnamesep' value='surnamesep'/>
<cd:constant name='sx' value='sx'/>
<cd:constant name='sy' value='sy'/>
diff --git a/tex/context/interface/keys-nl.xml b/tex/context/interface/keys-nl.xml
index 843d0db37..d4072b8bf 100644
--- a/tex/context/interface/keys-nl.xml
+++ b/tex/context/interface/keys-nl.xml
@@ -959,6 +959,7 @@
<cd:constant name='sub' value='sub'/>
<cd:constant name='subtitle' value='subtitel'/>
<cd:constant name='suffix' value='suffix'/>
+ <cd:constant name='suffixseparator' value='suffixscheider'/>
<cd:constant name='surnamesep' value='surnamesep'/>
<cd:constant name='sx' value='sx'/>
<cd:constant name='sy' value='sy'/>
diff --git a/tex/context/interface/keys-pe.xml b/tex/context/interface/keys-pe.xml
index 78fd96d27..a5417f655 100644
--- a/tex/context/interface/keys-pe.xml
+++ b/tex/context/interface/keys-pe.xml
@@ -959,6 +959,7 @@
<cd:constant name='sub' value='زیر'/>
<cd:constant name='subtitle' value='زیرعنوان'/>
<cd:constant name='suffix' value='پسوند'/>
+ <cd:constant name='suffixseparator' value='suffixseparator'/>
<cd:constant name='surnamesep' value='surnamesep'/>
<cd:constant name='sx' value='sx'/>
<cd:constant name='sy' value='sy'/>
diff --git a/tex/context/interface/keys-ro.xml b/tex/context/interface/keys-ro.xml
index 6a311ec3d..b8ca16483 100644
--- a/tex/context/interface/keys-ro.xml
+++ b/tex/context/interface/keys-ro.xml
@@ -959,6 +959,7 @@
<cd:constant name='sub' value='sub'/>
<cd:constant name='subtitle' value='subtitlu'/>
<cd:constant name='suffix' value='suffix'/>
+ <cd:constant name='suffixseparator' value='suffixseparator'/>
<cd:constant name='surnamesep' value='surnamesep'/>
<cd:constant name='sx' value='sx'/>
<cd:constant name='sy' value='sy'/>
diff --git a/tex/generic/context/luatex-fonts-merged.lua b/tex/generic/context/luatex-fonts-merged.lua
index e95f2980a..2a496e9cd 100644
--- a/tex/generic/context/luatex-fonts-merged.lua
+++ b/tex/generic/context/luatex-fonts-merged.lua
@@ -1,6 +1,6 @@
-- merged file : luatex-fonts-merged.lua
-- parent file : luatex-fonts.lua
--- merge date : 12/18/10 21:03:48
+-- merge date : 12/21/10 10:50:53
do -- begin closure to overcome local limits and interference
@@ -5646,7 +5646,7 @@ local definers = fonts.definers
otf.glists = { "gsub", "gpos" }
-otf.version = 2.706 -- beware: also sync font-mis.lua
+otf.version = 2.707 -- beware: also sync font-mis.lua
otf.cache = containers.define("fonts", "otf", otf.version, true)
local loadmethod = "table" -- table, mixed, sparse
@@ -6553,23 +6553,27 @@ actions["reorganize subtables"] = function(data,filename,raw)
end
end
+-- the next one is still messy but will get better when we have
+-- flattened map/enc tables in the font loader
+
actions["prepare unicodes"] = function(data,filename,raw)
local luatex = data.luatex
- local indices, unicodes, multiples, internals = { }, { }, { }, { }
- local mapmap = data.map or raw.map
- local mapenc = nil -- will go away
- if not mapmap then
- report_otf("no map in %s",filename)
+ local indices, unicodes, multiples, internals= { }, { }, { }, { }
+ local mapdata = data.map or raw.map -- map already moved
+ local mapmap
+ if not mapdata then
+ report_otf("no mapdata in '%s'",filename)
mapmap = { }
- data.map = { map = mapmap }
- elseif not mapmap.map then
- report_otf("no unicode map in %s",filename)
+ mapdata = { map = mapmap }
+ data.map = mapdata
+ elseif not mapdata.map then
+ report_otf("no map in mapdata of '%s'",filename)
mapmap = { }
- data.map.map = mapmap
+ mapdata.map = mapmap
else
- mapenc = mapmap.enc -- will go away
- mapmap = mapmap.map
+ mapmap = mapdata.map
end
+ local encname = lower(data.enc_name or raw.enc_name or mapdata.enc_name or "")
local criterium = fonts.privateoffset
local private = criterium
local glyphs = data.glyphs
@@ -6615,12 +6619,9 @@ actions["prepare unicodes"] = function(data,filename,raw)
end
end
-- beware: the indices table is used to initialize the tfm table
- local encname = lower(data.enc_name or (mapenc and mapenc[1] and mapenc[1].enc_name) or "") -- mapenc will go away
- -- will become: local encname = lower(data.enc_name or "")
---~ if encname == "" or encname == "unicodebmp" or encname == "unicodefull" then -- maybe find(encname,"unicode")
- if find(encname,"unicode") then
+ if find(encname,"unicode") then -- unicodebmp, unicodefull, ...
if trace_loading then
- report_otf("using extra unicode map")
+ report_otf("using embedded unicode map '%s'",encname)
end
-- ok -- we can also consider using the altuni
for unicode, index in next, mapmap do